fastdfs介绍和安装

来源:互联网 发布:js window对象 编辑:程序博客网 时间:2024/05/06 04:43
FastDFS是一个开源的,高性能的的分布式文件系统,他主要的功能包括:文件存储,同步和访问,设计基于高可用和负载均衡,FastDFS非常适用于基于文件服务的站点,例如图片分享和视频分享网站

FastDFS有两个角色:跟踪服务(tracker)和存储服务(storage),跟踪服务控制,调度文件以负载均衡的方式访问;存储服务包括:文件存储,文件同步,提供文件访问接口,同时以key value的方式管理文件的元数据

跟踪和存储服务可以由1台或者多台服务器组成,同时可以动态的添加,删除跟踪和存储服务而不会对在线的服务产生影响,在集群中,tracker服务是对等的

存储系统由一个或多个卷组成,卷与卷之间的文件是相互独立的,所有卷的文件容量累加就是整个存储系统中的文件容量。一个卷可以由一台或多台存储服务器组成,一个卷下的存储服务器中的文件都是相同的,卷中的多台存储服务器起到了冗余备份和负载均衡的作用。在卷中增加服务器时,同步已有的文件由系统自动完成,同步完成后,系统自动将新增服务器切换到线上提供服务。当存储空间不足或即将耗尽时,可以动态添加卷。只需要增加一台或多台服务器,并将它们配置为一个新的卷,这样就扩大了存储系统的容量。

四、FastDFS上传/下载过程:

首先客户端 client 发起对 FastDFS 的文件传输动作,是通过连接到某一台 Tracker Server 的指定端口来实现的,Tracker Server 根据目前已掌握的信息,来决定选择哪一台 Storage Server ,然后将这个Storage Server 的地址等信息返回给 client,然后 client 再通过这些信息连接到这台 Storage Server,将要上传的文件传送到给 Storage Server上。


上传过程:


下载过程:



在我的项目中,一般启动2个tracker和2个storage就可以了


####################################################################################################################################

2、环境准备

2.1、RedHat 7 Yum源配置及关闭火墙

配置Redhat7ISO YUM源

Vi/etc/yum.repo.d/rhel7.repo

[rhel7-media]

name=rhel7-source

baseurl=file:///mnt

Enable=1

gpgcheck=1

gpgkey=file:///mnt/RPM-GPG-KEY-redhat-release

 

关闭防火墙:

systemctlstop firewalld

systemctldisable firewalld

2.2、安装依赖包

安装相关依赖包,如gcc、pcre、pcre-devel、zlib、zlib-devel、openssl、openssl-devel

命令:

yum -y install gcc gcc-c++ pcre pcre-devel zlibzlib-devel openssl openssl-devel

2.3、FastDFS环规划

采用两台Tracker Server和四台Storage Server搭建,实现集群配置,规划如下图:

         用笔记本搭建虚拟机跑不了6台,因此改为如下规划方案:采用4台虚拟机。其中:

Tracker01即是tracker server也是storage server;

Tracker02即是tracker server也是storage server;

Storage01是storage Server。

Storage02是storage server。

分为如下两个组:

         各主机/etc/hosts配置:

#Tracker01

192.168.18.2    Tracker01

192.168.18.3    Tracker02

 

#Storage gwmdfs1

192.168.18.4    Storage01

192.168.18.5    Storage02

 

#Storage gwmdfs2

192.168.18.6    Storage03

192.168.18.7    Storage04

2.4、目录规划

       存储Tracker的数据文件和日志文件:

       /home/fastdfs_tracker

       存储Storage的数据文件和日志文件:

       /home/fastdfs_storage

       文件存储路径,存储上传的文件:

       /home/fastdfs_storage_data

2.5、相关软件下载

       相关软件包下载可到余庆作者Github官网首页下载:https://github.com/happyfish100;所下载的相关软件每台服务器都放在了/media目录下。

         [root@Tracker01 media]# ls -rtl

total 19096

-rw-r--r--. 1 root root    20405 Mar 28 12:34 fastdfs-nginx-module-master.zip

