劉必果 束永安
(安徽大學計算機科學與技術(shù)學院 安徽 合肥 230601)
?
一種基于三層結(jié)構(gòu)模型的SDN負載均衡方案
劉必果 束永安
(安徽大學計算機科學與技術(shù)學院 安徽 合肥 230601)
交換機與控制器之間的靜態(tài)映射關系會導致SDN控制平面負載不均衡。針對這一問題,提出一種基于三層結(jié)構(gòu)模型的負載均衡方案SMLB。SMLB采用控制器管理層-控制器集群-數(shù)據(jù)層結(jié)構(gòu)模式,通過遷移交換機來改變交換機與控制器之間的靜態(tài)映射關系,從而均衡控制平面負載。同時,SMLB在選擇需要遷移的交換機和空閑控制器時,綜合考慮負載因素和距離因素。實驗結(jié)果表明,SMLB可以有效均衡控制平面負載,降低網(wǎng)絡延遲,提高控制平面可拓展性。
軟件定義網(wǎng)絡 負載均衡 交換機遷移
軟件定義網(wǎng)絡SDN[1-3]是一種控制平面與數(shù)據(jù)平面分離,軟件可編程的新型網(wǎng)絡體系結(jié)構(gòu)。控制平面對數(shù)據(jù)平面上的網(wǎng)絡設備進行集中式控制,并提供靈活的可編程能力;數(shù)據(jù)平面的網(wǎng)絡設備專注于高速轉(zhuǎn)發(fā)數(shù)據(jù)分組。隨著網(wǎng)絡規(guī)模的擴大,單個控制器的服務能力極有可能成為網(wǎng)絡性能的瓶頸,并且?guī)砜刂破矫骐y以拓展等問題。因此實現(xiàn)一個邏輯上集中、物理上分布的控制器結(jié)構(gòu)成為解決SDN控制平面可拓展性的良好解決方案。
近年來,關于分布式控制器已經(jīng)有了一系列研究成果,研究發(fā)現(xiàn)限制分布式控制器系統(tǒng)性能的一個關鍵因素是交換機與控制器之間的靜態(tài)映射關系。這一靜態(tài)映射關系會造成控制平面的負載不均衡[4-5]。針對這一問題,本文提出了基于三層結(jié)構(gòu)模型的負載均衡方案SMLB,改變交換機與控制器之間的靜態(tài)映射關系,均衡控制平面負載。SMLB在控制器集群上部署控制器管理層,集群內(nèi)控制器周期性地向控制器管理層提交其負載信息。控制器管理層站在全局角度同一時間只選擇一個過載控制器進行交換機遷移。同時,SMLB在選擇需要遷移的交換機和空閑控制器方面做出了合理有效地改進,綜合考慮了負載因素和距離因素。SMLB基于三層結(jié)構(gòu)模型實現(xiàn)SDN控制平面負載均衡,有效地降低了網(wǎng)絡延遲,提高了系統(tǒng)的穩(wěn)定性。
目前國內(nèi)外關于SDN控制平面負載均衡研究主要有靜態(tài)負載均衡和動態(tài)負載均衡兩方面。
靜態(tài)負載均衡提供一個負載均衡器,由負載均衡器采用特定的負載均衡策略,將請求提前分配給各個控制器[6-7]。由于網(wǎng)絡流量是動態(tài)的、實時的,隨著網(wǎng)絡規(guī)模的日益擴大,靜態(tài)負載均衡不能滿足網(wǎng)絡數(shù)據(jù)轉(zhuǎn)發(fā)的要求,還會造成網(wǎng)絡阻塞,轉(zhuǎn)發(fā)延遲,丟包等問題。同時靜態(tài)負載均衡并沒有改變交換機與控制器之間的靜態(tài)映射關系。
動態(tài)負載均衡通過實時獲取控制平面負載信息,對控制平面和數(shù)據(jù)平面作出及時調(diào)整,有效均衡控制平面負載。2012年,BalanceFlow[8]結(jié)構(gòu)提出流量重定向概念,在過載控制器管理下的交換機上安裝特定流表項。該流表項指導流請求應該轉(zhuǎn)發(fā)至哪個控制器,即把流請求重定向給其他的控制器處理,從而均衡控制平面負載。但BalanceFlow結(jié)構(gòu)并沒有改變交換機與控制器之間的靜態(tài)映射關系。為了解決交換機與控制器之間的靜態(tài)映射問題,Dixit[9]等提出交換機遷移方案,該方案使交換機可以從一個控制器遷移到另一個控制器,從而改變交換機與控制器之間的靜態(tài)映射關系。然而關于如何選擇需要遷移的交換機和空閑控制器還沒有詳細的解決方案。Zhou[10]等提出的負載均衡算法DALB對此進行了研究。DALB允許過載控制器收集其他控制器的負載,并根據(jù)集群內(nèi)所有控制器負載來判斷是否需要進行負載均衡。同時,DALB遷移過載控制器下負載最大的交換機至負載最小的控制器。但DALB存在以下三點不足:(1) DALB在多個控制器同時過載的情況下,每個過載控制器都會收集其他控制器負載,控制器之間通信過于頻繁,會造成網(wǎng)絡堵塞、丟包、消息不同步等問題。(2) DALB利用控制器監(jiān)控網(wǎng)絡負載,收集負載信息,并作出相應決策,會導致控制器負載過大從而嚴重影響控制器性能。(3) DALB沒有考慮距離因素對選擇需要遷移的交換機和空閑控制器的影響。
本文提出的基于三層結(jié)構(gòu)模型的負載均衡方案SMLB是在改變交換機與控制器靜態(tài)映射關系的基礎上,針對DALB的三點不足加以改進。實驗證明SMLB可以有效均衡控制平面負載,降低網(wǎng)絡延遲,提高控制平面的可拓展性。
本文利用ONOS[11]實現(xiàn)控制器集群,并在控制器集群上部署一個控制器管理層。控制器管理層負責監(jiān)控網(wǎng)絡負載和均衡網(wǎng)絡負載。集群中所有控制器地位相等,在負載均衡過程中,控制器不需要收集其他控制器負載,減輕了控制器之間的通信開銷。
2.1 SMLB結(jié)構(gòu)框架
OpenFlow[12]協(xié)議將控制器分為三種:Equal控制器、Slave控制器和Master控制器。Equal控制器對交換機具有所有權(quán)限,不僅能夠接受交換機發(fā)來的異步消息(例如PACKET_IN、FLOW-REMOVED消息等),還可以發(fā)送控制器-交換機消息以修改交換機的狀態(tài)。Slave控制器不接受任何交換機異步消息,但可以處理Slave控制器的角色請求消息。Master控制器與Equal控制器對交換機所具有的權(quán)限類似,但每個交換機只能有一個Master控制器,可以擁有多個Equal控制器或Slave控制器。如果Master控制器發(fā)生故障無法使用,Equal控制器可以轉(zhuǎn)變?yōu)镸aster控制器。利用這三種控制器的特性,設計了如圖1所示的SMLB結(jié)構(gòu)框架。該框架包括控制器管理層、控制器集群和數(shù)據(jù)層。控制器管理層負責監(jiān)控控制器負載,并根據(jù)負載信息作出相應決策和動作。控制器集群中,每個控制器管理一個交換機集合,控制器之間彼此通信。數(shù)據(jù)層包括OpenFlow交換機和數(shù)據(jù)鏈路等基礎設施。圖1中用實線表示該控制器是交換機的Master控制器,用虛線表示該控制器是交換機的Slave控制器。

