文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.190631
中文引用格式: 周寧,胡濤,胡宇翔,等. 面向SDN負載均衡的交換機自適應(yīng)遷移策略[J].電子技術(shù)應(yīng)用,2019,45(12):91-95,105.
英文引用格式: Zhou Ning,Hu Tao,Hu Yuxiang,et al. An adaptive switch migration strategy for balancing loads in software-defined networking[J]. Application of Electronic Technique,2019,45(12):91-95,105.
0 引言
軟件定義網(wǎng)絡(luò)(Software-Defined Networking,SDN)多域控制器部署解決了可擴展性和靈活性的問題[1-2],由于流量的傳輸具有時間性和空間性[3],在某個時間段或者某個域內(nèi)會出現(xiàn)流量激增和瞬減,因此在各個子域中的控制器的流量負載情況不盡相同,從而導(dǎo)致該域的控制器出現(xiàn)過載和輕載的狀況,不利于整個網(wǎng)絡(luò)架構(gòu)的穩(wěn)定和控制器負載均衡[4]。
針對該問題,本文提出了一種面向SDN控制器負載均衡的交換機自適應(yīng)遷移策略。首先將SDN網(wǎng)絡(luò)劃分為各個子域,對各子域內(nèi)控制器的負載進行測量,將測量數(shù)據(jù)傳到數(shù)據(jù)中心,根據(jù)測量情況動態(tài)地設(shè)置控制器過載判定門限值,判斷在各SDN子域是否存在過載的控制器;然后基于自適應(yīng)遺傳算法[5]把過載控制器所在SDN子域作為交換機遷移過程的遷出域,選擇該子域的相鄰最優(yōu)子域作為交換機的遷入域;最后應(yīng)用生存期和淘汰機制將遷出域內(nèi)負載度高的交換機遷移至遷入域,從而實現(xiàn)整個網(wǎng)絡(luò)的負載均衡,提升了網(wǎng)絡(luò)可靠性。
1 模型構(gòu)建
在SDN多域網(wǎng)絡(luò)中,扁平式分布架構(gòu)的引入會引起各個SDN子域內(nèi)控制器負載不均衡[6],在這里,通過對交換機流量和控制器的負載進行測量,選擇遷入和遷出子域,將遷出域內(nèi)的負載度高的交換機遷移至相鄰的遷入域內(nèi),實現(xiàn)了控制器負載和交換機數(shù)量在SDN子域的均衡部署。
為了實現(xiàn)所設(shè)計功能,將SDN的子域中的模塊分為交換機鏈路模塊、控制器模塊、遷移模塊三大部分,如圖1所示。
底層的交換機和物理鏈路表示該子域的交換機鏈路模塊,由多個交換機通過物理鏈路連接構(gòu)成。往上是控制器模塊,負責(zé)管理網(wǎng)絡(luò)中的流量和拓撲。遷移模塊位于頂端,網(wǎng)絡(luò)中的各個控制器都與遷移模塊相連接,負責(zé)和協(xié)調(diào)交換機在各個SDN子域內(nèi)的有效遷移。
1.1 交換機鏈路模塊
一個完整的SDN網(wǎng)絡(luò)被切分成各個SDN子域,因此各個交換機群組也被歸類到不同的SDN的子域中。假設(shè)所有的交換機都支持OpenFlow協(xié)議[7],主要執(zhí)行數(shù)據(jù)轉(zhuǎn)發(fā)。一個完整的OpenFlow交換機如圖2所示,包括流表、安全通道及OpenFLow協(xié)議三部分,交換機與交換機之間、交換機與控制器之間由物理鏈路相連接。
1.2 控制器模塊
不同的SDN控制器歸屬于不同的SDN子域,負責(zé)管理該子域的網(wǎng)絡(luò),并與其他域的SDN控制器進行相互通信。對SDN控制器的內(nèi)部模塊進行劃分,主要分為5個部分:(1)南向接口,主要負責(zé)與數(shù)據(jù)平面通信;(2)負載收集與測量模塊,負載收集該控制器的負載信息,并聚合其他控制器的負載信息;(3)評估與決策模塊,負責(zé)評估控制器負載是否超過預(yù)設(shè)的門限值,根據(jù)各控制器的負載情況進行決策,設(shè)定動態(tài)門限值;(4)存儲模塊,儲存子域內(nèi)所有交換機的鏈路消息、拓撲消息和流量消息;(5)北向接口,負責(zé)與應(yīng)用平面進行通信。
1.3 遷移模塊
遷移模塊根據(jù)評估和決策的結(jié)果協(xié)調(diào)各個SDN子域,實行遷移策略,選擇遷出和遷入域,將遷出域內(nèi)高負載度的交換機遷移至遷入域內(nèi),完成控制器的負載均衡和交換機部署均衡。
2 設(shè)計實施
2.1 負載收集與測量
(1)控制器負載的收集
在SDN網(wǎng)絡(luò)中,控制器的負載主要由以下4個部分構(gòu)成:①待處理的Packet_In 的事件數(shù)(P);②維護其管理域和全局的拓撲所需的流量(F);③與其他控制器的通信開銷(K);④安裝上層應(yīng)用產(chǎn)生的流表項(N)。每個部分在不同控制器中所占的權(quán)值不同,設(shè)定相應(yīng)的權(quán)值分別對應(yīng)為u1、u2、u3、u4。因此可以得到控制器負載的計算公式為:
(2)交換機負載的測量
基于分布式SDN多域部署將整個網(wǎng)絡(luò)劃分為多個SDN子域,利用圖論的知識,設(shè)網(wǎng)絡(luò)拓撲為G(V,E),其中,V代表網(wǎng)絡(luò)中交換機,E代表交換機之間的鏈路。將網(wǎng)絡(luò)劃分為N個子域,各個子域可表示為Si(Wi,Li),其中,Wi表示子域Si中的交換機,Li表示Si中的鏈路,有:
定義 交換機負載度。交換機向控制器請求的Packet_In 的事件數(shù)定義為交換機的負載度,設(shè)為fk。
2.2 控制器過載判定
由于交換機流量在時間和空間上的波動性,有可能導(dǎo)致各SDN子域控制器負載不均衡,因此本文設(shè)計了一種控制器過載的動態(tài)判定機制。設(shè)置動態(tài)門限LA,子域Si中控制器的負載值為Ci,判定過載門限值設(shè)為ε,則LA如式(7)所示:
2.3 選擇與遷移策略
選擇與遷移策略主要包含兩部分內(nèi)容:(1)基于自適應(yīng)遺傳算法的遷入和遷出域選擇策略;(2)基于存活期和淘汰機制的交換機動態(tài)遷移策略。首先利用自適應(yīng)遺傳算法搜索能力強的特點,設(shè)定適應(yīng)度函數(shù)作為度量,在進化過程的每一代,動態(tài)地選擇交叉概率Pc和變異概率Pm,選擇出實施遷移的最佳SDN子域。然后計算出遷入和遷出SDN子域的相對平均負載度,動態(tài)地計算出兩個SDN子域的遷移率,根據(jù)遷移率確定可進行遷移交換機的數(shù)目,按照交換機負載度的高低進行排序,應(yīng)用存活期和淘汰機制把遷出域內(nèi)一定數(shù)目的高負載度交換機遷移到遷入域內(nèi),從而實現(xiàn)SDN多域控制器的負載均衡和交換機的部署均衡。
2.3.1 遷出域和遷入域選擇
將控制器負載最大的子域設(shè)為遷出域,設(shè)為Sh。遷入域的選擇是綜合考量各類影響因素后得到的結(jié)果,不僅要考慮候選SDN子域的控制器負載情況(記為C),還要考慮到遷入域和遷出域之間的傳輸時延(記為D),遷入過程所產(chǎn)生的通信流量記為T。設(shè)目標函數(shù)為Q,如式(8)所示:
在遷出域的相鄰子域中,將具有最小目標函數(shù)Qmin所在的子域設(shè)為遷入域,記為Sl。本文采用自適應(yīng)遺傳算法來求取目標函數(shù)的最小值Qmin。
自適應(yīng)遺傳算法中的要素進行如下設(shè)定:
(1)編碼設(shè)計
在這里本文采用二進制編碼,將原問題表示為一個二進制的0~1字符串的形式,然后在位串空間上進行迭代遺傳操作,得到的結(jié)果再通過解碼的過程來還原成其解空間的解。例如,(0,1,1,0,1,0)就是一個長度為6的二進制編碼染色體。
(2)適應(yīng)度函數(shù)
適應(yīng)度函數(shù)是對遺傳算法中解的好壞進行度量的一種標準,在這里選取目標函數(shù)Q作為該算法的適應(yīng)度函數(shù),根據(jù)適應(yīng)度函數(shù)計算個體的適應(yīng)度。
(3)交叉和變異
自適應(yīng)遺傳算法中的交叉操作是指兩個將相互配對的個體按照一致交叉的方式相互交換部分基因,從而形成兩個新的個體,交叉概率為Pc。與之類似,變異操作是指將個體的染色體編碼串中的某些基因座上的基因值用該基因座上的其他等位基因來替換,形成新的個體,記變異概率為Pm。
算法1:遷入、遷出域選擇算法
2.3.2 交換機自適應(yīng)遷移策略
基于算法1得到整個網(wǎng)絡(luò)中所要遷入和遷出域,然后計算出遷入和遷出的兩個SDN子域的相對平均負載度,得到兩個SDN子域的遷移率。根據(jù)遷移率選擇一定數(shù)目的交換機,使得遷出域里負載度高的交換機遷移到遷入域內(nèi),并加入存活期和淘汰機制,防止在遷移過程中有多個遷出域?qū)?yīng)一個遷入域時,遷入域內(nèi)有過多的交換機遷入,造成該遷入域負載驟增,產(chǎn)生二次遷移問題,平衡了各SDN子域內(nèi)交換機的數(shù)量。
(1)遷移率的調(diào)整
遷移率是對SDN子域的遷入和遷出能力的定量描述,通過遷移率的比較與計算可以得出能夠遷入和遷出交換機的最佳數(shù)量。
式(10)中兩個SDN子域的一個平均負載度為0,另一個為極值時,M(q,p)=0,需要滿足條件d+e=0。
(2)基于存活期的淘汰機制
本文設(shè)計了一種基于存活期和淘汰機制的交換機自適應(yīng)遷移算法,即對參與遷移的交換機計算其存活期,若遷入個體年齡大于它的存活期就要被淘汰,不再參與遷移過程。
存活期基于以下兩個原則:①負載度低的交換機的存活期大于負載度高的交換機的存活期;②當(dāng)某個SDN子域的交換機規(guī)模過大時不再接收新的交換機。
在此,為交換機設(shè)定兩個參數(shù):年齡Y(Xj)和壽命L(Xj)。交換機Xj每經(jīng)過一次遷移流程,稱為一代,其年齡加1,其存活的代數(shù)不能超過其存活期L(Xj)。為了防止子域的交換機數(shù)量過多或過少,引入規(guī)??刂崎T限值R,f(Xj)為交換機的負載度函數(shù)值,當(dāng)前域的最大、最小和平均負載度分別為fmax、fmin、favg,設(shè)置在SDN子域中交換機最大數(shù)目為Mmax。規(guī)??刂崎T限值R為:
其中,min LT是允許最小壽命,max LT是允許最大壽命。
算法2:交換機自適應(yīng)遷移算法
3 性能評估
本文應(yīng)用基于Ryu的分布式SDN控制器[8],在此基礎(chǔ)上添加了收集與測量模塊、評估決策模塊和存儲模塊,并編寫了遷移模塊來負責(zé)整個域內(nèi)交換機的遷移。運用Cbench[9]軟件,使用Mininet[10]來模擬整個網(wǎng)絡(luò)拓撲,通過模擬一定數(shù)量的交換機連接到控制器,發(fā)送Packet-In消息,并等待控制器下發(fā)flow-mods消息來衡量控制器的性能。
模擬一個具有5個控制器和100個交換機的網(wǎng)絡(luò)拓撲,將整個網(wǎng)絡(luò)劃分為5個SDN子域,每一個子域內(nèi)各部署一個控制器,使用Mininet來模擬整個網(wǎng)絡(luò)拓撲。首先為了說明本文所述遷移機制的有效性和均衡性,采用模擬主機在網(wǎng)絡(luò)中進行發(fā)送數(shù)據(jù)包,在交換機上產(chǎn)生大量的流量負載,將本文所采用的交換機自適應(yīng)遷移策略(Adaptive Migration Policy,AMP)、ElastiCon[3]提出的就近遷移策略(Nearest Migration Policy,NMP)和隨機遷移策略(Random Migration Policy,RMP)進行對比。控制器負載率代表控制器所承受的負載與可承受最大負載的比值,如圖3所示,對比3種策略下控制器負載率隨時間的變化。
從圖3中可以看出,剛開始時設(shè)定3種策略下所屬的控制器都處于過載狀態(tài),隨著時間的推移,隨機遷移策略RMP對于要遷移的SDN子域隨機選擇,導(dǎo)致曲線處于無規(guī)律波動狀態(tài),有所下降但波動幅度較大;在0~60 s內(nèi),就近遷移策略NMP和自適應(yīng)遷移策略AMP呈下降趨勢;大約60 s遷移過程完成之后波動幅度較小,趨于穩(wěn)定,但AMP的相對負載率在0.76左右比起RMP的0.91有明顯的下降,交換機遷移效率提升了19.7%,表明采用本文提出的自適應(yīng)遷移策略可以使過載控制器的負載率得到明顯改善,控制器資源得到充分的調(diào)動,各個控制器的負載更加均衡。
如圖4所示,在前60 s內(nèi),由于交換機的遷出,遷出域控制器的負載基本上是呈現(xiàn)明顯的下降趨勢,且遷入域由于有部分負載度高的交換機從遷出域中遷移過來,因此遷入域控制器的負載有一定程度的上升;在60 s之后,兩個域內(nèi)的控制器的負載基本處于均衡狀態(tài),由數(shù)據(jù)統(tǒng)計可以看出,遷出域控制器的初始負載值是設(shè)定為1 400 Request/s,遷入域控制器的初始負載值設(shè)定為800 Request/s,經(jīng)過遷移之后,遷出域控制器負載值變?yōu)? 133 Request/s,相對于初始值降低了19.1%,同時遷入域控制器負載值變?yōu)闉? 041 Request/s,都低于控制器過載判定門限值1 300 Request/s,遷出域和遷入域的負載得到了很好的均衡。
4 結(jié)論
本文針對SDN多域部署下各個子域控制器之間的負載不均衡問題,設(shè)計了基于自適應(yīng)遺傳算法的遷入、遷出域選擇機制,根據(jù)遷移率,存活期和淘汰機制在遷出域中選擇一定數(shù)目的交換機遷移到遷入域中,實現(xiàn)了各SDN子域控制器的負載均衡和交換機在各子域內(nèi)的均衡部署。
參考文獻
[1] HU T,LAN J,ZHANG J.Bidirectional matching strategy for multi-controller deployment in distributed software defined networking[J].IEEE Access,2018,6:14946-14953.
[2] HU T,YI P,ZHANG J,et al.Reliable and load balance-aware multi-controller deployment in SDN[J].China Communications,2018,15(11):184-198.
[3] DIXIT A, HAO F, MUKHERJEE S,et al.Towards an elastic distributed SDN controller[C].HotSDN′13.New York:ACM,2013: 7-12.
[4] ZHONG H,F(xiàn)ANG Y,CUI J.LBBSRT:an efficient SDN load balancing scheme based on server response time[J].Future Generation Computer Systems,2017,68:183-190.
[5] 梁霞.改進的自適應(yīng)遺傳算法及其在作業(yè)車間調(diào)度中的應(yīng)用[J].大連交通大學(xué)學(xué)報,2009,30(4):47-49.
[6] YEGANEH S H,GANJALI Y.Kandoo:a framework for efficient and scalable offloading of control applications[C].Proceedings of ACM SIGCOMM HOTSDN,2012.Helsinki,F(xiàn)inland:ACM,2012:19-24.
[7] EUGEN B,RADU B,SERBAN G O,et al.On multi controller placement optimization in software defined networking based WANs[C].Proceedings of The Fourteenth International Conference on Networks,2015.ICN,2015:261-266.
[8] ASADOLLAHI S,GOSWAMI B,SAMEER M.Ryu controller′s scalability experiment on software defined networks[C].IEEE(ICCTAC),Bangalore,2018:1-5.
[9] JAWAHARAN R,MOHAN P M,DAS T,et al.Empirical evaluation of SDN controllers using mininet/wireshark and comparison with cbench[C].ICCCN,Hangzhou,2018:1-2.
[10] KHALID A,QUINLAN J J,SREENAN C J.MiniNAM:a network animator for visualizing real-time packet flows in Mininet[C].ICIN 2017,Paris,2017:229-231.
作者信息:
周 寧,胡 濤,胡宇翔,汪斌強
(中國人民解放軍戰(zhàn)略支援部隊信息工程大學(xué),河南 鄭州450002)