-rw-r--r--. 1 root root   335132 Mar 28 12:34 fastdfs-5.09.tar.gz

-rw-r--r--. 1 root root   478841 Mar 28 12:34 libfastcommon-master.zip

-rw-r--r--. 1 root root  2065161 Mar 28 12:34 pcre-8.40.tar.gz

-rw-r--r--. 1 root root   833473 Mar 28 12:34 nginx-1.8.1.tar.gz

-rw-r--r--. 1 root root 15800360 Mar 28 12:35 perl-5.20.2.tar.gz

-rw-r--r--. 1 root root    10535 Mar 28 12:37 ngx_cache_purge-2.1.tar.gz

3、FastDFS Tracker&Storage安装

         所有节点均需要安装:

1、         首先安装libfastcommon-master

# unzip libfastcommon-master

# cd libfastcommon-master

# ./make.sh

# ./make.sh install

[root@Tracker01 libfastcommon-master]# ./make.sh install

mkdir -p /usr/lib64

mkdir -p /usr/lib

install -m 755 libfastcommon.so /usr/lib64

install -m 755 libfastcommon.so /usr/lib

mkdir -p /usr/include/fastcommon

install -m 644 common_define.h hash.h chain.h logger.h base64.h shared_func.h pthread_func.h ini_file_reader.h _os_define.h sockopt.h sched_thread.h http_func.h md5.h local_ip_func.h avl_tree.h ioevent.h ioevent_loop.h fast_task_queue.h fast_timer.h process_ctrl.h fast_mblock.h connection_pool.h fast_mpool.h fast_allocator.h fast_buffer.h skiplist.h multi_skiplist.h flat_skiplist.h skiplist_common.h system_info.h fast_blocked_queue.h php7_ext_wrapper.h id_generator.h char_converter.h char_convert_loader.h /usr/include/fastcommon

              libfastcommon.so 默认安装到了/usr/lib64/libfastcommon.so,但是FastDFS主程序设置的lib目录是/usr/local/lib,所以此处需要重新设置软链接。

      ln -s /usr/lib64/libfastcommon.so/usr/local/lib/libfastcommon.so

2、         安装fastdfs-5.09.tar.gz

# tar –zxvf fastdfs-5.09.tar.gz

# cd fastdfs-5.09

# ./make.sh

# ./make.sh install

[root@Tracker01 fastdfs-5.09]# ./make.sh install

mkdir -p /usr/bin

mkdir -p /etc/fdfs

cp -f fdfs_trackerd /usr/bin

if [ ! -f /etc/fdfs/tracker.conf.sample ]; then cp -f ../conf/tracker.conf /etc/fdfs/tracker.conf.sample; fi

if [ ! -f /etc/fdfs/storage_ids.conf.sample ]; then cp -f ../conf/storage_ids.conf /etc/fdfs/storage_ids.conf.sample; fi

mkdir -p /usr/bin

mkdir -p /etc/fdfs

cp -f fdfs_storaged  /usr/bin

if [ ! -f /etc/fdfs/storage.conf.sample ]; then cp -f ../conf/storage.conf /etc/fdfs/storage.conf.sample; fi

mkdir -p /usr/bin

mkdir -p /etc/fdfs

mkdir -p /usr/lib64

mkdir -p /usr/lib

cp -f fdfs_monitor fdfs_test fdfs_test1 fdfs_crc32 fdfs_upload_file fdfs_download_file fdfs_delete_file fdfs_file_info fdfs_appender_test fdfs_appender_test1 fdfs_append_file fdfs_upload_appender /usr/bin

if [ 0 -eq 1 ]; then cp -f libfdfsclient.a /usr/lib64; cp -f libfdfsclient.a /usr/lib/;fi

if [ 1 -eq 1 ]; then cp -f libfdfsclient.so /usr/lib64; cp -f libfdfsclient.so /usr/lib/;fi

mkdir -p /usr/include/fastdfs

