fastdfs資料遷移以及fastdfs問題排查記錄

e71hao發表於2021-03-01

這段時間公司要遷移fastdfs ,折騰2天,現在做個記錄:

一、fastdfs 是淘寶架構師編寫。它的架構圖網上很多,搜尋一下就可以。網上能搜尋到的東西我就不在這裡記錄了。


二、這裡記錄下目前我在網上沒有搜尋到的內容:

  1. fastdfs 遷移具體步驟我從網上複製  https://www.cnblogs.com/hanpengblog/p/fastdfs.html  ,理解的一點就是:當新增加一個storage連線到tracker,它會自動的複製檔案到strorage,就是利用這個特性來進行遷移的。每個storage是對等的,當新增加一個storage的時候,fastdfs會自動的複製同步storage.比如下面例子192.167.1.17:23000這個節點新增到tracker節點時候,它會自動同步 192.167.1.13:23000節點資料同步到17節點,從而達到遷移資料的目的。保證2個fdfs之間的是可以通訊的。具體遷移步驟細節如下:

前提:
新環境的fastdfs的tracker和storage服務都已經啟動
老環境:
tracker 192.168.1.13:22122
storage 192.168.1.13:23000

新環境:
tracker 192.168.1.17:22122
storage 192.168.1.17:23000

遷移順序:
1、停止新環境(192.168.1.17)的storage服務
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf stop
2、修改/etc/fdfs/storage.conf 將 tracker_server 改為 老的 tracker_server
tracker_server=192.168.1.17:22122 改為 192.168.1.13:22122
3、啟動新環境的storage服務
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf

檢視狀態
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf


storage狀態列表:

# FDFS_STORAGE_STATUS:INIT :初始化,尚未得到同步已有資料的源伺服器

# FDFS_STORAGE_STATUS:WAIT_SYNC :等待同步,已得到同步已有資料的源伺服器

# FDFS_STORAGE_STATUS:SYNCING :同步中

# FDFS_STORAGE_STATUS:DELETED :已刪除,該伺服器從本組中摘除

# FDFS_STORAGE_STATUS:OFFLINE :離線

# FDFS_STORAGE_STATUS:ONLINE :線上,尚不能提供服務

# FDFS_STORAGE_STATUS:ACTIVE :線上,可以提供服務


4、停止新環境的storage服務
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf stop
5、調整storage的檔案列表(/home/fastdfs/storage)
storage server需要調整的檔案列表:
data/.data_init_flag(將sync_src_server配置項留空,其它配置項不變)
data/sync/{ip_addr}_{port}.mark:此類檔案,需要將檔名中的IP地址調整過來

cd /home/fastdfs/storage/data/sync
mv 192.168.1.13_23000.mark 192.168.1.17_23000.mark

6、修改新環境,將新環境的storage的tracker改為新的tracker /etc/fdfs/storage.conf 將
tracker_server=192.168.1.13:22122 改為 192.168.1.17:22122
7、啟動新環境的storage服務
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf


三、理解storage,traceker 節點。FastDFS Tracker及Storage節點是可以新增的,也是可以刪除的。tracker節點之間是leader和follow關係,storage節點之間是對等關係。

參考網友的如下文章: https://www.cnblogs.com/sunmmi/articles/7209308.html

  

1.fastdfs七種狀態

1
2
3
4
5
6
7
# FDFS_STORAGE_STATUS:INIT      :初始化,尚未得到同步已有資料的源伺服器
# FDFS_STORAGE_STATUS:WAIT_SYNC :等待同步,已得到同步已有資料的源伺服器
# FDFS_STORAGE_STATUS:SYNCING   :同步中
# FDFS_STORAGE_STATUS:DELETED   :已刪除,該伺服器從本組中摘除
# FDFS_STORAGE_STATUS:OFFLINE   :離線
# FDFS_STORAGE_STATUS:ONLINE    :線上,尚不能提供服務
# FDFS_STORAGE_STATUS:ACTIVE    :線上,可以提供服務

 2.正常狀態必須是ACTIVE