圖1 SMLB結(jié)構(gòu)框架
2.2 SMLB算法
SMLB算法流程主要由以下兩個步驟組成。首先每隔一個周期時間,集群內(nèi)各控制器將負載信息上傳給控制器管理層;其次由控制器管理層統(tǒng)一規(guī)劃各個控制器相應的動作。SMLB控制器管理層主要由三個模塊構(gòu)成:(1) 負載監(jiān)控模塊,負責監(jiān)控集群內(nèi)負載信息并判斷是否需要遷移交換機;(2) 決策模塊,選擇需要遷移的交換機以及空閑控制器;(3) 動作模塊,完成交換機遷移至空閑控制器過程,并修改交換機與控制器之間的從屬關系。進一步的研究之前,為方便理解公式內(nèi)容,表1列出了本文可能會用到的一些基本術(shù)語和相關符號。
2.2.1 控制器負載評估
SDN控制器的負載主要由以下四個因素決定:(1) 處理PACKET_IN事件;(2) 維護本控制器管理的網(wǎng)絡視圖;(3) 與其他控制器之間的通信;(4) 安裝流表項。在不同的網(wǎng)絡環(huán)境中,處理PACKET_IN事件對負載影響最大,因此把周期內(nèi)交換機發(fā)給控制器的PACKET_IN事件數(shù)目作為周期內(nèi)該控制器上的負載[13-14]。
在SDN中,一個控制器可以控制多個交換機,每個交換機產(chǎn)生的PACKET_IN事件都將發(fā)送到控制器端,并排隊等待控制器處理。以單位時間內(nèi)到達控制器端的PACKET_IN事件數(shù)目作為該控制器的負載值,如式(1)所示:
(1)
其中,LCj代表控制器的負載值,Pij代表周期T內(nèi)交換機Sij發(fā)送到控制器Cj的PACKET_IN事件數(shù)目。
2.2.2 負載監(jiān)控模塊
負載監(jiān)控模塊接收到控制器上傳的負載值LCj和負載閾值LTj后更新負載信息表,如表2所示。當LCj小于等于LTj時控制器狀態(tài)為0,表示控制器不過載;當LCj大于LTj時控制器狀態(tài)為1,表示控制器過載。負載信息更新完成后根據(jù)各控制器負載值,以及控制器集群負載分布情況判斷是否需要遷移交換機。在DALB方案中,當控制器發(fā)生過載時,過載控制器收集其他所有控制器負載來獲取全局負載信息,增加了控制器之間通信開銷。而本文提出的SMLB利用控制器管理層收集控制器負載信息,并且當負載監(jiān)控模塊發(fā)現(xiàn)某個控制器過載時計算控制器集群內(nèi)的負載標準差,判斷是否需要遷移交換機。這種策略減少了控制器之間的通信開銷,降低了網(wǎng)絡延遲,更符合實際應用。
為了判斷是否需要遷移交換機,我們根據(jù)各個控制器的負載計算控制器集群內(nèi)的負載標準差,如式(2)所示:
(2)