cp -f ../common/fdfs_define.h ../common/fdfs_global.h ../common/mime_file_parser.h ../common/fdfs_http_shared.h ../tracker/tracker_types.h ../tracker/tracker_proto.h ../tracker/fdfs_shared_func.h ../storage/trunk_mgr/trunk_shared.h tracker_client.h storage_client.h storage_client1.h client_func.h client_global.h fdfs_client.h /usr/include/fastdfs

if [ ! -f /etc/fdfs/client.conf.sample ]; then cp -f ../conf/client.conf /etc/fdfs/client.conf.sample; fi

       安装完成后在/etc/fdfs目录下会生成sample配置文件,拷贝sample文件,生成正式的配置文件:

                     # cp client.conf.sample client.conf

# cp tracker.conf.sample tracker.conf   //Tracker服务器配置

# cp storage.conf.sample storage.conf  //Storage服务器配置

4、FastDFS Tracker&Storage配置

4.1、Tracker的配置

1、             创建存储目录/home/fastdfs_tracker,修改/etc/fdfs/tracker.conf配置文件

[root@Tracker01 fdfs]# cat tracker.conf |grep -v "#" |grep -v "^$"|more

disabled=false

bind_addr=

port=22122

connect_timeout=30

network_timeout=60

base_path=/home/fastdfs_tracker

max_connections=256

accept_threads=1

work_threads=4

min_buff_size = 8KB

max_buff_size = 128KB

store_lookup=2

store_group=group2

store_server=0

store_path=0

download_server=0

reserved_storage_space = 10%

log_level=info

run_by_group=

run_by_user=

allow_hosts=*

sync_log_buff_interval = 10

check_active_interval = 120

thread_stack_size = 64KB

storage_ip_changed_auto_adjust = true

storage_sync_file_max_delay = 86400

storage_sync_file_max_time = 300

use_trunk_file = false

slot_min_size = 256

slot_max_size = 16MB

trunk_file_size = 64MB

trunk_create_file_advance = false

trunk_create_file_time_base = 02:00

trunk_create_file_interval = 86400

trunk_create_file_space_threshold = 20G

trunk_init_check_occupying = false

trunk_init_reload_from_binlog = false

trunk_compress_binlog_min_interval = 0

use_storage_id = false

storage_ids_filename = storage_ids.conf

id_type_in_filename = ip

store_slave_file_use_link = false

rotate_error_log = false

error_log_rotate_time=00:00

rotate_error_log_size = 0

log_file_keep_days = 0

use_connection_pool = false

connection_pool_max_idle_time = 3600

http.server_port=80

http.check_alive_interval=30

http.check_alive_type=tcp

http.check_alive_uri=/status.html

2、             启动Tracker

# ln -s /usr/bin/fdfs_trackerd/usr/local/bin

# ln -s /usr/bin/stop.sh /usr/local/bin

# ln -s /usr/bin/restart.sh /usr/local/bin

# service fdfs_trackerd start

[root@Tracker01 ~]# service fdfs_trackerd start

Reloading systemd:  [  OK  ]

Starting fdfs_trackerd (via systemctl):  [  OK  ]

 

# netstat -unltp |grep fdfs

[root@Tracker01 ~]# netstat -unltp | grep fdfs

tcp        0      0 0.0.0.0:22122           0.0.0.0:*               LISTEN      4374/fdfs_trackerd

3、             可配置成开机自动启服务。Vi /etc/rc.d/rc.local 加入service fdfs_trackerd start,并对rc.local文件设置可执行权限。

4.2、Storage的配置(涉及到组名的一定要一致不要弄错否则用ss –tlanp | grep storage查看时estab连接不上另一台storage)

 

1、             创建目录/home/fastdfs_storage和/home/fastdfs_storage_data,并修改/etc/fdfs/storage.conf文件

disabled=false

group_name=gwmdfs1

bind_addr=

client_bind=true

port=23000

connect_timeout=30

network_timeout=60

heart_beat_interval=30

stat_report_interval=60

base_path=/home/fastdfs_storage

max_connections=256

buff_size = 256KB

accept_threads=1

work_threads=4

disk_rw_separated = true

disk_reader_threads = 1

disk_writer_threads = 1

sync_wait_msec=50

sync_interval=0

