Fastdfs數據遷移方案


1.     方案背景描述

環境遷移,需要遷移舊環境的fastdfs集群的數據到新環境,由於之前數據遷移僅僅是針對mysql和mongodb,對fastdfs數據的遷移了解甚少,本文檔主要是針對fastdfs數據遷移和恢復的幾種方式以及具體操作流程做詳細闡述。

2.     方案實現的目標

實現fastdfs集群數據完整遷移,保證在新環境正常使用,以及保證fastdfs集群高可用。

3.     方案說明

Fstdfs整體架構

        

 

 

 

Fastdfs數據遷移

         數據遷移是指舊的fastdfs可以繼續正常運行的情況下,將舊環境的fastdfs的數據恢復到新的環境fastdfs服務中。

 

同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) 重啟fdfs_tracker和fdfs_storage服務

 

不同IP數據遷移

不同IP之間遷移采用FastDFS的擴容機制。

1) 在新服務器安裝FastDFS。

2) 將新FastDFS的storage服務實例關聯到以前的tracker服務。

3) 拷貝以前的storage服務配置為新服務實例的配置文件。

4) 啟動storage服務。

FastDFS會自動同步以前服務器上的數據

5) 停止storage服務,將storage配置文件中的tracker地址修改為新的tracer 地址,同時修改storage 中/data/fast_data/data/.data_init_flag文件,sync_src_server=空即可。

6) 啟動新的tracker服務和storage服務。

 

Fastdfs數據恢復

 

數據恢復是指舊的FastDFS服務已經不能運行,需要將已有的FastDFS數據恢復到新的FastDFS服務中。

 

1) 如果FastDFS服務使用了V4的ServerID特性,修改storage_ids.conf文件,調整對應關系即可。

 

2) 如果采用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_flag

storage/data/sync/${ip_addr}_${port}.mark

 

4.     數據同步以及驗證

本次遷移考慮到我們舊環境依舊可以使用並且是不同網段之間的fastdfs集群,所以采用的是FastDFS的擴容機制來遷移fastdfs的數據。

查看數據同步的進度:

           在舊環境storage服務base_path 目錄下有一個 data/sync目錄,里面的文件如下:

              10.10.101.135_23000.mark  這個是 new_storage 的同步數據的情況

               binlog.000  舊tracker的binlog

               binlog.index  記錄着當前正在使用哪個 binlog 文件

          查看 10.10.101.135_23000.mark 的文件內容就可看到 數據同步的情況,從 scan_row_count 和 sync_row_count 的數量對比可以知道同步的進度,當兩者一致的時候同步完成。

                  

              binlog_index=0

              binlog_offset=1689076    binlog.xxx的偏移量,可以從這個偏移量獲取下一行記錄

              need_sync_old=1   本storage是否是對側storage(110.119.19.21)的源結點,同時是否需要從起點同步所有的記錄

              sync_old_done=1              是否同步完成過

              until_timestamp=1614235090        上次同步時間結點

              scan_row_count=29122                binlog總記錄數

              sync_row_count=29122                  同步的binlog行數

5.     fastdfs文件上傳下載以及基礎操作命令

文件上傳測試

1)  修改Tracker服務器客戶端配置文件

cp   /etc/fdfs/client.conf.sample   /etc/fdfs/client.conf

vim   /etc/fdfs/client.conf

修改以下配置,其它保持默認

base_path=/data/fastdfs/tracker

tracker_server= 10.10.8.85:22122  # tracker服務器IP和端口

tracker_server= 10.10.8.86:22122  #tracker服務器IP和端口

 

2) 執行文件上傳命令

#/root/test.png 是需要上傳文件路徑

/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /root/test.png

返回文件ID號:group1/M00/00/00/wKgAfFzMX_2AB9V9AADa-k_GxyQ840.jpg

(能返回以上文件ID,說明文件已經上傳成功)

 

 

基礎操作命令:

查看集群信息:

/usr/bin/fdfs_monitor   /usr/local/storage.conf    Storage節點都啟動之后,可以在任一 Storage 節點上使用如下命令查看集群信息。

 

 

上傳命令:

fdfs_upload_file  /etc/fdfs/client.conf  [文件名稱](需全路徑)

/usr/local/bin/fdfs_upload_file   [文件名稱](需全路徑)

 

下載命令:

fdfs_download_file  /etc/fdfs/client.conf   [filename]

filename:為保存到fdfs的文件;上傳的時候返回的路徑是什么,這邊filename就寫什么;默認下載到當前執行命令的目錄

 

刪除命令:

fdfs_delete_file  /etc/fdfs/client.conf  [filename]

 

6.    FastDFS的Tracker及Storage節點添加及刪除

1、增加Storage節點(通過配置,自動加入)

1)安裝Storage並配置mod_fastdfs.conf及storage.conf,設置fdfs_storaged及nginx自啟動

2)啟動新加的storage節點(會自動同步相同group的內容)

3)執行fdfs_monitor /etc/fdfs/client.conf查看集群同步情況(會看到新增的storage節點)

 

2、刪除Storage節點及刪除后重新加入(通過fdfs_monitor刪除)

1)停止某個storage節點  killall fdfs_storaged

2)fdfs_monitor /etc/fdfs/client.conf delete group1 10.2.x.x

3)查看集群情況 fdfs_monitor /etc/fdfs/client.conf 可以到對應的storage節點狀態為DELETED

4)重新加入

<1>啟動被刪除的storage節點,查看集群狀態,一開始會是 OFFILINE狀態

<2>過一會兒再查看集群狀態,顯示為ACTIVE狀態

 

3、增加Tracker節點

1)在所有storage節點的storage.conf, mod_fastdfs.conf 中配置多條tracker_server記錄

tracker_server=10.2.x.1:22122
tracker_server=10.2.x.2:22122

2)在client.conf中也配置多條tracker_server記錄

執行 fdfs_monitor /etc/fdfs/client.conf 查看集群情況,可以看到tracker_serve_count變為2

另外可以指定tracker,進行集群監控  fdfs_monitor /etc/fdfs/client.conf  -h 10.2.x.1  list

 

4、刪除Tracker節點

去掉配置文件中不需要的tracker_server的記錄,停止對應服務器上的tracker進程

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM