羅 萱,葉 通,金耀輝,
(1.上海交通大學網絡信息中心 上海200240;2.上海交通大學區域光纖通信網與新型光通信系統國家重點實驗室 上海200240)
云計算是一種起源于互聯網的計算服務,可以按照需求通過網絡將共享的軟硬件資源和信息提供給使用者。云計算可以分為3個層面:SaaS(software as a service,軟件即服務)、PaaS(platform as a service,平臺即服務)和IaaS(infrastructure as a service,基礎設施即服務)。從最基本的層面,IaaS通過虛擬化技術以共享資源池的形式為用戶提供計算、存儲和網絡等IT資源,用戶可以部署、控制和運行操作系統及應用軟件,并只需按照實際使用量付費,極大地降低了建設和運營成本。同時,云計算提高了IT業務的靈活性和敏捷性,能夠對大規模的服務器資源進行靈活的調配,快速地支持大量的并發請求或作業。國外很多公司已經將自己的業務遷移到云計算平臺之上,新興的互聯網公司通常選擇將業務放在Amazon或Rackspace等提供的公有云上,如NetFlix、Dropbox等;而傳統的大型公司如AT&T、思科等則選擇在自己的數據中心建設私有云。
云計算的快速發展,伴隨著移動互聯網和大數據的發展,對數據中心網絡提出了更高的要求。
業務的增長導致帶寬的需求持續增加。云計算業務、多媒體業務以及移動設備的普及使得人們對數據的消費加速增長。舉例而言,NetFlix作為美國最大的網絡視頻服務提供商,其業務流量已經達到全美國流量的30%,其用戶仍在快速增長。Amazon提供的S3(simple storage server)云存儲服務以及Dropbox提供的云存儲服務在近幾年來一直維持了指數增長。根據2012年6月的統計數字,Amazon S3已經存儲了1萬億對象(每個對象的容量上限為1 TB)。這樣的增長對互聯網的帶寬提出了很高的要求。同時,它對數據中心網絡的帶寬要求更為強烈。其原因在于數據中心中不僅要處理前端用戶對這些海量數據的訪問,也要進行后端程序對此類數據的處理、索引、同步和備份等操作。
數據中心需要能夠同時支持多個租戶。出于數據隔離和隱私保障的需求,租戶申請的資源,包括計算、存儲和網絡,應該與其他租戶的資源隔離開,以保護租戶的數據在任何地方都不被泄漏。在云計算環境中,租戶的隔離通常采用虛擬化技術,對應在網絡中就是網絡虛擬化。數據中心為每個租戶或業務分配一個虛擬網絡,租戶在虛擬網絡內可以獨享自己定制的網絡資源,而不關心物理網絡的細節。虛擬網絡之間的相互訪問需要通過租戶定制的策略許可。對于大型的數據中心,其服務的租戶數量也非常大,例如Amazon數據中心在全球范圍內已擁有數十萬計的企業租戶,并且還在不斷增長。根據數據中心運營商Digital Realty的統計,近幾年租用數據中心的企業數量按每年7%增長,這要求網絡虛擬化技術具有一定的可擴展性。
租戶的業務呈現多樣性。不同的業務對于網絡的服務質量要求是不一樣的,這些需求包括分組丟失率、傳輸時延、可靠性等。例如,金融業務對實時性、可靠性要求就非常嚴格,股票交易時間搶點可能會導致租戶收益的顯著差別;相反,電子郵件業務則可忍受較高的傳輸時延和秒級以上的系統故障。當租戶提出不同的需求時,網絡需要能夠自動、迅速地給出資源分配方案。
此外,數據中心業務的動態性呈現出急劇增長。云計算的一大特性就是能夠動態地為用戶提供彈性服務,在很短的時間內提供大量資源。很多業務需要端到端的大容量通道進行數據傳輸與備份,而其特殊性在于此類通道的需求具有突發性,而且并不會持續很長時間。一個典型的例子是MapReduce,shuffle過程中需要的帶寬遠大于其他過程中需要的帶寬,并且通常不會持續太久。移動設備的普及也對網絡的動態資源分配提出了迫切需求。在某個特定的時間與地點,大量的移動用戶請求會產生巨大的網絡流量。例如大型體育比賽中,很多用戶會通過移動設備獲取相關資料,也會通過文字、圖片以及音頻、視頻分享現場實況??梢灶A見的是,隨著視頻業務的不斷發展,在類似的情況下數據消耗總量將會出現巨大增長,數據中心網絡需要能夠保證這類應用的彈性帶寬需求。
為了滿足大量租戶巨大的帶寬需求,數據中心網絡在數據層面必須擁有一個可擴展的物理網絡,即在不顯著增加系統代價(如能耗、硬件成本)的前提下,提升數據中心的帶寬供應能力,滿足不同租戶的寬帶傳輸需求;為對多個租戶的資源定制需求做出快速響應,在控制平面需要具有較強的網絡虛擬化管理的能力,從大量復雜的物理資源中為每個租戶虛擬出一個私有的子網絡;為滿足不同租戶對可靠性的要求,需要同時從兩個平面出發設計一個可感知服務質量的可靠性機制,既能滿足可靠性需求又不會造成物理資源的過度冗余。下文將圍繞物理網絡、網絡虛擬化以及性能保證這3個方面介紹當前的研究熱點。
對于控制層面而言,理想的數據平面應該提供一個簡單而又無阻塞的物理層網絡,即物理層面可以快速地為服務器之間或者虛擬機之間的業務分配一組帶寬足夠的通路。為達到這個目標,業界相繼在交換機結構設計、路由算法等方面提出各種不同的解決方案。
租戶數量的增加迫使數據中心不斷擴容。2012年Amazon單個數據中心平均擁有的服務器數已超過6萬臺,Google單個數據中心的服務器數超過了4.5萬臺,微軟公司正在打造一個包含30萬臺服務器的數據中心。
把這些服務器互聯起來,需要大容量的核心交換機作為網絡樞紐。例如,微軟擬建成的超大型數據中心包含30萬臺服務器,按照一個邊緣交換機可以掛接50臺服務器計算,共需要約6 000個邊緣交換機。目前,單臺服務器所需要的帶寬為10 Gbit/s,在微軟的數據中心中甚至可以達到40 Gbit/s,據統計有20%~40%的流量會流出邊緣交換機[1]。換言之,如果按照30%的比例來算,邊緣交換機的出口流量將達到600 Gbit/s?;跇I界盡量使用扁平化拓撲的共識,此處假設采用邊緣交換機和核心交換機全互聯的二層fat-tree拓撲結構,那么邊緣交換機之間的流量將全部通過核心交換機中轉。由此估算,超大型數據中心的核心層所需的吞吐量將高達3.6 Pbit/s。這個數字還是按照目前可以看到的數據中心規模和每臺服務器的通信需求計算的,如果考慮到數據業務的爆炸式增長,不久的將來所需的核心交換容量將更大。目前業界最先進的數據中心級交換平臺為思科的Nexus 7000,其容量達到15 Tbit/s,然而這一款交換機的占地面積達0.40 m2,功耗超過18 kW。如果按照簡單的加法,用它來構造核心層至少需要240臺交換機(實際情況會更多),將占地200 m2(考慮機架間距),功耗達到4.32 MW(不包括冷卻功耗)。以此算來,僅核心節點就要消耗掉一個大型電廠的電力輸出。
為了緩解核心層交換的功耗壓力,2011年美國的Rice大學和UCSD分別演示了C-Through[2]和Helios平臺[3]。這兩個平臺的共同特點是,采用電交換機和光交叉連接設備共同構成核心交換層,以分別負責傳送不同容量或速率的數據流。據估算,這種光電混合方案可將能耗降低9倍左右。但是光交叉連接設備的重構時間很慢。例如,Helios平臺采用光微機電系統(MEMS)搭建光交換矩陣,建立光路時間長達96 ms。為補償建立光路的開銷,光路建立好之后的持續時間最好超過1 s以便能一次傳送大量數據。為此,C-Through和Helios設置了緩存量閾值。只有當發送端緩存數據量積累超過閾值,才會通知控制平面建立光路集中發送數據。由此可見,對于通過光路傳輸的數據流來說,通信時延至少包括緩存時延和光路建立的時延。因此,如何提供時延保證的服務依然是這類光電混合核心交換平臺的一個挑戰。
數據中心通過出租計算、存儲為租戶提供服務。這些計算和存儲資源可以分布在不同位置,它們需要通過具有一定容量的通路連接起來協同工作。在具備大吞吐量交換機和寬帶鏈路的條件下,路由算法是給租戶提供通路的關鍵手段。好的算法不但能滿足不同租戶包括分組丟失率、時延等參數在內的通信要求,而且具有低的計算復雜度。
等代價多路徑(ECMP)算法是一種RFC標準化的分組路由技術,ECMP同時使用預先計算出的多條代價相等的路徑,以增加服務器之間的傳輸帶寬。但ECMP在分配路徑時并不考慮實際的流量負載,而是根據頭部信息靜態散列到其中一條路徑上,容易造成局部擁塞。為了克服這個問題,2009年微軟研究院在其演示的VL2網絡架構中提出利用ECMP技術實現負載均衡(VLB)機制,以處理動態的流量負載。VL2以每個流為單位,將數據流隨機分配一組等代價路徑。盡管如此,遇到大數據流時,VLB仍然無法避免鏈路擁塞問題[4]。
2010 年UCSD提出一種集中式數據流調度器Hedera[5]。這種調度器需要實時監測網絡流量從而識別出大數據流,進而根據全局網絡負載信息為每個大數據流計算出優化路徑,最后對每個大數據流進行重路由以避免擁塞。顯然,這種全局優化算法的擴展性受制于活動的大數據流數。隨著網絡規模的增大,實時檢測并維護整個網絡中的全局負載以及所有活動的大數據流信息對集中控制器將是一個巨大的挑戰。
同年惠普實驗室提出了一種智能路徑分配(SPAIN)算法[6]。SPAIN預先為每對邊緣交換機計算出多條不相交的路徑,并映射為不同的VLAN,以充分利用網絡的多路徑資源。但SPAIN要求每個交換機的轉發表為所有目的地地址和VLAN創建多個條目,比一般商用交換機復雜。
2011 年美國Wisconsin-Madison大學和IBM演示的CloudNaaS平臺考慮了區分服務質量的路由問題。此平臺將虛擬機間的通信業務分為3個等級,并分別采用不同的算法計算路由。為了減少路由表的條目,CloudNaaS只把數據流分發到有限幾條路徑上,網絡鏈路利用不高,容易導致局部擁塞[7]。
由此可見,現有的算法仍然存在各種問題,要么計算復雜度高,要么會帶來擁塞無法保證服務質量。如何找到一個既能保證帶寬又能簡單高效的路由方法,仍然需要開展更多的研究。
數據中心租戶,尤其是企業租戶,希望內部數據局限在自己的虛擬網絡中而不為他人所知。網絡虛擬化需要做到在不同的虛擬網絡之間進行隔離,以保證租戶的隱私和安全。虛擬網絡的隔離主要體現在兩方面:第一,通過有效的封裝技術區分不同的虛擬網絡;第二,允許每個租戶在自己的虛擬網絡內自由定制地址空間。常見的網絡虛擬化技術主要包括VLAN、網絡重疊(overlay)和白名單等。
VLAN是最早用來實現網絡虛擬化的技術。在計算機網絡中,一個二層網絡可以被劃分為多個不同的廣播域,這些廣播域是相互隔離的,每個廣播域就是一個VLAN。根據IEEE 802.1q協議,VLAN僅有12 bit用于區分不同子網,因此租戶數不能超過4 096個;另外,VLAN隧道需要手工配置,基于最小生成樹的路由協議限制了網絡規模的擴展。
2010 年,Bell Labs提出將物理網絡劃分成核心區域和邊緣區域,每個邊緣區域用若干轉發元素與核心區域連通,只用VLAN區分一個邊緣區域內的不同租戶,在一定程度上改善了租戶數量的可擴展性。但同一邊緣區域的租戶數仍然不能超過4 096個;每個發往不同邊緣區域的數據分組都增加了一個外部MAC地址,因此需要交換機支持超大以太網幀[8]。
網絡重疊是工業界采用的網絡虛擬化主流技術。IETF成立了網絡虛擬覆蓋(NVO3)技術工作組,討論各種重疊隧道技術標準用于支持網絡虛擬化,比如思科等提出的VXLAN(virtual extensible LAN)、微軟等 提出的NVGRE(network virtualization using generic routing encapsulation)和Nicira等提出的STT(stateless transport tunneling)等。網絡重疊通過建立端到端的隧道,在三層網絡上保證了二層虛擬網絡的全網可達性,具體技術見表1。
VXLAN采用一種類似于VLAN的封裝技術,把基于MAC的二層以太網幀封裝到三層UDP分組中。每一個VXLAN劃分是通過24 bit的VNI(VXLAN identifier)來標識的。VXLAN通過多播來實現地址學習,這不僅要求物理設備支持多播,還會因為多播樹技術的限制導致VXLAN的可擴展性受到影響。
NVGRE與VXLAN類似,兩者實際都使用封裝策略創建大量的VLAN子網,NVGRE使用通用路由封裝創建一個獨立的虛擬二層網絡。NVGRE與VXLAN不同的是地址學習是通過控制平面實現的,但是,目前NVGRE還沒有地址學習的具體方案。NVGRE相對VXLAN在負載均衡方面有天生的缺陷。對于傳統的三層網絡設備,基本都可以實現基于四層端口的負載均衡,但是卻無法基于GRE key實現負載均衡。此外,由于建立的是端到端的隧道,因此隧道的數量隨終端數量增加以平方速率上升,導致維持隧道的開銷增大。
STT、VXLAN及NVGRE使用了類似的封裝技術,區別是把數據幀先進行分割再封裝,充分利用了網卡的硬件加速功能提高效率。由于STT技術將原STT分組偽裝成了TCP/IP分組,而在TCP分組頭中又沒有維護TCP狀態信息,如果IP分組在傳輸過程中發生了分組丟失,STT終端不會進行重傳,這使得建立的隧道是不可靠通信信道。
白名單技術利用類似防火墻的機制來實現虛擬網絡間的隔離。白名單通常由用戶自定義,維護在網絡邊緣側(例如Hypervisor或者虛擬機)。所有收到的數據分組要先經過白名單檢驗,符合白名單中的規則才允許虛擬機之間的通信。白名單技術主要由做安全出身的互聯網公司在推動,如M2Mi。相對于VLAN和網絡重疊,白名單可以提供更好的靈活性,并且不依賴于底層的網絡技術。其局限性也很明顯,當虛擬網絡規模很大時,白名單的規模會迅速增長;每一次虛擬網絡成員以及規則的變化都會導致白名單的更新,維護開銷可能成為制約其擴展性的瓶頸。
云計算環境中給租戶提供性能可保證的資源是很大的挑戰。本質在于云計算是建立在共享資源池上的復用技術,租戶之間的資源競爭導致了云計算服務提供商很難為租戶提供性能可保證的云計算服務。
微軟研究院根據多篇公開測量報道對以Amazon云主機服務EC2為主的云計算環境下的CPU、磁盤特別是網絡性能做了分析比較[9],圖1顯示了云計算環境下虛擬機間的網絡帶寬測量百分位統計(1%-25%-50%-75%-100%)。從圖中可以看出,虛機間網絡帶寬變化非常大,差異達到5倍甚至更高。

