- 相關(guān)推薦
軟件定義網(wǎng)絡(luò)架構(gòu)下基于流調(diào)度代價(jià)的數(shù)據(jù)中心論文
針對(duì)傳統(tǒng)數(shù)據(jù)中心網(wǎng)絡(luò)極易發(fā)生擁塞的問(wèn)題,提出了在軟件定義網(wǎng)絡(luò)(SDN)的架構(gòu)下設(shè)計(jì)基于流調(diào)度代價(jià)的擁塞控制路由算法加以解決。首先,進(jìn)行擁塞鏈路上的大小流區(qū)分,并對(duì)所有大流的各條等價(jià)路徑進(jìn)行路徑開(kāi)銷(xiāo)權(quán)重的計(jì)算,選擇權(quán)重最小的路徑作為可用調(diào)度路徑;然后,使用調(diào)度后路徑開(kāi)銷(xiāo)變化量和流占用帶寬比例來(lái)共同定義流調(diào)度代價(jià);最終選擇調(diào)度代價(jià)最小的流進(jìn)行調(diào)度。仿真結(jié)果表明,所提算法能在網(wǎng)絡(luò)發(fā)生擁塞時(shí)降低了擁塞鏈路上的負(fù)荷,并且與僅進(jìn)行流路徑選擇的擁塞控制算法相比,提高了鏈路利用率,減少了流傳輸時(shí)間,使得計(jì)算機(jī)網(wǎng)絡(luò)鏈路資源得到更好的利用。
0引言
傳統(tǒng)的數(shù)據(jù)中心網(wǎng)絡(luò)屬于訪問(wèn)式網(wǎng)絡(luò),其業(yè)務(wù)流量大部分都是客戶(hù)端與數(shù)據(jù)中心內(nèi)部的被請(qǐng)求服務(wù)器之間的“南北流量”[1]。然而,隨著Map Reduce應(yīng)用、虛擬機(jī)遷移以及其他帶寬密集型應(yīng)用等的發(fā)展,數(shù)據(jù)中心服務(wù)器內(nèi)部通信增多,一對(duì)多、多對(duì)一、多對(duì)多等集群通信模式[2]帶來(lái)了服務(wù)器間橫向流量的顯著增長(zhǎng)。隨之而來(lái)的問(wèn)題是,數(shù)據(jù)中心網(wǎng)絡(luò)內(nèi)部原有帶寬已不能滿(mǎn)足橫向流量的傳輸需求,相應(yīng)鏈路面臨極高的擁塞風(fēng)險(xiǎn)。加之傳統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜,路由算法大多采用分布式部署,造成擁塞控制算法的設(shè)計(jì)極為困難。不過(guò),隨著軟件定義網(wǎng)絡(luò)(Software Defined Network, SDN)技術(shù)的出現(xiàn)和發(fā)展,數(shù)據(jù)中心網(wǎng)絡(luò)的擁塞控制出現(xiàn)轉(zhuǎn)機(jī)。SDN架構(gòu)將數(shù)據(jù)層和控制層抽象分離[3],利用控制層的控制器對(duì)網(wǎng)絡(luò)進(jìn)行集中管理,保存全網(wǎng)網(wǎng)絡(luò)狀態(tài)視圖,為算法設(shè)計(jì)提供了巨大便利。同時(shí),SDN中數(shù)據(jù)轉(zhuǎn)發(fā)顆粒度為流,可以通過(guò)路由對(duì)流進(jìn)行調(diào)度,從而解決網(wǎng)絡(luò)擁塞問(wèn)題,因此,越來(lái)越多的研究關(guān)注SDN中通過(guò)路由算法的設(shè)計(jì)來(lái)進(jìn)行擁塞控制[4]。
在使用路由應(yīng)對(duì)SDN數(shù)據(jù)中心網(wǎng)絡(luò)擁塞問(wèn)題的方法中,基本思路是在網(wǎng)絡(luò)擁塞發(fā)生時(shí)通過(guò)對(duì)流重新選路來(lái)將流從擁塞鏈路調(diào)度到輕負(fù)載鏈路以緩解網(wǎng)絡(luò)擁塞,即擁塞控制路由[5-7]。而擁塞控制路由主要有主備路徑路由和動(dòng)態(tài)重路由兩種機(jī)制。主備路徑路由機(jī)制是指流進(jìn)入網(wǎng)絡(luò)后為其安裝兩條路徑,在鏈路擁塞時(shí)能夠使流從主路徑快速切換到備用路徑,但是備用路徑不僅會(huì)消耗流表的存儲(chǔ)資源,而且也不具備時(shí)效性,在網(wǎng)絡(luò)發(fā)生擁塞時(shí)很可能已不滿(mǎn)足當(dāng)前控制需要。而動(dòng)態(tài)重路由機(jī)制能更好地利用SDN控制器具有全網(wǎng)網(wǎng)絡(luò)狀態(tài)信息視圖的優(yōu)勢(shì),對(duì)擁塞進(jìn)行實(shí)時(shí)控制,因此,國(guó)內(nèi)外擁塞控制路由方案的設(shè)計(jì)主要集中在基于動(dòng)態(tài)重路由的流調(diào)度。
基于動(dòng)態(tài)重路由的流調(diào)度包括兩方面內(nèi)容:一是對(duì)哪一條流進(jìn)行重路由;二是如何對(duì)流進(jìn)行重路由。在對(duì)哪條流進(jìn)行重路由的問(wèn)題上,考慮到數(shù)據(jù)中心網(wǎng)絡(luò)中混合了不同業(yè)務(wù)流量,表現(xiàn)出明顯的大象流和老鼠流[8]的大小流特征,而小流量因?yàn)槌掷m(xù)時(shí)間相對(duì)較短,改變其路徑極有可能會(huì)增加時(shí)延和開(kāi)銷(xiāo),所以在鏈路擁塞時(shí)主要通過(guò)遷移大流量來(lái)實(shí)施調(diào)度。文獻(xiàn)[9]和文獻(xiàn)[10]都是在數(shù)據(jù)中心網(wǎng)絡(luò)流量達(dá)到調(diào)度條件時(shí)選擇大流量進(jìn)行調(diào)度,提高了重路由的有效性。文獻(xiàn)[9]是在鏈路達(dá)到擁塞門(mén)限值后進(jìn)行的調(diào)度,文獻(xiàn)[10]則是針對(duì)全網(wǎng)設(shè)置了全局負(fù)載均衡參數(shù),當(dāng)參數(shù)達(dá)到門(mén)限值后進(jìn)行調(diào)度,但是它們都沒(méi)有對(duì)所調(diào)度的大流量的選擇作進(jìn)一步研究,這難以保證所選流量是最優(yōu)調(diào)度對(duì)象。因?yàn)橄嗤窂缴系亩鄺l流在重路由時(shí),調(diào)度到相同的鏈路概率非常大,仍然容易產(chǎn)生新的擁塞問(wèn)題。而在對(duì)流的重路由路徑選擇問(wèn)題上,文獻(xiàn)[11]和[12]都采用了鏈路剩余容量作為權(quán)重來(lái)選擇路徑,但未考慮鏈路的實(shí)際路由開(kāi)銷(xiāo)會(huì)降低調(diào)度效率這一因素。
針對(duì)上述動(dòng)態(tài)重路由算法的一些不足,本文提出了一種基于流調(diào)度代價(jià)最小的擁塞控制路由算法,用于解決采用軟件定義網(wǎng)絡(luò)架構(gòu)的新型數(shù)據(jù)中心網(wǎng)絡(luò)擁塞問(wèn)題。
1基于流調(diào)度代價(jià)的擁塞控制路由算法
1.1路由算法機(jī)制
基于流調(diào)度代價(jià)最小的擁塞控制路由算法在設(shè)計(jì)時(shí)重點(diǎn)考慮了適合進(jìn)行調(diào)度的大流的二次選擇,以及調(diào)度后路徑開(kāi)銷(xiāo)和鏈路帶寬情況,其主要思想如下:
1)在對(duì)擁塞鏈路上的流進(jìn)行大小流區(qū)分之后,對(duì)所有大流的各條等價(jià)調(diào)度路徑進(jìn)行路徑開(kāi)銷(xiāo)的計(jì)算,最終選擇開(kāi)銷(xiāo)最小的路徑作為可用調(diào)度路徑,以保障調(diào)度路徑上每條鏈路具有充足的帶寬,實(shí)現(xiàn)最優(yōu)調(diào)度路徑的選擇。
2)引入調(diào)度代價(jià)來(lái)權(quán)衡網(wǎng)絡(luò)穩(wěn)定性和網(wǎng)絡(luò)鏈路利用率,使用調(diào)度后路徑開(kāi)銷(xiāo)變化量和流占用可用帶寬比例來(lái)共同定義流調(diào)度代價(jià),最終選擇調(diào)度代價(jià)最小的流進(jìn)行調(diào)度。
具體擁塞控制路由機(jī)制如圖1所示。
考慮到該擁塞控制路由算法是基于現(xiàn)有路由器的控制功能來(lái)完成的,為了與其兼容,并在不發(fā)生網(wǎng)絡(luò)鏈路擁塞的情況下使原有路由功能仍然可以發(fā)揮較好作用,所以在路由機(jī)制中保留了路由初始化這一環(huán)節(jié)。而且,鏈路擁塞判斷也需要有一個(gè)初始化的路由表來(lái)統(tǒng)計(jì)鏈路上的相應(yīng)信息并作后續(xù)處理。所以,圖1中,當(dāng)控制器收到Packagein消息后,仍然會(huì)進(jìn)行路由初始計(jì)算,一般以最短路徑為初始路由,并向相關(guān)交換機(jī)下發(fā)流表項(xiàng)。然后,控制器通過(guò)周期性發(fā)送StateRequest消息問(wèn)詢(xún)交換機(jī)及其端口的狀態(tài)來(lái)對(duì)所有鏈路進(jìn)行流量監(jiān)控;同時(shí)進(jìn)行擁塞判斷。當(dāng)發(fā)現(xiàn)鏈路負(fù)載大于擁塞門(mén)限值時(shí),啟動(dòng)動(dòng)態(tài)重路由。
動(dòng)態(tài)重路由首先對(duì)擁塞鏈路上所有流進(jìn)行大小流分類(lèi)?紤]到小數(shù)據(jù)流占用帶寬小、持續(xù)時(shí)間短和對(duì)時(shí)延敏感的特性,不宜對(duì)其進(jìn)行調(diào)度,因此,選擇大數(shù)據(jù)流進(jìn)行重路由計(jì)算,選擇路徑開(kāi)銷(xiāo)最小的路徑。
在多條大數(shù)據(jù)流中,還要對(duì)等待調(diào)度的流進(jìn)行再次選擇,即選出目標(biāo)流,使得擁塞鏈路的負(fù)載減輕的同時(shí),提高網(wǎng)絡(luò)的鏈路利用率。本文中使用調(diào)度代價(jià)對(duì)擁塞鏈路上的大數(shù)據(jù)流進(jìn)行判斷,選擇最小的調(diào)度代價(jià)的數(shù)據(jù)進(jìn)行調(diào)度。
最后刪除交換機(jī)中的原流表項(xiàng),同時(shí)下發(fā)新的流表項(xiàng)。
1.2路由算法實(shí)現(xiàn)
1.2.1算法模型
網(wǎng)絡(luò)描述:給定數(shù)據(jù)中心網(wǎng)絡(luò)G=(V,E),其中:V為非空節(jié)點(diǎn)集,代表網(wǎng)絡(luò)節(jié)點(diǎn)集合;而E為邊集,代表網(wǎng)絡(luò)所有節(jié)點(diǎn)的鏈路集合,而每一鏈路e∈E有一固定開(kāi)銷(xiāo)w。另外,定義P為源節(jié)點(diǎn)s∈V到目的節(jié)點(diǎn)d∈V的路徑集,其中第i條路徑用pi=ei1 → ei2 → … → eiK,而eijj=1,2,…,K表示第i條路徑pi的第j條鏈路。
鏈路利用率鏈路eij∈E的實(shí)時(shí)帶寬利用率ηij定義為鏈路已占用帶寬與該鏈路的總?cè)萘恐龋缡?1)所示:
ηij=loadij/Bij×100%(1)
其中:Bij表示鏈路帶寬容量,即最大傳輸速率;而loadij則表示鏈路上的負(fù)載大小,即已被占用的帶寬。
1.2.2算法流程
于是基于流調(diào)度代價(jià)最小的擁塞控制路由算法可表示如下。
2算法性能仿真分析
2.1仿真環(huán)境搭建
實(shí)驗(yàn)采用Mininet+Ryu的仿真平臺(tái)。Mininet是一款基于Linux Container架構(gòu)開(kāi)發(fā)的功能強(qiáng)大的輕量級(jí)軟件定義網(wǎng)絡(luò)仿真及測(cè)試平臺(tái),利用它可以模擬出包括主機(jī)、鏈路和交換機(jī)在內(nèi)的完整數(shù)據(jù)中心網(wǎng)絡(luò)[13]。而Ryu則是SDN中常用的開(kāi)源控制器模塊[14]。此外,網(wǎng)絡(luò)中的交換機(jī)選用OpenvSwitch交換機(jī)。本文利用Python自定義編寫(xiě)了如圖2所示的數(shù)據(jù)中心網(wǎng)絡(luò)中廣泛使用的FatTree拓?fù),拓(fù)浒▋膳_(tái)核心層交換機(jī)(交換機(jī)1和交換機(jī)2),8臺(tái)的聚合層交換機(jī)和邊緣層交換機(jī)(交換機(jī)3,交換機(jī)4,…,交換機(jī)10),而每4個(gè)聚合層交換機(jī)或邊緣層交換機(jī)組成一個(gè)Pod。
為實(shí)現(xiàn)控制器的路由及擁塞控制動(dòng)態(tài)路由,在Ryu中添加了拓?fù)浒l(fā)現(xiàn)模塊、流量監(jiān)測(cè)模塊、路由模塊、擁塞控制重路由模塊及流表項(xiàng)管理模塊來(lái)完成算法功能,所需模塊結(jié)構(gòu)如圖3所示。其中,拓?fù)浒l(fā)現(xiàn)模塊獲取算法中路由及流量監(jiān)控所需的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)和鏈路連接接口信息。監(jiān)控模塊主要是對(duì)控制器控制下的交換機(jī)進(jìn)行流量監(jiān)控,統(tǒng)計(jì)并存儲(chǔ);同時(shí)對(duì)鏈路狀態(tài)進(jìn)行判斷,當(dāng)發(fā)生鏈路擁塞時(shí),觸發(fā)擁塞控制重路由機(jī)制,并將網(wǎng)絡(luò)信息傳給重路由模塊(Rerouting Engine)進(jìn)行路徑計(jì)算和選流判斷。路由模塊在流剛進(jìn)入網(wǎng)絡(luò)時(shí)用于初始路徑的計(jì)算,動(dòng)態(tài)路由模塊周期性地檢測(cè)所用鏈路的擁塞情況,當(dāng)任何一條鏈路的負(fù)載超過(guò)擁塞門(mén)限值時(shí),將會(huì)對(duì)該鏈路上的一條或多條鏈路進(jìn)行重路由。
實(shí)驗(yàn)環(huán)境搭建中,流量的設(shè)置模擬了數(shù)據(jù)中心高動(dòng)態(tài)流量特性下發(fā)生擁塞后的情況,設(shè)置為Pod1和Pod2之間互相發(fā)送流,數(shù)據(jù)包數(shù)量、大小、發(fā)包間隔相同,流的目的端隨機(jī)。實(shí)驗(yàn)搭建平臺(tái)為筆記本一臺(tái)(Inter Core i7 4710、8GB),受條件限制,網(wǎng)絡(luò)運(yùn)行規(guī)模較小,但兩個(gè)Pod之間的通信鏈路數(shù)量與具有4個(gè)核心交換機(jī)的情況下是一致的,仍然具有4條可用鏈路,擁塞發(fā)生時(shí)依舊可利用其多路徑的特性實(shí)施算法。同時(shí)由于數(shù)據(jù)包的發(fā)包速率受限,本文未按一般數(shù)據(jù)中心鏈路容量進(jìn)行鏈路設(shè)置,而保持交換機(jī)端口速率為160Kb/s。所以在算法仿真驗(yàn)證中,取20Kb/s作為大小流區(qū)分的閾值。另外,為了在流調(diào)度時(shí)優(yōu)先考慮鏈路的使用效率,取α=0.5, β=1。
2.2仿真結(jié)果及分析
首先,為了驗(yàn)證算法實(shí)施后緩解鏈路擁塞的有效性,本文對(duì)兩條鏈路的鏈路使用情況進(jìn)行了考察:一條是比較繁忙的鏈路1(即圖2中交換機(jī)1到交換機(jī)3的鏈路);另一條是負(fù)載相對(duì)較輕的鏈路2(即圖2中交換機(jī)1到交換機(jī)4的鏈路)。如圖4所示,鏈路1在網(wǎng)絡(luò)運(yùn)行剛開(kāi)始時(shí)鏈路利用率不斷上漲,到達(dá)峰值97%,超過(guò)90%的門(mén)限值,處于擁塞的狀態(tài),之后算法開(kāi)始作用。鏈路2在30s左右才逐漸有負(fù)載,但鏈路1的擁塞并沒(méi)有得到立刻緩解,原因是擁塞鏈路上轉(zhuǎn)移的流的數(shù)目和大小沒(méi)有能使鏈路1上的負(fù)載降低到門(mén)限值以下。隨著鏈路1上的流不斷轉(zhuǎn)移到包括鏈路2在內(nèi)的其他鏈路上,鏈路1到了60s以后擁塞情況得到緩解,一直低于門(mén)限值,處于平穩(wěn)狀態(tài)。
為觀察算法在數(shù)據(jù)中心網(wǎng)絡(luò)高動(dòng)態(tài)流量模式下緩解鏈路擁塞的同時(shí)提高網(wǎng)絡(luò)鏈路利用率的性能,將本文提出的擁塞控制路由算法和僅對(duì)流的路徑進(jìn)行選擇的非擁塞控制路由算法在網(wǎng)絡(luò)鏈路利用率和流量傳輸時(shí)間上進(jìn)行了對(duì)比,鏈路利用率對(duì)比如圖5所示,傳輸時(shí)間如圖6所示。
由于流的數(shù)量較少,在實(shí)驗(yàn)中整個(gè)網(wǎng)絡(luò)的鏈路利用率并不高,最大只有45%左右。由圖5可以看出,在各個(gè)主機(jī)開(kāi)始發(fā)送數(shù)據(jù)包時(shí),鏈路利用率逐漸上升,而且剛開(kāi)始時(shí)利用率增長(zhǎng)速度非?,在30s左右增速放緩,網(wǎng)絡(luò)發(fā)生擁塞。到70s左右,擁塞解決后鏈路利用率達(dá)到最高,之后本文提出的算法鏈路利用率一直保持在40%到46%,而僅對(duì)流的路徑進(jìn)行選擇的非擁塞控制路由算法鏈路利用率在37%到43%。圖6是每個(gè)主機(jī)傳送整個(gè)數(shù)據(jù)流所用的時(shí)間對(duì)比此外,將主機(jī)1至主機(jī)8各自要進(jìn)行傳輸?shù)臄?shù)據(jù)流定義為流1至流8,然后在圖6中得到了每個(gè)主機(jī)傳輸各自數(shù)據(jù)流所用的時(shí)間對(duì)比,由圖6可看出,本文算法中所有流的平均傳輸時(shí)間低于沒(méi)有進(jìn)行流選擇的算法10%左右。
綜上所述,本文算法在網(wǎng)絡(luò)鏈路達(dá)到門(mén)限值后,能對(duì)擁塞鏈路上的流進(jìn)行調(diào)度,以減緩擁塞,使得鏈路負(fù)載低于門(mén)限值,同時(shí)通過(guò)對(duì)流的路徑的選擇及對(duì)所需調(diào)度的流的選擇,使得網(wǎng)絡(luò)鏈路資源得到更好的利用。
3結(jié)語(yǔ)
本文針對(duì)現(xiàn)有SDN數(shù)據(jù)中心網(wǎng)絡(luò)擁塞控制路由算法在區(qū)分大小流之后沒(méi)有對(duì)所要調(diào)度的大流進(jìn)行更加合理的選擇而導(dǎo)致新的擁塞問(wèn)題的缺陷,提出了一種基流調(diào)度代價(jià)最小化的擁塞控制算法,并對(duì)其進(jìn)行仿真驗(yàn)證。仿真結(jié)果表明,本文算法能實(shí)現(xiàn)對(duì)流最優(yōu)調(diào)度路徑的選擇,并且在調(diào)度流的選擇過(guò)程中,考慮了網(wǎng)絡(luò)穩(wěn)定性和網(wǎng)絡(luò)鏈路利用率,有效地對(duì)擁塞鏈路進(jìn)行調(diào)度以緩解擁塞情況,并且在鏈路利用率和傳輸效率方面有所提升,使得網(wǎng)絡(luò)鏈路資源得到更好的利用。然而,重路由的方法較多,本文采取的是全路徑路由,并沒(méi)有考慮到局部路由的情況。同時(shí),在鏈路過(guò)于擁擠時(shí),理論上一次性調(diào)度多條流可以提高擁塞緩解效率,而本文沒(méi)有考慮此種情況。最后,任何動(dòng)態(tài)的擁塞控制路由算法都會(huì)隨著所處網(wǎng)絡(luò)規(guī)模的擴(kuò)大而增加算法的復(fù)雜度,會(huì)給控制器和網(wǎng)絡(luò)鏈路傳輸造成額外負(fù)擔(dān),這都需要一個(gè)量化的分析來(lái)體現(xiàn)算法的應(yīng)用有效性,因此,接下來(lái)會(huì)針對(duì)上述問(wèn)題作進(jìn)一步研究。
【軟件定義網(wǎng)絡(luò)架構(gòu)下基于流調(diào)度代價(jià)的數(shù)據(jù)中心論文】相關(guān)文章:
基于網(wǎng)絡(luò)媒體下社會(huì)組織與媒介關(guān)系的定義論文09-24
基于約束理論的混流生產(chǎn)調(diào)度研究04-27
基于網(wǎng)絡(luò)環(huán)境下的研究性學(xué)習(xí)論文05-02
基于網(wǎng)絡(luò)環(huán)境下初中歷史教學(xué)的反思論文05-03
基于移動(dòng)網(wǎng)絡(luò)環(huán)境下的學(xué)習(xí)現(xiàn)狀及分析論文10-19
基于Internet遠(yuǎn)程教育系統(tǒng)的網(wǎng)絡(luò)架構(gòu)05-01
基于工作流技術(shù)的客運(yùn)專(zhuān)線調(diào)度系統(tǒng)研究04-30
基于網(wǎng)絡(luò)環(huán)境下的館藏評(píng)價(jià)研究04-29
基于RFID和WSN的養(yǎng)殖場(chǎng)管理系統(tǒng)網(wǎng)絡(luò)架構(gòu)04-27
人才培養(yǎng)下軟件的論文04-27