在分布式存儲技術體系當中,分布式文件存儲是其中的分類之一,也是大數據架構當中常常用到的。得益于Hadoop的高人氣,Hadoop原生的HDFS分布式文件系統(tǒng),也廣泛為人所知。但是分布式文件存儲系統(tǒng),并非只有HDFS。今天的大數據開發(fā)分享,我們就主要來講講常見的分布式文件存儲系統(tǒng)。
分布式文件系統(tǒng),可以說是分布式系統(tǒng)下的一個子集,這里我們選取市場應用比較廣泛的幾款產品,HDFS、Ceph、FastDFS以及MooseFS來做簡單的分析——
HDFS
如上所說,HDFS是分布式文件系統(tǒng)當中人氣非常高的一個。基于Hadoop基礎架構,HDFS天然就有很好的優(yōu)勢,尤其是面對大規(guī)模離線批處理任務,地位難以撼動。
HDFS,可以為各類分布式計算框架如Spark、MapReduce等提供海量數據存儲服務,同時HBase、Hive底層存儲也依賴于HDFS。與Hadoop生態(tài)的緊密聯系,也使其穩(wěn)穩(wěn)占據市場主流地位。
優(yōu)點:
高容錯性:數據自動保存多個副本,副本丟失后,自動恢復
適合批處理:移動計算而非數據。數據位置暴露給計算框架
適合大數據處理:GB,TB,甚至PB級數據。百萬規(guī)模以上文件數量。10K+節(jié)點規(guī)模。
流式文件訪問:一次性寫入,多次讀取。保證數據一致性。
可構建在廉價機器上:通過多副本提高可靠性。提供容錯和恢復機制。
缺點:
不適合低延遲數據訪問場景:比如毫秒級,低延遲與高吞吐率
不適合小文件存取場景:占用NameNode大量內存。尋道時間超過讀取時間。
不適合并發(fā)寫入,文件隨機修改場景:一個文件只能有一個寫者。僅支持append
不符合posix語義,需要通過SDK來讀寫操作。對java支持良好,其他語言一般
Ceph
企業(yè)級的存儲需求,通常分為塊存儲、文件存儲和對象存儲,而Ceph能夠同時滿足這三種需求。Ceph提供三大存儲接口,能夠將企業(yè)中的三種存儲需求統(tǒng)一匯總到一個存儲系統(tǒng)中,并提供分布式、橫向擴展,高度可靠性的存儲,具備高可用性、高性能及可擴展等特點。
優(yōu)點:
支持對象存儲(OSD)集群,通過CRUSH算法,完成文件動態(tài)定位,處理效率更高
符合posix語義,支持通過FUSE方式掛載,降低客戶端的開發(fā)成本,通用性高
支持分布式的MDS/MON,無單點故障
強大的容錯處理和自愈能力
支持在線擴容和冗余備份,增強系統(tǒng)的可靠性
缺點:
目前處于試驗階段,系統(tǒng)穩(wěn)定性有待考究
部署和運維較復雜,集群管理工具較少
FastDFS
FastDFS是以C語言開發(fā)的一項開源輕量級分布式文件系統(tǒng),提供文件存儲、文件同步、文件訪問(文件上傳/下載)等通用文件管理操作,尤其適合以文件為載體的在線服務,如圖片網站,視頻網站等。追求高性能和高擴展性FastDFS,可以看做是基于文件的key value pair存儲系統(tǒng),稱作分布式文件存儲服務更為合適。
優(yōu)點:
支持在線擴容機制,增強系統(tǒng)的可擴展性
實現了軟RAID,增強系統(tǒng)的并發(fā)處理能力及數據容錯恢復能力
支持主從文件,支持自定義擴展名
主備Tracker服務,增強系統(tǒng)的可用性
缺點:
不支持POSIX通用接口訪問,通用性較低
對跨公網的文件同步,存在較大延遲,需要應用做相應的容錯策略
同步機制不支持文件正確性校驗,降低了系統(tǒng)的可用性
通過API下載,存在單點的性能瓶頸
MooseFS
MooseFS是在HDFS之后出現的,它也是類似的MDS+OSS架構,區(qū)別于HDFS的是,MooseFS沒有對運行其上的業(yè)務做假設,它沒有假設業(yè)務是大文件或海量小文件,也就是說,MooseFS的定位是像ext4、xfs、NTFS等單機文件系統(tǒng)一樣的通用型文件存儲。
優(yōu)點:
擴容成本低、支持在線擴容,不影響業(yè)務,體系架構可伸縮性極強
支持POSIX通用接口訪問,支持通過FUSE方式掛載,降低客戶端的開發(fā)成本,通用性高
文件對象高可用,可設置任意的文件冗余程度(提供比Raid 10更高的冗余級別)
提供系統(tǒng)負載,將數據讀寫分配到所有的服務器上,加速讀寫性能
實現了軟RAID,增強系統(tǒng)的并發(fā)處理能力及數據容錯恢復能力
數據恢復比較容易,增強系統(tǒng)的可用性。有回收站功能,方便業(yè)務定制
缺點:
Master Server的單點解決方案的健壯性。Master Server一旦出問題Metalogger Server可以恢復升級為Master Server,但是需要恢復時間
Master Server本身的性能瓶頸。MFS的主備架構情況類似于MySQL的主從復制,從可以擴展,主卻不容易擴展
隨著MFS體系架構中存儲文件的總數上升,Master Server對內存的需求量會不斷增大
責任編輯人:CC
評論
查看更多