本文在實驗中通過測試控制器性能發(fā)現(xiàn)λ=0.4時系統(tǒng)性能最優(yōu)。
2.2.3 決策模塊
決策模塊主要實現(xiàn)以下兩個目標:(1) 選擇需要遷移的交換機;(2) 選擇空閑控制器。
(1) 確定需要遷移的交換機
SMLB優(yōu)先考慮遷移負載較大的交換機,即LSix越大該交換機被遷移的概率越大。其次SMLB傾向于遷移距離過載控制器較近的交換機,這樣可以減少交換機與過載控制器之間的通信開銷,即Hix越小該交換機被遷移的可能性越大。定義交換機Six被遷移的概率為Pix,如式(3)所示:
(3)
其中,LSix表示交換機Six的負載值,Hix表示過載控制器Cx與交換機Six之間的距離。在本文中,遷移Pix值最大的交換機。
(2) 確定空閑控制器
通常選擇距離過載控制器較近的控制器作為空閑控制器。但是這樣的做法可能會造成過載控制器周圍的控制器負載相對較大,而距離過載控制器較遠的控制器負載相對較小,造成負載分布不均勻。為了使得控制器負載有更好的分布性,本文在確定空閑控制器階段,選擇負載較小且距離過載交換機距離較遠的控制器作為空閑控制器。
類似于確定需要遷移的交換機的方式,我們以控制器負載值以及到過載控制器的距離構(gòu)建概率模型,如式(4)所示:
(4)
其中,hxy為過載控制器Cx到控制器Cy的距離,LCy表示控制器Cy的負載值。Qy表示選中控制器Cy的概率。即LCy越小且hxy越大控制器Cy被選作空閑控制器的可能性越大。
2.2.4 動作模塊
圖2表示遷移前拓撲圖。圖2中控制器CA發(fā)生過載,控制器管理層決定遷移交換機S2A至控制器CB。圖3表示交換機S2A遷移后拓撲圖。

