面向雲計算的數據中心網絡體系結構設計

發表時間:2012-7-6 王聰 王翠榮 王興偉 蔣定德 來源:萬方數據

20世紀90年代,客戶端/服務器的計算模式得到了廣泛應用,在這種計算模式中,數據中心用來存放服務器並提供服務。近幾年,互聯網技術的蓬勃發展掀起了建設數據中心的高潮,網上銀行、證券和娛樂資訊等網絡服務逐漸普及,特別是雲計算?技術的發展爲網絡服務形式帶來重大變革,使數據中心的發展進入了鼎盛時期。

    在雲計算環境下,Internet網絡由傳送信息數據到直接傳送服務。數據中心作爲企業構建私有云的硬件平臺或者公有云的骨幹資源,運行其上的網絡服務更加多樣化、複雜化,在性能、可靠性和可管理性上的要求越來越細化,這就需要新的設計理念和運行機制的支持,特別是作爲信息傳輸的基礎部分——網絡層的數據轉發和管理機制需要重新設計以滿足越來越複雜和多樣的數據流傳輸需求。

    隨着存儲虛擬化等資源虛擬化技術的發展,通常數據中心內的物理主機上會搭載若干獨立的虛擬主機,並且虛擬主機可以根據需要在不同的物理主機上遷移。在面向雲計算的數據中心內部,資源虛擬化技術的出現使得多個具有獨立IP地址的虛擬主機公用同一條物理鏈路。即使目前使用了一些過渡的方式令網絡層能夠提供一定的支持,但是傳統的TCP/IP或者UDP等協議已經越來越無法爲各種服務應用提供足夠的性能保障。這點在虛擬機遷移及多QoS個性化需求方面顯得尤爲突出,因此需要將數據中心的網絡硬件進行虛擬化以形成多個不同的虛擬網絡拓撲從而對資源虛擬化應用提供更好的支持。

    爲此,本文設計了通過低造價的可編程交換機和商業級服務器來構建具有高連通性的數據中心網絡拓撲的方法。並且提出了虛擬網絡的控制管理機制,形成了面向雲計算的數據中心底層網絡體系結構。實驗表明,本文提出的網絡體系相較於傳統樹形網絡在網絡吞吐量及容錯方面都有較大提升。並且爲虛擬機的遷移提供了更加靈活、高效的支持。

1 相關研究

    在數據中心拓撲構建上,傳統數據中心所採用的樹形分層結構(如圖1所示)通常爲包括接入層、匯聚層、核心層的3層結構。在樹形的末端,一個機架上通常存放數10臺服務器,這些服務器通過接入層的交換機連接到網絡上。在匯聚層和核心層,爲了提供儘可能高的性能,採用了造價極高的高端交換機(10 GE級別)形成高連通網絡拓撲。

