FastDFS檔案系統遷移和資料恢復

youmen發表於2021-07-07

遷移步驟

打包舊伺服器檔案的所有檔案

定位到舊伺服器的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資料遷移

  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 需要修改 :

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

相關文章