金 玲 束永安
(安徽大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院 安徽 合肥 230601)
SDN下的動態(tài)負(fù)載均衡機(jī)制
金 玲 束永安
(安徽大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院 安徽 合肥 230601)
軟件定義網(wǎng)絡(luò)SDN用于解決傳統(tǒng)網(wǎng)絡(luò)存在的垂直整合,難于管理等問題的新模式。在SDN的多域分布式控制平臺中,每個域的控制器則作為集中式控制器,當(dāng)有大量的消息請求時,可能會導(dǎo)致控制器過載。為了緩解控制器的過載,提出SDN下動態(tài)負(fù)載均衡機(jī)制。當(dāng)控制器負(fù)載達(dá)到閾值,控制器會優(yōu)先選擇負(fù)載較大的消息遷移至負(fù)載較小的鄰域,防止控制器阻塞。通過實驗,結(jié)果證明動態(tài)負(fù)載均衡機(jī)制具有更低的阻塞率和更高的控制器利用率。
SDN 負(fù)載均衡 遷移
SDN是從底層的路由器和交換機(jī)將網(wǎng)絡(luò)的控制邏輯分離,即底層路由器和交換機(jī)只負(fù)責(zé)簡單的數(shù)據(jù)轉(zhuǎn)發(fā),而分離出的控制邏輯則負(fù)責(zé)控制、管理整理整個網(wǎng)絡(luò)的新型技術(shù)。SDN依賴于運行在控制平臺的集中式控制器來管理網(wǎng)絡(luò)。
早先提出的單一的集中式控制器管理網(wǎng)絡(luò)如Beacon[1],但是隨著網(wǎng)絡(luò)的擴(kuò)大,單一的集中式控制器出現(xiàn)擴(kuò)展性、可靠性等問題[2]。之后提出的SDN多域分布式控制平臺解決了在SDN中的擴(kuò)展性和可靠性問題。所有控制器共享一致的網(wǎng)絡(luò)視圖,并負(fù)責(zé)管理整個網(wǎng)絡(luò)。數(shù)據(jù)平臺負(fù)責(zé)轉(zhuǎn)發(fā)數(shù)據(jù)包。通過ONF(Open Networking Foundation)定義的南向協(xié)議,控制器對整個數(shù)據(jù)平臺進(jìn)行監(jiān)聽、管理。
當(dāng)某個域的多個交換機(jī)收到大量的、頻繁的流時,交換機(jī)無法處理時,會發(fā)送請求到控制器。該域的控制器作為集中式控制器可能被過量使用,而其他域的控制器可能處于閑置狀態(tài)。
針對以上問題,本文提出SDN下的基于流的動態(tài)負(fù)載均衡機(jī)制。其目標(biāo)是當(dāng)一個域的控制器過載時,將會從中選擇負(fù)載大的消息,遷移至負(fù)載小的控制器,充分利用網(wǎng)絡(luò)中控制器的資源和快速緩解過載控制器,平衡整個網(wǎng)絡(luò)的負(fù)載。
Heller等[3]等首次提出控制器位置問題,考慮從傳播延遲的方向放置控制器到網(wǎng)絡(luò)中。Yao等[4]通過控制器的負(fù)載的視圖考慮控制器的放置問題。這些研究僅僅考慮多個控制器靜態(tài)放置。Dixit等[5]提出了名為ElastiCon靈活的控制器架構(gòu)。在ElastiCon的控制器架構(gòu)中,多個控制器形成控制器池,可以在不同的網(wǎng)絡(luò)環(huán)境下增長或收縮。并且Dixit等設(shè)計了一個交換機(jī)遷移協(xié)議,交換機(jī)能夠從一個控制器下遷移至另一個控制器下。然而,沒有具體描述如何選擇需要遷移的交換機(jī)和其目標(biāo)控制器。
Cheng等[6]提出了動態(tài)交換機(jī)遷移機(jī)制,將數(shù)據(jù)平臺和控制平臺看作游戲市場,控制器看成玩家,交換機(jī)看成商品,玩家根據(jù)自身情況交換商品,達(dá)到利益最大化。當(dāng)控制器負(fù)載較大時,就會啟動交換機(jī)遷移算法,雖然能夠緩和控制器負(fù)載,但是交換機(jī)發(fā)生遷移后,網(wǎng)絡(luò)拓?fù)?,狀態(tài)等都要發(fā)生改變,這也增加了控制器的負(fù)載。Yao等[7]設(shè)計的控制器的安置和當(dāng)控制器過載時基于流的邊界交換機(jī)動態(tài)遷移策略,將過載的控制器下處于邊界的交換機(jī)遷移至鄰域,以減少控制器的負(fù)載,如果交換機(jī)產(chǎn)生頻繁的遷移,可能導(dǎo)致網(wǎng)絡(luò)的不穩(wěn)定,甚至可能造成網(wǎng)絡(luò)的崩潰。Kyung等[8]提出的負(fù)載分布機(jī)制,將過載的控制器中的消息遷移至其他控制器,緩解控制器的負(fù)載。然而,沒有設(shè)計如何選擇消息和其目標(biāo)控制器,可能遷移負(fù)載較小的消息,在短時間內(nèi)可能沒有緩解控制器的負(fù)載,反而增加遷移成本。Selvid等[9]提出名為COLBAS的控制器負(fù)載均衡機(jī)制,應(yīng)用于分層控制平臺下,依賴于位于網(wǎng)絡(luò)拓?fù)渲行牡某壙刂破黛`活地管理每個控制器的處理的流請求。然而超級控制器則會成為集中式控制器,容易阻塞。Saifullah等[10]提出名為EHLBOF的一個新穎的負(fù)載平衡策略。能夠處理服務(wù)器的回復(fù)消息并更新服務(wù)器的狀態(tài)。Cimorelli等[11]提出基于Wardrop 平衡原理的分布式負(fù)載均衡算法,通過交換機(jī)向每個與其連接的控制器發(fā)送請求,根據(jù)相應(yīng)時間判斷控制器的負(fù)載狀態(tài),能夠動態(tài)地將交換機(jī)遷移到另一控制器,達(dá)到高效平衡OpenFlow控制器的流量、增加網(wǎng)絡(luò)吞吐量和最小化控制連接延遲。
本文提出的動態(tài)負(fù)載均衡機(jī)制在分布式控制平臺下,每個交換機(jī)會根據(jù)其位置分配到的控制器,將作為其默認(rèn)的控制器。每個交換機(jī)中的流表項可以分配給不同的控制器,并且假定控制器共享全局網(wǎng)絡(luò)視圖。很多因素會造成控制器過載,如PACKET_IN消息的處理,維持本域視圖,周期地與其他控制器通信,安裝流條目等[4]。而到達(dá)交換機(jī)的數(shù)據(jù)包不與其存在的流表項匹配時,交換機(jī)會從數(shù)據(jù)平面發(fā)送PACKET_IN消息到控制器,控制器的負(fù)載主要是處理PACKET_IN消息的產(chǎn)生的負(fù)載[12]。
動態(tài)負(fù)載均衡機(jī)制如圖1所示,當(dāng)一個交換機(jī)收到數(shù)據(jù)包,發(fā)現(xiàn)與交換機(jī)中存在的流表不匹配,它會發(fā)送PACKET_IN消息給默認(rèn)控制器??刂破鲿鶕?jù)自身負(fù)載情況決定是處理該消息還是將消息遷移至鄰域其他控制器。如果控制器的負(fù)載沒有達(dá)到某一閾值,那么它會通過PACKET_OUT消息或FLOW_MOD消息插入流表項,即默認(rèn)控制器處理PACKET_IN消息。然而,如果控制器負(fù)載達(dá)到某一閾值,那么它會啟動動態(tài)負(fù)載均衡機(jī)制,控制器會選擇負(fù)載大的消息,將選定的消息遷移至鄰域目標(biāo)控制器,將PACKET_IN消息交由其他空閑控制器處理。能夠快速減少過載控制器的負(fù)載,并且能夠充分利用空閑控制器的資源。通過這個方法,能夠?qū)崿F(xiàn)網(wǎng)絡(luò)的動態(tài)管理和快速平衡網(wǎng)絡(luò)負(fù)載。
圖1 提出的消息遷移過程
我們顯示在文中相關(guān)的符號,我們用表1將其列出。
表1 符號表示及其意義
我們將PACKET_IN消息的到達(dá)率和PACKET_IN消息在控制器的居留時間作為PACKET_IN消息的負(fù)載。
ρi=λi/μi
(1)
這里i表示第i個消息的負(fù)載,λi表示第i個PACKET_IN消息的到達(dá)率,μi表示第i個PACKET_IN消息在控制器的居留時間。
由于控制器的負(fù)載主要是PACKET_IN消息的負(fù)載,所以我們假定控制器中PACKET_IN消息的負(fù)載作為控制器的負(fù)載。
(2)
我們考慮SDN網(wǎng)絡(luò)中包含N個控制器N={c1,c2,…,cn},默認(rèn)一個控制器管理一個域。在每個控制器的監(jiān)聽模塊實時監(jiān)聽控制器的負(fù)載,當(dāng)控制器ci的負(fù)載超過其閾值α,會啟動動態(tài)負(fù)載均衡機(jī)制。我們的目標(biāo)是最大化使用網(wǎng)絡(luò)中控制器的資源,并且保證每個域的控制器具有足夠的能力處理本域消息和遷移的消息。
2.2.1 選擇候選目標(biāo)控制器
控制器ci的負(fù)載大于閾值時為過載控制器。過載控制器ci會與鄰域中的控制器通過東西向協(xié)議進(jìn)行通信,選出多個負(fù)載未超過閾值α的候選控制器。
2.2.2 選擇需要遷移的消息
我們設(shè)過載控制器中的消息為候選遷移消息集合I,為了能夠快速緩解控制器的負(fù)載,動態(tài)負(fù)載均衡機(jī)制選擇候選遷移消息集合I中的負(fù)載大的PACKET_IN消息bt。
bt=argi∈Imax{ρi}
(3)
2.2.3 選擇目標(biāo)域
過載控制器管理的域連接多個鄰域。目標(biāo)域不僅需要處理遷移的消息,還要能夠處理本域的消息。所以為了保證目標(biāo)控制器有足夠能力處理遷移的消息和本地消息,動態(tài)負(fù)載均衡機(jī)制會選擇候選控制器中負(fù)載最小的控制器作為目標(biāo)域bd。
(4)
s.t.ρbt+Lbd≤α
(5)
2.2.4 遷移消息
將選擇的消息遷移至目標(biāo)域。控制器更新狀態(tài),監(jiān)聽模塊判斷控制器的負(fù)載是否超過閾值。若控制器的負(fù)載仍然大于閾值,繼續(xù)啟動動態(tài)負(fù)載均衡機(jī)制,直至控制器負(fù)載小于閾值。動態(tài)負(fù)載均衡機(jī)制過程如圖2所示。
圖2 動態(tài)負(fù)載均衡流程圖
我們利用馬爾科夫鏈模型,分別評估傳統(tǒng)的SDN、負(fù)載分布機(jī)制和本文提出的動態(tài)負(fù)載均衡機(jī)制下的控制器的阻塞概率和利用率??刂破鹘邮盏腜ACKET_IN消息有:控制器接收本域交換機(jī)發(fā)送的新的PACKET_IN消息和從其他控制器遷移到該控制器的PACKET_IN消息。而傳統(tǒng)SDN的控制器只處理本域的PACKET_IN消息,而不考慮其他域的控制器的負(fù)載情況。
我們假定新的PACKET_IN消息和遷移的PACKET_IN消息的到達(dá)率服從泊松分布,分別為λN和λM,并且新的消息和遷移的消息在控制器的時間服從指數(shù)分布,分別為μN(yùn)和μM。那么新的消息和遷移消息的負(fù)載用ρN(=λN/μN(yùn))和ρM(=λM/μM)表示。
圖3(a)和(b)分別顯示了傳統(tǒng)SDN和動態(tài)負(fù)載均衡機(jī)制的狀態(tài)轉(zhuǎn)換。圖中每個狀態(tài)數(shù)字表示控制器中目前服務(wù)的消息的數(shù)量,C表示控制器能夠服務(wù)的最大能力。為了得到穩(wěn)定狀態(tài)分布,假定對于傳統(tǒng)SDN和動態(tài)負(fù)載均衡機(jī)制從狀態(tài)k到k+1狀態(tài)轉(zhuǎn)換率分別為ρN和ρM+ρN。所以動態(tài)負(fù)載均衡機(jī)制C負(fù)載分布機(jī)制穩(wěn)定的狀態(tài)概率pk。
(6)
圖3 傳統(tǒng)SDN和動態(tài)均衡機(jī)制的狀態(tài)轉(zhuǎn)換
(7)
(8)
P(N,f)=(1-pf)N
(9)
這里Pc表示新消息阻塞的概率,P(N,f)表示一個新消息沒有被默認(rèn)控制器接收后,在N個控制器中沒有能力接收一個遷移消息的概率。Pf表示控制器接受一個遷移消息的概率。
因為我們的目標(biāo)是充分利用控制器資源,控制器資源的高利用率意味著整個網(wǎng)絡(luò)的負(fù)載是平衡的。所以控制器資源的利用率則是衡量負(fù)載的一個重要因素??刂破髻Y源利用率U定義為預(yù)期使用控制器的容量與控制器的最大容量的比例。
(10)
我們對提出的動態(tài)負(fù)載均衡機(jī)制進(jìn)行了評估,我們在64位虛擬機(jī)Ubuntu 14.04版本的實驗環(huán)境下, 使用了Mininet[13]進(jìn)行仿真,我們設(shè)置控制器的最大服務(wù)數(shù)量C為100,平均服務(wù)時間假定1 ms,而遷移的消息提供的平均負(fù)載為10。
我們在仿真平臺下,對動態(tài)負(fù)載均衡機(jī)制進(jìn)行驗證,如圖4所示。在負(fù)載分布(a,b),a表示控制器的數(shù)量(N),b表示pf的值,即遷移的消息進(jìn)入控制器可被接收的概率??刂破鏖_始過載時,由于傳統(tǒng)SDN沒有考慮控制器之間的負(fù)載遷移,控制器過載后,所接受的消息被阻塞,所以傳統(tǒng)SDN阻塞的概率最大。負(fù)載分布機(jī)制由于考慮到消息的遷移,所以阻塞的概率較小。然而,負(fù)載分布機(jī)制沒有考慮優(yōu)先遷移負(fù)載較大的消息和選擇負(fù)載較小的控制器,在消息遷移時,一旦遷移的消息負(fù)載較小,控制器阻塞的概率仍然較大。動態(tài)負(fù)載均衡方案阻塞的概率更小,因為當(dāng)控制器過載時,會優(yōu)先選擇負(fù)載較大的消息,遷移到負(fù)載較小的控制器,能快速緩解控制器負(fù)載,所以控制器的阻塞概率最小。
圖4 消息阻塞的概率
圖5為控制器利用率的變化。在負(fù)載分布(a),a表示由于控制器過載,從其他控制器到該控制器所遷移的平均負(fù)載。因為傳統(tǒng)的SDN沒有考慮負(fù)載的遷移,控制器只考慮本域的負(fù)載,所以傳統(tǒng)的SDN的控制器的利用率最低。動態(tài)均衡負(fù)載的控制器利用率最高,因為將負(fù)載大的消息遷移至空閑的控制器,所以空閑的控制器的利用率增加,充分利用了整個網(wǎng)絡(luò)的控制器的資源,平衡網(wǎng)絡(luò)的負(fù)載。
圖5 控制器利用率
針對SDN下網(wǎng)絡(luò)的負(fù)載不均衡,控制器資源的利用較小等問題,本文提出了動態(tài)負(fù)載均衡機(jī)制。當(dāng)控制器過載時,優(yōu)先選擇負(fù)載大的消息,遷移至負(fù)載小的目標(biāo)控制器,達(dá)到均衡網(wǎng)絡(luò)負(fù)載,快速平衡網(wǎng)絡(luò)負(fù)載。仿真實驗結(jié)果顯示,動態(tài)負(fù)載均衡機(jī)制能夠充分利用網(wǎng)絡(luò)的控制器的資源和有效地防止控制器阻塞。下一步,主要綜合考慮研究影響控制器負(fù)載的因素和遷移過程中的產(chǎn)生路由選擇成本,使得在消息遷移過程中產(chǎn)生的成本最小。
[1] Erickson D.The beacon openflow controller[C]//ACM SIGCOMM Workshop on Hot Topics in Software Defined NETWORKING.ACM,2013:13-18.
[2] Yeganeh S H,Tootoonchian A,Ganjali Y.On scalability of software-defined networking[J].IEEE Communications Magazine,2013,51(2):136-141.
[3] Heller B,Sherwood R,Mckeown N.The controller placement problem[J].Acm Sigcomm Computer Communication Review,2012,42(4):473-478.
[4] Yao G,Bi J,Li Y,et al.On the Capacitated Controller Placement Problem in Software Defined Networks[J].Communications Letters IEEE,2014,18(8):1339-1342.
[5] Dixit A,Hao F,Mukherjee S,et al.Towards an elastic distributed SDN controller[J].Acm Sigcomm Computer Communication Review,2013,43(4):7-12.
[6] Cheng G,Chen H,Hu H,et al.Dynamic switch migration towards a scalable SDN control plane[J].International Journal of Communication Systems,2016,29(9):1482-1499.
[7] Yao L,Hong P,Zhang W,et al.Controller placement and flow based dynamic management problem towards SDN[C]//IEEE International Conference on Communication Workshop.IEEE,2015:363-368.
[8] Kyung Y,Hong K,Nguyen T M,et al.A load distribution scheme over multiple controllers for scalable SDN[C]//Seventh International Conference on Ubiquitous and Future Networks.IEEE,2015:808-810.
[9] Selvid H,Gurkan G,Fatih A.Cooperative Load Balancing for Hierarchical[C]//Proceeding of 2016 IEEE 17 th International Conference on High Perform Switching and Routing:100-105.
[10] Saifullah M A,Mohamed M A M.Open flow-based server load balancing using improved server health reports[C]//International Conference on Advances in Electrical,Electronics,Information,Communication and Bio-Informatics.IEEE,2016:649-651.
[11] Cimorelli F,Priscoli F D,Pietrabissa A,et al.A distributed load balancing algorithm for the control plane in software defined networking[C]//Control and Automation.IEEE,2016:1033-1040.
[12] Tootoonchian A,Gorbunov S,Ganjali Y,et al.On controller performance in software-defined networks[C]//Usenix Conference on Hot Topics in Management of Internet,Cloud,and Enterprise Networks and Services,2012:10.
[13] Lantz B,Heller B,Mckeown N.A network in a laptop:rapid prototyping for software-defined networks[C]//ACM Workshop on Hot Topics in Networks.HOTNETS 2010,Monterey,Ca,Usa-October.DBLP,2010:1-6.
DYNAMICLOADBALANCINGMECHANISMINSDN
Jin Ling Shu Yongan
(CollegeofComputerScienceandTechnology,AnhuiUniversity,Hefei230601,Anhui,China)
SDN, software defined network, is a new model for solving the problems of vertical integration and difficult management in traditional networks. In SDN’s multi domain distributed control platform, the controller of each domain is used as centralized controller. When a large number of message requests, the controller may be overloaded. In order to alleviate the overload of the controller, this paper proposes a dynamic load balancing mechanism in SDN. When the controller load reaches the threshold, the controller preferentially selects the larger load message to migrate to the smaller load to prevent the controller from blocking. Experimental results show that the dynamic load balancing mechanism has a lower blocking rate and higher controller utilization.
SDN Load balancing Migrate
TP393
A
10.3969/j.issn.1000-386x.2017.10.031
2016-12-06。安徽省自然科學(xué)基金項目(1408085MF125)。金玲,碩士生,主研領(lǐng)域:SDN負(fù)載平衡。束永安,教授。