點擊圖片查看大圖

 傳統數據中心樹形網絡結構

    圖1傳統數據中心樹形網絡結構

    傳統樹形網絡構建方式已經難以滿足新一代網絡服務的需求。首先,這類結構無法提供足夠高的對剖帶寬、吞吐量及實時通信等性能要求,也無法提供高可擴展性;其次。樹形結構在上層存在單點故障,一臺核心層或者匯聚層的交換機故障將會導致很大數量的服務器無法進行通信;另外由於傳統分層結構在匯聚層與核心層需要部署昂貴的高端高帶寬交換機。性價比不高。

    關於雲計算數據中心非樹狀網絡拓撲構建方面的研究比較具有代表性的有微軟的研究團隊和美國加州大學的研究團隊。加州大學的Al—Fares等人提出了Clos Networks,Clos Networks是一種基於胖樹(fat tree)的類樹形結構拓撲,其主要目的是在網絡端節點處實現更高的聚合帶寬。網絡分3層:核心交換機、聚合交換機及端交換機,通過增加一定的佈線複雜度來連接成一個胖樹形網絡,端交換機用來連接PC機。在網絡層,Clos Networks使用兩層路由表及多路徑的流調度機制,在全負載最壞的情況下可以實現約87%的聚合帶寬。加州大學的Guo等人引入了並行計算的一些思想,提出了DCell。DCell是一種遞歸構建方式的數據中心,使用的是商業級PC和低端交換機,高一級的DCell由若干低一級的DCell組成。DCell的擴展性相對於節點的度具有雙倍指數增長關係,並且大大降低了數據中心的成本。微軟亞洲研究所的Dan Li聯合加州大學的研究團隊提出了一種使用雙網卡PC機和低端交換機來構建數據中心的思路,命名爲FiConn,FiConn同樣使用遞歸構建模式,具有很好的可擴展性和連通性。在FiConn的遞歸拓撲中,鏈路被分爲若干級別,在網絡層中通過一種低開銷的流量自適應路由機制來平衡各級別鏈路中的流量從而達到平衡負載和提高網絡吞吐量的目的。

    在上述的3種新型數據中心網絡拓撲中,CIosNetworks網絡結構中的主機在網絡滿負荷情況下仍能夠以網卡硬件端口允許的最大帶寬進行通信,從而提供了最高的網絡對剖帶寬,並且由於ClosNetworks實際上是一種特殊的樹形結構變體,因此能夠提供最好的兼容性,但是造價要高於DCell和FiConn。DCell具有最好的可擴展性,但是需要在主機上安裝更多的網卡,FiConn只需在每臺主機上安裝兩塊網卡,兩者都增加了佈線的複雜性。在容錯性上,FiConn和DCell由於採用了遞歸的拓撲結構,主機需要承擔路由功能並且網絡內的交換機和主機存在級別差異,因此在交換機及主機故障的情況下將導致網絡內數據流分配不平衡,從而導致網絡性能的顯著下降。文獻[7]比較了這3者的容錯性,FiConn和DCeIl的容錯性能明顯低於ClosNetworks網絡結構。另外,這兩種結構都需要使用全新的路由算法,對於現有應用的支持還有待於進一步解決。

    在應對資源虛擬化應用方面的相關研究上,微軟研究團隊的Greenberg,Hamilton,Jain等人提出了VL2L8J,VL2主要考慮如何使得虛擬機在服務器上進行靈活的遷移,力求使得虛擬機的遷移對客戶及程序設計者透明。VL2使用了Clos Networks的拓撲結構,並在網絡層和數據鏈路層之間加入了相應的路由控制機制。在VL2所提出的體系結構中,應用程序使用服務地址通信而底層網絡使用位置信息地址進行轉發,這就使得虛擬機能夠在網絡中任意遷移而不影響服務質量。加州大學的Mysofe等人提出了PortLandL,PortLand使用的同樣是ClosNetworks的拓撲結構,通過在2.5層中使用虛擬MAC地址來實現虛擬機自由遷移。在服務器上的某個虛擬機與端交換機第1次通信時,端交換機建立該虛擬機的實際MAC地址到虛擬MAC地址並將其發送給網絡底層控制程序,虛擬機進行ARP廣播時端交換機將廣播攔截。然後查詢底層控制程序並返回相應的IP地址,這樣使得虛擬機可以自由遷移不用考慮尋路問題。

    文獻[8—9]的解決方法在一定程度上提高了虛擬機遷移後的再尋址時間延遲問題,目前通過DNS的實現方式需要數分鐘甚至更久,採用新方法後可以縮減到數十秒。但是前者需要在網絡內部署專門尋址服務器,並且需要有良好的分佈式實時通信機制支持,後者主要在可編程交換機上實現,對交換機性能的要求較高。另外,這兩種方法都無法將隸屬於不同應用的虛擬主機進行有效的隔離,在網絡通信量較大時,不用服務的數據流由於競爭帶寬會相互影響。

