數(shù)據(jù)中心網(wǎng)絡設計思索
時間:2022-06-05 05:05:00
導語:數(shù)據(jù)中心網(wǎng)絡設計思索一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。
1引言
數(shù)據(jù)中心擁有龐大的機群,已經(jīng)廣泛應用于數(shù)據(jù)存儲、數(shù)據(jù)分析以及超大型網(wǎng)絡服務中[1]。在實現(xiàn)千兆兆級數(shù)據(jù)存儲過程中,數(shù)據(jù)在網(wǎng)絡中的傳輸和處理過程將消耗很多資源,如網(wǎng)絡帶寬、存儲空間以及電能等。在實際應用中,如網(wǎng)頁搜索、醫(yī)學圖像處理、社區(qū)網(wǎng)絡挖掘等領域,數(shù)據(jù)存儲和處理的數(shù)量相當龐大,因此對于數(shù)據(jù)中心來說,一個最基本的要求就是其必須具有很好的擴張性,擁有成千上萬甚至幾十萬數(shù)量的服務器。盡管普通計算機成本降低,但是架構龐大數(shù)量服務器的機群僅滿足擴展性的要求且有效控制整體成本仍是一個難題。由于在數(shù)據(jù)中心服務器的數(shù)量可以急劇增加,因此在架構內(nèi)部通行的帶寬也必須實現(xiàn)大于線性關系或者平方關系的增長,以適應頻繁的數(shù)據(jù)訪問和分布式數(shù)據(jù)處理及存儲。為了減少搭建內(nèi)部鏈接的成本,通常使用帶網(wǎng)卡的普通計算機以及已有網(wǎng)卡的通用服務器。至今為止,構建數(shù)據(jù)中心內(nèi)部鏈接的方式大致可以分為兩種:
(1)以交換機為中心的結(jié)構。通過交換機實現(xiàn)內(nèi)部連接和服務器數(shù)量的擴展,并且不對服務器的配置進行任何修改。
(2)以服務器為中心的結(jié)構。每個服務器僅需要實現(xiàn)數(shù)據(jù)處理和存儲,也需作為數(shù)據(jù)的轉(zhuǎn)發(fā)節(jié)點,保證無需對交換機配置進行更改l6]。由于數(shù)據(jù)中心網(wǎng)絡中節(jié)點數(shù)量巨大,需要建立網(wǎng)絡內(nèi)部統(tǒng)一編址和路由策略,以實現(xiàn)節(jié)點之間的高速通信過程,因此人們引入網(wǎng)絡虛擬化技術,實現(xiàn)節(jié)點資源構建,以及組建和管理規(guī)模龐大的網(wǎng)絡結(jié)構。本文結(jié)合網(wǎng)絡虛擬化平臺的研發(fā)經(jīng)驗,將提出一種以服務器為中心的數(shù)據(jù)中心結(jié)構設計方法——圓柱型數(shù)據(jù)中心網(wǎng)絡(CylinderDataCenterNet—works,CDCN)。在此架構中,采用以服務器為中心的設計方法,每一個節(jié)點由一臺服務器組成。與以交換機為中心的數(shù)據(jù)中心網(wǎng)絡相比,CDCN采用的設計方法更具優(yōu)勢。首先,將網(wǎng)絡傳輸控制由交換機轉(zhuǎn)移到服務器中執(zhí)行,提高了網(wǎng)絡架構中各虛擬網(wǎng)絡結(jié)構和路由策略的可控性和編程性。其次,以服務器為中心的設計方法采用低端的、網(wǎng)絡第二層路由處理的layer-2交換機,因此網(wǎng)絡架構的成本比較低。
2CDCN架構設計
2.1網(wǎng)絡結(jié)構
CDCN網(wǎng)絡由兩種設備組成:具有兩個網(wǎng)絡接口的服務器和擁有n個端口的交換機,且服務器和交換機被分為是列。在該結(jié)構中,只有兩個參數(shù)和k,因此CDCN網(wǎng)絡也可稱為(,愚)CDCN。我們用Ho..•1表示k個服務器列。個服務器列和k個交換機列在水平方向上環(huán)繞成一個圈,如圖1所示。由此可見,CDCN的結(jié)構是一個圓柱型,在水平方向是一個圓環(huán),在豎直方向上由服務器和交換機層相互間隔交錯組成。其中,服務器的兩個端口分別連接在兩側(cè)的交換機上。如架構圖所示,在Hl列中的服務器,一端連接在Sl列的交換機上,另一端則與S(_1)列的交換機相連。對于S層中的一個端換機,半數(shù)端口連接E列中的n/2臺服務器,另一半則連接Hc舳列中的n/2臺服務器。為了更簡單地描述CDCN的結(jié)構,下面稱服務器H()m列為H列的順時針方向相鄰列,而H(汁_1)舳列則是列的逆時針方向相鄰列。在擁有k列的CDCN架構中,每一個服務器列由(n/2)個服務器構成,每一個交換機列由(n/g)個交換機組成。對于列的(n/2)個服務器,用(…)表示,其中∈[o,魯一1](0≤≤k一1)。因此,在CDCN中一個服務器的位置標識即I【)號可定義為(C,t產(chǎn)…vo),其表示在服務器列Hc中標號為(…擴)的服務器。在實現(xiàn)對服務器進行標識的情況下,服務器和交換機之間的內(nèi)部連接如下:對于在任一服務器列H中2(n/2)臺服務器及其順時針相鄰的服務器列H(c+l】,可分為(n/2)卜個單元組,且每個組擁有個服務器。在單元組中,每個服務器的標號具有以下屬性:當把第C列的標識刪去之后,其余的標識信息一致。因此,在一個單元組中,一半數(shù)量的服務器屬于Hc列,另一半屬于H(c_列。同時,此臺服務器連在同一個標號為Sc的交換機上。因此,對于編號(…以vo)的服務器中,有n/2臺標號為(……)的服務器屬于Hc列,其中0≤≤魯一1;另有n/2臺相同標號的服務器屬于H(c+1)列,且都通過列的交換機連接。如圖2所示,在一個(8,2)CDCN網(wǎng)絡結(jié)構中,每個服務器列由(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網(wǎng)絡拓撲結(jié)構擴展性
2.2.1服務器數(shù)量
在此結(jié)構中,每列有(n/2)臺服務器,在(,)CDCN網(wǎng)絡中總共有k(n/2)臺服務器。定義N為(,五)CDCN網(wǎng)絡中的服務器總數(shù),那么N一(n/2)。若采用48端口的Gbit帶寬的交換機,構建3層(48,3)CDCN架構,那么該架構將有41472臺服務器。而當擴建到(48,4)CDCN架構時,服務器的數(shù)量將增至1327104臺;若再在此基礎上增加一層結(jié)構,即(48,5)CDCN網(wǎng)絡,那么該架構擁有的服務器數(shù)量將擴展至4千萬臺左右。由此可見,CDCN通過簡單的鏈接實現(xiàn)了較好的擴展性。
2.2.2交換機的數(shù)量
在(,尼)CDCN網(wǎng)絡結(jié)構中,每一個交換機列擁有(n/2)臺交換機,總共需要k(n/2)卜臺交換機。在定義的服務器標識(…vc…)中,若保持標號不變,那么總共有(n/2)個連接方式,且每一個連接方式需要一臺交換機,即一臺交換機連接臺標號為(1……vo)的服務器(其中o4≤詈一1),因此構建(,z,忌)CDCN網(wǎng)絡共需要k(n/厶2)臺交換機。
3路由策略設計
3.1數(shù)據(jù)包的兩步傳輸
在CDcN網(wǎng)絡中,包傳輸過程可以分為兩個步驟:第一步是將數(shù)據(jù)包從源服務器發(fā)送到與目的地址一樣的中間服務器;第二步是將數(shù)據(jù)包從中間服務器傳輸?shù)侥康姆掌鳌@?,源服務器s發(fā)送一個數(shù)據(jù)包到目的服務器d,且兩服務器的編址分別是(G,L)和(,),其中L和為服務器S、d的地址標識,L一(…),一(…),其中L一。其傳輸過程如下。(1)步驟1:螺旋方向傳輸在Hc列中的服務器S將數(shù)據(jù)包發(fā)送到相鄰服務器列H(c一1)中的服務器S,這兩個服務器的地址標識除第C位不同,其余均與s相同,且s的標識可以是[0,魯一1]中的任厶意值?;虍攤鬏敂?shù)據(jù)包到S2,Sz除了第((G+1))位不同,其余均與5相同,且Sz的標識可以是Eo,n/2—13中的任意值。此時,在傳輸過程中,地址標識僅更改一位。因此,當數(shù)據(jù)包從一個服務器列傳輸?shù)巾槙r針相鄰的服務器列中時,其地址標識僅變化一位,并且經(jīng)過忌次節(jié)點跳躍可以達到任何一個服務器。例如,在(,忌)C]3CN的網(wǎng)絡結(jié)構中,數(shù)據(jù)包從(O,0…O)傳輸?shù)揭?,1…1)的途徑為(O,0…O)一(1,0"-01)一(2,0…l1)一…一(志~1,1-.-1)。由于此路徑構成了一個螺旋結(jié)構,因此稱其傳輸過程為“螺旋方向傳輸”。在落選方式傳輸中,數(shù)據(jù)包既可以向順時針方向傳輸,也可以往逆時針方向傳輸。但是,在傳輸過程中,為了避免傳輸環(huán)路,所選擇的方向必須前后一致。為此,利用數(shù)據(jù)包包頭中一部分區(qū)域來記錄傳輸?shù)姆较蛐畔?。在實現(xiàn)中,默認的螺旋傳輸方向為順時針方向。(2)步驟2:環(huán)方向傳輸當傳輸?shù)脚c目的服務器d地址標識相同的服務器d之后,數(shù)據(jù)包將按順時針或者逆時針方向傳輸?shù)较噜彽?、具有相同標識的服務器列。在實現(xiàn)過程中,CDCN選擇更短的路徑進行傳輸。例如,在H*列服務器d中傳輸數(shù)據(jù)包到H(ca+)列的服務器中,此時(Cd+k-*)%愚≤Lk/2J;否則,服務器d將數(shù)據(jù)包發(fā)送至H(c+㈩)列。但不論往哪個方向傳輸,下一跳服務器的地址編址必為。在此過程中,數(shù)據(jù)包傳輸路徑猶如環(huán)狀,因此稱該階段為環(huán)方向傳輸。
3.2靜態(tài)路由算法
CDCN采用相對簡單的路由算法實現(xiàn)架構內(nèi)部數(shù)據(jù)的有效傳輸,其路由過程如算法1所示。源服務器地址為(G,L),目的服務器為(Cd,L),D表示傳輸?shù)姆较颍珼一1表示順時針方向傳輸,D—一1表示逆時針方向傳輸,在默認情況下D一1。算法的輸出是下一跳服務器地址(,)。算法1StaticRoutingAlgorithm:SRoute(cs,L。,cd,Ld,D)Input:(C,L)表示當前運行路由算法的服務器地址;(Ca,Ld)表示目的地址;D表示數(shù)據(jù)包頭中記錄的傳輸方向信息(順時針為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;/*平面環(huán)型方向上*/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產(chǎn)生的路徑長度是有上限的。在此,對算法中可能產(chǎn)生的最長路徑進行分析。在此過程中,將連接在一個Layer-2交換機中的兩個服務器之間的包傳輸視為一次跳躍。從源服務器5出發(fā),數(shù)據(jù)包最多經(jīng)過忌次跳躍,先通過螺旋方向傳輸,到達服務器d(服務器d與目的服務器d擁有相同的地址標識)。然后,經(jīng)服務器d出發(fā),在環(huán)型方向經(jīng)過最多Lk/zj次跳躍,達到目的服務器d。由此可見,在(,忌)C~X2N架構中,路由算法1產(chǎn)生的最長路徑為+Lk/zj。
3.3容錯路由策略
3.3.1在豎直螺旋方向中的容錯方法
在螺旋方向的途徑中,CDCN通過迂回的傳輸方式繞過出錯節(jié)點,將數(shù)據(jù)包發(fā)送到與目的地址標識相同的服務器。之后,在環(huán)型方向上傳輸數(shù)據(jù)包到達目的服務器。在螺旋方向上的容錯過程可分為3個步驟:如果在順時針方向下一跳服務器出錯,那么首先將數(shù)據(jù)包傳輸?shù)巾槙r針方向相鄰服務器列;如果在順時針方向下一跳服務器列中服務器均出錯,那么數(shù)據(jù)包將掉頭,向逆時針方向傳輸;在調(diào)轉(zhuǎn)傳輸方向之后,數(shù)據(jù)包將一直沿著逆時針方向以螺旋式路徑傳輸。
3.3.2在水平環(huán)型方向中的容錯方法
環(huán)型傳輸過程僅有兩個方向:順時針和逆時針。當數(shù)據(jù)包沿著一個方向傳輸過程遇到出錯節(jié)點時,將改變傳輸方向,沿著相反的方向傳輸。為了避免產(chǎn)生傳輸環(huán)路,傳輸方向僅能改變一次。若數(shù)據(jù)包在沿著改變之后的方向傳輸中還遇到出錯節(jié)點,CD(節(jié)點將丟棄該包。
4網(wǎng)絡性能測試
4.1單節(jié)點性能
在測試過程中,采用普通計算機作為CDCN中網(wǎng)絡服務器,實現(xiàn)路由策略以及數(shù)據(jù)轉(zhuǎn)發(fā)。計算機配置為Intel2.8GHz雙核CPU及2GB內(nèi)存。服務器P是CDCN架構中的網(wǎng)絡節(jié)點,實現(xiàn)服務器A與B之間的通信。在服務器P中,為每一個數(shù)據(jù)包計算路由信息所需要的CPU時鐘周期,并進行統(tǒng)計分析。通過測試,CIN2N中靜態(tài)路由算法平均需要90個CPU周期計算出一個數(shù)據(jù)包的下一跳地址;而容錯路由算法則需要大約250個CPU周期為一個數(shù)據(jù)包獲得下一跳地址。為與一般的查詢過程進行對比,在相同測試平臺中,服務器P運行ClickRouter程序進行IP路由查詢,實驗結(jié)果如圖3所示。當路由表中只有128條路由信息時,路由器需要600多個CPU時鐘周期來獲得一個數(shù)據(jù)包的下一跳地址信息;當路由表信息量增大時,IP路由器將需要更多的時間完成路由查詢工作。:c,--t.rr.:._:rr:::/::r::rrr。r:,:r,::,,•l/:r:::。
4.2平均路徑長度
在此實驗中,我們采用12個端口的交換機,即一12,且服務器的列數(shù)是可擴展的。在測試網(wǎng)絡性能過程中,選取100,000個隨機源與目的地址對,仿真數(shù)據(jù)包在實際網(wǎng)絡中的路由和傳輸情況。圖4、圖5描述了平均路徑長度的實驗結(jié)果。在服務器不斷擴展過程中,路由過程的平均路徑長度與服務器層數(shù)呈線性增長關系。對于層數(shù)為忌的CDCN網(wǎng)絡架構,仿真實驗中的平均路徑長度與最短路徑相差不大,尤其是當服務器列數(shù)較少的時候;同時,與最長路徑忌+Lk/2相比,一般平均路徑縮短了2O%,實驗結(jié)果如圖4所示。隨著出錯的服務器數(shù)量不斷增長,路由中平均路徑的長度也隨之增加,但是,在此過程中,即使出錯節(jié)點數(shù)量增至300,網(wǎng)絡傳輸中依然沒有發(fā)生任何包丟棄的現(xiàn)象。
4.3在容錯路由策略中平均路徑長度
此外,對容錯路由策略也進行了性能仿真測試。實驗中,采用(12,4)CIX;N的網(wǎng)絡結(jié)構。每次測試中,隨機選取一定數(shù)量的服務器作為出錯節(jié)點,并隨機選擇100,000對源與目的地址,測試容錯路由算法的運行情況。如圖5所示,出錯節(jié)點的數(shù)量從1增至300,建立平均路徑長度與出錯節(jié)點數(shù)量之間的關系。(12,4)CIX~N網(wǎng)絡架構中擁有5,000臺服務器,若其中300臺出錯,其出錯概率已達到6%,網(wǎng)絡傳輸中依然沒有發(fā)生任何包丟棄的現(xiàn)象。