數據中心網絡設計思索

時間:2022-06-05 05:05:00

導語:數據中心網絡設計思索一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。

數據中心網絡設計思索

1引言

數據中心擁有龐大的機群,已經廣泛應用于數據存儲、數據分析以及超大型網絡服務中[1]。在實現千兆兆級數據存儲過程中,數據在網絡中的傳輸和處理過程將消耗很多資源,如網絡帶寬、存儲空間以及電能等。在實際應用中,如網頁搜索、醫學圖像處理、社區網絡挖掘等領域,數據存儲和處理的數量相當龐大,因此對于數據中心來說,一個最基本的要求就是其必須具有很好的擴張性,擁有成千上萬甚至幾十萬數量的服務器。盡管普通計算機成本降低,但是架構龐大數量服務器的機群僅滿足擴展性的要求且有效控制整體成本仍是一個難題。由于在數據中心服務器的數量可以急劇增加,因此在架構內部通行的帶寬也必須實現大于線性關系或者平方關系的增長,以適應頻繁的數據訪問和分布式數據處理及存儲。為了減少搭建內部鏈接的成本,通常使用帶網卡的普通計算機以及已有網卡的通用服務器。至今為止,構建數據中心內部鏈接的方式大致可以分為兩種:

(1)以交換機為中心的結構。通過交換機實現內部連接和服務器數量的擴展,并且不對服務器的配置進行任何修改。

(2)以服務器為中心的結構。每個服務器僅需要實現數據處理和存儲,也需作為數據的轉發節點,保證無需對交換機配置進行更改l6]。由于數據中心網絡中節點數量巨大,需要建立網絡內部統一編址和路由策略,以實現節點之間的高速通信過程,因此人們引入網絡虛擬化技術,實現節點資源構建,以及組建和管理規模龐大的網絡結構。本文結合網絡虛擬化平臺的研發經驗,將提出一種以服務器為中心的數據中心結構設計方法——圓柱型數據中心網絡(CylinderDataCenterNet—works,CDCN)。在此架構中,采用以服務器為中心的設計方法,每一個節點由一臺服務器組成。與以交換機為中心的數據中心網絡相比,CDCN采用的設計方法更具優勢。首先,將網絡傳輸控制由交換機轉移到服務器中執行,提高了網絡架構中各虛擬網絡結構和路由策略的可控性和編程性。其次,以服務器為中心的設計方法采用低端的、網絡第二層路由處理的layer-2交換機,因此網絡架構的成本比較低。

2CDCN架構設計

2.1網絡結構