sync_start_time=00:00

sync_end_time=23:59

write_mark_file_freq=500

store_path_count=1

store_path0=/home/fastdfs_storage_data

subdir_count_per_path=256

tracker_server=192.168.18.2:22122

tracker_server=192.168.18.3:22122

log_level=info

run_by_group=

run_by_user=

allow_hosts=*

file_distribute_path_mode=0

file_distribute_rotate_count=100

fsync_after_written_bytes=0

sync_log_buff_interval=10

sync_binlog_buff_interval=10

sync_stat_file_interval=300

thread_stack_size=512KB

upload_priority=10

if_alias_prefix=

check_file_duplicate=0

file_signature_method=hash

key_namespace=FastDFS

keep_alive=0

use_access_log = false

rotate_access_log = false

access_log_rotate_time=00:00

rotate_error_log = false

error_log_rotate_time=00:00

rotate_access_log_size = 0

rotate_error_log_size = 0

log_file_keep_days = 0

file_sync_skip_invalid_record=false

use_connection_pool = false

connection_pool_max_idle_time = 3600

http.domain_name=

http.server_port=9999

2、             启动Storage

# ln -s /usr/bin/fdfs_trackerd /usr/local/bin

# ln -s /usr/bin/stop.sh /usr/local/bin

# ln -s /usr/bin/restart.sh /usr/local/bin

# service fdfs_storaged start(启动第二个storge时用该命令的绝对路径不用加start 后面接第二个storage的配置文件绝对路径)

[root@Storage02 bin]# service fdfs_storaged start

Reloading systemd:  [  OK  ]

Starting fdfs_storaged (via systemctl):  [  OK  ]

# netstat -unltp |grep fdfs

[root@Storage02 ~]# netstat -unltp |grep fdfs

tcp        0      0 0.0.0.0:23000           0.0.0.0:*               LISTEN      3288/fdfs_storaged 

 

5、FastDFS Nginx安装配置

5.1、Storage服务器配置Nginx

       1、为Storage服务器安装Nginx,需要将nginx-1.8.1.tar.gz和fastdfs-nginx-module-master.zip 的安装包解压。

       # tar –zxvf nginx-1.8.1.tar.gz

       # unzip fastdfs-nginx-module-master.zip

       2、进入Nginx-1.8.1目录下# ./configure --prefix=/usr/local/nginxs--add-module=/media/fastdfs-nginx-module-master/src

       # make

       # make install

       3、安装完成进入/usr/local/nginxs/目录下,如下图所示:

       4、修改nginx的配置文件,进入conf目录打开nginx.conf文件

listen       9999;

location ~/gwmdfs1/M00 {

      root /home/fastdfs_storage_data/data;

      ngx_fastdfs_module;

}

       5、拷贝配置文件到/etc/fdfs目录下,Media目录为所有软件包安装的目录。

       # cp /media/fastdfs-5.09/conf/http.conf/etc/fdfs/

# cp /media/fastdfs-5.09/conf/mime.types /etc/fdfs/

# cp/media/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/

6、修改/etc/fdfs/mod-fastdfs.conf文件

connect_timeout=2

network_timeout=30

base_path=/home/fastdfs_storage

load_fdfs_parameters_from_tracker=true

storage_sync_file_max_delay = 86400

use_storage_id = false

storage_ids_filename = storage_ids.conf

tracker_server=192.168.18.2:22122

tracker_server=192.168.18.3:22122

storage_server_port=23000

group_name=gwmdfs1

url_have_group_name = true

store_path_count=1

store_path0=/home/fastdfs_storage_data

log_level=info

log_filename=

response_mode=proxy

if_alias_prefix=

flv_support = true

flv_extension = flv

group_count = 2

[group1]

group_name=gwmdfs1

storage_server_port=23000

store_path_count=1

store_path0=/home/fastdfs_storage_data

[group2]

group_name=gwmdfs2

storage_server_port=23000

store_path_count=1

