當下流行的分布式文件系統(tǒng)大閱兵
本文對目前數(shù)種分布式文件系統(tǒng)進行簡單的介紹。當前比較流行的分布式文件系統(tǒng)包括:Lustre、Hadoop、MogileFS、FreeNAS、FastDFS、NFS、OpenAFS、MooseFS、pNFS、以及GoogleFS。
51CTO編輯推薦:下一代Linux文件系統(tǒng)
Lustre(www.lustre.org)
lustre是一個大規(guī)模的、安全可靠的,具備高可用性的集群文件系統(tǒng),它是由SUN公司開發(fā)和維護。該項目主要的目的就是開發(fā)下一代的集群文件系統(tǒng),可以支持超過10000個節(jié)點,數(shù)以PB的數(shù)量存儲系統(tǒng)。
lustre是開放源代碼的集群文件系統(tǒng),采取GPL許可協(xié)議,目前在集群計算機里,計算機與磁盤間數(shù)據(jù)交換的提升無法跟上微處理器和內(nèi)存增長的速度,從而也拖累了應(yīng)用程序的性能,一種新興的集群文件系統(tǒng)軟件提高了I/O速度,可能降低企業(yè)購買存儲設(shè)備的成本并改變企業(yè)購買存儲的方式,集群文件系統(tǒng)已經(jīng)在大學(xué)、實驗室和超級計算機研究中心里使用,而且即將進入通用商業(yè)計算市場。新的集群文件系統(tǒng)采用了開源的lustre技術(shù),由美國能源部(Department Of Energy)開發(fā),惠普公司(HP)提供商業(yè)支持。它顯著提高了輸入輸出(I/O)速度,目前已經(jīng)在高校、國家實驗室和超級計算研究中心產(chǎn)生了一定影響,未來幾年中,它很有可能進入普通的商業(yè)計算機領(lǐng)域。
運行在linux下,開發(fā)語言c/c++
Hadoop(hadoop.apache.com)
hadoop并不僅僅是一個用于存儲的分布式文件系統(tǒng),而是設(shè)計用來在由通用計算設(shè)備組成的大型集群上執(zhí)行分布式應(yīng)用的框架。
如下圖是hadoop的體系結(jié)構(gòu):
授權(quán)協(xié)議apache,開發(fā)語言java,資源耗費有點大。
MogileFs(www.danga.com)
Mogile Fs是一個開源的分布式文件系統(tǒng),主要特征包括
1、應(yīng)用層的組件
2、無單點故障
3、自動文件復(fù)制
4、具有比RAID更好的可靠性
5、無需RAID nigukefs支持 ,運行在linux下。
FreeNAS(www.openqrm.org)
FreeNAS是網(wǎng)絡(luò)附加存儲(NAS)服務(wù)專用操作系統(tǒng)(FreeBSD的簡化版 )?;趍0n0wall防火墻,該系統(tǒng)通過提供磁盤管理及RAID軟件,可讓用戶home將PC轉(zhuǎn)換為NAS服務(wù)器,支持FTP/NFS/RSYNC/CIFS/AFP/UNISON/SSH sourceforge.net/pro協(xié)議,旨在讓人們重新使用舊硬件.
FastDFS(code.google.com/p/fastdfs)
FastDFS是一個開源的分布式文件系統(tǒng),它對文件進行管理,功能包括:文件存儲、文件同步、文件訪問(文件上傳、文件下載)等,解決了大容量存儲和負載均衡的問題。特別適合以文件為載體的在線服務(wù), 如相冊網(wǎng)站,視頻網(wǎng)站等等。FastDFS服務(wù)端有兩個角色:跟蹤器(tracker)和存儲節(jié)點(storage)。跟蹤器主要做調(diào)度的工作,在訪問上起負載均衡的作用。存儲節(jié)點存儲文件,完成文件管理的所有功能:
存儲、同步、和提供存取接口,F(xiàn)astDFS同時對文件的meta data進行管理。所謂文件的meta data就是文件的相關(guān)屬性,以鍵值對(key value pair)方式表示,如:width=1024,其中的key為width,value為1024。文件meta data是文件屬性列表,可以包含多個鍵值樹。
開發(fā)語言c/c++,運行在linux系統(tǒng)下。
#p#
NFS(www.tldp.org/HOWTO/NFS-HOWTO/index.html)
網(wǎng)絡(luò)文件系統(tǒng)是FreeBSD支持的文件系統(tǒng)中的一種,也被稱為NFS。
NFS允許一個系統(tǒng)在網(wǎng)絡(luò)上與它人共享目錄和文件。通過使用NFS, 用戶和程序可以象訪問本地文件一樣訪問遠端系統(tǒng)上的文件。它的好處是:
1、本地工作站使用更少的磁盤空間,因為通常的數(shù)據(jù)可以存放在一臺機器上而且可以通過網(wǎng)絡(luò)訪問到。
2、用戶不必在每個網(wǎng)絡(luò)上機器里面都有一個home目錄。home目錄可以被放在NFS服務(wù)器上并且在網(wǎng)絡(luò)上處處可用。
3、諸如軟驅(qū)、CDROM、和ZIP之類的存儲設(shè)備可以在網(wǎng)絡(luò)上面被別的機器使用??梢詼p少整個網(wǎng)絡(luò)上的可移動介質(zhì)設(shè)備的數(shù)量。
開發(fā)語言c/c++,可跨平臺運行。
OpenAFS(www.openafs.org)
OpenAFS是一套開放源代碼的分布式文件系統(tǒng),允許系統(tǒng)之間通過局域網(wǎng)和廣域網(wǎng)來分享檔案和資源。OpenAFS是圍繞一組叫做cell的文件服務(wù)器組織的,每個服務(wù)器的標識通常是隱藏在文件系統(tǒng)中,從AFS客戶機登陸的用戶將分辨不出他們在那個服務(wù)器上運行,因為從用戶的角度上看,他們想在有識別的Unix文件系統(tǒng)語義的單個系統(tǒng)上運行。
文件系統(tǒng)內(nèi)容通常都是跨cell復(fù)制,一便一個硬盤的失效不會損害OpenAFS客戶機上的運行。OpenAFS需要高達1GB的大容量客戶機緩存,以允許訪問經(jīng)常使用的文件。它是一個十分安全的基于kerbero的系統(tǒng),它使用訪問控制列表(ACL)以便可以進行細粒度的訪問,這不是基于通常的Linux和Unix安全模型。開發(fā)協(xié)議IBM Public,運行在linux下。
MooseFs(derf.homelinux.org)
Moose File System是一個具備容錯功能的網(wǎng)路分布式文件統(tǒng),它將數(shù)據(jù)分布在網(wǎng)絡(luò)中的不同服務(wù)器上,MooseFs通過FUSE使之看起來就 是一個Unix的文件系統(tǒng)。但有一點問題,它還是不能解決單點故障的問題。開發(fā)語言perl,可跨平臺操作。
pNFS(www.pnfs.com)
網(wǎng)絡(luò)文件系統(tǒng)(Network FileSystem,NFS)是大多數(shù)局域網(wǎng)(LAN)的重要的組成部分。但NFS不適用于高性能計算中苛刻的輸入書櫥密集型程序,至少以前是這樣。NFS標準的罪行修改納入了Parallel NFS(pNFS),它是文件共享的并行實現(xiàn),將傳輸速率提高了幾個數(shù)量級。
開發(fā)語言c/c++,運行在linu下。
googleFs
據(jù)說是一個比較不錯的一個可擴展分布式文件系統(tǒng),用于大型的,分布式的,對大量數(shù)據(jù)進行訪問的應(yīng)用。它運行于廉價的普通硬件上,但可以提供容錯功能,它可以給大量的用戶提供性能較高的服務(wù)。google自己開發(fā)的。
【編輯推薦】