圖3 交換機遷移后
根據(jù)OpenFlow協(xié)議,交換機同時與多個控制器連接,其中一個為Master控制器,其他為Equal或Slave控制器。交換機遷移過程如下,共分為五個步驟:(1) 控制器管理層根據(jù)決策模塊發(fā)送“遷移S2A”消息給控制器集群內(nèi)過載控制器CA和目標控制器CB;(2) 控制器CB接收到“遷移S2A”消息后向控制器CA發(fā)送“請求遷移”;(3) 控制器CA接收到“遷移S2A”和“請求遷移”后同意遷移,向控制器發(fā)CB發(fā)送“開始遷移”消息;(4) 控制器CA發(fā)送“更改角色”消息給交換機S2A,請求將控制器CB的角色先從Slave過渡到Equal,最終更改為Master;(5) 交換機S2A接收到消息后將控制器CB角色改成Equal,同時與控制器CA進行事務交接之后將控制器CA角色更改為Slave,接著更改控制器CB角色為Master,最后回復控制器CB“更改成功”消息。至此交換機遷移成功,控制器CB為交換機S2A的Master控制器,控制器CA為交換機S2A的Slave控制器。
3.1 仿真場景描述
本文利用三個ONOS控制器A、B、C建立控制器集群,在控制器集群上部署控制器管理層。控制器管理層集成負載監(jiān)控模塊、決策模塊和動作模塊。利用mininet[15]完成網(wǎng)絡拓撲,實驗環(huán)境為32位12.04版本Ubuntu虛擬機。在集群上部署一個包含13個交換機節(jié)點的網(wǎng)絡,每個交換機連接一個主機,依次給控制器A、B、C分配6個、5個、2個交換機設備。通過安裝Iperf[16]模擬交換機發(fā)包來測試系統(tǒng)是如何進行負載均衡的。實驗結(jié)果表明,SMLB中所采用的控制器管理層-控制器集群-數(shù)據(jù)層結(jié)構(gòu)模式有效地緩解了網(wǎng)絡壓力,減少了網(wǎng)絡延遲,提高了系統(tǒng)的穩(wěn)定性。同時SMLB對控制器性能的影響較小。
3.2 實驗結(jié)果分析
3.2.1 控制器A、B、C負載情況
在0s時,每個交換機發(fā)送報文到該交換機的Master控制器,之后等待10s后再次發(fā)送新的報文。可以看出控制器A、B、C的負載比大致等于6∶5∶2,此時負載是很均衡的。40s后突然增加控制器A管理下的交換機發(fā)送報文量,所以A的負載增大。40s到85s這段時間里,管理層檢測到負載不均衡,觸發(fā)負載均衡機制并進行交換機遷移。85s之后控制平面負載達到了一個新的平衡,A、B、C的負載比值大約為5∶5∶3。100s后突然增加控制器B管理下的交換機發(fā)送報文量,所以B的負載增大。100s到145s這段時間里,管理層檢測到負載仍然是均衡的。實驗結(jié)果如圖4所示。

圖4 控制器A、B、C負載變化情況
3.2.2 網(wǎng)絡連接時延比較
分別在10、30、50、70、90、110、130s時用ping命令測量網(wǎng)絡連接時延。同樣的實驗環(huán)境中,在控制器集群上運行DALB算法,并在10、30、50、70、90、110、130s時測量網(wǎng)絡連接時延。SMLB與DALB在時延上的對比試驗結(jié)果如圖5所示。SMLB和DALB在交換機遷移之后總時延都有所減少,但SMLB在交換機遷移之后時延減少幅度比較大。實驗結(jié)果說明SMLB算法能夠有效均衡控制平面負載。