store_path0=/home/fastdfs_storage_data

       7、建立M00至存储目录的符号连接:

       #ln -s  /home/fastdfs_storage_data/data  /home/fastdfs_storage_data/data/M00

       8、启动Nginx:

       #/usr/local/nginxs/sbin/nginx

       # http://192.168.18.x:9999

5.2、Tracker服务器配置Nginx

1、进入Nginx-1.8.1目录下# ./configure --prefix=/usr/local/nginxt--add-module=/media/fastdfs-nginx-module-master/src

# make

# make install

2、修改/usr/local/nginxt/conf/nginx.conf配置文件

worker_processes  1;

events {

    worker_connections  1024;

}

http {

    include       mime.types;

    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    upstream fdfs_gwmdfs1 {

        server 192.168.18.2:9999;

        server 192.168.18.4:9999;

    }

    upstream fdfs_gwmdfs2 {

        server 192.168.18.3:9999;

        server 192.168.18.5:9999;

    }

    server {

        listen       80;

        server_name  localhost;

        location /gwmdfs1/M00 {

                proxy_pass http://fdfs_gwmdfs1;

        }

        location /gwmdfs2/M00 {

                proxy_pass http://fdfs_gwmdfs2;

        }

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }

    }

       3、启动nginx服务

       # /usr/local/nginxt/sbin/nginx –t   //启动前可测试一下nginx.conf配置是否正确。

       # /usr/local/nginxt/sbin/nginx

6、FastDFS测试验证

1、修改/etc/fdfs/client.conf文件

connect_timeout=30

network_timeout=60

base_path=/home/fastdfs_storage

tracker_server=192.168.18.3:22122

tracker_server=192.168.18.2:22122

log_level=info

use_connection_pool = false

connection_pool_max_idle_time = 3600

load_fdfs_parameters_from_tracker=false

use_storage_id = false

storage_ids_filename = storage_ids.conf

http.tracker_server_port=80

       2、上传文件测试

[root@Tracker01 media]# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /media/0.PNG

gwmdfs1/M00/00/00/wKgSAljcv7-AVM2rAAA7LOqK6Ik882.PNG

 

[root@Tracker02 media]# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /media/1.PNG

gwmdfs1/M00/00/00/wKgSBFjcv8mAKuuRAABWJnPR5Ew861.PNG

       3、通过IE查看

http://192.168.18.2/gwmdfs1/M00/00/00/wKgSBFjcv8mAKuuRAABWJnPR5Ew861.PNG

http://192.168.18.3/gwmdfs1/M00/00/00/wKgSBFjcv8mAKuuRAABWJnPR5Ew861.PNG

http://192.168.18.2/gwmdfs1/M00/00/00/wKgSAljcv7-AVM2rAAA7LOqK6Ik882.PNG

http://192.168.18.3/gwmdfs1/M00/00/00/wKgSAljcv7-AVM2rAAA7LOqK6Ik882.PNG

4、通过存储服务器上查看

       5、监控FastDFS状态

[root@Tracker01 00]# /usr/bin/fdfs_monitor /etc/fdfs/storage.conf |more

[2017-03-30 16:38:06] DEBUG - base_path=/home/fastdfs_storage, connect_timeout=30, network_timeout=60, tracker_server_count=2, anti_steal_token=0, anti_steal_secret_key length=0, use_connection_pool=0, g_connection_pool_max_idle_time=3600s, use_storage_id=0, storage server id count: 0

 

server_count=2, server_index=1

 

tracker server is 192.168.18.3:22122

 

group count: 2

 

Group 1:

group name = gwmdfs1

disk total space = 49072 MB

disk free space = 49020 MB

trunk free space = 0 MB

storage server count = 2

active server count = 2

storage server port = 23000

storage HTTP port = 8888

store path count = 1

subdir count per path = 256

current write server index = 0

