在過去的數(shù)周內(nèi),我花功夫鉆研了與構(gòu)建IP存儲網(wǎng)絡(luò)有關(guān)的一些已被遺忘的部分,以及如何最好地利用它與NFS和iSCSI——虛擬化所使用的兩大IP存儲協(xié)議——相配套的問題。這段時間我也收到了大量的讀者來信,這些來信全都和這樣一個問題有關(guān):NFS或iSCSI,哪個更好?
與很多引起熱烈爭論的IT話題一樣,要在任何兩種流行的競爭技術(shù)之間進(jìn)行選擇,關(guān)注其整體更優(yōu)的人并不多,更多的人關(guān)注的是它們能否最好地解決面前的挑戰(zhàn)。這兩種協(xié)議根據(jù)應(yīng)用場合的不同,各自都存在優(yōu)缺點。但是存儲的未來發(fā)展將會成為做出最終選擇的重要依據(jù)。文件 vs 塊我之前曾經(jīng)說過,NFS和iSCSI兩者無論就實施狀況還是歷史發(fā)展來看,都不存在很大的差異。NFS是由Sun公司在上世紀(jì)80年代初開發(fā)的,當(dāng)時是作為通用的文件共享協(xié)議,允許網(wǎng)絡(luò)用戶到網(wǎng)絡(luò)上的一臺文件服務(wù)器上去讀寫文件。iSCSI出現(xiàn)的較晚,最初是在2000年初,作為光纖通道(FC)的一種IP替代方案出現(xiàn)的,它和FC類似,都是將塊級SCSI命令進(jìn)行封裝,然后在網(wǎng)絡(luò)上發(fā)送。兩者間的主要差別在于文件系統(tǒng)的實施和管理上。NFS使用文件級別的實施,服務(wù)器或存儲陣列托管整個文件系統(tǒng),客戶到文件系統(tǒng)上讀寫文件。而iSCSI和FC則使用數(shù)據(jù)塊,存儲陣列向客戶提供數(shù)據(jù)塊集合,賦予原始存儲數(shù)據(jù)一定的格式化,而不去管文件系統(tǒng)究竟如何使用。雖然這種差異產(chǎn)生了諸多的后果,但最重要的后果可能在于,在諸如iSCSI和FC的塊級協(xié)議中,存儲陣列一般不會去管它存儲的內(nèi)容是什么。它只知道分配塊集合給需要訪問的客戶。相反地,在諸如NFS的文件級協(xié)議中,存儲陣列對存儲在其中的應(yīng)用數(shù)據(jù)具有充分的可視性。從實用角度來看,對存儲在NFS系統(tǒng)上數(shù)據(jù)的這種陣列端感知能力可以讓存儲陣列更容易跟蹤實際的存儲使用情況——例如在精簡配置場合,它可以拍攝快照,或者對單個虛擬機做備份,甚至可以在陣列端對主存儲數(shù)據(jù)進(jìn)行重復(fù)數(shù)據(jù)刪除。不過最近在VMware的VAAI(vSphere API for Array Integration)中實現(xiàn)的SCSI T10增強功能為塊存儲也增加了類似的感知功能,通過支持UNMAP SCSI原始,可對空閑塊增加虛擬化堆棧能力(因而允許陣列回收這些塊)和陣列端副本卸載能力,可以加速虛擬機克隆等任務(wù)。從某種意義上說,一些智能化的hypervisor與陣列的集成也使得使用NFS的文件級系統(tǒng)可以移植到采用SCSI協(xié)議的塊級系統(tǒng)中去。但我不能因此而肯定文件與塊的競爭是否已經(jīng)結(jié)束。盡管增加了這些SCSI原始可允許基于SCSI存儲協(xié)議的系統(tǒng)執(zhí)行某些類似NFS的功能,但在其他情形下,文件級協(xié)議依然擁有某些領(lǐng)先之處——延伸集群就是一個很好的例子。在此類可同步復(fù)制、地理分布不同的存儲系統(tǒng)中,存儲層具備將每個虛擬機視作單獨存儲資源的能力——可以單獨對其進(jìn)行刪除和故障處理——這一點極其重要,也是使用塊存儲協(xié)議的系統(tǒng)所無法實現(xiàn)的。在網(wǎng)絡(luò)上從網(wǎng)絡(luò)角度看,NFS和iSCSI也存在明顯的差異。采用NFS,額外所需的吞吐量和冗余主要是通過網(wǎng)絡(luò)鏈路匯聚來獲得,還需小心注意去平衡陣列端多個IP地址別名上的存儲連接,以確保負(fù)載均衡能夠生效。而另一方面,iSCSI內(nèi)置了多路徑能力,可提供更多的高級負(fù)載均衡算法,在多條服務(wù)器和陣列端存儲路徑上智能化地平衡存儲流量。在這兩種情形下,10G以太網(wǎng)的使用可以減輕為提高存儲性能而采用多路徑的必要性,理由是絕大多數(shù)組織的吞吐量要接近1Gbps都是不可想象的(至少今天還是如此)。不過在這方面,iSCSI要略勝NFS一籌,尤其當(dāng)匯聚多個1Gbps以太網(wǎng)鏈路時。從網(wǎng)絡(luò)安全的角度看,iSCSI也有一定優(yōu)勢。除了NFS和iSCSI都支持的源IP安全限制以外,iSCSI還內(nèi)置了對雙向挑戰(zhàn)握手認(rèn)證協(xié)議(CHAP)的支持,該協(xié)議可防止未經(jīng)認(rèn)證的服務(wù)器連接存儲資源,允許服務(wù)器去驗證他們準(zhǔn)備連接的存儲陣列是否經(jīng)過了認(rèn)證。關(guān)于現(xiàn)代NFS實施的一個常見誤區(qū)是,認(rèn)為其實施是基于UDP/IP的。這一誤解通常來自NFS v2完全基于UDP這一事實。盡管UDP是一個相對低延遲的IP傳輸協(xié)議,但它缺少安全和交付機制,在跟蹤目前的TCP/IP網(wǎng)絡(luò)時難以保障狀態(tài)連接所帶來的好處。而從NFS v3開始,TCP成了它所支持的一個傳輸協(xié)議。這也是目前大多數(shù)NFS存儲陣列和hypervisor,如VMware vSphere所采用的辦法,把NFS放在了和基于TCP/IP的iSCSI同等的位置上。未來前景今天來看,iSCSI似乎更具贏家風(fēng)范,至少從網(wǎng)絡(luò)角度看是這樣,因為它可提供更好的多路徑支持,更高程度的端到端安全。不過NFS仍然保有相當(dāng)?shù)膬?yōu)勢,尤其是在陣列端的適當(dāng)使用,因為它能讓陣列擁有對虛擬化堆棧的可視性,可智能化地參與加速、快照和重復(fù)刪除等存儲流程。正是這些陣列端的智能優(yōu)勢,再結(jié)合上多路徑與安全提升,有可能在NFS 4.1發(fā)布時有望實現(xiàn)NFS客戶端,最終刺激對NFS需求的長期規(guī)模增長。不要讓自己輕易相信哪一種協(xié)議會徹底擊敗另一種。事實上兩者間存在差異是一件好事,因為當(dāng)你在尋找一種可以滿足特定需求的IP解決方案時就有了兩次機會。請務(wù)必記?。哼@些協(xié)議發(fā)展史的最后一章尚未寫完。(波波編譯)本文轉(zhuǎn)載自企業(yè)級IT信息服務(wù)平臺-網(wǎng)界網(wǎng)-CNW.com.cn原文地址:http://www.cnw.com.cn/news-international/htm2012/20120531_247931_2.shtml