流行的開源分布式文件系統(tǒng)比較
09
八
我現(xiàn)在有海量的數(shù)據(jù)文件(1000萬個文件)需要存儲,需要讓其他計算機可以很容易地訪問,數(shù)據(jù)無價,我還希望這個文件系統(tǒng)帶冗余功能。 我首先注意到的是Ubuntu Enterprise Cloud的提供者:Eucalyptus。它提供了和AWS(Amazon Web Service)幾乎完全兼容的云計算接口。看起來似乎是個云存儲的靠譜解決方案。 Eucalyptus模仿Amazon的S3服務(wù),提供了一個叫做Walrus的存儲服務(wù)組件。 可是,經(jīng)過一番探索,我發(fā)現(xiàn)Eucalyptus想說愛你不容易。 一方面是因為Eucalyptus配置起來很麻煩,缺乏文檔,網(wǎng)上幾乎找不到任何相關(guān)幫助, 另一方面,雖然理論上Eucalyptus和AWS的EC2/S3兼容,但實際上并非如此,很多在AWS上可以用的工具,在Eucalyptus上就無法使用 最關(guān)鍵是,直到最后我把Walrus配置完成之后,才發(fā)現(xiàn)Walrus根本不像我想的那樣,是一個帶冗余的云存儲系統(tǒng)。而只是一個實現(xiàn)了S3接口的單機軟件而已。 實際上Walrus和Eucalyptus的另一個組件sc(storage controller)沒有任何關(guān)聯(lián),Walrus只是提供了和S3一致的接口,而它的實現(xiàn)方式,既不帶冗余,也不能分開部署在多臺服務(wù)器上。 于是我開始尋找一個真正的分布式文件系統(tǒng),來解決我的存儲難題。一找才發(fā)現(xiàn),市面上各種分布式文件系統(tǒng)品種繁多,層出不窮。列舉幾個主要的: mogileFS:Key-Value型元文件系統(tǒng),不支持FUSE,應(yīng)用程序訪問它時需要API,主要用在web領(lǐng)域處理海量小圖片,效率相比mooseFS高很多。 fastDFS:國人在mogileFS的基礎(chǔ)上進行改進的key-value型文件系統(tǒng),同樣不支持FUSE,提供比mogileFS更好的性能。 mooseFS:支持FUSE,相對比較輕量級,對master服務(wù)器有單點依賴,用perl編寫,性能相對較差,國內(nèi)用的人比較多 glusterFS:支持FUSE,比mooseFS龐大 ceph:支持FUSE,客戶端已經(jīng)進入了linux-2.6.34內(nèi)核,也就是說可以像ext3/rasierFS一樣,選擇ceph為文件系統(tǒng)。徹底的分布式,沒有單點依賴,用C編寫,性能較好。基于不成熟的btrfs,其本身也非常不成熟。 lustre:Oracle公司的企業(yè)級產(chǎn)品,非常龐大,對內(nèi)核和ext3深度依賴 NFS:老牌網(wǎng)絡(luò)文件系統(tǒng),具體不了解,反正NFS最近幾年沒發(fā)展,肯定不能用。 本來我打算用mogileFS,因為它用的人最多,而且我的主要需求都是在web方面。 但是研究了它的api之后發(fā)現(xiàn),Key-Value型文件系統(tǒng)沒有目錄結(jié)構(gòu),導致不能用list某個子目錄的所有文件,不能直接像本地文件系統(tǒng)一樣操作,干什么事情都需要一個api,讓人十分不爽。 mogileFs這種做法,可能是受同一個開發(fā)團隊的另一個大名鼎鼎的產(chǎn)品memcached的偵聽端口 api模式影響,也有可能是mogileFS剛開始設(shè)計的時候,F(xiàn)USE還沒有開始流行。 總之我決心要找一個支持FUSE的分布式文件系統(tǒng),最后就在mooseFS, glusterFS, ceph中選擇。從技術(shù)上來看,ceph肯定是最棒的,用c編寫,進入linux-2.6.34內(nèi)核,基于btrfs文件系統(tǒng),保證了它的高性能,而多臺master的結(jié)構(gòu)徹底解決了單點依賴問題,從而實現(xiàn)了高可用??墒莄eph太不成熟了,它基于的btrfs本身就不成熟,它的官方網(wǎng)站上也明確指出不要把ceph用在生產(chǎn)環(huán)境中。 而且國內(nèi)用的人較少,linux發(fā)行版中,ubuntu10.04的內(nèi)核版本是2.6.32,仍然不能直接使用ceph。 而glusterFS比較適合大型應(yīng)用,口碑相對較差,因此也不考慮。 最后我選擇了缺點和優(yōu)點同樣明顯的mooseFS。雖然它有單點依賴,它的master非常占內(nèi)存。但是根據(jù)我的需求,mooseFS已經(jīng)足夠滿足我的存儲需求。國內(nèi)mooseFS的人比較多,并且有很多人用在了生產(chǎn)環(huán)境,更加堅定了我的選擇。 打算用一臺高性能服務(wù)器(雙路至強5500, 24GB內(nèi)存)作為為master,兩臺HP DL360G4(6塊SCSI 146GB)作為chunk服務(wù)器,搭建一個冗余度為2的分布式文件系統(tǒng),提供給web服務(wù)中的每一臺服務(wù)器使用。 |
|