在云計(jì)算的環(huán)境下,計(jì)算資源、網(wǎng)絡(luò)資源和存儲(chǔ)資源都可以作為業(yè)務(wù)發(fā)放給用戶,從而使得資源共享變得更加靈活和廣泛,減少了用戶的硬件購(gòu)置,升級(jí)維護(hù)等成本終端用戶可以使用各種類型的瘦客戶端,在任何地方接入建立在云計(jì)算上的各類應(yīng)用。理論上來(lái)說(shuō),相對(duì)于應(yīng)用裝在用戶本地終端的傳統(tǒng)方法,云計(jì)算用戶應(yīng)該獲得相同或甚至更好的用戶體驗(yàn)。為了達(dá)到這樣的效果,對(duì)于支撐云計(jì)算的數(shù)據(jù)中心就有了更多新的要求。本文將逐一闡述這些數(shù)據(jù)中心的新特性,并探討為了滿足這些新特性而產(chǎn)生的核心技術(shù)及其演進(jìn)預(yù)期。本文所述的數(shù)據(jù)中心都是指互聯(lián)網(wǎng)數(shù)據(jù)中心fin—ternet data center,idc)類型的數(shù)據(jù)中心。
云計(jì)算為數(shù)據(jù)中心帶來(lái)的新特性
在云計(jì)算場(chǎng)景下,idc的運(yùn)營(yíng)商為各類企業(yè)提供各種服務(wù),包括云計(jì)算的應(yīng)用、網(wǎng)絡(luò)和存儲(chǔ)服務(wù)。
1、服務(wù)器虛擬化和自由遷移
在傳統(tǒng)的非云計(jì)算場(chǎng)景下,物理服務(wù)器通常只被單一租戶的單一業(yè)務(wù)使用,所以單臺(tái)服務(wù)器的利用率會(huì)比較低。隨著業(yè)務(wù)的擴(kuò)展,需要不斷增加服務(wù)器的數(shù)量,這樣會(huì)使得數(shù)據(jù)中心的規(guī)模越來(lái)越龐大。
在云計(jì)算的場(chǎng)景下,由于idc為大量而不是單一的企業(yè)或用戶提供服務(wù),所以業(yè)務(wù)量會(huì)極其龐大??坎煌5卦黾游锢矸?wù)器對(duì)于成本和網(wǎng)絡(luò)規(guī)模來(lái)說(shuō)都難以接受。虛擬化技術(shù)使得一臺(tái)物理服務(wù)器可以被虛擬成多臺(tái)服務(wù)器來(lái)使用,從而利用了原本閑置的資源,提高了服務(wù)器的使用率,所以使用相對(duì)較少的物理服務(wù)器就能滿足idc的業(yè)務(wù)需要。通常對(duì)于多核cpu的服務(wù)器來(lái)說(shuō),可以虛擬成每個(gè)cpu一個(gè)虛擬機(jī)來(lái)使用。對(duì)于某些cpu資源消耗不太大的應(yīng)用,例如vdi(虛擬桌面),甚至一個(gè)cpu可以虛擬成四個(gè)或更多的虛擬機(jī)。當(dāng)然虛擬化還要受到硬盤的每秒i/o數(shù)和內(nèi)存的限制。
除了提高使用率外,虛擬化還使得服務(wù)器自由遷移變成可能。在傳統(tǒng)的數(shù)據(jù)中心,進(jìn)行服務(wù)器的遷移是一項(xiàng)非常浩大的工程。必須事先進(jìn)行規(guī)劃,需要謹(jǐn)慎計(jì)劃割接時(shí)間,做好備份。服務(wù)器需要進(jìn)行斷線斷電,搬移,重新上電上線,通常業(yè)務(wù)會(huì)中斷,所以搬遷服務(wù)器是極少發(fā)生的。而使用了虛擬化技術(shù)以后,虛擬機(jī)的遷移不再涉及到物理上的搬遷。并且可以使用各種技術(shù),例如漸進(jìn)式內(nèi)存復(fù)制等方法使得遷移平滑進(jìn)行,保證了遷移時(shí)用戶不感知,相關(guān)業(yè)務(wù)不中斷,不受影響。自由遷移為數(shù)據(jù)中心的容災(zāi)備份,節(jié)能環(huán)保,網(wǎng)規(guī)網(wǎng)優(yōu)提供了不可替代的便利。虛擬機(jī)的自由遷移滿足了云計(jì)算環(huán)境下用戶隨時(shí)隨地進(jìn)行數(shù)據(jù)接入的需求。
2、支持多租戶
在非云計(jì)算的時(shí)代,通常各個(gè)租戶或者企業(yè)都需要自建數(shù)據(jù)中心或者租用運(yùn)營(yíng)商的硬件和基礎(chǔ)設(shè)施用于自己的服務(wù)計(jì)算和數(shù)據(jù)存儲(chǔ)。在這種情況下,可以理解為租戶自己擁有獨(dú)立的數(shù)據(jù)中心,可以自己進(jìn)行運(yùn)維也可以將運(yùn)維托管給運(yùn)營(yíng)商。在使用了云計(jì)算以后,企業(yè)或者租戶可以向提供云計(jì)算的運(yùn)營(yíng)商租用計(jì)算資源,網(wǎng)絡(luò)資源,存儲(chǔ)資源,而不再是租用硬件和基礎(chǔ)設(shè)施,從而簡(jiǎn)化或完全不需自建及自行運(yùn)維數(shù)據(jù)中心。另外,云計(jì)算運(yùn)營(yíng)商的數(shù)據(jù)中心則會(huì)變得更加的復(fù)雜和龐大。其中的一個(gè)挑戰(zhàn)就是支持多租戶。
支持多租戶主要體現(xiàn)在:
(1)針對(duì)每個(gè)租戶業(yè)務(wù)的快速配置和部署。每個(gè)租戶在云計(jì)算運(yùn)營(yíng)商申購(gòu)的資源需要能夠快速自動(dòng)地在數(shù)據(jù)中心的網(wǎng)絡(luò)中使能,還包括防火墻、ips/ids , loadbalancer等設(shè)備的相應(yīng)配置,做到即插即用
(2)租戶之間的流量隔離。實(shí)際上,由于租戶之間可能共享硬件設(shè)備、帶寬、存儲(chǔ)等資源,為了保證安全,在以二層網(wǎng)絡(luò)為主的數(shù)據(jù)中心,租戶之間的流量需要進(jìn)行隔離,防止租戶甲的流量被租戶乙接收到。傳統(tǒng)的二層網(wǎng)絡(luò)基于vlan(虛擬局域網(wǎng))進(jìn)行流量隔離的方法受限于4096個(gè)的vlan數(shù)量限制。
(3)網(wǎng)絡(luò)配置和與租戶應(yīng)用相關(guān)的配置解藕。
3、無(wú)阻塞網(wǎng)絡(luò)
支持云計(jì)算的數(shù)據(jù)中心吞吐量極大的增加。由于云計(jì)算數(shù)據(jù)中心內(nèi)部資源節(jié)點(diǎn)(服務(wù)器、存儲(chǔ)、數(shù)據(jù)庫(kù)等)之間的訪問(wèn)需求和交互流量相比于傳統(tǒng)數(shù)據(jù)中心都將大大增加,所以云計(jì)算數(shù)據(jù)中心吞吐量會(huì)對(duì)組網(wǎng)技術(shù)提出了嚴(yán)峻挑戰(zhàn)。另外,云計(jì)算數(shù)據(jù)中心經(jīng)常采用分布式計(jì)算。分布式計(jì)算對(duì)數(shù)據(jù)中心的流量模型帶來(lái)了巨大的變化,流量模型從以縱向流量(南北向流量,用戶訪問(wèn)服務(wù)器流量)為主轉(zhuǎn)變?yōu)橐詸M向流量(東西向流量,服務(wù)器之間的流量)為主。
傳統(tǒng)的數(shù)據(jù)中心的網(wǎng)絡(luò)架構(gòu)多是基于樹形的,下行和上行的帶寬有收斂比。這樣就會(huì)造成擁塞。在云計(jì)算數(shù)據(jù)中心,需要構(gòu)建無(wú)阻塞的網(wǎng)絡(luò)來(lái)滿足流量需求。基于胖樹結(jié)構(gòu)的拓?fù)鋵⒈挥糜跇?gòu)建無(wú)阻塞的網(wǎng)絡(luò)。胖樹解決了樹結(jié)構(gòu)根節(jié)點(diǎn)易成為通信瓶頸的問(wèn)題。胖樹結(jié)構(gòu)中,越接近根節(jié)點(diǎn),鏈路的帶寬越大。對(duì)于理想的胖樹結(jié)構(gòu),上層鏈路帶寬應(yīng)為下層鏈路帶寬之和。
使用胖樹結(jié)構(gòu)的數(shù)據(jù)中心網(wǎng)絡(luò)拓?fù)?,要求每臺(tái)邊緣交換機(jī)和所有核心交換機(jī)都建立連接,同時(shí),核心交換機(jī)和每臺(tái)邊緣交換機(jī)之間有且僅有一條鏈路連接。從邊緣交換機(jī)到核心交換機(jī)之間的流量均衡是降低網(wǎng)絡(luò)擁塞的關(guān)鍵。
云計(jì)算數(shù)據(jù)中心的網(wǎng)絡(luò)新技術(shù)
為了滿足前面所述的新需求,一些新的適用于云計(jì)算數(shù)據(jù)中心的網(wǎng)絡(luò)技術(shù)也隨之出現(xiàn)。這些新技術(shù)分別著重解決一個(gè)或多個(gè)問(wèn)題。作為云計(jì)算數(shù)據(jù)中心的整體解決方案,很多技術(shù)需要聯(lián)合使用。這些新技術(shù)有些還處于研究或者優(yōu)化的階段,隨著業(yè)界對(duì)于云計(jì)算數(shù)據(jù)中心理解的加深以及商業(yè)模式或應(yīng)用的拓展,可以預(yù)見更多的技術(shù)或者優(yōu)化將會(huì)被提出及使用。
1、虛擬感知
當(dāng)越來(lái)越多的服務(wù)器可以支持虛擬化以后,接入層的概念不再僅針對(duì)物理端口,而是延伸到服務(wù)器內(nèi)部,為不同虛擬機(jī)之間的流量交換提供服務(wù),將虛擬機(jī)同網(wǎng)絡(luò)端口關(guān)聯(lián)起來(lái)。虛擬機(jī)之間的數(shù)據(jù)交換通常由虛擬交換機(jī)來(lái)完成,但內(nèi)置在虛擬化平臺(tái)上的軟件虛擬交換機(jī)(vswitch)無(wú)法被網(wǎng)絡(luò)設(shè)備感知,甚至也不由網(wǎng)絡(luò)管理員管理。所以這種使用網(wǎng)絡(luò)不感知的虛擬交換機(jī)的方法無(wú)法實(shí)現(xiàn)虛擬機(jī)之間通信的流量監(jiān)管、虛擬交換機(jī)端口策略等功能。支持一或多個(gè)虛擬機(jī)附著的端站稱為evb,每個(gè)虛擬機(jī)有至少一個(gè)虛擬機(jī)接口vsi,每個(gè)虛擬機(jī)可以和其他虛擬機(jī)通信,或者通過(guò)邊界中繼er和橋接lan上的其他虛擬機(jī)通信。傳統(tǒng)的虛擬交換機(jī)在內(nèi)部對(duì)于同一個(gè)物理服務(wù)器的不同vm直接可以直接進(jìn)行流量轉(zhuǎn)發(fā),這種方式被成為veb (virtual edgebridging,虛擬邊緣橋接)。除了veb之外,一種新的方式vepa(virtual ethernet port aggregator,虛擬以太端口匯聚)也被制訂。vepa的核心思想是,將虛擬機(jī)產(chǎn)生的網(wǎng)絡(luò)流量全部交由與服務(wù)器相連的物理交換機(jī)進(jìn)行處理,即使同一臺(tái)服務(wù)器的虛擬機(jī)間流量,也發(fā)往外部物理交換機(jī)進(jìn)行轉(zhuǎn)發(fā)處理。
vepa的目標(biāo)是要將虛擬機(jī)之間的交換行為從服務(wù)器內(nèi)部移出到上聯(lián)交換機(jī)上,當(dāng)兩個(gè)處于同一服務(wù)器內(nèi)的虛擬機(jī)要交換數(shù)據(jù)時(shí),從虛擬機(jī)a出來(lái)的數(shù)據(jù)幀首先會(huì)經(jīng)過(guò)服務(wù)器網(wǎng)卡送往上聯(lián)交換機(jī),上聯(lián)交換機(jī)通過(guò)查看幀頭中帶的mac地址(虛擬機(jī)mac地址)發(fā)現(xiàn)目的主機(jī)在同一臺(tái)物理服務(wù)器中,因此又將這個(gè)幀送回原服務(wù)器,完成尋址轉(zhuǎn)發(fā)。整個(gè)數(shù)據(jù)流經(jīng)歷了一次回環(huán)((hairpin),而這在傳統(tǒng)的交換設(shè)備上是不被允許的。
evb標(biāo)準(zhǔn)還定義了“多通道技術(shù)(multichannel)”,可以使得veb和vepa同時(shí)存在于一臺(tái)物理服務(wù)器,一個(gè)veb或vepa可以對(duì)應(yīng)一個(gè)通道,這樣為數(shù)據(jù)識(shí)別和流量管理,以及網(wǎng)絡(luò)配置都提供了便利。
為了支持上述功能的實(shí)現(xiàn),相應(yīng)的虛擬感知和發(fā)現(xiàn)協(xié)議也同時(shí)被定義。當(dāng)一個(gè)虛擬機(jī)上線的時(shí)候,它需要通過(guò)vdp(虛擬機(jī)發(fā)現(xiàn)協(xié)議)來(lái)和相鄰的物理交換機(jī)進(jìn)行通告和配置信息交換。這樣臨近的物理交換機(jī)上可以感知到虛擬機(jī)的上線,并對(duì)于網(wǎng)絡(luò)策略或參數(shù)進(jìn)行下發(fā)和配置。
除了ieee 802.1qbg以外,還有其他的一些機(jī)制和協(xié)議也用于虛擬感知和發(fā)現(xiàn),例如ieee802.1br所描述的端口擴(kuò)展技術(shù)??梢园烟摂M端口統(tǒng)一映射到控制橋上,進(jìn)行更集中的管理、配置和維護(hù)。
2、租戶overlay網(wǎng)絡(luò)
為了使得云計(jì)算數(shù)據(jù)中心可以支持大量的租戶,租戶overlay網(wǎng)絡(luò)的概念被提了出來(lái)。不同的租戶之間流量隔離,且租戶的數(shù)量遠(yuǎn)遠(yuǎn)大于傳統(tǒng)12比特vlanid能提供的40%的租戶數(shù)。在ip層之上提供一層overlay網(wǎng)絡(luò),使用特殊格式的封裝即特殊的overlay的報(bào)頭來(lái)區(qū)分不同的租戶。封裝格式可以是多種多樣的,例如vxlan或者nvgre的方式。無(wú)論overlay的封裝格式是怎樣,它的核心思想都是映射加封裝。
某租戶的vm1發(fā)送報(bào)文給同一租戶的vm2的時(shí)候,邊緣入口節(jié)點(diǎn)s1將來(lái)自于租戶源vm1的報(bào)文目的地址(即vm2的地址)映射為傳送報(bào)文的隧道的出口節(jié)點(diǎn)地址(即s2的地址)。人口節(jié)點(diǎn)s1將原始報(bào)文進(jìn)行封裝通過(guò)隧道傳遞后,出口節(jié)點(diǎn)s2將封裝剝除,恢復(fù)出原始報(bào)文并傳遞給最終的目的vm2o這個(gè)流程里面主要涉及兩個(gè)問(wèn)題,一是封裝格式,二是控制平面對(duì)于映射的管理。封裝格式前面已說(shuō)過(guò),可以是多種多樣。而控制平面的對(duì)于映射和隧道的管理,則需要有比較統(tǒng)一的方法。理論上來(lái)說(shuō),可以分兩類,自發(fā)學(xué)習(xí)或通過(guò)控制信令。
自發(fā)學(xué)習(xí)的方法適用于比較小型的數(shù)據(jù)中心,類似于傳統(tǒng)的2層地址學(xué)習(xí)。節(jié)點(diǎn)對(duì)接收到的報(bào)文進(jìn)行內(nèi)外層地址的對(duì)應(yīng)關(guān)系學(xué)習(xí)。自發(fā)學(xué)習(xí)的方法比較簡(jiǎn)單,但是通過(guò)控制信令的方式擴(kuò)展性更好,更適用于大型的數(shù)據(jù)中心。隧道的端點(diǎn)需要通過(guò)控制信令來(lái)對(duì)注冊(cè)和解注冊(cè)相應(yīng)的地址對(duì)應(yīng)關(guān)系。vm在上線的時(shí)候它的地址和隧道的映射關(guān)系將被注冊(cè),在遷移的時(shí)候注冊(cè)關(guān)系將被更新,在下線的時(shí)候注冊(cè)關(guān)系將被刪除。
租戶overlay的方法可以使得網(wǎng)絡(luò)本身對(duì)于租戶內(nèi)部的地址管理透明,策略可以根據(jù)租戶來(lái)下發(fā)。租戶的流量隔離將會(huì)在邊緣節(jié)點(diǎn)基于租戶id來(lái)實(shí)現(xiàn),突破了傳統(tǒng)的使用二層以太網(wǎng)vlan來(lái)隔離的租戶數(shù)目限制。