NFS協(xié)議和pNFS的概念和應(yīng)用
NFS協(xié)議是網(wǎng)絡(luò)存儲的發(fā)展根基,也是網(wǎng)絡(luò)共享的基本協(xié)議。那么對于目前這個領(lǐng)域的發(fā)展我們來簡單談?wù)?。首先我們需要了解NFS的基本概念以及相應(yīng)的一些應(yīng)用。之后我們來介紹一下PNFS的知識。
NFS(網(wǎng)絡(luò)文件系統(tǒng))是在1984年由Sun微系統(tǒng)公司設(shè)計開發(fā)的,目的是為了連接它們的系統(tǒng).在其發(fā)展過程中,通過促成文件系統(tǒng)之間的連接,革命性地改變了存儲行業(yè),使得一個環(huán)境中的所有文件都能夠處于公共視野之下.
回溯到1984年,當時的高速主干網(wǎng)絡(luò)是10Mb/s以太網(wǎng),而磁盤驅(qū)動器的容量是按照MB計算,而不是GB.NFS滿足了需求,并很快就在行業(yè)內(nèi)得到廣泛使用,并成為標準.
從那時候起,NFS進行了一些有限的改進,一些是針對性能,但是大部分的改進幅度都是很微小的--許多是針對安全,以及為了跟上其他UNIX標準.我們都熟悉NFSv1,v2,v3,現(xiàn)在是v4版本,而且我們都抱怨NFS的性能,因為網(wǎng)絡(luò)和存儲的性能增長要更快,而NFS卻沒有跟上步伐.
自從NFS誕生,網(wǎng)絡(luò)已經(jīng)從10Mb/s以太網(wǎng)發(fā)展到了10Gb以太網(wǎng)(三個數(shù)量級的性能增長),存儲已經(jīng)從3Mb/s磁盤驅(qū)動器發(fā)展到了400Mb/s光纖通道RAID(獨立磁盤冗余陣列),這也是133倍的性能增長.而與此同時,NFS只是從4KB數(shù)據(jù)包發(fā)展到了64KB.對于一些不好的網(wǎng)絡(luò),大的數(shù)據(jù)包還可能是個問題,但是當我們需要在高速網(wǎng)絡(luò)上傳輸大量數(shù)據(jù)的時候,我們就需要更好的技術(shù).好消息就是NFS的未來馬上就要實現(xiàn)了.
不用擔心,NFS v4.1來了
理解NFSv4.1(也被叫做pNFS)的***方法就是讀一些文章.pNFS(并行NFS)是NFSv4.1協(xié)議的一部分,可以讓數(shù)據(jù)在設(shè)備之間進行高速移動.這原來是在另外一個組中進行開發(fā)的.pNFS.com提供了一些關(guān)于為什么需要pNFS的背景知識(閱讀下面所列出的問題,它們詳細的指出了現(xiàn)有的NFS協(xié)議所具有的一些問題).
本圖描繪了pNFS系統(tǒng)的架構(gòu):
關(guān)于這張圖,最有意思的就是IEFT(國際互聯(lián)網(wǎng)工程任務(wù)組)準備支持T10 OSD協(xié)議(T10:SCSI存儲接口技術(shù)委員會,OSD:基于對象存儲設(shè)備),并將其作為NFSv4.1的一部分.這也就意味著,通過NFSv4.1,你可以從NFS服務(wù)器中按照塊、T10 OSD對象或文件來移動數(shù)據(jù).很重要的一點就是,隨著NFSv4.1開始啟動,由于大部分廠商在還僅僅只是將這些方法中的一個方法作為實施的開始,因此就有一些問題.
同樣重要的是,作為傳輸機制的一部分,數(shù)據(jù)和元數(shù)據(jù)是分開的.因此對于基于塊的存儲來說,一般情況下,索引節(jié)點以及任何非直接的擴展都被聚集在一起,而塊地址則是通過使用DMA(直接內(nèi)存存取)來從網(wǎng)絡(luò)上直接獲得.和NFSv4以及更早版本的NFS在網(wǎng)絡(luò)上讀取文件的方式比起來,這種方式的性能將是一日千里.當然,如果是在10Mb/s以太網(wǎng),或者1Gb以太網(wǎng)上讀取文件,不同方式的差別不會很大,但是你也會感覺到采用新方法所帶來的改善.現(xiàn)在,如果你擁有10Gb以太網(wǎng),或者說DDR(雙數(shù)據(jù)率)IB(InfiniBand),或者說未來更快的網(wǎng)絡(luò),那么現(xiàn)有的NFS協(xié)議可以讓這些高速網(wǎng)絡(luò)的運行得簡直就像在1Gb以太網(wǎng)上一樣.
1991年左右,我被一個站點叫去做技術(shù)支持.他們有兩臺Cray超級計算機,通過HiPPI連接(高性能并行接口,800MB),而且他們還由一個FDDI(光纖式分布數(shù)據(jù)接口,100Mb).你可能會疑惑,為什么HiPPI的速度不是FDDI的八倍,而是只高出10%呢.他們問,為什么他們花了這么多錢來部署HiPPI,結(jié)果卻只得到10%的性能提升.我不能給出很好的答案.當然,HiPPI上ftp和rcp的運行要更快.這趟訪問的唯一一個好處就是我去了德國,因為我不能給客戶以滿意的答復.在當時,NFS甚至在高速網(wǎng)絡(luò)上也運行不快.NFS做了一些細微的調(diào)整,使得它在1Gb以太網(wǎng)上也能夠被接受,但是它還是不能達到網(wǎng)絡(luò)的速度.轉(zhuǎn)眼過去15年,我們馬上就要進入商品高速網(wǎng)絡(luò)時代,如10GB以太網(wǎng),但是目前版本的NFS還是不能勝任.下面是對NFS問題的描述:
"客戶對存儲I/O帶寬的要求的增長遠遠快于網(wǎng)絡(luò)文件服務(wù)器所能提供的能力.當我們在NFS協(xié)議上進行安裝時,就會越來越多的遇到這種問題.這個問題可以通過提高服務(wù)器帶寬的方式來解決.這個草案建議對NFS文件服務(wù)進行改進,讓NFS文件服務(wù)能夠隨客戶群擴展而擴展.建議的方法就是通過并行化文件服務(wù),將所有可能的帶寬都集中到一個單一的文件系統(tǒng)上,這樣的結(jié)果就是多個網(wǎng)絡(luò)連接到多個要求數(shù)據(jù)傳輸?shù)姆?wù)器終端.我們要在NFS架構(gòu)內(nèi)部實現(xiàn)這種方式,比如通過一個NFSv4協(xié)議的次版本".
顯然,IETF的這個聲明顯示它理解NFS目前的局限,并正努力解決它們.幾乎所有的主要廠商都介入到了NFSv4.1(pNFS)的制訂,包括但不限于,EMC、IBM、NetApp、Sun,當然還有Linux社團.甚至還有一些網(wǎng)路傳言說,微軟正準備在未來的Windows版本中考慮NFSv4.1.我對此持懷疑態(tài)度.
NFSv4.1的局限
和有些人想的相反,NFS是一個協(xié)議,而不是文件系統(tǒng).NFS允許通用的外部接口進入文件系統(tǒng).即使它的名字是這樣,它也不是一個文件系統(tǒng).這也就是說你要受到底層文件系統(tǒng)性能的約束.例如,如果微軟將NFSv4.1納入未來某個版本的Windows系統(tǒng),而你的攝像頭連接是在10Gb以太網(wǎng)上,但是這并不是說你可以通過FAT32文件系統(tǒng)在你舊的計算機上以1GB/秒的速度導出數(shù)據(jù).這里有很多限制.
事實是,在這里,我們的媒介不能以1Gb/s的速率傳輸數(shù)據(jù),更重要的是,你受制于文件系統(tǒng)的性能.即時你擁有能夠以1Gb/s速率傳輸數(shù)據(jù)的媒介,鑒于目前的數(shù)據(jù)格式,FAT32文件系統(tǒng)也不可能支持這種數(shù)據(jù)速率.
我相信NFSv4.1會使很多文件系統(tǒng)相形見絀.現(xiàn)在,這些NFS文件系統(tǒng)可以借口說它們被目前的NFS性能局限所限制,這可能是實情,但是未來就不是如此了.我一直在嘗試的一件事情就是在一臺本地NFS文件服務(wù)器設(shè)備上運行性能測試,以測試我的讀寫速度究竟能有多快.然后我會觀察底層硬件,并判斷性能瓶頸是出在文件系統(tǒng)還是硬件上.在這些時間里,我發(fā)現(xiàn),更經(jīng)常的是,性能瓶頸是在文件系統(tǒng)上而不是硬件上.由于目前的NFS協(xié)議有局限,而10Gb以太網(wǎng)則沒有,因此,在NFS上連接到服務(wù)器的文件系統(tǒng)可以將性能問題歸咎于協(xié)議,但是這種日子將很快過去.
作為一名悲觀論者,我的看法是一些廠商將選擇不支持NFSv4.1和10Gb以太網(wǎng),直到它們能夠讓它們的文件系統(tǒng)能夠和NFSv4.1及10Gb以太網(wǎng)***配合,使數(shù)據(jù)傳輸達到網(wǎng)絡(luò)的速度.沒有一個廠商會希望讓自己看起來很糟糕得.擁有高性能文件系統(tǒng)的那些廠商(我們都知道他們它們是誰)可能是***支持NFSv4.1的廠商.因為你總是被數(shù)據(jù)通道中最慢的組件所約束,因此那些文件系統(tǒng)不支持高性能數(shù)據(jù)傳輸?shù)膹S商也可能不支持NFSv4.1.在未來幾年中觀察NFS4.1的進展是一件非常有意思的事情,特別是如果你理解廠商之所以這么做的原因的話.