圖5 網(wǎng)絡連接時延比較
3.2.3 控制器集群性能比較
在DALB中,控制器不僅需要負責轉(zhuǎn)發(fā)交換機發(fā)送的流請求,同時要隨時監(jiān)控自身負載情況,判斷是否需要進行交換機遷移以及完成交換機遷移。這種策略會導致控制器的性能受到一定程度的影響。本實驗我們在同樣的負載壓力下,利用Cbench測試控制器性能,設置工作模式為Latency,模擬交換機連接到控制器,發(fā)送PACKET_IN消息給控制器,并等待控制器下發(fā)FLOW-MODS消息,由FLOW-MODS值計算延遲值,同時改變交換機發(fā)包速率進行多次實驗。實驗結(jié)果如圖6所示,本次實驗只記錄averagelatency數(shù)據(jù),通過對比可知SMLB控制器性能略優(yōu)于DALB控制器性能。

圖6 控制器性能比較
3.2.4 真實帶寬比較
在現(xiàn)實網(wǎng)絡環(huán)境中,多個控制器同時過載是普遍存在的現(xiàn)象。在多個控制器同時過載的情況下,DALB控制器之間通信過于頻繁。而SMLB是基于全局的角度調(diào)控控制器集群負載分布的,控制器把負載信息都交給控制器管理層處理,有效地較少了網(wǎng)絡傳輸帶寬。本實驗同時設置控制器A和控制器B過載,然后利用Iperf產(chǎn)生UDP流量負載10M到100M,記錄SMLB和DALB的真實傳輸帶寬。網(wǎng)絡的真實帶寬可以在mininet服務器端獲取。如圖7所示。在流量負載較小時,DALB和SMLB的真實帶寬并無明顯差別。當流量負載逐漸較大,SMLB真實帶寬開始大于DALB真實帶寬,并且隨著流量負載的增大,DALB和SMLB之間的差距也在逐漸變大。實驗結(jié)果說明SMLB算法中所采用的控制器管理層-控制器集群-數(shù)據(jù)層結(jié)構(gòu)模式更合理。

