fastdfs 安装和使用
fastdfs 全套依赖阿里云盘地址: 「fastdfsv5.08安装全套依赖」https://www.aliyundrive.com/s/hDpZdKVFBuk 点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。
一、 fastdfs tracker ,storrage 安装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | <br> 1 安装gcc yum install -y gcc gcc-c++ 2 安装libevent yum -y install libevent 3 安装其他依赖 yum -y install zlib zlib-devel pcre pcre-devel gcc gcc-c++ openssl openssl-devel libevent libevent-devel perl unzip net-tools wget 3 安装 libfastcommon 备注:libfastcommon有很多版本,实测github的 libfastcommonmaster 可以用 下载地址:https: //codeload.github.com/xintyan/libfastcommon-master/zip/refs/heads/master 解压对应的zip包: unzip libfastcommon-master-master.zip 进入目录: cd libfastcommon-master-master 然后修改 make.sh 数据权限:chmod 777 make.sh 编译 ./make.sh 安装 ./make.sh install 4 安装 fastdfs 下载地址:https: //udomain.dl.sourceforge.net/project/fastdfs/FastDFS%20Server%20Source%20Code/FastDFS%20Server%20with%20PHP%20Extension%20Source%20Code%20V5.08/FastDFS_v5.08.tar.gz 解压缩: tar -zxvf FastDFS_v5. 08 .tar.gz 进入解压完成的目录:cd FastDFS/ 编译 ./make.sh 安装 ./make.sh install 如果安装成功,/etc/init.d/目录下会有两个f服务启动文件:ls /etc/init.d/ | grep fdfs fdfs_storaged fdfs_trackerd 在/etc/fdfs/ 下面有默认配置文件三个配置文件的例子,我们去掉sample后缀后修改对应参数就能启动了。 client.conf.sample storage.conf.sample tracker.conf.sample 5 启动 tracker 复制配置文件: cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf 修改配置文件:vi /etc/fdfs/tracker.conf base_path:监听狗存储数据日志的路径,也可以不改,建议修改 fdfs 默认tracker 和 strorger 存储地址一样 bind_addr:允许范围的地址,默认都允许 port:端口默认 22122 (开发测试机才建议这么干)可能需要关闭防火墙:systemctl stop firewalld ,觉得每次关闭麻烦的直接禁用防火墙 开机启动 systemctl disable firewalld 启动 tracker 服务:systemctl start fdfs_trackerd 查看 tracker 服务状态: systemctl status fdfs_trackerd 有需要可以设置成开机启动:chkconfig fdfs_trackerd on 如果想关闭: chkconfig fdfs_trackerd off 6 启动strorage 复制配置文件:cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf 编辑配置文件: base_path:storage存储数据日志的路径 store_path0:这个是存上传文件的路劲 tracker_server:tracker的地址端口 如果修改了新的文件目录需要手动新建: mkdir -p /你指定的路径 启动 tracker 服务:systemctl start fdfs_storaged 检查服务是否启动成功:ps -ef |grep fdfs root 1493 1 0 06 : 33 ? 00 : 00 : 04 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf root 1529 1 0 06 : 35 ? 00 : 00 : 06 /usr/bin/fdfs_storaged /etc/fdfs/storage.conf<br><br><br><br><br><br><br> |
二、 linux 客户端使用
安装fdfs以后,在 /etc/fdfs/ 下有三个例子配置文件,其中一个是客户端的配置文件
1 2 3 4 5 6 7 8 9 | -rw-r--r--. 1 root root 1459 Mar 17 06:20 client.conf -rw-r--r--. 1 root root 1461 Mar 17 03:30 client.conf.sample 这个就是client配置文件的例子 -rw-r--r--. 1 root root 858 Mar 17 05:51 http.conf -rw-r--r--. 1 root root 31172 Mar 17 05:51 mime.types -rw-r--r--. 1 root root 3690 Mar 17 05:50 mod_fastdfs.conf -rw-r--r--. 1 root root 7932 Mar 17 04:27 storage.conf -rw-r--r--. 1 root root 7927 Mar 17 03:30 storage.conf.sample -rw-r--r--. 1 root root 7201 Mar 17 03:35 tracker.conf -rw-r--r--. 1 root root 7200 Mar 17 03:30 tracker.conf.sample |
复制这个配置文件: cp client.conf.sample client.conf
然后修改:tracker_server=10.10.10.11:22122 和 base_path=/home/fastdfs/client(client存放日志的位置) 到指定位置
查看有那么fdfs相关的程序命令: ls -l /usr/bin/ |grep fdfs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | -rwxr-xr-x. 1 root root 315288 Mar 17 03:30 fdfs_appender_test -rwxr-xr-x. 1 root root 315064 Mar 17 03:30 fdfs_appender_test1 -rwxr-xr-x. 1 root root 301920 Mar 17 03:30 fdfs_append_file -rwxr-xr-x. 1 root root 301584 Mar 17 03:30 fdfs_crc32 -rwxr-xr-x. 1 root root 301984 Mar 17 03:30 fdfs_delete_file -rwxr-xr-x. 1 root root 302712 Mar 17 03:30 fdfs_download_file -rwxr-xr-x. 1 root root 302304 Mar 17 03:30 fdfs_file_info -rwxr-xr-x. 1 root root 316112 Mar 17 03:30 fdfs_monitor -rwxr-xr-x. 1 root root 1101712 Mar 17 03:30 fdfs_storaged -rwxr-xr-x. 1 root root 325192 Mar 17 03:30 fdfs_test -rwxr-xr-x. 1 root root 320312 Mar 17 03:30 fdfs_test1 -rwxr-xr-x. 1 root root 447752 Mar 17 03:30 fdfs_trackerd -rwxr-xr-x. 1 root root 302912 Mar 17 03:30 fdfs_upload_appender -rwxr-xr-x. 1 root root 303928 Mar 17 03:30 fdfs_upload_file |
上传文件: fdfs_test 配置文件路径 upload 需要上传的文件路径 ,返回 上传后的文件地址
下载:fdfs_test 配置文件路径 download 组名 文件地址 【新文件名字】 (组名就是上传文件返回的第一段)
删除: fdfs_test 配置文件路径 delete 组名 文件地址
三、 Java api 的使用
创建 fdfs_client.conf 文件:
1 2 3 4 5 6 7 | connect_timeout = 2 network_timeout = 30 charset = UTF-8 http.tracker_http_port = 8080 http.anti_steal_token = no http.secret_key = FastDFS1234567890 tracker_server = 10.10.10.11:22122 |
导入maven 依赖: commons-io 是方便文件处理,不是必须
1 2 3 4 5 6 7 8 9 10 11 12 | < dependency > < groupId >net.oschina.zcx7878</ groupId > < artifactId >fastdfs-client-java</ artifactId > < version >1.27.0.0</ version > </ dependency > <!-- commons-io --> < dependency > < groupId >commons-io</ groupId > < artifactId >commons-io</ artifactId > < version >2.4</ version > </ dependency > |
上传和下载的例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | import java.io.File; import java.io.IOException; import org.apache.commons.io.FileUtils; import org.csource.common.MyException; import org.csource.common.NameValuePair; import org.csource.fastdfs.ClientGlobal; import org.csource.fastdfs.StorageClient1; import org.csource.fastdfs.StorageServer; import org.csource.fastdfs.TrackerClient; import org.csource.fastdfs.TrackerServer; public class Main { public static void main(String[] args) throws IOException, MyException { String conf_filename = new Main().getClass().getClassLoader().getResource( "fdfs_client.conf" ).getPath().replaceAll( "%20" , " " ); ClientGlobal.init(conf_filename); //建立连接 TrackerClient tracker = new TrackerClient(); TrackerServer trackerServer = tracker.getConnection(); StorageServer storageServer = tracker.getStoreStorage(trackerServer); StorageClient1 client = new StorageClient1(trackerServer, storageServer); byte [] fileData = FileUtils.readFileToByteArray( new File( "C:\\Users\\ZHANGYUKUN\\Desktop\\QQ截图20220317164211.png" )); //上传文件 //设置元信息 NameValuePair[] metaList = new NameValuePair[ 3 ]; metaList[ 0 ] = new NameValuePair( "fileName" , "" ); metaList[ 1 ] = new NameValuePair( "fileExtName" , "" ); metaList[ 2 ] = new NameValuePair( "fileLength" , String.valueOf( fileData.length )); String fileId = client.upload_file1(fileData, "png" , metaList); System.out.println( fileId ); //下载文件 byte [] file = client.download_file1(fileId); FileUtils.writeByteArrayToFile( new File( "C:\\\\Users\\\\ZHANGYUKUN\\\\Desktop\\\\2.png" ), file); } } |
四、 fastdfs nginx 直联
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | 7 nginx 直连 fastDFS 设置 1 . 解压fastdfs nginx 插件: fastdfs-nginx-module_v1. 16 .tar.gz 2 . 修改配置文件把config里面所有的/usr/local替换成/usr(我也不知道为什么这样搞) cd fastdfs-nginx-module/src vi config 3 . 安装Nginx的依赖库: yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel 4 . 下载nginx解压,并且引用fastdfs插件,然后编译安装 下载地址: http: //nginx.org/download/nginx-1.20.2.tar.gz 解压:tar -zxvf nginx- 1.20 . 2 .tar.gz 进入解压的nginx目录:cd nginx- 1.20 . 2 设置nginx配置文件包含fastdfs 插件:./configure --prefix=/opt/nginx --sbin-path=/usr/bin/nginx --add-module=你的插件所以路径/fastdfs-nginx-module/src 编译安装nginx:make && make install 备注:安装的nginx 的默认位置是 /opt/nginx ,这里面与 配置和日志文件,如果 nginx 启动课访问不到 log 下面的日志里面有范围异常信息 修改nginx配置文件:vi /opt/nginx/conf/nginx.conf 修改图中 server { listen 80 ; server_name image.smarthome.com; #指定格式的路径,交给FastDFS模块处理 location ~/group([ 0 - 9 ])/ { ngx_fastdfs_module; } location / { root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } fastdfs nginx插件 默认使用的配置文件路径是/etc/fdfs/mod_fastdfs.conf,我们把插件config目录下得插件配置文件复制过去(插件解压后根目录INSTALL文件里面说的) 5 .复制插件配置文件到: cp mod_fastdfs.conf /etc/fdfs/ 6 . 编辑插件配置文件指向tracker: vi /etc/fdfs/mod_fastdfs.conf tracker_server=tracker_serverIP:端口 url_have_group_name= true store_path0=文件存储位置 5 ,进入Fast DFS的conf目录,复制 FastDFS 的部分配置文件到/etc/fdfs 目录: cd FastDFS/conf/ cp http.conf mime.types /etc/fdfs/ 8 .启动nginx :nginx 9 .浏览器访问:ip/group1/M00/ 00 / 00 /CgoKCmIxpXOAN46wAAAAOtIRWms521.txt 就可以看到对应文件了 |
五、fdfs 原理
六 fastdfs 集群搭建
1 单个个tracker 多个 storage
我们只要修改多个 storage 里面的group_name=不同的组名,然后连接同一个tracker,这样就可以了。(默认是按照磁盘容量切换 storage ,可以在 tracker 配置文件里面指定负载均衡策略)。
group_name=group2
2 多个tracker,多个storage
1 保持storage 有不同的组名。
group_name=group2
2 分别吧他们都注册到 tracker 上。
tracker_server=192.168.1.200:22122
tracker_server=192.168.1.201:22122
3 是可以使用 fdfs_monitor /etc/fdfs/storage.conf 查看连接情况
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 | [2022-03-18 13:00:52] DEBUG - base_path=/home/fdfs/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.1.201:22122 group count: 2 Group 1: group name = group1 disk total space = 48096 MB disk free space = 48021 MB trunk free space = 0 MB storage server count = 1 active server count = 1 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.1.200 ip_addr = 192.168.1.200 (192.168.1.200) ACTIVE http domain = version = 5.08 join time = 2022-03-18 10:49:47 up time = 2022-03-18 10:56:13 total storage = 48096 MB free storage = 48021 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 = 0 connection.max_count = 1 total_upload_count = 9 success_upload_count = 9 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 = 9 success_set_meta_count = 9 total_delete_count = 0 success_delete_count = 0 total_download_count = 215 success_download_count = 215 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 = 7674912 success_upload_bytes = 7674912 total_append_bytes = 0 success_append_bytes = 0 total_modify_bytes = 0 success_modify_bytes = 0 stotal_download_bytes = 228356660 success_download_bytes = 228356660 total_sync_in_bytes = 0 success_sync_in_bytes = 0 total_sync_out_bytes = 0 success_sync_out_bytes = 0 total_file_open_count = 224 success_file_open_count = 224 total_file_read_count = 1075 success_file_read_count = 1075 total_file_write_count = 37 success_file_write_count = 37 last_heart_beat_time = 2022-03-18 13:00:50 last_source_update = 2022-03-18 12:38:17 last_sync_update = 1969-12-31 19:00:00 last_synced_timestamp = 1969-12-31 19:00:00 Group 2: group name = group2 disk total space = 48096 MB disk free space = 48023 MB trunk free space = 0 MB storage server count = 1 active server count = 1 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.1.201 ip_addr = 192.168.1.201 (192.168.1.201) ACTIVE http domain = version = 5.08 join time = 2022-03-18 10:52:13 up time = 2022-03-18 10:58:11 total storage = 48096 MB free storage = 48023 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 = 0 connection.max_count = 1 total_upload_count = 6 success_upload_count = 6 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 = 6 success_set_meta_count = 6 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 = 5430642 success_upload_bytes = 5430642 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 = 6 success_file_open_count = 6 total_file_read_count = 0 success_file_read_count = 0 total_file_write_count = 26 success_file_write_count = 26 last_heart_beat_time = 2022-03-18 13:00:50 last_source_update = 2022-03-18 12:39:02 last_sync_update = 1969-12-31 19:00:00 last_synced_timestamp = 1969-12-31 19:00:00 |
3 tracker相互是独立的,没有通讯,他们分别保持着storage的信息(地址,状态,等信息),然后通过groupName 来确定数据放在那个storage。如果storageName 不同,那么他们负载均衡的保存数据,如果groupName相同他们就是互为备份节点。
在storage 内部可以指定多个 store 路径(比如storage主机上有2 个硬盘,我们可以指定 store1=路径a ,store2=路径b ),实测效果是多个store轮流存储文件。有些文档写的是多个store之间是互为备份,这是错的。
store_path_count=n
store_path0=/home/fdfs/storage/store1
store_path1=/home/fdfs/storage/store2
.
.
.
store_path(n-1)=/home/fdfs/storage/store(n)
4 集群下得nginx 级联
编辑插件配置文件:vi /etc/fdfs/mod_fastdfs.conf
修改:store_path0=本地storage得存储地址
url_have_group_name = true
group_name=本地storage组名
tracker_server=192.168.1.200:22122
tracker_server=192.168.1.201:22122(如果有多个tracker得话写多行)
这样就可以在任意storage主机上直连任意一个组的文件了( ngxin fdfs插件会通过组名给我们找到后端非法到对应住的 storage )。
如果我们设置两个storage的 groupName=group2的stotrage,那么他们会互为备份,如果一个新的同名节点加入集群(或者暂时离线的节点后面又加入了进来),会复制 数据。
一个文件存储到group2以后两个storage都会有相同的数据
我们使用 fdfs_moniter /etc/fdfs/storage.conf 可以看到 group2 有2 个storage节点
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 | [root@anonymous ~]# fdfs_monitor /etc/fdfs/storage.conf [2022-03-20 05:47:38] DEBUG - base_path=/home/fdfs/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.1.201:22122 group count: 2 Group 1: group name = group1 disk total space = 96192 MB disk free space = 95968 MB trunk free space = 0 MB storage server count = 1 active server count = 1 storage server port = 23000 storage HTTP port = 8888 store path count = 2 subdir count per path = 256 current write server index = 0 current trunk file id = 0 Storage 1: 组1 的 storage(虽然这个 storage 有两个 store,但是这里不会表现出来 ) id = 192.168.1.200 ip_addr = 192.168.1.200 (192.168.1.200) ACTIVE http domain = version = 5.08 join time = 2022-03-18 10:49:47 up time = 2022-03-20 05:28:46 total storage = 96192 MB free storage = 95968 MB upload priority = 10 store_path_count = 2 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 = 0 connection.max_count = 1 total_upload_count = 24 success_upload_count = 24 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 = 24 success_set_meta_count = 24 total_delete_count = 0 success_delete_count = 0 total_download_count = 215 success_download_count = 215 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 = 9475242 success_upload_bytes = 9475242 total_append_bytes = 0 success_append_bytes = 0 total_modify_bytes = 0 success_modify_bytes = 0 stotal_download_bytes = 228356660 success_download_bytes = 228356660 total_sync_in_bytes = 0 success_sync_in_bytes = 0 total_sync_out_bytes = 0 success_sync_out_bytes = 0 total_file_open_count = 239 success_file_open_count = 239 total_file_read_count = 1075 success_file_read_count = 1075 total_file_write_count = 52 success_file_write_count = 52 last_heart_beat_time = 2022-03-20 05:47:17 last_source_update = 2022-03-20 05:38:28 last_sync_update = 1969-12-31 19:00:00 last_synced_timestamp = 1969-12-31 19:00:00 Group 2: group name = group2 disk total space = 48096 MB disk free space = 48023 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: 组2 的storage1 id = 192.168.1.201 ip_addr = 192.168.1.201 (192.168.1.201) ACTIVE http domain = version = 5.08 join time = 2022-03-18 10:52:13 up time = 2022-03-20 05:28:51 total storage = 48096 MB free storage = 48023 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 = 11 success_upload_count = 11 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 = 11 success_set_meta_count = 11 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 = 6030752 success_upload_bytes = 6030752 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 = 1184009 success_sync_in_bytes = 120065 total_sync_out_bytes = 0 success_sync_out_bytes = 0 total_file_open_count = 13 success_file_open_count = 13 total_file_read_count = 0 success_file_read_count = 0 total_file_write_count = 33 success_file_write_count = 33 last_heart_beat_time = 2022-03-20 05:47:23 last_source_update = 2022-03-20 05:37:58 last_sync_update = 2022-03-20 05:38:56 last_synced_timestamp = 2022-03-20 05:38:46 (0s delay) Storage 2: 组2的storage2 id = 192.168.1.202 ip_addr = 192.168.1.202 (192.168.1.202) ACTIVE http domain = version = 5.08 join time = 2022-03-18 10:52:13 up time = 2022-03-20 05:32:36 total storage = 48096 MB free storage = 48023 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 = 11 success_upload_count = 11 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 = 11 success_set_meta_count = 11 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 = 6030752 success_upload_bytes = 6030752 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 = 1184009 success_sync_in_bytes = 120065 total_sync_out_bytes = 0 success_sync_out_bytes = 0 total_file_open_count = 13 success_file_open_count = 13 total_file_read_count = 0 success_file_read_count = 0 total_file_write_count = 33 success_file_write_count = 33 last_heart_beat_time = 2022-03-20 05:47:36 last_source_update = 2022-03-20 05:38:46 last_sync_update = 2022-03-20 05:38:01 last_synced_timestamp = 2022-03-20 05:37:58 (0s delay) [root@anonymous ~]# |
能耍的时候就一定要耍,不能耍的时候一定要学。
--天道酬勤,贵在坚持posted on 2022-03-13 14:32 zhangyukun 阅读(616) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
2020-03-13 分布式事务框架 TX-LCN 使用
2019-03-13 支付宝 生活号 获取 userId 和 生活号支付