1
2
3
4
5
[root@tracker02 ~] # fdfs_monitor /etc/fdfs/client.conf | grep ACTIVE
         ip_addr = 10.1.8.45  ACTIVE
         ip_addr = 10.1.8.46  ACTIVE
         ip_addr = 10.1.8.54  ACTIVE
         ip_addr = 10.1.8.55  ACTIVE

 

3.增加Storage節點(透過配置,自動加入)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 安裝Storage並配置mod_fastdfs.conf及storage.conf,設定fdfs_storaged及nginx自啟動
vim  /etc/fdfs/storage .conf
tracker_server=10.1.8.43:22122
tracker_server=10.1.8.44:22122
 
vim  /etc/fdfs/mod_fastdfs .conf
tracker_server=10.1.8.43:22122
tracker_server=10.1.8.44:22122
......
[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0= /data/fastdfs/data
 
# 啟動新加的storage節點(會自動同步相同group的內容)
/etc/init .d /fdfs_storage  start
 
# 執行fdfs_monitor /etc/fdfs/client.conf檢視叢集同步情況(會看到新增的storage節點)
fdfs_monitor  /etc/fdfs/client .conf

 4.刪除Storage節點及刪除後重新加入(透過fdfs_monitor刪除)

1
2
3
4
5
6
7
# 停止某個storage節點
/etc/init .d /fdfs_storage  stop
 
fdfs_monitor  /etc/fdfs/client .conf delete group1 10.1.8.x
 
# 檢視叢集情況 fdfs_monitor /etc/fdfs/client.conf 可以到對應的storage節點狀態為DELETED
fdfs_monitor  /etc/fdfs/client .conf

 5.重新加入storage節點

1
2
3
4
5
# 啟動被刪除的storage節點,檢視叢集狀態,一開始會是 OFFILINE狀態
fdfs_monitor  /etc/fdfs/client .conf
 
# 過一會兒再檢視叢集狀態,顯示為ACTIVE狀態
fdfs_monitor  /etc/fdfs/client .conf

 6.增加Tracker節點

1
2
3
4
5
6
7
# 在所有storage節點的storage.conf, mod_fastdfs.conf 中配置多條tracker_server記錄
tracker_server=10.2.x.1:22122
tracker_server=10.2.x.2:22122
 
# 在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

 7.刪除Tracker節點

1
去掉配置檔案中不需要的tracker_server的記錄,停止對應伺服器上的tracker程式

8.storage不同步處理

1
2
3
4
5
6
7
8
9
10
11
# 從叢集中刪除storage
fdfs_monitor  /etc/fdfs/client .conf delete group1 10.1.8.101
 
# 刪除資料資料夾
rm  -rf  /home/storage1/fastdfs/data
 
# 重啟storage
fdfs_storaged  /etc/fdfs/storage .conf
 
# 重新查狀態
fdfs_monitor  /etc/fdfs/client .con

四、同步問題的排查,之間同步遷移遇到很多問題,排查主要靠檢視日誌和使用 fdfs_monitor工具

日誌存放目錄:

錯誤日誌是每個程式都有一個,啟動bin/fdfs_storaged /opt/fastdfs_lifekh-mp/conf/storage_accsett.conf

錯誤日誌在base_path下面會有一個logs資料夾

 /data/fastdfs_lifekh-mp/accsett/logs/storaged.log


同步遷移的時候方便監聽狀態工具: fdfs_monitor ,這個工具非常有用。

fdfs_monitor  /etc/fdfs/client .conf


參考文章: https://www.cnblogs.com/sunmmi/articles/7209308.html

https://www.cnblogs.com/aresxin/p/4952600.html

https://www.cnblogs.com/hanpengblog/p/fastdfs.html

https://blog.csdn.net/markfengfeng/article/details/102528782


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30393770/viewspace-2760380/,如需轉載,請註明出處,否則將追究法律責任。

相關文章