圖7 真實帶寬比較
針對交換機與控制器之間靜態(tài)映射關系導致的負載均衡問題,本文提出基于三層結(jié)構(gòu)模型的負載均衡方案SMLB。SMLB在控制器集群上部署控制器管理層,集群內(nèi)控制器周期性地向控制器管理層提交其負載信息。控制器管理層站在全局的角度調(diào)控控制器集群負載分布。SMLB在選擇需要遷移的交換機和空閑控制器方面作出了一定的改進,綜合考慮了負載因素和距離因素對交換機遷移的影響。在此基礎上實現(xiàn)控制平面負載均衡,有效地降低了網(wǎng)絡延遲,提高了系統(tǒng)的穩(wěn)定性。后續(xù)研究主要考慮在集群內(nèi)控制器負載普遍較大的情況下如何把控制平面負載下放到數(shù)據(jù)平面,同時保證控制平面負載下放到數(shù)據(jù)平面之后不會造成數(shù)據(jù)平面的過載等相關問題。
[1]McKeownN,AndersonT,BalakrishnanH,etal.OpenFlow:enablinginnovationincampusnetworks[J].ACMSIGCOMMComputerCommunicationReview,2008,38(2):69-74.
[2]XiaW,WenY,F(xiàn)ohCH,etal.Asurveyonsoftware-definednetworking[J].IEEECommunicationsSurveys&Tutorials,2015, 17(1):27-51.
[3] 黃韜,劉江,魏亮,等.軟件定義網(wǎng)絡核心原理與應用實踐[M]. 人民郵電出版社,2014.
[4]YaoG,BiJ,GuoL.Onthecascadingfailuresofmulti-controllersinSoftwareDefinedNetworks[C]//NetworkProtocols(ICNP),2013 21stIEEEInternationalConferenceon.IEEE,2013:1-2.
[5] 黃小曼.SDN網(wǎng)絡控制器負載均衡技術(shù)研究與實現(xiàn)[D]. 南京郵電大學,2015.
[6] 林萍萍,畢軍,胡虹雨,等. 一種面向SDN域內(nèi)控制平面可擴展性的機制[J].小型微型計算機系統(tǒng),2013,34(9):1969-1974.
[7]ZhangH,GuoX.SDN-basedloadbalancingstrategyforservercluster[C]//2014IEEE3rdInternationalConferenceonCloudComputingandIntelligenceSystems.IEEE,2014:662-667.
[8]HuY,WangW,GongX,etal.Balanceflow:controllerloadbalancingforopenflownetworks[C]//2012IEEE2ndInternationalConferenceonCloudComputingandIntelligenceSystems.IEEE, 2012,2:780-785.
[9]DixitAA,HaoF,MukherjeeS,etal.Elasticon:anelasticdistributedsdncontroller[C]//ProceedingsofthetenthACM/IEEEsymposiumonArchitecturesfornetworkingandcommunicationssystems.ACM,2014:17-28.
[10]ZhouY,ZhuM,XiaoL,etal.ALoadBalancingStrategyofSDNControllerBasedonDistributedDecision[C]//Trust,SecurityandPrivacyinComputingandCommunications,2014IEEE13thInternationalConferenceon.IEEE,2014:851-856.
[11]BerdeP,GerolaM,HartJ,etal.ONOS:towardsanopen,distributedSDNOS[C]//ProceedingsofthethirdworkshoponHottopicsinsoftwaredefinednetworking.ACM,2014:1-6.
[12]RenT,XuY.AnalysisoftheNewFeaturesofOpenFlow1.4[C]// 2ndInternationalConferenceonInformation,ElectronicsandComputer(ICIEAC2014).2014.
[13]ChengG,ChenH,HuH,etal.DynamicswitchmigrationtowardsascalableSDNcontrolplane[J].InternationalJournalofCommunicationSystems,2016,29(9):1482-1499.
[14]YaoG,BiJ,LiY,etal.Onthecapacitatedcontrollerplacementprobleminsoftwaredefinednetworks[J].IEEECommunicationsLetters,2014,18(8):1339-1342.
[15] De Oliveira R L S, Shinoda A A, Schweitzer C M, et al. Using Mininet for emulation and prototyping Software-Defined Networks[C]// IEEE Colombian Conference on Communications and Computing. IEEE, 2014:1-6.
[16] Tirumala A,Qin F,Dugan J,et al. Iperf:The TCP/UDP bandwidth measurement tool[OL].2005. http://dast. nlanr. net/Projects.
A LOAD BALANCING SCHEME OF SDN BASED ON THREE-TIER ARCHITECTURE
Liu Biguo Shu Yongan
(CollegeofComputerScienceandTechnology,AnhuiUniversity,Hefei230601,Anhui,China)
The static mapping relationship between the switch and the controller causes the load of SDN control plane to be unbalanced. To solve this problem, this paper proposes a load balancing scheme SMLB based on three-tier architecture. SMLB uses the controller management layer, the controller cluster, the data layer pattern. To balance the control plane load, SMLB changes the static mapping between the switch and the controller of migrating switch based on three-tier structure model. Simultaneously, SMLB overall considers the load factor and the distance factor in selecting migration switch to be migrated and idle controller. The experimental results show that SMLB can effectively control the plane load and reduce the network delay, so as to improve the control plane scalability.
Software defined network Load balancing Switch migration
2016-09-20。安徽省自然科學基金項目(1408085MF125)。劉必果,碩士,主研領域:軟件定義網(wǎng)絡控制平面負載均衡。束永安,教授。
TP393
A
10.3969/j.issn.1000-386x.2017.07.017