分布式文件系統的比較,115網盤用了fastdfs


  1. 分布式文件系統

 

 

 

 

 

 

 

 

 

分布式文件系統,作為網盤的基礎,應用底層文件管理。而分布式文件系統之上,用戶文件的權限,用戶目錄管理都是由非分布式文件系統管理。

分布式文件系統需要關心的主要內容:

  • 文件分布/數據分布:文件是否分片,文件存儲按照什么算法來存儲(DHT
  • 冗余保護/副本:是否有綴於,綴於是否可以回復。
  • 數據可靠性:當數據出現問題,是否可以發現,如何回復。
  • 備份:如何提供被被封工作。
  • 故障恢復:出現問題是否可以回復。
  • 擴展性:當容量不夠時,是否可以無限增加容量。
  • 安裝/部署:是否需要修改內核,部署是否方便。
  • 開發語言:是否使用常用開發語言。
  • 適合場景:對不同文件大小有常用的支持。

 

除了一下文件系統,還有HDFS等分布式文件存儲系統,MongoDBGridFs等文件系統。

 

 

 

MooseFS(MFS)

CephSwfit

GlusterFS(類似的有FastDFS

Lustre

Metadata server

單個MDS。存在單點故障和瓶頸。

多個MDS,不存在單點故障和瓶頸。MDS可以擴展,不存在瓶頸。

無,不存在單點故障。靠運行在各個節點上的動態算法來代替MDS,不需同步元數據,無硬盤I/O瓶頸。

MDS(互相備份)MDS不可以擴展,存在瓶頸。

FUSE(用戶態文件訪問)

支持

支持

支持

支持

訪問接口

POSIX

POSIX

POSIX

POSIX/MPI

文件分布/數據分布

文件被分片,數據塊保存在不同的存儲服務器上。

文件被分片,每個數據塊是一個對象。對象保存在不同的存儲服務器上。

Cluster Translators(GlusterFS集群存儲的核心)包括AFRDHT(和Stripe三種類型。

AFR相當於RAID1,每個文件都被復制到多個存儲節點上。Stripe相當於RAID0,文件被分片,數據被條帶化到各個存儲節點上。

Translators可以組合,即AFRstripe可以組成RAID10,實現高性能和高可用。

可以把大文件分片並以類似RAID0的方式分散存儲在多個存儲節點上。

冗余保護/副本

多副本

多副本

鏡像

數據可靠性

由數據的多副本提供可靠性。

由數據的多副本提供可靠性。

由鏡像提供可靠性。

由存儲節點上的RAID1RAID5/6提供可靠性。假如存儲節點失效,則數據不可用。

備份

 

 

 

提供備份工具。支持遠程備份。

故障恢復

手動恢復

當節點失效時,自動遷移數據、重新復制副本。

當節點、硬件、磁盤、網絡發生故障時,系統會自動處理這些故障,管理員不需介入。

擴展性

增加存儲服務器,可以提高容量和文件操作性能。但是由於不能增加MDS,因此元數據操作性能不能提高,是整個系統的瓶頸。

可以增加元數據服務器和存儲節點。容量可擴展。文件操作性能可擴展。元數據操作性能可擴展。

容量可擴展。

可增加存儲節點,提高容量可文件操作性能,但是由於不能增加MDS,因此元數據操作性能不能提高,是整個系統的瓶頸。

安裝/部署

簡單

簡單

簡單

復雜。而且Lustre嚴重依賴內核,需要重新編譯內核。

開發語言

C

C++

C

C

適合場景

大量小文件讀寫

小文件

適合大文件。

對於小文件,無元數據服務設計解決了元數據的問題。但GlusterFS並沒有在I/O方面作優化,在存儲服務器底層文件系統上仍然是大量小文件,本地文件系統元數據訪問是瓶頸,數據分布和並行性也無法充分發揮作用。因此,GlusterFS的小文件性能還存在很大優化空間。

大文件讀寫

產品級別

小型

中型

中型

重型

應用

國內較多

較多用戶使用

HPC領域。

優缺點

實施簡單,但是存在單點故障。

不穩定,目前還在實驗階段,不適合於生產環境。

無元數據服務器,堆棧式架構(基本功能模塊可以進行堆棧式組合,實現強大功能)。具有線性橫向擴展能力。

 

由於沒有元數據服務器,因此增加了客戶端的負載,占用相當的CPU和內存。

但遍歷文件目錄時,則實現較為復雜和低效,需要搜索所有的存儲節點。因此不建議使用較深的路徑。

很成熟、很龐大。

 

  1. 雲存儲平台學習

  1. Seafile


包含:群組功能,用戶可以創建和加入群組在群組中共享文件。這對團隊協作很有用。 

文件組織成資料庫。每個資料庫可以單獨同步和共享。

在線文件協作,包括文件在線預覽、評論、推薦等等。 Markdown, text,源代碼等文本格式可以直接在線編輯。

 

SeaFile主要是“文件屬性、路徑管理系統”。底層存儲系統可以采用SwiftCept

 

  1. 360等網盤底層

lustre更加適合分布式運算方面的,比如高性能計算節點什么的,在網盤業務這塊,個人覺得mooseFSglusterfs更加靠譜一些吧。Lustre不適合做類似網盤的使用。首先Lustre沒有磁盤容錯功能;即使實現服務容錯也需要交叉互連的盤陣,構建成本較高。其次我認為在網盤服務中,對於存儲系統不需要有太強的一致性語義;而lustre采用的是POSIX強一致性語義。lustre靠的數據分條來提高IO性能的,不知道這個和網盤的IO訪問模式是否兼容。還有就是lustre是內核態系統,比較復雜,維護較困難。

115網盤用了fastdfs

 

http://blog.csdn.net/wugeiswuge/article/details/19159055


免責聲明!

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



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