表1 網絡重疊技術

圖1 過去研究工作對云計算環境下虛擬機間網絡帶寬性能的測量百分位統計[9]
云計算環境網絡性能無法保證或者無法預見,將給租戶和云計算提供商帶來很多負面影響。
首先,限制了云計算的應用領域。例如,2~3年前,能否在公有云上實現Top 500的高性能計算(HPC)虛擬集群是很熱的話題,但大量研究表明,如果不能解決虛擬機及虛擬網絡的性能劣化和變化問題,HPC應用很難在IaaS公有云上運行。
其次,增加了云計算的使用風險。USENIX HotCloud 2012組織了一個專題討論云計算風險,云計算環境中由于多租戶相互干擾,同一租戶的虛擬機間網絡性能不穩定、變化大,造成了應用性能無法預知,用戶體驗下降,租戶不敢將他們的應用向云計算環境遷移。無論是對于面向事務處理的電子商務Web應用還是MapReduce型的數據密集型應用都存在這個問題。
最后,增加了云計算的租用成本。因為云計算按照租戶占用虛擬機的時間以及網絡流量收費,而任務完成的時間受網絡性能影響很大,租戶無法估計任務結束時間,分組丟失造成的重傳會增加網絡流量,租戶將潛在支出額外的費用。
Amazon為了支持網絡性能可保證的高端應用,采用了萬兆專有網絡且無超額認購(over subscription)的高代價方案。因此,云計算環境中更加有效的虛擬數據中心(VDC)需求被提出:VDC的定義是一個用戶可以自主定義IP地址并具有完整業務等級規約(SLA)的虛擬機集群,SLA不僅包括計算和存儲的需求,也包括虛擬機間通信網絡即虛擬網絡的帶寬需求[10]。對于租戶來說,VDC在使用上應該與專有數據中心沒有差別,因此要求虛擬網絡具有良好的隔離性;同時VDC比專有數據中心具有更大的吸引力是由于其具有彈性,即可以根據租戶的需求動態調整容量。
性能可保證、可預見的虛擬網絡是VDC技術的關鍵,可以把這個問題和電信網絡中流量工程做一個類比,可以采用帶寬預留和呼叫允許控制機制。但是在云計算環境中,性能可預見、可保證的虛擬網絡面臨的挑戰更多。首先,可擴展性要求更高,帶寬預留的機制應該能夠擴展到超大規模云計算環境的百萬臺虛擬機規模;其次,實現開銷要求更小,電信網絡中采用的多協議標簽交換(MPLS)并不適用于云計算環境,云計算中引入了虛擬化,網絡的邊界從接入交換機推到了服務器的虛擬交換機,虛擬交換機實現MPLS開銷太大,一般采用三層到二層的協議封裝技術;最后,云計算具有高動態特點,工作負載彈性可變,盡管工作負載遷移可以緩解網絡擁塞,頻繁調整工作負載可能給整個云計算環境的穩定帶來災難性影響。
為解決云計算環境中虛擬網絡性能可預見、可保證問題,學術界提出了以下幾種思路。
(1)通過預約帶寬,保證用戶請求的網絡服務質量
[10]提出了一種能提供端到端帶寬保證的數據中心網絡架構。首先,這個方案需要全網交換設備支持新協議的尋址功能,且布線工作量遠高于目前的樹型拓撲結構,實際部署較難;其次,端到端的帶寬保證帶來了可擴展性的問題,當虛擬機數量和租戶數量增加時,其對應的管理復雜度將大為提升。再次,在傳輸流量前,虛擬機需要顯式地預約流量,這種靜態的流量預約方式不適合高動態的數據中心業務。參考文獻[9]在不改變物理拓撲的前提下,使用虛擬拓撲映射構建了一些具有服務質量保證的虛擬子網,但還是無法滿足高動態網絡負載的需求。
(2)動態調節虛擬網絡的帶寬限制或者路由
參考文獻[11]提出了一種改進的時間交織的虛擬集群(TIVC)模型來抽象網絡帶寬需求隨時間變化的特性。與固定帶寬模型相比,TIVC模型盡管提高了整個數據中心的效率,但依然不能應對云計算突發業務的實時需求。另外一種思路是大象流被認為是數據中心網絡中影響性能的關鍵流量,因此可以只調整部分大象流的路由來解決可擴展問題[12]。
(3)引入反饋控制機制
參考文獻[13]通過虛擬交換機的動態流量限制,確保了虛擬機在邊界的接入帶寬可控。參考文獻[14]在每對虛擬機宿主(Hypervisor)間增加了一條擁塞控制的端到端的邏輯隧道。然而,反饋控制方式的時滯較大,簡單的域值控制還可能導致整個系統的震蕩不穩定。另外,單純的邊界控制保證虛擬機端到端帶寬的能力有限,還應當結合核心交換網絡來避免擁塞出現。
綜上,一個更加合理的思路是采用預測控制的方法,對于云計算環境中的業務流量、工作負載和鏈路帶寬等進行觀測和分析,得出一定的預測規律,從而實現穩定的實時控制,為租戶提供性能可預見的虛擬網絡。與性能可保證相比,性能可預見在滿足租戶SLA的同時,進一步提高了網絡資源利用率。
事實上,已經有一些針對數據中心資源預測的相關研究,這些研究針對數據中心虛擬化的CPU資源使用情況進行了預測和控制,使得各虛擬機實際所得的CPU資源可以根據工作負載的變化而動態分配。另外,也有研究者使用了預測模型進行云計算環境中工作負載自動擴展的控制。這些預測大都著重計算和存儲資源的使用和分配問題,而與CPU、內存、硬盤等資源不同,網絡資源并非從屬于某個虛擬設備,而是連接虛擬設備之間的資源,網絡流量的分析更為復雜。在數據中心網絡的流量測量和分析方面已經有一些研究工作[15],但基本都是基于網絡蹤跡(network trace)的離線分析,預測控制需要基于實時或準實時的網絡流量分析。
由上可見,在云計算環境中實現性能可預見、可保證的虛擬網絡,提供虛擬數據中心業務,具有廣泛的應用前景。目前對它的研究尚處于起步階段,在擴展性、穩定性、實現及部署的低開銷和實時響應等方面還有大量的問題有待解決。
參考文獻
1 Benson T,Anand A,Akella A,et al.Understanding data center traffic characteristics.SIGCOMM Computer Communication Review,2010,40(1):92~99
2 Wang G,Andersen D G,Kaminsky M,et al.C-through:part-time optics in data centers.Proceedings of ACM SIGCOMM 2010,New Delhi,India,2010:327~338
3 Farrington N,Porter G,Radhakrishnan S,et al.Helios:a hybrid electrical/optical switch architecture for modular data centers.Proceedings of ACM SIGCOMM 2010,New Delhi,India,2010:339~350
4 Chen K,Hu C,Zhang X,et al.Survey on routing in data centers:insights and future directions.IEEE Network,2011,25(4):6~10
5 Mohammad A F,Radhakrishnan S,Raghavan B,et al.Hedera:dynamic flow scheduling for data center networks.Proceedings of NSDI 2010,San Jose,USA,2010
6 Mudigonda J,Yalagandula P,Al-Fares M,et al.SPAIN:COTS data-center ethernet for multipathing over arbitrary topologies.Proceedings of ACM USENIX NSDI 2010,San Jose,USA,2010
7 Bari M,Boutaba R,Esteves R,et al.Data center network virtualization:a survey.IEEE Communications Surveys and Tutorials,2012(2)
8 Hao F,Lakshman T,Mukherjee S,et al.Secure cloud computing with a virtualized network infrastructure.Proceedings of USENIX HotCloud 2010,Boston,USA,2010
9 Hitesh B,Costaet P,Karagiannis T,et al.Towards predictable datacenter networks.Proceedings of ACM SIGCOMM 2011,Toronto,Canada,2011
10 Guo C X,Lu G,Wang H J,et al.Secondnet:a data center network virtualization architecture with bandwidth guarantees.Proceedings of ACM Co-Next 2010,Philadelphia,USA,2010
11 Xie D,Ding N,Hu Y C.The only constant is change:incorporating time-varying network reservations in data centers.ACM SIGCOMM Computer Communication Review,2012,42(4):199~210
12 Curtis A R,Mogul J C,Tourrilhes J.DevoFlow:scaling flow management for high-performance networks.SIGCOMM-Computer Communication Review,2011,41(4)
13 Rodrigues H,Santoset J R.Gatekeeper:supporting bandwidth guarantees for multi-tenant datacenter networks.Proceedings of USENIX WIOV’11,Portland,2011
14 Alan S,Kandula S,Greenberg A.Sharing the data center network.Proceedings of USENIX NSDI 2011,Boston,USA,2011
15 Benson T,Akella A,Maltz D A.Network traffic characteristics of data centers in the wild.Proceedings of IMC 2010,Melbourne,Australia,2010