2低成本高連通性的網絡拓撲結構

    在數據中心網絡構建方案設計中,如何在保證足夠高性能的前提下儘量減少造價是至關重要的。本文的目的就是利用低造價且型號單一的可編程交換機及商業級服務器來構建數據中心網絡拓撲,新的網絡拓撲在對剖帶寬及網絡聚合吞吐量上要高於傳統樹形分層結構,並能夠對資源虛擬化技術應用特別是虛擬主機在網絡中的遷移行爲提供更加靈活的支持。

    2.1 網絡拓撲結構

    從降低成本方面考慮,利用低造價交換機及商業級服務器來構建數據中心可以大大減少成本支出。另外,鑑於現在的PC機和服務器都具有至少兩個網絡端口,充分利用這些端口可以大大提高拓撲內節點的連通性以獲得更大的網絡吞吐量。這樣的構建方案具有更好的性價比。

    圖2是本文提出的數據中心網絡拓撲構圖,整個網絡由同一型號的可編程交換機組成,中間的服務器將網絡分割成兩個對稱的Fat—Tree結構的特殊變體。每個這樣的Fat—Tree結構包含核心層、匯聚層和接人層3個層次,使用這樣結構的好處是可以保證每臺服務器的任意網絡端口都可以同時以網絡硬件接口所允許的最大帶寬進行通信而不受網絡通信帶寬瓶頸的制約。

    網絡能夠容納的服務器數量取決於構建網絡所使用的交換機的端口數志(圖2中,k一2)。網絡中的服務器被分成走組,每組包含(k/2)2臺服務器。網絡被服務器分成上下兩個部分,每部分的接入層和匯聚層對應每組都有k/2臺交換機,每個接入層的交換機分別連接k/2臺服務器,剩下的端口分別連接上層的交換機。核心層有(k/2)2臺交換機,每臺交換機的第i個網絡端口連接到第i組的匯聚層的某臺交換機。這樣每個匯聚層的交換機都有k/2條鏈路與核心層的各個交換機相連接。使用具有k個端口的交換機組建的網絡可以容納k3/4臺服務器。本文提出的這種結構適用於任意端口數的交換機,如採用常見的48口交換機。那麼按照本文提出的方法構建的數據中心網絡可以包含27 648臺服務器,足夠支持企業構建自己的私有云平臺。

點擊圖片查看大圖

高連通性低造價網絡拓撲結構圖

    圖2 高連通性低造價網絡拓撲結構圖

    本文提出的這種網絡拓撲構建方式有以下4個優點:1)雖然相較於傳統樹形結構使用了更多的交換機。但是由於無需在覈心層和匯聚層採用造價昂貴的高端高性能交換機,因此減少了總體構建成本;2)對於網絡中任意的兩臺服務器之間都存在多條等長度的路徑可供選擇;3)充分利用了服務器的兩個網絡端口,提高了網絡的連通性和吞吐量;4)在本文提出的網絡結構中不存在像傳統樹形結構中的單點故障。因此容錯性得到了加強。

2.2網絡地址分配

    在地址分配方式上,爲了保證兼容性,採用了與IP地址相同的結構。對稱的上下兩部分網絡分別採用10.O.O.O/8和20.O.0.0/8兩個地址段.接入層及匯聚層交換機地址形式爲10.g.s.1及20.g.s.1,其中g爲組號,s爲交換機號(由O開始,從左至右,從下到上遞增).核心層交換機的地址分別爲10.k.j.i和20.k._j.i,其中志爲組號。_j爲匯聚層交換機編號(從O開始,由左至右遞增),i爲該交換機與核心層交換機連接的端口序號(0一k/2)。

    主機網絡端口的地址與其連接的接入層交換機處於同一網段,形式爲10.g.s.fd和20.g.s.謝,其中id爲服務器編號,由左至右遞增,範圍爲(2,k/2+1)。

    這樣的地址結構使得後續給出的虛擬網絡構建及控制管理機制都能夠良好地兼容目前廣泛的基於IP協議的上層應用。只要IP地址結構不變,那麼對於網絡層作出的相應改動相對於上層應用來說就是透明的,上層應用不必理解地址字段的特殊含義。

3虛擬網絡構建及控制管理機制

    雲計算環境下,數據中心內服務器上通常運行多個虛擬機來提供不同的服務,這樣能夠便於應用服務的迅速、靈活的部署,在服務器硬件故障發生時。虛擬機將遷移到另外的服務器上。目前虛擬機遷移後的恢復尋址工作通常由DNS服務器來完成,但是由於DNS系統被動的工作機制導致效率不高。從底層網絡支持情況來講,運行不同應用服務的虛擬機對於網絡的QoS具有不同的個性化需求,目前情況下,底層網絡普遍採用的基於儘量交付機制的IP協議對於個性化的支持顯然不夠。另外,讓隸屬於不同應用服務的衆多虛擬機同時運行在同一個物理網絡上也造成了管理和帶寬分配的混亂。

    因此,本文提出了一種底層網絡控制管理體系結構,通過將硬件網絡分割成不同的虛擬網絡來實現對上層應用靈活的支持。不同的虛擬網絡內運行隸屬於不同應用服務的虛擬機。這樣可以根據應用服務的QoS需求來決定網絡所運行的協議及參數也更加有利於虛擬機的控制和管理。虛擬網絡的構建也將爲數據中心的多用戶租賃服務和雲計算環境下的資源分配提供配套的靈活管理和帶寬控制體系,進一步促進虛擬化技術與數據中心的融合。

    3.1 對虛擬機遷移的支持體系

    圖3爲虛擬網絡劃分及控制管理系統示意圖.在開源操作系統的2.5層添加一個代理與交換機協同工作是可行的。本文的思路是借鑑應用於Internet骨幹網絡交換機上的網絡虛擬化技術,並使駐留在主機上的代理與可編程交換機的控制軟件實時地交換網絡運行時參數,以達到動態調整各虛擬網絡帶寬的分配及控制管理參數的目的。這樣的協同工作機制使得不同的虛擬網絡運行不同的網絡層路由協議成爲可能,這將能夠保證運行於不同虛擬網絡上的應用服務對於QoS的個性化需求。