CDCN網絡由兩種設備組成:具有兩個網絡接口的服務器和擁有n個端口的交換機,且服務器和交換機被分為是列。在該結構中,只有兩個參數和k,因此CDCN網絡也可稱為(,愚)CDCN。我們用Ho..•1表示k個服務器列。個服務器列和k個交換機列在水平方向上環繞成一個圈,如圖1所示。由此可見,CDCN的結構是一個圓柱型,在水平方向是一個圓環,在豎直方向上由服務器和交換機層相互間隔交錯組成。其中,服務器的兩個端口分別連接在兩側的交換機上。如架構圖所示,在Hl列中的服務器,一端連接在Sl列的交換機上,另一端則與S(_1)列的交換機相連。對于S層中的一個端換機,半數端口連接E列中的n/2臺服務器,另一半則連接Hc舳列中的n/2臺服務器。為了更簡單地描述CDCN的結構,下面稱服務器H()m列為H列的順時針方向相鄰列,而H(汁_1)舳列則是列的逆時針方向相鄰列。在擁有k列的CDCN架構中,每一個服務器列由(n/2)個服務器構成,每一個交換機列由(n/g)個交換機組成。對于列的(n/2)個服務器,用(…)表示,其中∈[o,魯一1](0≤≤k一1)。因此,在CDCN中一個服務器的位置標識即I【)號可定義為(C,t產…vo),其表示在服務器列Hc中標號為(…擴)的服務器。在實現對服務器進行標識的情況下,服務器和交換機之間的內部連接如下:對于在任一服務器列H中2(n/2)臺服務器及其順時針相鄰的服務器列H(c+l】,可分為(n/2)卜個單元組,且每個組擁有個服務器。在單元組中,每個服務器的標號具有以下屬性:當把第C列的標識刪去之后,其余的標識信息一致。因此,在一個單元組中,一半數量的服務器屬于Hc列,另一半屬于H(c_列。同時,此臺服務器連在同一個標號為Sc的交換機上。因此,對于編號(…以vo)的服務器中,有n/2臺標號為(……)的服務器屬于Hc列,其中0≤≤魯一1;另有n/2臺相同標號的服務器屬于H(c+1)列,且都通過列的交換機連接。如圖2所示,在一個(8,2)CDCN網絡結構中,每個服務器列由(8/2)。一16臺服務器組成,且每個服務器的編址有兩位標號。圖中第一行的服務器標號都為(O0),而最后一行的標號均為(33)。若令(vo)一(0O),那么在H1列中共有4臺服務器,它們的標號分別是(0),04≤3,也就是(OO),(1O),(20)和(3O)。同樣,在H0列也有4臺標號為(Oo),(10),(2O)和(3O)的服務器。這8臺服務器連在S列的同一交換機上。

2.2網絡拓撲結構擴展性

2.2.1服務器數量

在此結構中,每列有(n/2)臺服務器,在(,)CDCN網絡中總共有k(n/2)臺服務器。定義N為(,五)CDCN網絡中的服務器總數,那么N一(n/2)。若采用48端口的Gbit帶寬的交換機,構建3層(48,3)CDCN架構,那么該架構將有41472臺服務器。而當擴建到(48,4)CDCN架構時,服務器的數量將增至1327104臺;若再在此基礎上增加一層結構,即(48,5)CDCN網絡,那么該架構擁有的服務器數量將擴展至4千萬臺左右。由此可見,CDCN通過簡單的鏈接實現了較好的擴展性。

2.2.2交換機的數量

在(,尼)CDCN網絡結構中,每一個交換機列擁有(n/2)臺交換機,總共需要k(n/2)卜臺交換機。在定義的服務器標識(…vc…)中,若保持標號不變,那么總共有(n/2)個連接方式,且每一個連接方式需要一臺交換機,即一臺交換機連接臺標號為(1……vo)的服務器(其中o4≤詈一1),因此構建(,z,忌)CDCN網絡共需要k(n/厶2)臺交換機。

3路由策略設計

3.1數據包的兩步傳輸

在CDcN網絡中,包傳輸過程可以分為兩個步驟:第一步是將數據包從源服務器發送到與目的地址一樣的中間服務器;第二步是將數據包從中間服務器傳輸到目的服務器。例如,源服務器s發送一個數據包到目的服務器d,且兩服務器的編址分別是(G,L)和(,),其中L和為服務器S、d的地址標識,L一(…),一(…),其中L一。其傳輸過程如下。(1)步驟1:螺旋方向傳輸在Hc列中的服務器S將數據包發送到相鄰服務器列H(c一1)中的服務器S,這兩個服務器的地址標識除第C位不同,其余均與s相同,且s的標識可以是[0,魯一1]中的任厶意值。或當傳輸數據包到S2,Sz除了第((G+1))位不同,其余均與5相同,且Sz的標識可以是Eo,n/2—13中的任意值。此時,在傳輸過程中,地址標識僅更改一位。因此,當數據包從一個服務器列傳輸到順時針相鄰的服務器列中時,其地址標識僅變化一位,并且經過忌次節點跳躍可以達到任何一個服務器。例如,在(,忌)C]3CN的網絡結構中,數據包從(O,0…O)傳輸到一1,1…1)的途徑為(O,0…O)一(1,0"-01)一(2,0…l1)一…一(志~1,1-.-1)。由于此路徑構成了一個螺旋結構,因此稱其傳輸過程為“螺旋方向傳輸”。在落選方式傳輸中,數據包既可以向順時針方向傳輸,也可以往逆時針方向傳輸。但是,在傳輸過程中,為了避免傳輸環路,所選擇的方向必須前后一致。為此,利用數據包包頭中一部分區域來記錄傳輸的方向信息。在實現中,默認的螺旋傳輸方向為順時針方向。(2)步驟2:環方向傳輸當傳輸到與目的服務器d地址標識相同的服務器d之后,數據包將按順時針或者逆時針方向傳輸到相鄰的、具有相同標識的服務器列。在實現過程中,CDCN選擇更短的路徑進行傳輸。例如,在H*列服務器d中傳輸數據包到H(ca+)列的服務器中,此時(Cd+k-*)%愚≤Lk/2J;否則,服務器d將數據包發送至H(c+㈩)列。但不論往哪個方向傳輸,下一跳服務器的地址編址必為。在此過程中,數據包傳輸路徑猶如環狀,因此稱該階段為環方向傳輸。

3.2靜態路由算法

CDCN采用相對簡單的路由算法實現架構內部數據的有效傳輸,其路由過程如算法1所示。源服務器地址為(G,L),目的服務器為(Cd,L),D表示傳輸的方向,D一1表示順時針方向傳輸,D—一1表示逆時針方向傳輸,在默認情況下D一1。算法的輸出是下一跳服務器地址(,)。算法1StaticRoutingAlgorithm:SRoute(cs,L。,cd,Ld,D)Input:(C,L)表示當前運行路由算法的服務器地址;(Ca,Ld)表示目的地址;D表示數據包頭中記錄的傳輸方向信息(順時針為1或者逆時針為一1)其中,L一(磚~1…詣),Ld一(皓一1…硼)。Output:下一跳服務器地址(,)。1if{(Ca+k-C)k≤1andL。一vCs—La—vcs)or{(cs+k-Cd)k≤1andLd—vcd—L一v}then/*L—v表示刪去標識L噶第cs位*/2Ca—Cd;—3else/*S不能直接達到目的地址*/4ifL。一一then—Ld;/*平面環型方向上*/5if(Cd+k—Cd*)k≤Lk/ZJ)then6C一(C。+1)k7else(二u一(C。+k一1)k8else一(…va..•);/*豎直螺旋方向上*|lO【二u一(C。+D一1)k;11return((二u,);在路由算法1中,并沒有計算在兩服務器之間的最短路徑。但是,算法1產生的路徑長度是有上限的。在此,對算法中可能產生的最長路徑進行分析。在此過程中,將連接在一個Layer-2交換機中的兩個服務器之間的包傳輸視為一次跳躍。從源服務器5出發,數據包最多經過忌次跳躍,先通過螺旋方向傳輸,到達服務器d(服務器d與目的服務器d擁有相同的地址標識)。然后,經服務器d出發,在環型方向經過最多Lk/zj次跳躍,達到目的服務器d。由此可見,在(,忌)C~X2N架構中,路由算法1產生的最長路徑為+Lk/zj。

3.3容錯路由策略

3.3.1在豎直螺旋方向中的容錯方法

在螺旋方向的途徑中,CDCN通過迂回的傳輸方式繞過出錯節點,將數據包發送到與目的地址標識相同的服務器。之后,在環型方向上傳輸數據包到達目的服務器。在螺旋方向上的容錯過程可分為3個步驟:如果在順時針方向下一跳服務器出錯,那么首先將數據包傳輸到順時針方向相鄰服務器列;如果在順時針方向下一跳服務器列中服務器均出錯,那么數據包將掉頭,向逆時針方向傳輸;在調轉傳輸方向之后,數據包將一直沿著逆時針方向以螺旋式路徑傳輸。

3.3.2在水平環型方向中的容錯方法

環型傳輸過程僅有兩個方向:順時針和逆時針。當數據包沿著一個方向傳輸過程遇到出錯節點時,將改變傳輸方向,沿著相反的方向傳輸。為了避免產生傳輸環路,傳輸方向僅能改變一次。若數據包在沿著改變之后的方向傳輸中還遇到出錯節點,CD(節點將丟棄該包。

4網絡性能測試

4.1單節點性能

在測試過程中,采用普通計算機作為CDCN中網絡服務器,實現路由策略以及數據轉發。計算機配置為Intel2.8GHz雙核CPU及2GB內存。服務器P是CDCN架構中的網絡節點,實現服務器A與B之間的通信。在服務器P中,為每一個數據包計算路由信息所需要的CPU時鐘周期,并進行統計分析。通過測試,CIN2N中靜態路由算法平均需要90個CPU周期計算出一個數據包的下一跳地址;而容錯路由算法則需要大約250個CPU周期為一個數據包獲得下一跳地址。為與一般的查詢過程進行對比,在相同測試平臺中,服務器P運行ClickRouter程序進行IP路由查詢,實驗結果如圖3所示。當路由表中只有128條路由信息時,路由器需要600多個CPU時鐘周期來獲得一個數據包的下一跳地址信息;當路由表信息量增大時,IP路由器將需要更多的時間完成路由查詢工作。:c,--t.rr.:._:rr:::/::r::rrr。r:,:r,::,,•l/:r:::。

4.2平均路徑長度

在此實驗中,我們采用12個端口的交換機,即一12,且服務器的列數是可擴展的。在測試網絡性能過程中,選取100,000個隨機源與目的地址對,仿真數據包在實際網絡中的路由和傳輸情況。圖4、圖5描述了平均路徑長度的實驗結果。在服務器不斷擴展過程中,路由過程的平均路徑長度與服務器層數呈線性增長關系。對于層數為忌的CDCN網絡架構,仿真實驗中的平均路徑長度與最短路徑相差不大,尤其是當服務器列數較少的時候;同時,與最長路徑忌+Lk/2相比,一般平均路徑縮短了2O%,實驗結果如圖4所示。隨著出錯的服務器數量不斷增長,路由中平均路徑的長度也隨之增加,但是,在此過程中,即使出錯節點數量增至300,網絡傳輸中依然沒有發生任何包丟棄的現象。

4.3在容錯路由策略中平均路徑長度

此外,對容錯路由策略也進行了性能仿真測試。實驗中,采用(12,4)CIX;N的網絡結構。每次測試中,隨機選取一定數量的服務器作為出錯節點,并隨機選擇100,000對源與目的地址,測試容錯路由算法的運行情況。如圖5所示,出錯節點的數量從1增至300,建立平均路徑長度與出錯節點數量之間的關系。(12,4)CIX~N網絡架構中擁有5,000臺服務器,若其中300臺出錯,其出錯概率已達到6%,網絡傳輸中依然沒有發生任何包丟棄的現象。