Ceph |
MooseFS(MFS) |
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和內存。 但遍歷文件目錄時,則實現較為復雜和低效,需要搜索所有的存儲節點。因此不建議使用較深的路徑。 |
很成熟、很龐大。 |