鄭霽 郭雯 王軍 王輝 史宇
關(guān)鍵詞:數(shù)據(jù)中心;災(zāi)備中心;VXLAN;虛擬二層網(wǎng)絡(luò)
0 引言
近幾年,隨著云計(jì)算技術(shù)的飛速發(fā)展,高校數(shù)據(jù)中心利用虛擬化等技術(shù)將基礎(chǔ)硬件資源池化,建設(shè)私有云[1],服務(wù)器的整合降低了物理復(fù)雜性,提高了運(yùn)營效率,并且能夠動(dòng)態(tài)地重新調(diào)整基礎(chǔ)資源的用途,使其以最佳方式快速滿足日益動(dòng)態(tài)化的業(yè)務(wù)應(yīng)用需求[2]。各種資源的共享以及更加靈活地調(diào)用資源,使得高校信息化建設(shè)得到了高速發(fā)展,數(shù)據(jù)中心承載的應(yīng)用系統(tǒng)也在快速增長。如何保證系統(tǒng)穩(wěn)定性、業(yè)務(wù)連續(xù)性和數(shù)據(jù)可用性已經(jīng)成為高校信息化建設(shè)必須注意的重要問題[3],考慮到建設(shè)成本和管理成本,目前高校多采用本地?cái)?shù)據(jù)中心和同城災(zāi)備中心模式。其中,數(shù)據(jù)中心負(fù)責(zé)日常數(shù)據(jù)的生產(chǎn)運(yùn)行,承擔(dān)學(xué)校各信息業(yè)務(wù)系統(tǒng);而災(zāi)備中心則為業(yè)務(wù)系統(tǒng)的正常運(yùn)行保駕護(hù)航,是數(shù)據(jù)中心預(yù)防災(zāi)難、減小損失的重要手段。
1 高校數(shù)據(jù)中心現(xiàn)階段面臨的問題和挑戰(zhàn)
1.1 傳統(tǒng)網(wǎng)絡(luò)無法滿足數(shù)據(jù)中心的災(zāi)備要求
數(shù)據(jù)中心網(wǎng)絡(luò)通常采用三層架構(gòu),分別為接入層、匯聚層和核心層。數(shù)據(jù)中心和災(zāi)備中心通過IP網(wǎng)絡(luò)在三層互聯(lián)。在匯聚層內(nèi),可以實(shí)現(xiàn)數(shù)據(jù)中心內(nèi)部業(yè)務(wù)虛擬機(jī)的在線遷移,做到在虛擬機(jī)的遷移過程中業(yè)務(wù)不中斷;或者實(shí)現(xiàn)底層服務(wù)器的高可用性,做到服務(wù)器故障后,虛擬機(jī)能夠立刻漂移重啟。數(shù)據(jù)中心大量使用服務(wù)器虛擬化技術(shù),雖然大幅提升了數(shù)據(jù)中心的計(jì)算密度,但同時(shí)也帶來了因業(yè)務(wù)部署高度集中而產(chǎn)生的風(fēng)險(xiǎn)[4]。面對不同的災(zāi)難以及業(yè)務(wù)系統(tǒng)不同的災(zāi)難恢復(fù)級別需求,具備異地災(zāi)備和異地雙活的能力顯然是數(shù)據(jù)中心目前的迫切要求。
無論是虛擬機(jī)在線遷移至災(zāi)備中心,還是災(zāi)備中心在災(zāi)難后接管業(yè)務(wù),抑或是虛擬機(jī)重啟漂移至災(zāi)備中心,都需要保證虛擬機(jī)遷移前后,其IP地址、MAC地址等參數(shù)維持不變。這就要求虛擬機(jī)的在線遷移或者漂移必須發(fā)生在一個(gè)二層域中。而傳統(tǒng)數(shù)據(jù)中心網(wǎng)絡(luò)的二層域是在一個(gè)匯聚層內(nèi),也就是數(shù)據(jù)中心內(nèi)部,因此將虛擬機(jī)的遷移限制在了一個(gè)局部范圍內(nèi),顯然不能滿足高校數(shù)據(jù)中心的災(zāi)備需求。高校數(shù)據(jù)中心的傳統(tǒng)網(wǎng)絡(luò)拓?fù)淙鐖D1所示。
1.2 傳統(tǒng)網(wǎng)絡(luò)的容量有限
隨著高校各業(yè)務(wù)系統(tǒng)的迅速發(fā)展,一個(gè)數(shù)據(jù)中心會有巨大數(shù)量的虛擬機(jī)需要通信。而容器技術(shù)的快速發(fā)展使得容器應(yīng)用也將被大規(guī)模部署。傳統(tǒng)的VLAN ID是12比特,只能支持212 (4096) 個(gè)網(wǎng)絡(luò)上限,將逐漸滿足不了不斷快速擴(kuò)展的數(shù)據(jù)中心規(guī)模。同時(shí),當(dāng)現(xiàn)有二層網(wǎng)絡(luò)規(guī)模大到一定程度時(shí),共享的二層廣播域帶來的BUM(Broadcast,Unknown Unicast,Multicast) 流量會嚴(yán)重影響正常的網(wǎng)絡(luò)通信。大量虛擬機(jī)的MAC地址、容器的MAC地址也會導(dǎo)致數(shù)據(jù)中心交換機(jī)的MAC地址表日漸龐大,影響轉(zhuǎn)發(fā)效率的同時(shí)也給網(wǎng)絡(luò)的擴(kuò)容帶來不便[5]。
2 基于VXLAN 技術(shù)的高校數(shù)據(jù)中心網(wǎng)絡(luò)設(shè)計(jì)
2.1 VXLAN 技術(shù)
VXLAN(Virtual eXtensible Local Area Network,虛擬擴(kuò)展局域網(wǎng))是一種Overlay(覆蓋網(wǎng)絡(luò))技術(shù),其本質(zhì)是一種隧道封裝技術(shù)[6]。VXLAN 技術(shù)通過建立VXLAN 隧道,可以在傳統(tǒng)的網(wǎng)絡(luò)架構(gòu)上創(chuàng)建大量的虛擬可擴(kuò)展局域網(wǎng),在現(xiàn)有物理基礎(chǔ)架構(gòu)的IP網(wǎng)絡(luò)上創(chuàng)建一個(gè)疊加的靈活邏輯二層,而無須重新設(shè)計(jì)任何數(shù)據(jù)中心網(wǎng)絡(luò)。利用已有的IP 網(wǎng)絡(luò),可以為分別部署在不同地點(diǎn)的數(shù)據(jù)中心提供二層互聯(lián),同時(shí)隔離更多的租戶。將二層報(bào)文用三層協(xié)議進(jìn)行封裝,可實(shí)現(xiàn)將虛擬的二層網(wǎng)絡(luò)在三層范圍內(nèi)進(jìn)行擴(kuò)展,同時(shí)滿足數(shù)據(jù)中心大二層虛擬遷移和多租戶的需求。
虛擬網(wǎng)絡(luò)獨(dú)立于底層IP 網(wǎng)絡(luò)硬件并將物理網(wǎng)絡(luò)視為可以按需使用和調(diào)整用途的傳輸容量池。與傳統(tǒng)架構(gòu)不同的是,無須重新配置底層物理硬件或拓?fù)?,即可通過編程方式置備、更改、存儲、刪除和還原虛擬網(wǎng)絡(luò)。這一革命性的聯(lián)網(wǎng)方式可發(fā)揮軟件定義的數(shù)據(jù)中心的全部潛能。VXLAN虛擬網(wǎng)絡(luò)使得聯(lián)網(wǎng)方式發(fā)生了變革,不僅使數(shù)據(jù)中心管理人員能夠?qū)⒚艚菪院徒?jīng)濟(jì)性提高若干數(shù)量級,而且還能極大地簡化底層物理網(wǎng)絡(luò)的運(yùn)營模式。
VXLAN網(wǎng)絡(luò)是使用“第3 層中的第2 層”隧道實(shí)現(xiàn)的邏輯網(wǎng)絡(luò),將虛擬機(jī)看到的拓?fù)鋸奈锢砭W(wǎng)絡(luò)中解耦出來[7],可以滿足靈活的組網(wǎng)需求。它使用MACin-UDP 進(jìn)行封裝,在原始的二層數(shù)據(jù)幀中添加了VXLAN頭部,并被放置到UDP-IP數(shù)據(jù)包中[8]。由于是利用了通用的UDP 傳輸,因而成熟度極高。VXLAN的報(bào)文封裝如圖2所示。
VXLAN的報(bào)文在原始二層幀之前添加了VXLAN頭部和UDP頭部封裝,完成這兩個(gè)封裝之后,再添加IP頭部和以太網(wǎng)頭部。
VXLAN頭部添加在原始二層幀的前面,64比特(8字節(jié))長度,其中最主要的是VNID(VXLAN網(wǎng)絡(luò)標(biāo)識)占用24個(gè)比特(3字節(jié));UDP頭部是在VXLAN頭部和原始二層幀的前面進(jìn)行封裝,64比特(8字節(jié))長度;IP頭部是VXLAN隧道的本端節(jié)點(diǎn)和對端節(jié)點(diǎn)地址(即VTEP IP) ;以太網(wǎng)頭部是VXLAN隧道的本端節(jié)點(diǎn)和對端節(jié)點(diǎn)的MAC地址。
目標(biāo)宿主主機(jī)接收到VXLAN報(bào)文后,拆除外層UDP頭部,并根據(jù)VXLAN頭部的VNI把原始報(bào)文發(fā)送到目的虛擬機(jī)[9]。
可以看出,利用VXLAN技術(shù)能夠很好地滿足以下需求:
1) 大二層網(wǎng)絡(luò)
當(dāng)VXLAN網(wǎng)絡(luò)中的虛擬機(jī)需要彼此訪問時(shí),就會對原始數(shù)據(jù)包進(jìn)行封裝。報(bào)文添加的IP頭部是底層源宿主主機(jī)和目標(biāo)宿主主機(jī)的端點(diǎn)地址(即VTEPIP) ;報(bào)文添加的以太網(wǎng)頭部則包含上述主機(jī)的MAC地址的二層幀信息。就會在其所屬的VTEP和目標(biāo)虛擬機(jī)所屬的VTEP之間建立一條隧道,該隧道可以穿越其他數(shù)量眾多的交換機(jī)。這樣,將會處于同一個(gè)VXLAN中。因此,輕松打破物理網(wǎng)絡(luò)的局限,讓虛擬機(jī)的遷移、漂移及雙活都可以實(shí)現(xiàn)。
2) 網(wǎng)絡(luò)擴(kuò)展
在VXLAN 的頭部包含有一個(gè)VXLAN 標(biāo)識(即VNI,VXLAN Network Identifier) ,用于區(qū)分VXLAN段。VNI在數(shù)據(jù)報(bào)文之中占24比特,故可支持22(4 大于1600萬)個(gè)VXLAN的同時(shí)存在,遠(yuǎn)多于VLAN的212(4096) 個(gè)網(wǎng)絡(luò)上限。利用VNI可以滿足數(shù)據(jù)中心多用戶的需求,解決各類用戶之間的安全隔離問題,也減少了VLAN ID 在物理網(wǎng)絡(luò)中的使用。邏輯二層也支持將邏輯網(wǎng)絡(luò)空間(VXLAN) 與物理網(wǎng)絡(luò)(VLAN)橋接。
3) 交換機(jī)的MAC地址表維護(hù)
在底層虛擬化主機(jī)部署VXLAN網(wǎng)絡(luò)之后,一個(gè)底層主機(jī)使用一個(gè)VTEP IP,一個(gè)主機(jī)上的所有虛擬機(jī)共用一個(gè)VTEP IP,通過數(shù)據(jù)包的探測和動(dòng)態(tài)學(xué)習(xí),可以讓不同VTEP設(shè)備之間知曉彼此的IP以及其與虛擬機(jī)設(shè)備MAC之間的映射關(guān)系。有了這些映射信息,就可以對VXLAN的數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā)。VXLAN的數(shù)據(jù)包采用MAC-in-UDP 形式,從交換機(jī)的角度來看,只是不同的VTEP之間在傳遞UDP 數(shù)據(jù),并不需要記錄虛擬機(jī)的MAC地址。因此,大量虛擬機(jī)和容器應(yīng)用造成的數(shù)據(jù)中心交換機(jī)MAC 地址表過于龐大、影響轉(zhuǎn)發(fā)效率且維護(hù)困難的問題可以得到解決。
2.2 VXLAN 的相關(guān)概念
1) VTEP (VXLAN Tunnel Endpoints)
VTEP,是VXLAN隧道端點(diǎn),VXLAN隧道的起點(diǎn)和終點(diǎn)。報(bào)文的封裝和解封裝處理均在VTEP上進(jìn)行。VTEP可以是交換機(jī),也可以是物理服務(wù)器。
VXLAN 分段構(gòu)建于VXLAN 隧道端點(diǎn)(VTEP) 之間,VXLAN報(bào)文中源IP地址為隧道一端節(jié)點(diǎn)的VTEP地址,目的IP地址為隧道另一端節(jié)點(diǎn)的VTEP地址,一對VTEP地址就對應(yīng)著一個(gè)VXLAN隧道[10]。VTEP會將虛擬機(jī)發(fā)出的原始報(bào)文封裝成一個(gè)新的UDP報(bào)文,并使用物理網(wǎng)絡(luò)的IP和MAC地址作為外層頭,對網(wǎng)絡(luò)中的其他設(shè)備只表現(xiàn)為封裝后的參數(shù)。從底層主機(jī)發(fā)送到接入設(shè)備的報(bào)文便是經(jīng)過封裝后的報(bào)文。這樣,接入設(shè)備就不需要學(xué)習(xí)虛擬機(jī)的MAC地址,它只需要根據(jù)外層封裝的報(bào)文頭負(fù)責(zé)基本的三層轉(zhuǎn)發(fā)[11]。在高校數(shù)據(jù)中心里,虛擬化的底層主機(jī)就是一個(gè)典型的VTEP 示例。
2) VXLAN 隧道(VXLAN Tunnel)
VXLAN隧道是一個(gè)邏輯上的概念,被封裝的數(shù)據(jù)包在隧道的兩個(gè)端點(diǎn)之間通過IP網(wǎng)絡(luò)(此文章環(huán)境下,為教育專網(wǎng))進(jìn)行路由,被封裝的數(shù)據(jù)包在網(wǎng)絡(luò)上傳遞時(shí)所經(jīng)過的邏輯路徑稱為隧道。
2.3 高校數(shù)據(jù)中心的VXLAN 網(wǎng)絡(luò)建設(shè)思路
根據(jù)高校數(shù)據(jù)中心的現(xiàn)狀和實(shí)際需求,采用成熟的基于VXLAN技術(shù)的產(chǎn)品,按照循序漸進(jìn)的原則來逐步構(gòu)建高校數(shù)據(jù)中心和災(zāi)備中心之間的VXLAN虛擬網(wǎng)絡(luò)。建設(shè)的第一步,是在兩個(gè)中心里選擇部分虛擬化的主機(jī)來部署VXLAN產(chǎn)品,這樣通過實(shí)際運(yùn)行總結(jié)經(jīng)驗(yàn),并根據(jù)具體使用情況修改和調(diào)整,為之后數(shù)據(jù)中心全面部署VXLAN網(wǎng)絡(luò)打下基礎(chǔ),而不是一蹴而就。
新的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)無須修改任何物理基礎(chǔ)架構(gòu),數(shù)據(jù)中心和災(zāi)備中心之間仍然是基于現(xiàn)有的教育網(wǎng)專線在三層互聯(lián),將VXLAN產(chǎn)品部署在虛擬化的底層主機(jī)之上,配置所有隧道的端點(diǎn)地址(即主機(jī)的VTEP IP) ,建立彼此之間的端點(diǎn)通信,形成本地之間、本地和異地之間的隧道,成功構(gòu)建在三層之上的邏輯二層網(wǎng)絡(luò)。從而滿足數(shù)據(jù)中心的多種災(zāi)備需求。圖3是部署了基于VXLAN產(chǎn)品之后的高校數(shù)據(jù)中心的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。
3 測試與驗(yàn)證
在本次測試環(huán)境里,底層主機(jī)選擇合肥工業(yè)大學(xué)數(shù)據(jù)中心和災(zāi)備中心的10臺主機(jī)設(shè)備,虛擬化架構(gòu)未做任何調(diào)整;網(wǎng)絡(luò)環(huán)境是現(xiàn)有教育網(wǎng)專線,未做任何調(diào)整。因?yàn)閷W(xué)校的數(shù)據(jù)中心和災(zāi)備中心使用的虛擬化產(chǎn)品為VMware,所以此次主機(jī)底層使用VMwareESXi 6.7以及VMware的VXLAN產(chǎn)品NSX。
10臺主機(jī)型號、底層虛擬化軟件版本及NSX產(chǎn)品版本如表1所示。其中,華為2288H V5為數(shù)據(jù)中心虛擬化主機(jī),思科UCSB-B200-M5 為災(zāi)備中心虛擬化主機(jī)。
3.1 配置步驟
1) 主機(jī)安裝NSX模塊
在現(xiàn)網(wǎng)環(huán)境下,為數(shù)據(jù)中心和災(zāi)備中心共10臺ESXi主機(jī)逐一安裝NSX內(nèi)核模塊,以構(gòu)建控制層面和管理層面結(jié)構(gòu)。完成安裝后,封裝在安裝文件VIB中的NSX內(nèi)核模塊在管理程序內(nèi)核中運(yùn)行,并提供分布式路由、分布式防火墻等服務(wù)以及VXLAN 橋接功能。此操作可以在NSX控制平面進(jìn)行,或手動(dòng)下載VIB文件安裝。
2) 配置VTEP IP
該實(shí)驗(yàn)環(huán)境里,每臺ESXi主機(jī)就是VXLAN隧道的起點(diǎn)或者終點(diǎn)(即隧道端點(diǎn)VTEP) 。配置VTEP地址,形成了本端和對端的VTEP地址,也即VXLAN隧道的源IP地址和目的IP地址。
主機(jī)的VTEP IP配置如表2所示。其中,host1-host6為數(shù)據(jù)中心的虛擬化主機(jī),host7-host10為災(zāi)備中心的虛擬化主機(jī)。為了安全性,選擇校內(nèi)私有地址為VTEP IP。
3.2 驗(yàn)證VXLAN 隧道建立
完成配置ESXi的VTEP地址(即隧道兩端節(jié)點(diǎn)的IP) ,需要讓任意隧道兩端節(jié)點(diǎn)進(jìn)行通信測試,如果數(shù)據(jù)包可以正常傳輸,則證明隧道成功建立。
測試結(jié)果如圖4所示。從結(jié)果可以看出,本地?cái)?shù)據(jù)中心兩端節(jié)點(diǎn)之間、數(shù)據(jù)中心和災(zāi)備中心的異地兩端節(jié)點(diǎn)之間都可以正常通信,隧道建立成功。
3.3 驗(yàn)證災(zāi)備中心可以接管數(shù)據(jù)中心虛擬機(jī)
如果數(shù)據(jù)中心的虛擬機(jī)遷移至災(zāi)備中心后,保持IP不變且正常提供業(yè)務(wù),說明虛擬機(jī)可以在兩個(gè)中心之間遷移,則證明兩個(gè)中心之間的VXLAN虛擬二層網(wǎng)絡(luò)部署成功,可以實(shí)現(xiàn)讓兩地的虛擬二層網(wǎng)絡(luò)進(jìn)行通信。
1) 驗(yàn)證步驟
通過VMware 災(zāi)備軟件Site Recover Manger 將本地?cái)?shù)據(jù)中心設(shè)置為受保護(hù)站點(diǎn)、異地災(zāi)備中心設(shè)為恢復(fù)站點(diǎn)。
隨機(jī)選擇本地?cái)?shù)據(jù)中心host1-host6上的業(yè)務(wù)虛擬機(jī)A(IP 172.16.10.11,宿主主機(jī)host2) 加入保護(hù)組,允許保護(hù)復(fù)制。
進(jìn)行同步復(fù)制,將虛擬機(jī)A的副本A放置在災(zāi)備中心的host7。
復(fù)制結(jié)束后,將虛擬機(jī)A關(guān)機(jī),并啟動(dòng)災(zāi)備中心的副本A。測試可以正常訪問172.16.10.11(即虛擬機(jī)A) 的業(yè)務(wù)。
2) 驗(yàn)證結(jié)果分析
當(dāng)虛擬機(jī)A在host2上關(guān)閉,再啟動(dòng)host7上的副本A時(shí),host2和host7的VTEP表格會分別更新其與A的MAC之間的映射關(guān)系。當(dāng)有訪問172.16.10.11的請求時(shí),會訪問host7的VTEP IP,查看映射表,繼而轉(zhuǎn)發(fā),達(dá)到訪問目標(biāo)IP(此時(shí)該IP對應(yīng)虛擬機(jī)已變更為副本A) 的目的,而不再是訪問host2的VTEP IP。這樣就實(shí)現(xiàn)了在災(zāi)備中心恢復(fù)的副本A,保持IP不變,業(yè)務(wù)正常。至此,在災(zāi)備中心里運(yùn)行的副本A完全取代了原數(shù)據(jù)中心的虛擬機(jī)A。對用戶來說,不用做任何修改,仍然可以按照之前的方式訪問172.16.10.11的業(yè)務(wù)。
以上測試表明,虛擬機(jī)在兩個(gè)中心之間可以實(shí)現(xiàn)跨地區(qū)的災(zāi)備遷移,災(zāi)備中心成功接管了數(shù)據(jù)中心的虛擬機(jī)。證明VXLAN虛擬二層網(wǎng)絡(luò)可以滿足異地災(zāi)備和異地遷移的要求,實(shí)現(xiàn)了兩地二層虛擬網(wǎng)絡(luò)的互通。
4 結(jié)束語
本文分析了VXLAN虛擬二層網(wǎng)絡(luò)技術(shù)應(yīng)用于高校數(shù)據(jù)中心的必要性,并結(jié)合成熟的網(wǎng)絡(luò)虛擬化產(chǎn)品設(shè)計(jì)了基于VXLAN技術(shù)的網(wǎng)絡(luò)架構(gòu),實(shí)現(xiàn)了完整的構(gòu)建數(shù)據(jù)中心和災(zāi)備中心的虛擬二層組網(wǎng)配置方案,并通過實(shí)驗(yàn)證明了設(shè)計(jì)方案的實(shí)用性和可操作性,也為后續(xù)數(shù)據(jù)中心全面實(shí)施虛擬二層網(wǎng)絡(luò)和實(shí)現(xiàn)異地雙活中心積累了寶貴經(jīng)驗(yàn)。