FastDFS文件系统迁移和数据恢复
迁移步骤
打包旧服务器文件的所有文件
定位到旧服务器的tracker和Storage目录,将整个文件夹打包
tar -zcf fdfs-storage-data.tar.gz /fastdfs/storage/data/
tar -zcf fdfs-tracker-data.tar.gz /fastdfs/tracker/data/
将打包后的文件拷贝到新的服务器上
替换文件和修改信息
停止新服务器的tracker服务和Storage服务
删除新服务器的tracker数据,Storage数据,使用旧服务器替换
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文件
# 修改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文件
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服务即可
service fdfs_trackerd restart
service fdfs_storaged restart
如果使用了自定义server ID特性,那么比较容易,直接将tracker上的IP和ID映射文件storage_ids.conf修改好,然后将storage的data文件一一对应拷贝过去即可。(血泪史!,后续安装的时候最好开启此项特性!)
开启方法:tracker.conf文件中多修改以下三个参数
use_storage_id = true
storage_ids_filename = stirafe_ids.conf
id_type_in_filename = id
小结
同IP数据迁移
- 首先关闭fdfs_storage和fdfs_tracker服务。
- 拷贝fdfs_storage目录中的所有数据到新目录。
- 修改storage配置文件中的store_path和base_path到新位置。
- 修改mod_fastdfs.conf配置文件中的store_path和base_path到新位置。
- 根据情况,选择是否修改client配置文件。
- 修改nginx配置文件中的root目录。
- 重启fdfs_tracker和fdfs_storage服务
不同IP数据迁移
不同IP之间迁移采用FastDFS的扩容机制。
- 在新服务器安装FastDFS。
- 将新FastDFS的storage服务实例关联到以前的tracker服务。
- 拷贝以前的storage服务配置为新服务实例的配置文件。
- 启动storage服务。
- FastDFS会自动同步以前服务器上的数据。
- 停止storage服务,将storage配置文件中的tracker地址修改为新的tracer 地址。
- 启动新的tracker服务和storage服务。
数据恢复
数据恢复是指旧的FastDFS服务已经不能运行,需要将已有的FastDFS数据恢复到新的FastDFS服务中。
如果FastDFS服务使用了V4的ServerID特性,修改storage_ids.conf文件,调整对应关系即可。
如果采用IP地址进行标识,则需要修改tracker 和storage下data目录中的数据文件中的ip地址。
tracker server 需要修改 :
tracker/data/storage_groups_new.dat
tracker/data/storage_servers_new.dat
tracker/data/storage_sync_timestamp.dat
storage server 需要修改:
storage/data/.data_init_flagstorage/data/sync/${ip_addr}_${port}.mark