分布式檔案系統比較

2021-07-02 21:40:57 字數 1793 閱讀 6004

我現在有海量的資料檔案(1000萬個檔案)需要儲存,需要讓其他計算機可以很容易地訪問,資料無價,我還希望這個檔案系統帶冗餘功能。

我首先注意到的是ubuntu enterprise cloud的提供者:eucalyptus。它提供了和aws(amazon web service)幾乎完全相容的雲計算介面。看起來似乎是個雲儲存的靠譜解決方案。

eucalyptus模仿amazon的s3服務,提供了乙個叫做walrus的儲存服務元件。

可是,經過一番探索,我發現eucalyptus想說愛你不容易。

一方面是因為eucalyptus配置起來很麻煩,缺乏文件,網上幾乎找不到任何相關幫助,

另一方面,雖然理論上eucalyptus和aws的ec2/s3相容,但實際上並非如此,很多在aws上可以用的工具,在eucalyptus上就無法使用

最關鍵是,直到最後我把walrus配置完成之後,才發現walrus根本不像我想的那樣,是乙個帶冗餘的雲儲存系統。而只是乙個實現了s3介面的單機軟體而已。

實際上walrus和eucalyptus的另乙個元件sc(storage controller)沒有任何關聯,walrus只是提供了和s3一致的介面,而它的實現方式,既不帶冗餘,也不能分開部署在多台伺服器上。

於是我開始尋找乙個真正的分布式檔案系統,來解決我的儲存難題。一找才發現,市面上各種分布式檔案系統品種繁多,層出不窮。列舉幾個主要的:

fastdfs:國人在mogilefs的基礎上進行改進的key-value型檔案系統,同樣不支援fuse,提供比mogilefs更好的效能。

moosefs:支援fuse,相對比較輕量級,對master伺服器有單點依賴,用perl編寫,效能相對較差,國內用的人比較多

glusterfs:支援fuse,比moosefs龐大

ceph:支援fuse,客戶端已經進入了linux-2.6.34核心,也就是說可以像ext3/rasierfs一樣,選擇ceph為檔案系統。徹底的分布式,沒有單點依賴,用c編寫,效能較好。基於不成熟的btrfs,其本身也非常不成熟。

lustre:oracle公司的企業級產品,非常龐大,對核心和ext3深度依賴

nfs:老牌網路檔案系統,具體不了解,反正nfs最近幾年沒發展,肯定不能用。

本來我打算用mogilefs,因為它用的人最多,而且我的主要需求都是在web方面。

但是研究了它的api之後發現,key-value型檔案系統沒有目錄結構,導致不能用list某個子目錄的所有檔案,不能直接像本地檔案系統一樣操作,幹什麼事情都需要乙個api,讓人十分不爽。

mogilefs這種做法,可能是受同乙個開發團隊的另乙個大名鼎鼎的產品memcached

的偵聽埠+api模式影響,也有可能是mogilefs剛開始設計的時候,fuse還沒有開始流行。

總之我決心要找乙個支援fuse的分布式檔案系統,最後就在moosefs, glusterfs, ceph中選擇。從技術上來看,ceph肯定是最棒的,用c編寫,進入linux-2.6.34核心,基於btrfs檔案系統,保證了它的高效能,而多台 master的結構徹底解決了單點依賴問題,從而實現了高可用。可是ceph太不成熟了,它基於的btrfs本身就不成熟,它的官方**上也明確指出不要 把ceph用在生產環境中。

而且國內用的人較少,linux發行版中,ubuntu10.04的核心版本是2.6.32,仍然不能直接使用ceph。

而glusterfs比較適合大型應用,口碑相對較差,因此也不考慮。

最後我選擇了缺點和優點同樣明顯的moosefs。雖然它有單點依賴,它的master非常佔記憶體。但是根據我的需求,moosefs已經足夠滿足我的儲存需求。國內moosefs的人比較多,並且有很多人用在了生產環境,更加堅定了我的選擇。

**:

分布式檔案系統

分布式檔案系統 概述 系統管理員可以利用分布式檔案系統 dfs 使使用者訪問和管理那些物理上跨網路分布的檔案更加容易。通過 dfs,可以使分布在多個伺服器上的檔案在使用者面前顯示時,就如同位於網路上的乙個位置。使用者在訪問檔案時不再需要知道和指定它們的實際物理位置。例如,如果您的銷售資料分散在某個域...

分布式檔案系統

常見的分布式檔案系統有,gfs hdfs lustre ceph gridfs mogilefs tfs fastdfs等。各自適用於不同的領域。它們都不是系統級的分布式檔案系統,而是應用級的分布式檔案儲存服務。google學術 這是眾多分布式檔案系統的起源 google file system 大...

分布式檔案系統

缺點是檔案路徑是一致的,只能用於嵌入式檔案的儲存,沒有辦法作為系統請求檔案的儲存,不過對於web2.0可以從設計層面進行一些改善,將使用者的資料互動更多地方在伺服器端,而不是資料庫中,比如使用者的文章就在 com yyy裡面,但是這又帶來一些新的問題,檔案同步負載均衡等問題。現在著眼於將自製的web...