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