數(shù)據(jù)中心的虛擬接入是新一代數(shù)據(jù)中心的重點(diǎn)課題,各方已經(jīng)爭奪的如火如荼。目前網(wǎng)絡(luò)上的中文資料還不多,根據(jù)自己的經(jīng)驗(yàn)寫了一點(diǎn)對虛擬接入的理解,意在丟磚,引出真正的大佬。
一、為什么虛擬化數(shù)據(jù)中心需要一臺新的交換機(jī)
隨著虛擬化技術(shù)的成熟和x86 CPU性能的發(fā)展,越來越多的數(shù)據(jù)中心開始向虛擬化轉(zhuǎn)型。虛擬化架構(gòu)能夠在以下幾方面對傳統(tǒng)數(shù)據(jù)中心進(jìn)行優(yōu)化:
◇ 提高物理服務(wù)器CPU利用率;
◇ 提高數(shù)據(jù)中心能耗效率;
◇ 提高數(shù)據(jù)中心高可用性;
◇ 加快業(yè)務(wù)的部署速度
正是由于這些不可替代的優(yōu)點(diǎn),虛擬化技術(shù)正成為數(shù)據(jù)中心未來發(fā)展的方向。然而一個問題的解決,往往伴隨著另一些問題的誕生,數(shù)據(jù)網(wǎng)絡(luò)便是其中之一。隨著越來越多的服務(wù)器被改造成虛擬化平臺,數(shù)據(jù)中心內(nèi)部的物理網(wǎng)口越來越少,以往十臺數(shù)據(jù)庫系統(tǒng)就需要十個以太網(wǎng)口,而現(xiàn)在,這十個系統(tǒng)可能是駐留在一臺物理服務(wù)器內(nèi)的十個虛擬機(jī),共享一條上聯(lián)網(wǎng)線。
這種模式顯然是不合適的,多個虛擬機(jī)收發(fā)的數(shù)據(jù)全部擠在一個出口上,單個操作系統(tǒng)和網(wǎng)絡(luò)端口之間不再是一一對應(yīng)的關(guān)系,從網(wǎng)管人員的角度來說,原來針對端口的策略都無法部署,增加了管理的復(fù)雜程度。
其次,目前的主流虛擬平臺上,都沒有獨(dú)立網(wǎng)管界面,一旦出現(xiàn)問題網(wǎng)管人員與服務(wù)器維護(hù)人員又要陷入無止盡的扯皮中。當(dāng)初虛擬化技術(shù)推行的一大障礙就是責(zé)任界定不清晰,現(xiàn)在這個問題再次阻礙了虛擬化的進(jìn)一步普及。
接入層的概念不再僅僅針對物理端口,而是延伸到服務(wù)器內(nèi)部,為不同虛擬機(jī)之間的流量交換提供服務(wù),將虛擬機(jī)同網(wǎng)絡(luò)端口重新關(guān)聯(lián)起來。
二、僅僅在服務(wù)器內(nèi)部實(shí)現(xiàn)簡單交換是不能的
既然虛擬機(jī)需要完整的數(shù)據(jù)網(wǎng)絡(luò)服務(wù),為什么在軟件里不加上呢?
沒錯,很多人已經(jīng)為此做了很多工作。作為X86平臺虛擬化的領(lǐng)導(dǎo)廠商,VMWare早已經(jīng)在其vsphere平臺內(nèi)置了虛擬交換機(jī)vswitch,甚至更進(jìn)一步,實(shí)現(xiàn)了分布式虛擬交互機(jī)VDS(vnetwork distributed switch),為一個數(shù)據(jù)中心內(nèi)提供一個統(tǒng)一的網(wǎng)絡(luò)接入平臺,當(dāng)虛擬機(jī)發(fā)生vmotion時,所有端口上的策略都將隨著虛擬機(jī)移動。
VMWare干得貌似不錯,實(shí)際上在當(dāng)下大多數(shù)情況下也能夠滿足要求了。但如果談到大規(guī)模數(shù)據(jù)中心精細(xì)化管理,內(nèi)置在虛擬化平臺上的軟件交換機(jī)還有很多問題沒有解決。首先,目前的vswitch至多只是一個簡單的二層交換機(jī),沒有QoS、沒有二層安全策略、沒有流量鏡像,不是說VMWare沒有能力實(shí)現(xiàn)這些功能,但一直以來這些功能好像都被忽略了;其次,網(wǎng)管人員仍然沒有獨(dú)立的管理介面,同一臺物理服務(wù)器上不同虛機(jī)的流量在離開服務(wù)器網(wǎng)卡后仍然混雜在一起,對于上聯(lián)交換機(jī)來說,多個虛擬機(jī)的流量仍然共存在一個端口上。
虛擬平臺上的軟件交換機(jī)雖然能夠提供基本的二層服務(wù),但是由于這個交換機(jī)的管理范圍被限制在物理服務(wù)器網(wǎng)卡之下,它沒法在整個數(shù)據(jù)中心提供針對虛擬機(jī)的端到端服務(wù),只有一個整合了虛擬化軟件、物理服務(wù)器網(wǎng)卡和上聯(lián)交換機(jī)的解決方案才能徹底解決所有的問題。
這個方案涉及范圍如此之廣,決定這又是一個只有業(yè)界大佬才能參與的游戲。
#p#副標(biāo)題#e#
三、誰在開發(fā)新型交換機(jī)?
HP,Cisco。
一個是PC服務(wù)器王者,近年開始在網(wǎng)絡(luò)領(lǐng)域攻城略地,勢頭異常兇猛;一個是網(wǎng)絡(luò)大佬,借著虛擬化浪潮推出服務(wù)器產(chǎn)品,頑強(qiáng)地?cái)D進(jìn)這片紅海。
針對前文所說的問題,兩家拋出了各自的解決方案,目的都是重整虛擬服務(wù)器同數(shù)據(jù)網(wǎng)絡(luò)之間那條薄弱的管道,將以往交換機(jī)上強(qiáng)大的功能延伸進(jìn)虛擬化的世界,從而掌握下一代數(shù)據(jù)中心網(wǎng)絡(luò)的話語權(quán)。
Cisco和VN-TAG
虛擬化平臺軟件如VMWare ESX部署之后,會模擬出一整套硬件資源,包括CPU、硬盤、顯卡,以及網(wǎng)卡,虛擬機(jī)運(yùn)行在物理服務(wù)器的內(nèi)存中,通過這個模擬網(wǎng)卡對外交換數(shù)據(jù),實(shí)際上這個網(wǎng)卡并不存在,我們將其定義為一個虛擬網(wǎng)絡(luò)接口VIF(Virtual Interface)。VN-tag是由Cisco和VMWare共同提出的一項(xiàng)標(biāo)準(zhǔn),其核心思想是在標(biāo)準(zhǔn)以太網(wǎng)幀中增加一段專用的標(biāo)記—VN-Tag,用以區(qū)分不同的VIF,從而識別特定虛擬機(jī)的流量。
VN-Tag添加在目的和源MAC地址之后,在這個標(biāo)簽中定義了一種新的地址類型,用以表示一個虛擬機(jī)的VIF,每個虛擬機(jī)的VIF是唯一的。一個以太幀的VN-Tag中包含一對這樣新地址dvif_id和svif_id,用以表示這個幀從何而來,到何處去。當(dāng)數(shù)據(jù)幀從虛擬機(jī)流出后,就被加上一個VN-Tag標(biāo)簽,當(dāng)多個虛擬機(jī)共用一條物理上聯(lián)鏈路的時候,基于VN-Tag的源地址dvif_id就能區(qū)分不同的流量,形成對應(yīng)的虛擬通道,類似傳統(tǒng)網(wǎng)絡(luò)中在一條Trunk鏈路中承載多條VLAN。只要物理服務(wù)器的上聯(lián)交換機(jī)能夠識別VN-Tag,就能夠在交換機(jī)中直接看到不同的VIF,這一下就把對虛擬機(jī)網(wǎng)絡(luò)管理的范圍從服務(wù)器內(nèi)部轉(zhuǎn)移到上聯(lián)網(wǎng)絡(luò)設(shè)備上。
思科針對VN-Tag推出了名為Palo的虛擬服務(wù)器網(wǎng)卡,Palo卡為不同的虛擬機(jī)分配并打上VN-Tag標(biāo)簽,上聯(lián)交換機(jī)與服務(wù)器之間雖然只有一條網(wǎng)線,但通過VN-Tag上聯(lián)交換機(jī)能區(qū)分不同虛擬機(jī)產(chǎn)生的流量,并在物理交換機(jī)上生成對應(yīng)的虛擬接口VEth,和虛擬機(jī)的VIF一一對應(yīng),好像把虛擬機(jī)的VIF和物理交換機(jī)的VEth直接對接起來,全部交換工作都在上聯(lián)交換機(jī)上進(jìn)行,即使是同一個物理服務(wù)器內(nèi)部的不同虛擬機(jī)之間的流量交換,也通過上聯(lián)交換機(jī)轉(zhuǎn)發(fā)。這樣的做法雖然增加了網(wǎng)卡I/O,但通過VN-Tag,將網(wǎng)絡(luò)的工作重新交回到網(wǎng)絡(luò)設(shè)備。而且,考慮到萬兆接入的普及,服務(wù)器的對外網(wǎng)絡(luò)帶寬不再是瓶頸,此外,利用Cisco Nexus 2000這種遠(yuǎn)端板卡設(shè)備,網(wǎng)管人員還能夠直接在一個界面中管理數(shù)百臺虛擬機(jī),每個虛擬機(jī)就好象在傳統(tǒng)的接入環(huán)境中一樣,直接連接到一個交換機(jī)網(wǎng)絡(luò)端口。
目前,思科推出的UCS服務(wù)器已經(jīng)能夠支持VN-tag,當(dāng)Palo卡正確安裝之后,會對上層操作系統(tǒng)虛擬出多個虛擬通道,每個通道對應(yīng)一個VIF,在VMWare EXS/ESXi軟件中可以將虛擬機(jī)繞過vswitch,直接連接到這些通道上,而在UCS管理界面上則能夠看到對應(yīng)的虛擬機(jī),使網(wǎng)管人員能夠直接對這些端口進(jìn)行操作。
Cisco同VMWare已經(jīng)將向IEEE提出基于VN-Tag的802.1Qbh草案,作為下一代數(shù)據(jù)中心虛擬接入的基礎(chǔ)。
HP和VEPA
Cisco提出的VN-Tag,在IT業(yè)界引起的震動遠(yuǎn)遠(yuǎn)大于在客戶那得到的關(guān)注,如果802.1Qbh成為唯一的標(biāo)準(zhǔn),Cisco等于再一次制定了游戲規(guī)則,那些剛剛在交換機(jī)市場上屯下重兵的廠商,在未來數(shù)據(jù)中心市場上將追趕得異常痛苦。此外,VN-Tag是交換機(jī)加網(wǎng)卡的一攬子方案,還能夠幫助Cisco快速切入服務(wù)器市場,對其他人來說是要多不爽有多不爽。
很容易猜到,這其中最不爽的就是HP,在交換機(jī)和服務(wù)器領(lǐng)域跟Cisco明刀明槍地干上之后,被這樣擺上一道,換誰也不可能無動于衷。HP的應(yīng)對很直接,推出一個類似的方案,替代VN-Tag。
HP的辦法稱為VEPA(Virtual Ethernet Port Aggregator),其目的是在部署了虛擬化環(huán)境的服務(wù)器上實(shí)現(xiàn)同VN-tag類似的效果,但VEPA采取了一條截然不同的思路來搭建整個方案。
簡單來說,VEPA的核心機(jī)制就是兩條:修改生成樹協(xié)議、重用Q-in-Q。
VEPA的目標(biāo)也是要將虛擬機(jī)之間的交換行為從服務(wù)器內(nèi)部移出到上聯(lián)交換機(jī)上,當(dāng)兩個處于同一服務(wù)器內(nèi)的虛擬機(jī)要交換數(shù)據(jù)時,從虛擬機(jī)A出來的數(shù)據(jù)幀首先會經(jīng)過服務(wù)器網(wǎng)卡送往上聯(lián)交換機(jī),上聯(lián)交換機(jī)通過查看幀頭中帶的MAC地址(虛擬機(jī)MAC地址)發(fā)現(xiàn)目的主機(jī)在同一臺物理服務(wù)器中,因此又將這個幀送回原服務(wù)器,完成尋址轉(zhuǎn)發(fā)。整個數(shù)據(jù)流好象一個發(fā)卡一樣在上聯(lián)交換機(jī)上繞了一圈,因此這個行為又稱作“發(fā)卡彎”。
雖然“發(fā)卡彎”實(shí)現(xiàn)了對虛擬機(jī)的數(shù)據(jù)轉(zhuǎn)發(fā),但這個行為違反了生成樹協(xié)議的一項(xiàng)重要原則,即數(shù)據(jù)幀不能發(fā)往收到這個幀的端口,而目前虛擬接入環(huán)境基本是一個大二層,因此,在接入層,不可能使用路由來實(shí)現(xiàn)這個功能,這就造成了VEPA的機(jī)制與生成樹協(xié)議之間的矛盾。
但是VEPA沒有vPC,在接入層還是要跑生成樹。HP的辦法就是重寫生成樹協(xié)議,或者說在下聯(lián)端口上強(qiáng)制進(jìn)行反射數(shù)據(jù)幀的行為(Reflective Relay)。這個方式看似粗暴,但一勞永逸地解決了生成樹協(xié)議和VEPA機(jī)制的沖突,只要考慮周全,不失為一步妙棋。
除了將虛擬機(jī)的數(shù)據(jù)交換轉(zhuǎn)移到物理服務(wù)器上之外,VN-Tag還做了一項(xiàng)重要的工作,就是通過dvif_id和svif_id這對新定義的地址對不同虛機(jī)流量進(jìn)行區(qū)分。HP在這里的搞法同樣簡單直接,VEPA使用Q-in-Q在基本的802.1q標(biāo)記外增加了一層表示不同虛擬機(jī)的定義,這樣在VLAN之外,VEPA還能夠通過Q-in-Q區(qū)分不同的虛擬機(jī),只要服務(wù)器網(wǎng)卡能夠給數(shù)據(jù)幀打上Q-in-Q標(biāo)記,上聯(lián)交換機(jī)能夠處理Q-in-Q幀,基本就可以將不同的虛擬機(jī)流量區(qū)分開來,并進(jìn)行處理。
至此,VEPA看起來已近能夠?qū)崿F(xiàn)同VN-Tag類似的功能,因此HP也將VEPA形成草案,作為802.1Qbg的基礎(chǔ)提交至IEEE。不得不說,VEPA是個非常聰明的設(shè)計(jì),不管是對生成樹行為的修改,還是利用Q-in-Q都不是什么不得了的創(chuàng)新,目前的交換機(jī)廠商只要把軟件稍微改改,就能夠快速推出支持802.1Qbg的產(chǎn)品,重新搭上數(shù)據(jù)中心這班快車,追上之前被Cisco甩下的距離。
VN-Tag和VEPA
自從Cisco祭出VN-Tag大旗后,各種爭議就沒停過,直到HP推出VEPA,這場口水仗達(dá)到高潮,隨著2011年,802.1Qbh和802.1Qbg標(biāo)準(zhǔn)化進(jìn)程的加快,圍繞虛擬接入下一代標(biāo)準(zhǔn)的爭奪將進(jìn)入一個新的階段。
這也不難理解,隨著數(shù)據(jù)中心內(nèi)虛擬機(jī)數(shù)量的不斷增加,越來越多的物理網(wǎng)口轉(zhuǎn)化為虛擬的VIF,如果一家網(wǎng)絡(luò)廠商沒法提供相應(yīng)的接入解決方案,它的餅會越來越小,活得非常難受。
VN-Tag就是Cisco試圖一統(tǒng)下一個十年數(shù)據(jù)中心的努力,HP雖然同思科正面開戰(zhàn)時間不長,但從VEPA來看,其手法相當(dāng)老辣。由于VEPA沒有對以太網(wǎng)數(shù)據(jù)結(jié)構(gòu)提出任何修改,實(shí)現(xiàn)成本非常低,以往被思科掃到大門之外的廠商,一下子見到了曙光,前仆后繼地投靠過來,Juniper、IBM、Qlogic、Brocade等等都毫不掩飾對VEPA的期待,Extreme甚至表示,已近著手修改OS以保證對VEPA的支持。待各方站隊(duì)結(jié)束,大家發(fā)現(xiàn)Cisco雖然有強(qiáng)大的盟友VMWare,但另外一邊幾乎集結(jié)了當(dāng)今網(wǎng)絡(luò)界的所有主流廠商,輿論也逐漸重視VEPA的優(yōu)點(diǎn),甚至Cisco自己也不得不松嘴說會考慮對802.1Qbg的支持。
戲演到這里,很多人幸災(zāi)樂禍地等著看Cisco怎么低頭。但有一個問題,VEPA這么完美,為啥Cisco之前沒有采用類似的思路?僅僅為構(gòu)建一個封閉的體系架構(gòu)嗎?我認(rèn)為不是。
回答這個問題前,我們首先要弄清楚另一個問題。以VMWare ESX/ESXi為例,由于ESX/ESXi自帶的vswitch只是模擬了一臺二層交換機(jī),當(dāng)一臺物理服務(wù)器上兩個處于不同VLAN的虛擬機(jī)之間需要交換數(shù)據(jù)時,vswitch是無能為力的。只能將數(shù)據(jù)送到上聯(lián)物理交換機(jī)上,由物理交換機(jī)完成VLAN間的三層轉(zhuǎn)發(fā)。聽起來是不是很熟悉?這和之前提到的VN-Tag與VEPA的機(jī)制很相似,如果現(xiàn)有的虛擬化環(huán)境已經(jīng)能夠?qū)?shù)據(jù)交換的行為轉(zhuǎn)移到上聯(lián)交換機(jī),為啥還要大費(fèi)周折地提出一個新標(biāo)準(zhǔn)呢?
這是因?yàn)椋?dāng)下的這種方案是利用VLAN來隔離不同虛擬機(jī),通過TRUNK將對應(yīng)多個虛擬機(jī)的VLAN送到物理交換機(jī)上。這種方式打破了數(shù)據(jù)中心內(nèi)對VLAN的使用慣例,比如,網(wǎng)管人員通常會把負(fù)責(zé)同一業(yè)務(wù)的多臺服務(wù)器放在一個VLAN內(nèi),如果VLAN標(biāo)簽都被用來隔離虛擬機(jī)了,則沒法按照傳統(tǒng)方式來區(qū)分不同業(yè)務(wù),解決了一個問題,帶來另外的問題,這是絕對行不通的。
現(xiàn)在,我們可以回答之前的問題了,新一代的虛擬接入方案是要在不影響802.1Q等原有網(wǎng)絡(luò)行為的前提下,完成對虛擬機(jī)的接入、區(qū)分和管理。有人會說,用PVLAN不可以嗎?但我們怎么保證PVLAN沒有其他的用處呢?出于這樣的思路,Cisco沒有利用現(xiàn)有的任何技術(shù),提出了一個全新的實(shí)現(xiàn)方案,正因?yàn)閂N-Tag從出生起就“干干凈凈”,同誰都沒有瓜葛,因此VN-Tag攜帶的信息就能夠在整個數(shù)據(jù)中心內(nèi)自由的傳遞,從而快速為用戶搭建起一個清晰、完整的虛擬接入平臺,所謂“磨刀不誤砍柴工”。
HP充分利用了現(xiàn)有條件,VEPA的整個架構(gòu)看上去簡潔、高效,但是對生成樹協(xié)議改動和利用Q-in-Q無疑會影響到現(xiàn)網(wǎng)的行為。生成樹協(xié)議的效率和問題一直是個老大難,但無數(shù)聰明絕頂?shù)母呤肿聊チ诉@么多年,協(xié)議的變動仍然不大,說明對這種基本協(xié)議的修改不是一蹴而就的,往往遷一發(fā)而動全局,現(xiàn)有的模式是各方協(xié)調(diào)、妥協(xié)的結(jié)果。VEPA要在短時間內(nèi)拿出一個完美的方案,所需花費(fèi)的精力也許并不比重新提一套方案少。
除了協(xié)議本身之外,擺在HP和VEPA面前還有兩個難題,首當(dāng)其沖就是VMWare的支持。VEPA雖然對交換機(jī)硬件改動不大,但要真正跑起來,還需要虛擬化平臺軟件的支持,虛擬網(wǎng)卡和虛擬交換機(jī)得主動把所有數(shù)據(jù)幀扔到上聯(lián)交換機(jī)上,后面的故事才能續(xù)上。可是VMWare還是Cisco在VN-Tag上最大的盟友,雖然Cisco已經(jīng)表示會支持802.1Qbg,但會有多及時就難說了。
時間也就是VEPA的第二個困難。目前,思科的UCS服務(wù)器已經(jīng)能夠提供端到端的VN-Tag部署。而HP的Virtual Connect解決方案僅實(shí)現(xiàn)了Q-in-Q的多鏈路,對“發(fā)夾彎”的支持并不好,也沒有VMWare的支持,說白了,VEPA還只是圖紙上的設(shè)計(jì),沒有實(shí)際產(chǎn)品支撐。此外,虛擬接入只是下一代數(shù)據(jù)中心組成之一,F(xiàn)CoE、THRILL等都非常重要,針對這些技術(shù),HP仍拿不出成型的產(chǎn)品,相反,Cisco在所有領(lǐng)域幾乎都布局完畢,留給HP的時間不多了。
這場針對數(shù)據(jù)中心接入的爭奪,在2011年必將愈演愈烈,Cisco攜全線產(chǎn)品勢在必得,而HP的VEPA評價聰明的設(shè)計(jì),得到業(yè)界廣泛支持,故事結(jié)局如何,還待靜觀其變。
原文鏈接:http://virtual.51cto.com/art/201103/248753.htm