圖2 光纖適配卡(FC HBA)
回答否或許看上去不是那么直觀,但卻是目前為止現(xiàn)實(shí)的選擇。深層的原因在于應(yīng)用程序?qū)τ趦深惥W(wǎng)絡(luò)的使用行為不同。我們知道應(yīng)用程序在使用通訊網(wǎng)絡(luò)的時(shí)候,會直接和二層(Ethernet)或三層(IP)打交道。而使用存儲網(wǎng)絡(luò)時(shí),不同的是中間還有一層SCSI協(xié)議,大部分應(yīng)用程序操作(讀寫)的實(shí)際上是SCSI磁盤(至少看上去是),底層的FC網(wǎng)絡(luò)協(xié)議被虛擬化系統(tǒng)(如VMwarevSphere)完全隱藏起來了。這就是為什么網(wǎng)卡的虛擬化是必須的,而HBA的虛擬化需求就沒有那么直接了。那么沒有了虛擬HBA,虛擬機(jī)對存儲系統(tǒng)中LUN的直接訪問如何實(shí)現(xiàn)呢?我們將在下一節(jié)對NPIV的介紹中來回答這個(gè)問題。
既然如此,再花力氣去虛擬化HBA是不是多此一舉呢(目前為止尚不存在支持虛擬HBA的解決方案)?事實(shí)上,NPIV有其內(nèi)在的不足,僅僅滿足了基本的I/O需求,并不能滿足所有應(yīng)用程序的需求。關(guān)于虛擬HBA的討論將在完成NPIV的介紹后展開。
虛擬網(wǎng)絡(luò)接入——NPIV和NPV
虛擬接入要解決的問題是要把虛擬機(jī)的網(wǎng)絡(luò)流量納入傳統(tǒng)網(wǎng)絡(luò)交換設(shè)備的管理之中,讓交換機(jī)可以識別出來自同一鏈路的不同虛擬機(jī)的流量,從而使QoS保證和安全隔離成為可能。N-PortID Virtualization(NPIV) 技術(shù)于2006年在IBM的Systemz9服務(wù)器上出現(xiàn),允許管理員為每個(gè)Linux分區(qū)分配獨(dú)立的虛擬端口名稱(VirtualWWPN)。NPIV允許單個(gè)FCP的端口(Port)在域名服務(wù)器注冊多個(gè)WWPN。每個(gè)虛擬的WWPN在登錄后獲得各自的端口編號(N-PortID)。每一對WWPN/NPID都可以用來做SAN的分區(qū)(zoning)和LUN的屏蔽(masking)。在網(wǎng)絡(luò)上的其他節(jié)點(diǎn)看來,虛擬的和物理的WWPN不存在任何區(qū)別。
相對應(yīng)的,在提供網(wǎng)絡(luò)接入的邊界交換機(jī)上,也需要提供相關(guān)的支持。鏈路另一端的交換端口(F-Port)會看到多個(gè)(虛擬)WWPN以及N- PortID,F(xiàn)C交換機(jī)必須知道如何來應(yīng)對。交換機(jī)端的技術(shù)被稱為N-PortVirtualization(NPV)。關(guān)于NPV技術(shù)的細(xì)節(jié)這里就不展開討論了,有興趣的可以看看這篇文章——“Understanding NPIV and NPV”
NPIV技術(shù)在實(shí)際存儲網(wǎng)絡(luò)的中的應(yīng)用,需要各個(gè)環(huán)節(jié)的支持。圖3是虛擬化平臺對NPIV的支持,以VMwareESX為例,允許為每個(gè)虛擬機(jī)生成一個(gè)新的虛擬WWPN,前提是服務(wù)器上的FCHBA必須提供對NPIV的支持。
圖3 虛擬化平臺對NPIV的支持
為了讓虛擬機(jī)能夠“看到”要訪問的存儲系統(tǒng),我們需要在FC交換機(jī)上為虛擬機(jī)的虛擬WWPN和存儲系統(tǒng)訪問端口的WWPN創(chuàng)建一個(gè)新的分區(qū)(zone),見圖4。在實(shí)際的配置中,我們還需要把HBA上的物理WWPN也放在同一分區(qū)內(nèi)(為什么???)。
圖4 FC交換機(jī)對NPIV的支持
最后,我們需要在存儲系統(tǒng)上完成LUN的屏蔽(LUNmasking)。目的是為了給VM分配可以看到和訪問的LUN(一個(gè)或多個(gè))。圖4是如何在EMCCLARiiON存儲系統(tǒng)上完成相關(guān)的配置的一個(gè)示例。
圖5 存儲系統(tǒng)對NPIV的支持
要使NPIV真正發(fā)揮作用,還要為虛擬機(jī)添加至少一塊RDM(RawDevice Mapping)格式的虛擬磁盤。RDM是把外部存儲(LUN)直接映射給虛擬機(jī),也就是說,虛擬機(jī)發(fā)出的SCSI命令都會原樣發(fā)送給這個(gè)設(shè)備。至此,我們已經(jīng)完成NPIV的配置工作,虛擬機(jī)內(nèi)的操作系統(tǒng)和應(yīng)用程序已經(jīng)可以看到并使用一塊新的SCSI虛擬磁盤。
NPIV主要是提供虛擬接入,也就是說讓來自不同虛擬機(jī)的數(shù)據(jù)在網(wǎng)絡(luò)的各個(gè)環(huán)節(jié)都可見,從而讓以虛擬機(jī)為單位進(jìn)行SAN的管理成為可能。然而我們在 上面的例子里也看到,劃分(zoning)給VM的LUN,同時(shí)也要?jiǎng)澖oESX。由于虛擬機(jī)訪問SAN必須依賴ESX,因而從這一點(diǎn)來說統(tǒng)一管理的意義就 打了個(gè)折扣。
換個(gè)角度來看,NPIV也可以視作一種針對HBA的隱式虛擬化技術(shù)。然而這種有其內(nèi)在的缺陷,那就是所有配置操作都需要虛擬化系統(tǒng)的介入。其一,為 了添加虛擬機(jī)對一個(gè)LUN的訪問,在交換機(jī)和存儲系統(tǒng)中也要完成對物理WWPN的配置(Zoning和LUNmasking)。原因是我們需要先創(chuàng)建 RDM磁盤(從列表中選取目標(biāo)LUN),所以虛擬化系統(tǒng)(通過物理WWPN)必須也能“看到”目標(biāo)LUN。其二,應(yīng)用程序在運(yùn)行時(shí)如果需要?jiǎng)討B(tài)添加對一個(gè) LUN的訪問,必須通過Hypervisor進(jìn)行配置,虛擬機(jī)并沒有任何自主權(quán)。配置和使用只能分離(不同的WWPN),這種模式并不符合SAN管理的傳 統(tǒng)。
顯式的HBA虛擬化
通過顯式的HBA的虛擬化,虛擬機(jī)內(nèi)的操作系統(tǒng)可以看到一個(gè)虛擬的HBA設(shè)備。通過安裝相應(yīng)的驅(qū)動,虛擬機(jī)內(nèi)的操作系統(tǒng)和應(yīng)用程序就可以直接操作FCP的協(xié)議棧。相對基于NPIV的解決方案而言,這樣的實(shí)現(xiàn)可以帶來一些額外的好處。首先,F(xiàn)C網(wǎng)絡(luò)的管理監(jiān)控程序也可以運(yùn)行在虛擬機(jī)內(nèi)。其次,虛擬機(jī)可以獨(dú)立實(shí)現(xiàn)LUN的配置(發(fā)現(xiàn),添加和刪除),不需要Hypervisor的介入。最后,由于虛擬平臺不再需要操作虛擬機(jī)所訪問的LUN,在交換機(jī)上進(jìn)行Zoning的時(shí)候,只要把虛擬WWPN和目標(biāo)存儲系統(tǒng)的 WWPN劃分在一個(gè)zone里,不再需要加入物理WWPN;類似地,在存儲系統(tǒng)中做LUNmasking的時(shí)候,也不再需要加入物理WWPN。物理的 WWPN只需要和datastore所使用的那些LUN劃分在一個(gè)zone里,這樣對網(wǎng)絡(luò)拓?fù)涞膭澐指用魑?,網(wǎng)絡(luò)資源的管理也會更加簡單有效。
顯式的HBA虛擬化并不意味著對NPIV的完全替代,實(shí)際上兩者是相輔相成的。每個(gè)虛擬的HBA設(shè)備仍然需要一個(gè)虛擬的WWPN,最簡單有效的方式莫過于直接用NPIV生成并分配給虛擬設(shè)備。虛擬化的方案可以參考網(wǎng)卡的虛擬化。第一種方式可以用軟件模擬(Emulation),適應(yīng)性最好,可以支持任何的物理HBA,缺點(diǎn)是實(shí)現(xiàn)較復(fù)雜且對系統(tǒng)性能影響較大。另外一種方式就是通過SR-IOV(Single-RootI/O Virtualization)技術(shù)實(shí)現(xiàn),需要物理HBA和虛擬機(jī)平臺對SR-IOV的同時(shí)支持。FCHBA對SR-IOV的支持目前雖然還沒有正式的產(chǎn)品出現(xiàn),但已經(jīng)指日可待了:QLogic即將于2012年下半年推出2600系列的HBA,其中就有對SR-IOV的支持。虛擬平臺方面,XEN和KVM 已經(jīng)實(shí)現(xiàn)了對SR-IOV的支持,Hype-V即將在下一版本支持,VMware的計(jì)劃尚不明晰。SR-IOV技術(shù)可以讓一個(gè)物理PCIe設(shè)備對上層軟件提供多個(gè)獨(dú)立的虛擬的PCIe設(shè)備并提供虛擬通道來實(shí)現(xiàn)并發(fā)的訪問,有興趣了解詳細(xì)情況的可以看看——“What is SR-IOV?”
虛擬機(jī)動態(tài)遷移(Live Migration)的新挑戰(zhàn)
最早的虛擬機(jī)動態(tài)遷移通常有以下的一些前提條件(以VMware為例):(1)源ESX和目標(biāo)ESX必須置于同一vCenter管理下;(2)虛擬機(jī)所在的datastore必須是源ESX和目標(biāo)ESX共享的;等等。如果虛擬機(jī)要使用NPIV技術(shù),則必須使用通過RDM方式直接綁定到存儲系統(tǒng)提供的LUN。這種情況下動態(tài)遷移是不是還能成功呢?
事實(shí)上,目前VMware已經(jīng)有條件地提供了支持,只要額外滿足以下條件:(1)源ESX和目標(biāo)ESX上的HBA都支持NPIV;(2)虛擬機(jī)使用了NPIV技術(shù);(3)虛擬機(jī)使用虛擬(非物理)兼容性的RDM;(4)源ESX和目標(biāo)ESX上HBA的物理WWPN和虛擬機(jī)所使用的LUN必須劃分在一個(gè)zone里。如果我們能夠顯式地將HBA虛擬化,那么最后一點(diǎn)條件也可以去掉。
軟件定義的網(wǎng)絡(luò)——存儲交換機(jī)的進(jìn)化
軟件定義的網(wǎng)絡(luò)(Software-definedNetworking,SDN)如今是業(yè)界的一個(gè)新寵兒,其代表性的實(shí)現(xiàn)就是OpenFlow。大家平時(shí)關(guān)注新聞的話,可能聽說過Google最近的一個(gè)大動作——在今年的開放網(wǎng)絡(luò)峰會(OpenNetworking Summit)上宣布在企業(yè)內(nèi)部全面部署OpenFlow。SDN的作用并不僅限于將交換機(jī)的控制模塊和數(shù)據(jù)模塊分離,然后用一個(gè)流控制器進(jìn)行流表的統(tǒng)一管理。更重要的是它提供了一種反饋機(jī)制,即網(wǎng)絡(luò)路徑可以動態(tài)地重新計(jì)算,以避免在某些節(jié)點(diǎn)上出現(xiàn)數(shù)據(jù)擁塞,從而能夠確保卓越的客戶體驗(yàn)和更好的服務(wù)水平協(xié)議。除此之外,SDN還提供了對可編程性的支持,使得安全、優(yōu)化等高級特性的實(shí)現(xiàn)成為可能。存儲交換機(jī)和以太網(wǎng)交換機(jī)的設(shè)計(jì)理念有頗多相似之處,那么SDN/ OpenFlow的思想是否也能夠應(yīng)用于存儲交換機(jī)呢?這個(gè)問題目前目前好像甚少有人關(guān)注,歡迎大家來一起討論。
相關(guān)閱讀:存儲網(wǎng)絡(luò)簡介:LAN與SAN的區(qū)別