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