current trunk file id = 0

 

        Storage 1:

                id = 192.168.18.2

                ip_addr = 192.168.18.2 (Tracker01)  ACTIVE

                http domain =

                version = 5.09

                join time = 2017-03-29 17:17:32

                up time = 2017-03-30 15:28:24

                total storage = 49072 MB

                free storage = 49020 MB

                upload priority = 10

                store_path_count = 1

                subdir_count_per_path = 256

                storage_port = 23000

                storage_http_port = 8888

                current_write_path = 0

                source storage id =

                if_trunk_server = 0

                connection.alloc_count = 256

                connection.current_count = 1

                connection.max_count = 2

                total_upload_count = 1

                success_upload_count = 1

                total_append_count = 0

                success_append_count = 0

                total_modify_count = 0

                success_modify_count = 0

                total_truncate_count = 0

                success_truncate_count = 0

                total_set_meta_count = 0

                success_set_meta_count = 0

                total_delete_count = 0

                success_delete_count = 0

                total_download_count = 0

                success_download_count = 0

                total_get_meta_count = 0

                success_get_meta_count = 0

                total_create_link_count = 0

                success_create_link_count = 0

                total_delete_link_count = 0

                success_delete_link_count = 0

                total_upload_bytes = 15148

                success_upload_bytes = 15148

                total_append_bytes = 0

                success_append_bytes = 0

                total_modify_bytes = 0

                success_modify_bytes = 0

                stotal_download_bytes = 0

                success_download_bytes = 0

                total_sync_in_bytes = 22054

                success_sync_in_bytes = 22054

                total_sync_out_bytes = 0

                success_sync_out_bytes = 0

                total_file_open_count = 2

                success_file_open_count = 2

                total_file_read_count = 0

                success_file_read_count = 0

                total_file_write_count = 2

                success_file_write_count = 2

                last_heart_beat_time = 2017-03-30 16:37:54

                last_source_update = 2017-03-30 16:20:14

                last_sync_update = 2017-03-30 16:20:27

                last_synced_timestamp = 2017-03-30 16:20:25 (-1s delay)

        Storage 2:

                id = 192.168.18.4

                ip_addr = 192.168.18.4 (Storage01)  ACTIVE

                http domain =

                version = 5.09

                join time = 2017-03-29 17:18:47

                up time = 2017-03-30 15:33:18

                total storage = 49072 MB

                free storage = 49020 MB

                upload priority = 10

                store_path_count = 1

                subdir_count_per_path = 256

                storage_port = 23000

                storage_http_port = 8888

                current_write_path = 0

                source storage id = 192.168.18.2

                if_trunk_server = 0

                connection.alloc_count = 256

                connection.current_count = 1

                connection.max_count = 2

                total_upload_count = 1

                success_upload_count = 1

                total_append_count = 0

                success_append_count = 0

                total_modify_count = 0

                success_modify_count = 0

                total_truncate_count = 0

                success_truncate_count = 0

                total_set_meta_count = 0

                success_set_meta_count = 0

                total_delete_count = 0

                success_delete_count = 0

                total_download_count = 0

                success_download_count = 0

                total_get_meta_count = 0

                success_get_meta_count = 0

                total_create_link_count = 0

                success_create_link_count = 0

                total_delete_link_count = 0

                success_delete_link_count = 0

                total_upload_bytes = 22054

                success_upload_bytes = 22054

                total_append_bytes = 0

                success_append_bytes = 0

                total_modify_bytes = 0

                success_modify_bytes = 0

                stotal_download_bytes = 0

                success_download_bytes = 0

                total_sync_in_bytes = 15148

                success_sync_in_bytes = 15148

                total_sync_out_bytes = 0

                success_sync_out_bytes = 0

                total_file_open_count = 2

                success_file_open_count = 2

                total_file_read_count = 0

                success_file_read_count = 0

                total_file_write_count = 2

                success_file_write_count = 2

                last_heart_beat_time = 2017-03-30 16:37:47

                last_source_update = 2017-03-30 16:20:24

                last_sync_update = 2017-03-30 16:20:24

                last_synced_timestamp = 2017-03-30 16:20:15 (-1s delay)

 

Group 2:

group name = gwmdfs2

disk total space = 49072 MB

disk free space = 49020 MB

trunk free space = 0 MB

storage server count = 2

active server count = 2

storage server port = 23000

storage HTTP port = 8888

store path count = 1

subdir count per path = 256

current write server index = 0

