MooseFS的工作機制及優劣分析

一、MooseFS簡介

MooseFS是一個具備冗餘容錯功能的分佈式網絡文件系統,它將數據分別存放在多個物理服務器或單獨磁盤或分區上,確保一份數據有多個備份副本。對於訪問的客戶端或者用戶來說,整個分佈式網絡文件系統集羣看起來就像一個資源一樣。從其對文件操作的情況看,MooseFS就相當於一個類UNIX文件系統。

二、MooseFS架構中的四種角色

  • 管理服務器(Master Server):也稱爲元數據服務器,負責管理各個數據存儲服務器,調度文件讀寫,回收文件空間以及恢復多節點拷貝。目前MFS只支持一個元數據服務器master,這是一個單點故障,需要一個性能穩定的服務器來充當。
  • 元數據日誌服務器(Metalogger Server):負責備份管理服務器的變化日誌文件,文件類型爲changelog_ml.*.mfs,以便於在管理服務器出問題時接替其進行工作。元數據日誌服務器是mfs 1.6以後版本新增的服務,可以把元數據日誌保留在管理服務器中,也可以單獨存儲在一臺服務器中。爲保證數據的安全性和可靠性,建議單獨用一臺服務器來存放元數據日誌。需要注意的是,元數據日誌守護進程跟管理服務器在同一個服務器上,備份元數據日誌服務器作爲它的客戶端,從管理服務器取得日誌文件進行備份。
  • 數據存儲服務器(Chunk Server):數據存儲服務器是真正存儲用戶數據的服務器,負責連接管理服務器,聽從管理服務器調度,提供存儲空間,併爲客戶提供數據傳輸。在存儲文件時,首先把文件分成塊,然後將這些塊在數據存儲服務器之間互相複製。
  • 客戶端(Client):通過FUSE內核接口掛載遠程管理服務器上所管理的數據存儲服務器,使共享的文件系統和使用本地文件系統的效果看起來是一樣的。

三、MooseFS工作機制

1. 集羣架構圖

在這裏插入圖片描述

2. 讀寫機制

2.1 讀機制

在這裏插入圖片描述

  1. 首先客戶端(Client)訪問主服務器(Master),獲取文件實體的位置等相關信息。
  2. 主服務器(Master)查詢緩存記錄,把文件實體的位置等相關信息發給客戶端(Client)。
  3. 客戶端(Client)根據拿到的信息去訪問對應的存儲實體數據的服務器(Chunk Server)。
  4. 存儲實體數據的服務器(Chunk Server)把對應的數據返回給客戶端(Client)。
2.2 寫機制

在這裏插入圖片描述

  1. 客戶端(Client)訪問主服務器(Master),請求寫入數據。
  2. 主服務器(Master)查詢緩存記錄,如果是新文件,則會聯繫後面的數據服務器(Chunk Server)創建對應的chunk對象準備存放文件。
  3. 數據服務器(Chunk Server)返回創建chunk對象成功的消息給主服務器(Master)。
  4. 主服務器(Master)把文件實體的位置等相關信息發給客戶端(Client)。
  5. 客戶端(Client)訪問對應的數據服務器(Chunk Server)寫數據。
  6. 數據服務器(Chunk Server)之間進行數據同步,互相確認成功。
  7. 數據服務器(Chunk Server)返回成功寫入信息給客戶端(Client)。
  8. 客戶端(Client)回報給主服務器(Master)寫入結束。

四、優劣分析

1. 優點

  1. 由於MFS是基於GPL發佈的,因此完全免費,並且開發和社區都很活躍,資料也非常豐富
  2. 輕量、易部署、易配置、易維護
  3. 通用文件系統,不需要修改上層應用就可以使用
  4. 擴容成本低、支持在線擴容,不影響業務,體系架構可伸縮性極強
  5. 體系架構高可用,所有組件無單點故障
  6. 文件對象高可用,可設置任意的文件冗餘程度(提供比 Raid 10 更高的冗餘級別)
  7. 提供系統負載,將數據讀寫分配到所有的服務器上,加速讀寫性能
  8. 提供諸多高級特性,比如類似Windows的回收站功能、類似JAVA語言的GC(垃圾回收)、快照功能等
  9. MooseFS 是 Google Filesystem 的一個 C 實現
  10. 自帶 Web Gui 的監控接口
  11. 提高隨機讀或寫效率和海量小文件的讀寫效率

2. 缺點

  1. Master Server本身的性能瓶頸。MFS的主備架構情況類似於MySQL的主從複製,從可以擴展,主卻不容易擴展。短期的對策就是按照業務來做切分。
  2. 隨着MFS體系架構中存儲文件的總數上升,Master Server對內存的需求量會不斷增大(MFS把文件系統的結構緩存到 Maset Server 的內存中)。根據官方提供的數據,8g對應2500萬的文件數,2億文件就得64GB內存。短期的對策也是按照業務來做切分。
  3. Master Server的單點解決方案的健壯性。目前官方自帶的是把數據信息從Master Server同步到Metalogger Server上,Master Server一旦出問題Metalogger Server可以恢復升級爲Master Server,但是需要恢復時間。目前,也可以通過第三方的高可用方案(heartbeat+drbd+moosefs)來解決Master Server的單點問題。
  4. Metalogger Server複製元數據的間隔時間較長(可調整)。

五、參考文獻

MooseFS官網 [https://moosefs.com]

MooseFS分佈式文件系統介紹 [https://www.cnblogs.com/hjc4025/p/9956988.html]

分佈式文件系統之MooseFS [https://blog.51cto.com/zouqingyun/1698710]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章