记录一次FastDFS内部文件迁移过程

场景:dockr部署下的一个DFS环境,切换环境将原DFS内的所有文件全部迁移走,老版本的镜像包现不可使用,所以重新搭建并迁移外挂包下的所有文件

一、定位存储路径及备份

​确定容器内存储路径​
根据使用的Docker镜像不同,默认存储路径可能为:

/var/fdfs(常见于morunchang/fastdfs镜像)
/var/local/fdfs(部分自定义镜像映射到宿主机路径如~/fastdfs)
通过docker run命令的-v参数可查看宿主机映射路径,例如:-v /data/fastdfs/storage:/var/fdfs
​备份文件​
使用docker cp命令将容器内文件复制到宿主机本地,或直接备份映射的宿主机目录:

bash
docker cp <容器ID>:/var/fdfs/data /本地备份路径 # 备份数据文件
cp -r /宿主机映射路径/* /备份目录 # 直接复制宿主机映射目录

二、迁移部署与配置调整

​新环境部署FastDFS​
参考Docker部署流程:

拉取镜像(如delron/fastdfs或morunchang/fastdfs)
启动Tracker服务:
bash
docker run -d --name tracker --net=host -v /新存储路径/tracker:/var/fdfs delron/fastdfs tracker
启动Storage服务并关联Tracker:
bash
docker run -d --name storage --net=host -e TRACKER_SERVER=新IP:22122 -v /新存储路径/storage:/var/fdfs delron/fastdfs storage
​配置文件同步​

修改Storage的storage.conf:更新tracker_server为新环境IP,例如:
ini
tracker_server = 新IP:22122
同步client.conf中的Tracker地址,确保客户端指向正确节点。
​数据迁移与恢复​

将备份的data目录复制到新容器的映射路径(如/新存储路径/storage/data)
若涉及IP变更,需修改sync目录下的.mark文件(如将旧IP标记替换为新IP)

三、服务验证与测试

​重启服务​

bash
docker restart tracker storage
systemctl restart docker # 确保Docker服务正常
​功能测试​

​上传测试:进入容器执行上传命令验证存储功能:
bash
docker exec -it storage /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /tmp/test.txt
​访问测试:通过Nginx代理访问文件URL(如http://新IP:8888/group1/M00/…)
​日志检查​
查看Tracker和Storage日志,排查路径或网络问题:

bash
docker logs tracker # 检查调度服务状态
docker logs storage # 查看存储节点同步情况

posted @ 2025-03-02 22:16  行路客  阅读(18)  评论(0)    收藏  举报  来源