分散式檔案系統MFS、Ceph、GlusterFS、Lustre的比較
MooseFS(MFS) |
Ceph |
GlusterFS |
Lustre |
|
Metadata server |
單個MDS。存在單點故障和瓶頸。 |
多個MDS,不存在單點故障和瓶頸。MDS可以擴充套件,不存在瓶頸。 |
無,不存在單點故障。靠執行在各個節點上的動態演算法來代替MDS,不需同步元資料,無硬碟I/O瓶頸。 |
雙MDS(互相備份)。MDS不可以擴充套件,存在瓶頸。 |
FUSE |
支援 |
支援 |
支援 |
支援 |
訪問介面 |
POSIX |
POSIX |
POSIX |
POSIX/MPI |
檔案分佈/資料分佈 |
檔案被分片,資料塊儲存在不同的儲存伺服器上。 |
檔案被分片,每個資料塊是一個物件。物件儲存在不同的儲存伺服器上。 |
Cluster Translators(GlusterFS叢集儲存的核心)包括AFR、DHT(和Stripe三種類型。 AFR相當於RAID1,每個檔案都被複制到多個儲存節點上。Stripe相當於RAID0,檔案被分片,資料被條帶化到各個儲存節點上。 Translators可以組合,即AFR和stripe可以組成RAID10,實現高效能和高可用。 |
可以把大檔案分片並以類似RAID0的方式分散儲存在多個儲存節點上。 |
冗餘保護/副本 |
多副本 |
多副本 |
映象 |
無 |
資料可靠性 |
由資料的多副本提供可靠性。 |
由資料的多副本提供可靠性。 |
由映象提供可靠性。 |
由儲存節點上的RAID1或RAID5/6提供可靠性。假如儲存節點失效,則資料不可用。 |
備份 |
提供備份工具。支援遠端備份。 |
|||
故障恢復 |
手動恢復 |
當節點失效時,自動遷移資料、重新複製副本。 |
當節點、硬體、磁碟、網路發生故障時,系統會自動處理這些故障,管理員不需介入。 |
無 |
擴充套件性 |
增加儲存伺服器,可以提高容量和檔案操作效能。但是由於不能增加MDS,因此元資料操作效能不能提高,是整個系統的瓶頸。 |
可以增加元資料伺服器和儲存節點。容量可擴充套件。檔案操作效能可擴充套件。元資料操作效能可擴充套件。 |
容量可擴充套件。 |
可增加儲存節點,提高容量可檔案操作效能,但是由於不能增加MDS,因此元資料操作效能不能提高,是整個系統的瓶頸。 |
安裝/部署 |
簡單 |
簡單 |
簡單 |
複雜。而且Lustre嚴重依賴核心,需要重新編譯核心。 |
開發語言 |
C |
C++ |
C |
C |
適合場景 |
大量小檔案讀寫 |
小檔案 |
對於小檔案,無元資料服務設計解決了元資料的問題。但GlusterFS並沒有在I/O方面作優化,在儲存伺服器底層檔案系統上仍然是大量小檔案,本地檔案系統元資料訪問是瓶頸,資料分佈和並行性也無法充分發揮作用。因此,GlusterFS的小檔案效能還存在很大優化空間。 |
大檔案讀寫 |
產品級別 |
小型 |
中型 |
中型 |
重型 |
應用 |
國內較多 |
無 |
較多使用者使用 |
HPC領域。 |
優缺點 |
實施簡單,但是存在單點故障。 |
不穩定,目前還在實驗階段,不適合於生產環境。 |
無元資料伺服器,堆疊式架構(基本功能模組可以進行堆疊式組合,實現強大功能)。具有線性橫向擴充套件能力。 由於沒有元資料伺服器,因此增加了客戶端的負載,佔用相當的CPU和記憶體。 但遍歷檔案目錄時,則實現較為複雜和低效,需要搜尋所有的儲存節點。因此不建議使用較深的路徑。 |
很成熟、很龐大。 |