FastDFS文件系统迁移和数据恢复

2021-07-07 10:19:07 浏览数 (1)

迁移步骤

打包旧服务器文件的所有文件

定位到旧服务器的tracker和Storage目录,将整个文件夹打包

代码语言:javascript复制
tar -zcf fdfs-storage-data.tar.gz /fastdfs/storage/data/
tar -zcf fdfs-tracker-data.tar.gz /fastdfs/tracker/data/

将打包后的文件拷贝到新的服务器上

替换文件和修改信息

停止新服务器的tracker服务和Storage服务

删除新服务器的tracker数据,Storage数据,使用旧服务器替换

代码语言:javascript复制
rm -rf /data/fdfs/stroage/*
rm -rf /data/fdfs/tracker/*
tar xf fdfs-tracker-data.tar.gz 
tar xf fdfs-storage-data.tar.gz 
mv fastdfs/tracker/* /data/fdfs/tracker/
mv fastdfs/storage/* /data/fdfs/stroage/

修改FastDFS部分文件信息

1 . 修改tracker的data文件

代码语言:javascript复制
# 修改tracker的data文件
vim /data/fdfs/tracker/data/storage_groups_new.dat 
vim /data/fdfs/tracker/data/storage_servers_new.dat 
vim /data/fdfs/tracker/data/storage_sync_timestamp.dat 
# 将三个文件旧IP设置为新IP

2 . 修改Storage的data文件

代码语言:javascript复制
fastdfs_storage/data/sync/${ip_addr}_${port}.mark  没有此类文件可不用修改
mv 192.168.0.107_23000.mark  192.168.0.113_23000.mark

修改上述文件将旧IP提换为新fastDFS文件服务器IP

重启文件服务

重启tracker服务和Storage服务即可

代码语言:javascript复制
service fdfs_trackerd restart
service fdfs_storaged restart

如果使用了自定义server ID特性,那么比较容易,直接将tracker上的IP和ID映射文件storage_ids.conf修改好,然后将storage的data文件一一对应拷贝过去即可。(血泪史!,后续安装的时候最好开启此项特性!) 开启方法:tracker.conf文件中多修改以下三个参数

代码语言:javascript复制
use_storage_id = true
storage_ids_filename = stirafe_ids.conf
id_type_in_filename = id

小结

同IP数据迁移

  1. 首先关闭fdfs_storage和fdfs_tracker服务。
  2. 拷贝fdfs_storage目录中的所有数据到新目录。
  3. 修改storage配置文件中的store_path和base_path到新位置。
  4. 修改mod_fastdfs.conf配置文件中的store_path和base_path到新位置。
  5. 根据情况,选择是否修改client配置文件。
  6. 修改nginx配置文件中的root目录。
  7. 重启fdfs_tracker和fdfs_storage服务

不同IP数据迁移

不同IP之间迁移采用FastDFS的扩容机制。

  1. 在新服务器安装FastDFS。
  2. 将新FastDFS的storage服务实例关联到以前的tracker服务。
  3. 拷贝以前的storage服务配置为新服务实例的配置文件。
  4. 启动storage服务。
  5. FastDFS会自动同步以前服务器上的数据。
  6. 停止storage服务,将storage配置文件中的tracker地址修改为新的tracer 地址。
  7. 启动新的tracker服务和storage服务。

数据恢复

数据恢复是指旧的FastDFS服务已经不能运行,需要将已有的FastDFS数据恢复到新的FastDFS服务中。

如果FastDFS服务使用了V4的ServerID特性,修改storage_ids.conf文件,调整对应关系即可。

如果采用IP地址进行标识,则需要修改tracker 和storage下data目录中的数据文件中的ip地址。

tracker server 需要修改 :

代码语言:javascript复制
tracker/data/storage_groups_new.dat
tracker/data/storage_servers_new.dat
tracker/data/storage_sync_timestamp.dat

storage server 需要修改:

代码语言:javascript复制
storage/data/.data_init_flag
storage/data/sync/${ip_addr}_${port}.mark

0 人点赞