1. 程式人生 > >流行的開源分散式檔案系統比較

流行的開源分散式檔案系統比較

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

               

http://get.jobdeer.com/501.get

我現在有海量的資料檔案(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一致的介面,而它的實現方式,既不帶冗餘,也不能分開部署在多臺伺服器上。


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


mogileFS:Key-Value型元檔案系統,不支援FUSE,應用程式訪問它時需要API,主要用在web領域處理海量小圖片,效率相比mooseFS高很多。


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的人比較多,並且有很多人用在了生產環境,更加堅定了我的選擇。


打算用一臺高效能伺服器(雙路至強5500, 24GB記憶體)作為為master,兩臺HP DL360G4(6塊SCSI 146GB)作為chunk伺服器,搭建一個冗餘度為2的分散式檔案系統,提供給web服務中的每一臺伺服器使用。           

給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow

這裡寫圖片描述