MooseFs-分布式文件系統系列(四)之簡單聊聊MFS的日常維護


回顧

文件或目錄的額外屬性(noower,noattracache和noentrycache),可以通過MFS提供的命令(mfsgeteattr,mfsseteattr,mfsdeleattr等)檢查、設置和刪除。其行為類似於mfsgettoal/mfssetgoal或者mfsgettrashtime/mfssettrashtime。

維護MFS

維護MFS,最重要的是維護元數據服務器,而元數據服務器最重要的目錄就是為/usr/local/mfs/var/mfs(源碼安裝就在這里)。MFS數據的存儲、修改和更新操作變化都會記錄在這個目錄的某個文件中、因此要保證這個目錄的數據安全,就能保證整個MFS文件系統的安全性和可靠性。
/usr/local/mfs/var/mfs目錄下的數據由兩部分組成:一部分是元數據服務器的改變日志文件,文件名是changelog.*.mfs:另一個部分就是元數據文件metadata.mfs,運行mfsmaster時該文件就會被命名為metadata.mfs.back。只要保證了這兩部書的數據安全,即使管理服務器操作破壞,也可以通過備份的元數據文件重新部署一套。

啟動MFS集群

最安全的啟動MFS集群(避免任何讀寫錯誤數據或者類似的問題)步驟如下:

  1. 啟動mfsmaster進程。
  2. 啟動所有的mfschunkserver進程
  3. 啟動mfsmetalogger進程(如果有mfsmetalogger服務器的話)

當所有的數據存儲服務器連接到MFS管理服務器后,任何數目的客戶端都可以利用mfsmount去連接共享出來的文件系統(可以通過mfscgiserver提供的web界面查看或者mfsmaster日志)

停止MFS集群。

安全停止MFS集群,按照如下步驟進行操作:

  1. 在所有的客戶端卸載MFS文件系統(利用umount命令即可卸載)。
  2. 利用mfschunkserver stop停止數據存儲服務器進程。
  3. 利用mfsmetalogger stop停止元數據日志服務器進程。
  4. 利用mfsmaster stop停止管理服務器進程。

MFS存儲服務器的維護

假如每個文件的goal(副本)都不小於2,並且沒有under-goal文件(這些可以通過“mfsgetgoal -r”和mfsdirinfo命令來查看),那么一個數據存儲服務器在任何時候都可以停止或重新啟動。以后每當需要停止或者重新啟動另一個數據存儲服務器的時候,需要確定之前的數據存儲服務器被鏈接,而且沒有under-goal chunks。

MFS元數據備份

  1. 主要元數據文件metadata.mfs,在MFS的管理服務器master運行時會被命名為metadata.mfs.back。
  2. 元數據改變日志changelog.*.mfs,存儲過去N小時內的文件改變(N數值是由BACK_LOGS參數設置的。參數設置在mfschunkserver.cfg配置文件中進行)

主要的元數據文件需要定期備份,備份的頻率取決於多少個小時改變日志的存儲。元數據改變日志應該時時的自動復制。從MFS1.6.5版本后,這兩項任務都是由元數據日志服務器進程完成的。

MFS管理服務器的恢復

一旦服務器奔潰,需要最后一個元數據改變日志changelog和主要的元數據文件metadata.mfs。這個操作可以通過mfsmaster(在1.7版本以前用mfsmetarestore)命令來完成。命令如下所示:

[root@localhost mfs]# mfsmaster -a   #執行這個命令的時候,確保mfsmaster進程處於停止狀態。
working directory: /usr/local/mfs/var/mfs   # 源碼安裝指定了/usr/local/mfs,那么默認是在這里。

關於恢復的時候指定元數據存儲目錄,我這也沒發現用哪個命令去指定,在1.7版本以前的是mfsmetarestore -d來指定的。

從備份恢復MFS管理服務器。

為了從備份中恢復一個管理服務器,需要以下步驟進行:

  1. 安裝一個新管理服務器。
  2. 利用通配的配置來配置新管理服務器(利用備份找回mfsmaster.cfg),配置文件需要備份的。
  3. 找回metadata.mfs.back文件,從備份服務器中找,也可以從元數據日志服務器中找(如果啟動了元數據日志服務),然后把metadata.mfs.back文件放入mfs的數據目錄下,源碼安裝的一般為${prefix}/var/mfs。
  4. 從管理服務器宕機之前任何運行元數據日志服務器上復制最后一個changelog.*.mfs文件,放入管理服務器的數據目錄。
  5. 利用mfsmaster -a來合並元數據日志,自動恢復模式。

通過冗余實現失敗防護的解決方案。

如題所示,其實就是一主一備的模式,當主的宕機后,備用機馬上頂上去。
對於高可用的方案,我們可以采用keepalived或者heartbeat來做高可用。
對於元數據的一致性,我們還可以通過unison來做主備之間的雙向元數據的同步,確保數據一致。


免責聲明!

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



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