current trunk file id = 0

 

        Storage 1:

                id = 192.168.18.3

                ip_addr = 192.168.18.3 (Tracker02)  ACTIVE

                http domain =

                version = 5.09

                join time = 2017-03-29 17:21:37

                up time = 2017-03-30 15:31:14

                total storage = 49072 MB

                free storage = 49020 MB

                upload priority = 10

                store_path_count = 1

                subdir_count_per_path = 256

                storage_port = 23000

                storage_http_port = 8888

                current_write_path = 0

                source storage id =

                if_trunk_server = 0

                connection.alloc_count = 256

                connection.current_count = 1

                connection.max_count = 1

                total_upload_count = 0

                success_upload_count = 0

                total_append_count = 0

                success_append_count = 0

                total_modify_count = 0

                success_modify_count = 0

                total_truncate_count = 0

                success_truncate_count = 0

                total_set_meta_count = 0

                success_set_meta_count = 0

                total_delete_count = 0

                success_delete_count = 0

                total_download_count = 0

                success_download_count = 0

                total_get_meta_count = 0

                success_get_meta_count = 0

                total_create_link_count = 0

                success_create_link_count = 0

                total_delete_link_count = 0

                success_delete_link_count = 0

                total_upload_bytes = 0

                success_upload_bytes = 0

                total_append_bytes = 0

                success_append_bytes = 0

                total_modify_bytes = 0

                success_modify_bytes = 0

                stotal_download_bytes = 0

                success_download_bytes = 0

                total_sync_in_bytes = 0

                success_sync_in_bytes = 0

                total_sync_out_bytes = 0

                success_sync_out_bytes = 0

                total_file_open_count = 0

                success_file_open_count = 0

                total_file_read_count = 0

                success_file_read_count = 0

                total_file_write_count = 0

                success_file_write_count = 0

                last_heart_beat_time = 2017-03-30 16:37:44

                last_source_update = 1970-01-01 08:00:00

                last_sync_update = 1970-01-01 08:00:00

                last_synced_timestamp = 1970-01-01 08:00:00

        Storage 2:

                id = 192.168.18.5

                ip_addr = 192.168.18.5 (Storage02)  ACTIVE

                http domain =

                version = 5.09

                join time = 2017-03-29 17:22:02

                up time = 2017-03-30 15:34:01

                total storage = 49072 MB

                free storage = 49020 MB

                upload priority = 10

                store_path_count = 1

                subdir_count_per_path = 256

                storage_port = 23000

                storage_http_port = 8888

                current_write_path = 0

                source storage id = 192.168.18.3

                if_trunk_server = 0

                connection.alloc_count = 256

                connection.current_count = 1

                connection.max_count = 1

                total_upload_count = 0

                success_upload_count = 0

                total_append_count = 0

                success_append_count = 0

                total_modify_count = 0

                success_modify_count = 0

                total_truncate_count = 0

                success_truncate_count = 0

                total_set_meta_count = 0

                success_set_meta_count = 0

                total_delete_count = 0

                success_delete_count = 0

                total_download_count = 0

                success_download_count = 0

                total_get_meta_count = 0

                success_get_meta_count = 0

                total_create_link_count = 0

                success_create_link_count = 0

                total_delete_link_count = 0

                success_delete_link_count = 0

                total_upload_bytes = 0

                success_upload_bytes = 0

                total_append_bytes = 0

                success_append_bytes = 0

                total_modify_bytes = 0

                success_modify_bytes = 0

                stotal_download_bytes = 0

                success_download_bytes = 0

                total_sync_in_bytes = 0

                success_sync_in_bytes = 0

                total_sync_out_bytes = 0

                success_sync_out_bytes = 0

                total_file_open_count = 0

                success_file_open_count = 0

                total_file_read_count = 0

                success_file_read_count = 0

                total_file_write_count = 0

                success_file_write_count = 0

                last_heart_beat_time = 2017-03-30 16:38:02

                last_source_update = 1970-01-01 08:00:00

                last_sync_update = 1970-01-01 08:00:00

                last_synced_timestamp = 1970-01-01 08:00:00