下一代Linux文件系統(tǒng)將如何發(fā)展?
原創(chuàng)【51CTO 4月19日外電頭條】GNU/Linux在支持文件系統(tǒng)創(chuàng)新方面已經(jīng)取得了極大的成功,目前已支持超過50種文件系統(tǒng),毫無疑問,這一成功與Linux一向的開源策略是密不可分的。隨著數(shù)據(jù)的爆炸式增長,存儲(chǔ)行業(yè)已經(jīng)發(fā)生了翻天覆地的變化,文件系統(tǒng)如何才能緊跟時(shí)代步伐,滿足越來越高要求的存儲(chǔ)需要呢?
硬盤的成本/容量曲線趨勢(shì)繼續(xù)遵守著名的摩爾定律,與此同時(shí),我們也看到固態(tài)硬盤增長勢(shì)頭喜人,它因消除了機(jī)械硬盤固有的性能限制得到了廠商和消費(fèi)者的重視,虛擬化也在改變存儲(chǔ)架構(gòu)設(shè)計(jì),應(yīng)用程序也開始向基于FC的HTTP存儲(chǔ)協(xié)議轉(zhuǎn)移。
存儲(chǔ)容量幾乎每年以40%的速度遞增,現(xiàn)在市場上已經(jīng)可以看到容量為2TB的機(jī)械硬盤,但它們的性能卻沒有按比例提高,固態(tài)硬盤的出現(xiàn)解決了傳統(tǒng)機(jī)械硬盤的許多弊病,因此未來幾年勢(shì)必會(huì)引發(fā)一場存儲(chǔ)革命,文件系統(tǒng)也需要為存儲(chǔ)革命做好準(zhǔn)備,未來的文件系統(tǒng)必需解決擴(kuò)展,并行處理和滿足新工作負(fù)載類型方面的問題。
POSIX API標(biāo)準(zhǔn)制約了創(chuàng)新
IDE和SCSI已經(jīng)逐漸被SAS取代,終于超越了6Gbps的門檻,Infiniband和10GbE通過遠(yuǎn)程直接內(nèi)容訪問(Remote Direct Memory Access ,RDMA)和TCP卸載引擎提高了網(wǎng)絡(luò)I/O,iSCSI大有取代FC SAN的趨勢(shì),和傳統(tǒng)的使用NFS和CIFS協(xié)議應(yīng)用程序不同,基于Internet的程序通常是使用HTTP/HTTPS訪問地理分散的存儲(chǔ)。
我們已經(jīng)使用POSIX API訪問文件系統(tǒng)的歷史已經(jīng)長達(dá)30年,它是一個(gè)標(biāo)準(zhǔn),但它也是弱點(diǎn),是它遏制了創(chuàng)新,應(yīng)用程序開發(fā)人員需要新的API標(biāo)準(zhǔn)執(zhí)行對(duì)象存儲(chǔ)和key-value存儲(chǔ)。
諸如卷管理,全局命名空間,壓縮,加密,克隆/快照,重復(fù)數(shù)據(jù)刪除,RAID和遠(yuǎn)程站點(diǎn)復(fù)制技術(shù)都應(yīng)該由文件系統(tǒng)實(shí)現(xiàn),由于歷史原因,這些功能都是在文件系統(tǒng)之外實(shí)現(xiàn)的,因此效率低下,復(fù)雜程度較高。
文件系統(tǒng)不應(yīng)局限于在內(nèi)核空間實(shí)現(xiàn)
關(guān)于內(nèi)核空間和用戶空間性能問題的爭論應(yīng)該歇歇了,上下文切換不再是什么大問題,因?yàn)槎褩:途W(wǎng)絡(luò)中的其它部分造成的延遲才是真正的限制因素。在用戶空間中實(shí)現(xiàn)的新興文件系統(tǒng)應(yīng)該受到重視。原來大家都認(rèn)為底層組件,如磁盤設(shè)備驅(qū)動(dòng)和磁盤文件系統(tǒng)應(yīng)該駐留在內(nèi)核中,但現(xiàn)在是時(shí)候讓大部分代碼在用戶空間中實(shí)現(xiàn)了。例如,Hadoop和GlusterFS就是完全在用戶空間中實(shí)現(xiàn)的。有關(guān)Hadoop的使用可參考51CTO之前發(fā)布的使用Linux 和Hadoop進(jìn)行分布式計(jì)算一文。
變革和創(chuàng)新
1、適合于直接附加存儲(chǔ)(Direct Attached Storag,DAS)的文件系統(tǒng)
Linux文件系統(tǒng)Ext3是迄今為止最穩(wěn)定的Linux文件系統(tǒng),但現(xiàn)在是時(shí)候考慮Ext4(內(nèi)核2.6.31或更高才支持)了,因?yàn)樗鉀Q了諸如文件和目錄大小限制的局限性,基于延伸區(qū)(extent)分配機(jī)制能夠有效地存儲(chǔ)大文件,更快地執(zhí)行fsck(文件系統(tǒng)檢查)和日志校驗(yàn)和檢查,但Ext4只是一個(gè)暫時(shí)的解決方案。
Linux社區(qū)希望Linux支持ZFS和Btrfs(B-tree文件系統(tǒng)),Btrfs將類似ZFS的功能引入到Linux內(nèi)核中,Btrfs不僅僅是一個(gè)磁盤文件系統(tǒng),它還具有軟RAID管理,卷管理,克隆/快照和壓縮功能,它支持跨多塊磁盤動(dòng)態(tài)增大或收縮卷。
Btrfs RAID可以從一個(gè)故障陣列快速重構(gòu),其速度比硬件RAID控制器還快,因?yàn)樗恢匦聴l帶化使用了的數(shù)據(jù)塊,執(zhí)行快照需要的空間和時(shí)間也更少,Btrfs的目標(biāo)是取代Linux默認(rèn)文件系統(tǒng)Ext4,來自O(shè)racle的Chris Mason是該項(xiàng)目的主要貢獻(xiàn)者。
2、網(wǎng)絡(luò)文件系統(tǒng)(NFS)
NFS于1995年推出,NFS v3是目前應(yīng)用最廣泛的NAS協(xié)議,所有服務(wù)器操作系統(tǒng)(除微軟Windows外)和存儲(chǔ)廠商都支持它,2000年發(fā)布的NFS v4在許多方面都做了改進(jìn),但沒有取得廣泛應(yīng)用。NFS v4.1(pNFS)應(yīng)該會(huì)出現(xiàn)轉(zhuǎn)機(jī),因?yàn)樗鼛砹巳藗兤惹行枰牟⑿蠭/O架構(gòu),并為低延遲高帶寬I/O增加了RDMA支持。
這是NFS的一個(gè)重大進(jìn)步,允許用戶轉(zhuǎn)移到可橫向擴(kuò)展的架構(gòu),但它的設(shè)計(jì)是基于一個(gè)統(tǒng)一的元數(shù)據(jù)服務(wù)器,這可能會(huì)限制擴(kuò)展能力,并且存在一個(gè)潛在的單點(diǎn)故障,因此要想成為主流應(yīng)用尚需時(shí)日,這期間需要解決NFS v3/4的擴(kuò)展性問題,通過在集群文件系統(tǒng)上集成NFS,利用虛擬IP和循環(huán)DNS技術(shù),可以構(gòu)建一個(gè)可擴(kuò)展的NAS解決方案。
3、集群/分布式文件系統(tǒng)
集群或分布式文件系統(tǒng)允許跨多個(gè)存儲(chǔ)服務(wù)器使用一個(gè)全局命名空間,并實(shí)現(xiàn)了智能分散I/O和數(shù)據(jù),以克服NFS(和CIFS)的擴(kuò)展性限制,每個(gè)廠商都有他們自己的內(nèi)部協(xié)議,但對(duì)于應(yīng)用程序是透明的,因?yàn)楣蚕泶鎯?chǔ)是通過標(biāo)準(zhǔn)的POSIX接口訪問的。
這樣的文件系統(tǒng)有Oracle Lustre,IBM GPFS和GlusterFS,它們之間的主要區(qū)別是處理元數(shù)據(jù)的方式有所不同,Lustre使用的是中央控制元數(shù)據(jù)服務(wù)器,GPFS使用的是分布式元數(shù)據(jù)服務(wù)器模型,GlusterFS使用的是無元數(shù)據(jù)模型。在選擇集群文件系統(tǒng)時(shí),關(guān)鍵就是要了解元數(shù)據(jù)的處理方式。
另一個(gè)不同點(diǎn)是Lustre和GPFS是在內(nèi)核中實(shí)現(xiàn)的,GlusterFS是在用戶空間實(shí)現(xiàn)的,這些集群文件系統(tǒng)都實(shí)現(xiàn)了前面談到的關(guān)鍵存儲(chǔ)堆棧功能,它們都可以擴(kuò)展到PB級(jí)存儲(chǔ)容量。
4、分布式對(duì)象存儲(chǔ)/key-value存儲(chǔ)
許多現(xiàn)代應(yīng)用程序需要簡單對(duì)象API訪問諸如get/put,get/put屬性和lock/unlock這樣成對(duì)出現(xiàn)的數(shù)據(jù),對(duì)象訪問允許將內(nèi)存和磁盤看作是通過序列化的信息持久化塊。
大多數(shù)數(shù)據(jù)處理功能(如XML解析,哈希表,全文檢索等)都開始轉(zhuǎn)向更高級(jí)的應(yīng)用程序庫,對(duì)象存儲(chǔ)API也適合構(gòu)建NoSQL規(guī)模的數(shù)據(jù)庫。很多Web 2.0應(yīng)用正在逐漸轉(zhuǎn)向Cassendra等NoSQL式存儲(chǔ),比如前日的Digg和Twitter。
目前對(duì)象存儲(chǔ)還沒有標(biāo)準(zhǔn)化,雖然WebDAV,Hadoop,Apache Cassandra和Amazon S3都遵循這個(gè)模型,如果是構(gòu)建一個(gè)新應(yīng)用程序,它們也是很好的選擇,但在未標(biāo)準(zhǔn)化之前,POSIX API將是必需的。(參考閱讀:詳解NoSQL數(shù)據(jù)庫Apache Cassandra的配置)
小結(jié)
預(yù)計(jì)到2012年,數(shù)據(jù)存儲(chǔ)增長將會(huì)超過1800EB,要應(yīng)對(duì)這種增長勢(shì)頭,文件系統(tǒng)的關(guān)鍵挑戰(zhàn)是要解決擴(kuò)展能力,并行處理能力,以及支持新的工作負(fù)載類型。新興Linux文件系統(tǒng)技術(shù)值得認(rèn)真考慮,因?yàn)樗鼈兊亩ㄎ痪褪且鉀Q這些問題。
【51CTO.com譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處?!?/p>
原文:Next-Gen Linux File Systems: Change Is the New Constant 作者:Anand Babu
【編輯推薦】