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