點擊圖片查看大圖

 虛擬網絡管理體系結構示意圖

    圖3 虛擬網絡管理體系結構示意圖

    2.5層代理的另一個重要功能就是實現虛擬機的迅速遷移,文獻[8—9]都設計了2.5層代理的映射功能,通過將虛擬地址和實際地址進行一次映射以隔離上層應用使用的網絡地址和底層網絡進行交換時使用的物理地址之間的聯繫。不同的是文獻[8]映射的是服務地址和位置信息地址,而文獻[9]映射的是虛擬MAC地址和實際MAC地址。

    本文提出的辦法是令每臺主機上駐留的代理爲每個虛擬網絡創建一個映射表(如圖4所示),用來記錄網絡內的虛擬機IP地址與物理主機MAC地址的對應關係。代理之間可以實時通信,通過類似路由發現的分佈式通信機制,週期性更新運行於各臺服務器上的虛擬主機與硬件網絡地址的對應關係。

    在某個服務器上建立新的虛擬主機時,代理會記錄新的虛擬IP地址與物理主機MAC地址的對應關係並在該虛擬網絡內進行廣播,這樣各個代理上對應該虛擬網的映射表都將被更新。當虛擬機間通信時,請求通信的主機發送的ARP探測包將直接被代理捕獲,檢索本機代理上的映射表,如果有匹配項將直接返回對應的MAC地址,如果沒有,代理將負責進行廣播以獲得正確的MAC地址。當出現服務器故障時,虛擬主機遷移到其他服務器上之後,服務器上的代理將會在網絡中主動廣播遷移後虛擬主機地址與服務器端口的對應關係從而加快虛擬機遷移後的恢復時間。

點擊圖片查看大圖

 代理負責創建和管理的虛擬機與MAC地址映射表

    圖4 代理負責創建和管理的虛擬機與MAC地址映射表

3.2虛擬網絡帶寬分配機制

    本文提出的帶寬分配及控制機制建立在圖3所示的虛擬網絡管理體系之上,可編程交換機負責分配帶寬,2.5層代理負責參數的協調和反饋。帶寬分配機制示意圖如圖5所示:

點擊圖片查看大圖

帶寬分配機制結構圖

    圖5帶寬分配機制結構圖

    每臺可編程交換機上都部署一個這樣的帶寬分配邏輯單元,以便對於虛擬網內的各條鏈路都能夠進行分配和控制。在圖5中ri是由主機上的2.5層代理返回的虛擬機VMim。網絡端口的發送速率,以類似於TCP/IP擁塞窗口慢啓動機制的算法進行增減,yi是當前虛擬鏈路佔用的帶寬,λt是通過ri和yi計算出的用於帶寬分配決策的輸入參數。

    帶寬分配的目的是在保證所有虛擬網絡帶寬的總和不超過物理鏈路最大帶寬的前提下,使所有虛擬網絡的帶寬利用率達到最優,這樣就把帶寬分配問題抽象成了一個最優化的數學問題從而根據經典數學算法進行求解。本文采用了根據鏈路的擁塞狀態反饋來週期性的分配虛擬網絡帶寬的方法。擁塞狀態Skt的計算函數如下:

點擊圖片查看大圖

    

    其中t代表時間,T是一個時間週期,口是用於平滑結果的O,1之間的步迸值。由式(1)可見,虛擬網絡k在鏈路l上的鏈路擁塞狀態由其得到的帶寬ykl和鏈路負載rkl決定。通過式(1),每個虛擬網絡可以動態地調整所佔用的虛擬鏈路的網絡帶寬。

    在交換機端,目的是讓所有的虛擬鏈路能夠協同工作以獲得最大利益,這是一個總體最優化問題,其數學模型如下:

點擊圖片查看大圖

    

    本文關於帶寬分配機制的設計主要目的是給出運行於可編程交換機上的系統邏輯結構,在帶寬分配算法上還可以採用其他的數學模型進行求解。

4實驗與討論

    本文的實驗軟件採用了斯坦福大學研發的0penFlow VMLl21仿真平臺。採用這一工具的原因是目前已經有一些廠商(如NEC公司)開始生產基於openFlow的可編程交換機,仿真結果具有較強的實際價值。實驗所用硬件平臺採用的是IBMX3650服務器,4核Xeon 3.06 GHz處理器×2,16 GB內存,操作系統爲CentoS 5。

    仿真實驗在OpenFlow VM環境內分別構建如圖1所示的傳統樹形分層網絡結構以及本文提出的如圖2所示的網絡結構。兩種網絡結構均採用8口交換機進行構造,其中樹形結構的匯聚層及核心層的帶寬爲10 Gbps,其餘鏈路均爲1 Gbps,各網絡結構部署的服務器數量均爲128臺。在構建的虛擬網絡結構上,通過D-ITG模擬出數據中心內部的all—to—all通信流量,測試了在交換機故障下的網絡聚合瓶頸吞吐量變化趨勢。聚合瓶頸吞吐量是網絡內各數據流獲得的最小帶寬與網絡內總數據流數量的乘積,它可以反映一個數據中心網絡拓撲的性能。

    由圖6可見,本文提出的體系結構在無故障情況聚合瓶頸吞吐量3倍於傳統的樹形結構,並且隨着交換機故障率的上升,呈現出更加平滑的下降趨勢。導致這樣結果的原因主要是由於傳統樹形結構在高層存在不可避免的對剖帶寬限制,尤其是當某臺交換機出現故障時將給網絡其他交換機帶來很大的負載,而本文的結構由於採用了更多的交換設備並充分利用了服務器的兩塊網卡構建網絡,因而網絡容量和容錯性都得到了很大提升。

點擊圖片查看大圖

 聚合瓶頸吞吐量相對於交換機故障的變化率

    圖6 聚合瓶頸吞吐量相對於交換機故障的變化率

點擊圖片查看大圖

  虛擬網絡吐量變化曲線

    圖7虛擬網絡吐量變化曲線

    從圖7可以看出,兩個虛擬網絡的吞吐量收斂迅速(大概經過5個週期)由於優先級相等,兩個虛擬網絡最終佔用的帶寬也相等(基本等於實際物理鏈路帶寬的一半)。該實驗結果反映了本文提出的虛擬網絡帶寬分配管理機制對於虛擬網絡帶寬的分配是符合預先設計目標的。

5結論和進一步工作

    隨着數據中心的不斷髮展,特別是雲計算技術應用熱潮的到來,傳統數據中心的拓撲結構和網絡體系結構必將面臨變革。爲此,本文提出了一種新型的面向雲計算的高性價比數據中心網絡體系結構,給出了網絡拓撲的構建方式和虛擬網絡的劃分管理及帶寬分配機制,爲上層的應用服務及資源虛擬化應用提供了更靈活的支持。

    在構建方式上,本文提出的拓撲結構雖然採用了兩倍於Clos Network結構的交換機數量。但是無需使用造價昂貴的高端高性能交換機並充分利用了服務器的兩個網絡端口。因此在提高數據中心構建性價比的同時大幅提高了網絡的吞吐量。實驗表明,本文提出的新型低成本網絡拓撲可以實現更大的網絡聚合瓶頸吞吐量和更強的容錯性能。另外,本文提出的虛擬網絡帶寬分配機制工作良好,在網絡流量變化的情況下能夠迅速收斂,這將爲雲計算環境下資源虛擬化技術提供支持,併爲網絡虛擬化的發展提供一定的技術儲備。

    爲了應對目前虛擬機遷移遇到的困難,解決通過被動更新DNS來實現遷移的不足,本文提出的基於2.5層代理的方法還需要進一步的研究和實驗。下一步主要工作將論證2.5層嵌入程序對於操作系統帶來的開銷以及代理間通信所造成的網絡開銷的大小及合理性。另外,由於新型拓撲仿真困難,所需工作量巨大,而相關研究中介紹的部分網絡結構在openFlow VM環境下的實現存在一些技術問題,下一步將考慮採用合適的仿真工具對這些新提出的技術方案進行比較。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章