蘇曉偉 魏軍 周魯
摘? 要:針對(duì)當(dāng)前多域SDN網(wǎng)絡(luò)中多個(gè)控制器同時(shí)運(yùn)行時(shí)會(huì)出現(xiàn)低負(fù)荷或過載運(yùn)行狀態(tài),嚴(yán)重影響網(wǎng)絡(luò)正常運(yùn)行的問題,開展對(duì)多控制器負(fù)載均衡算法的設(shè)計(jì)研究。結(jié)合多控制器運(yùn)行特點(diǎn),判定多控制器三種基本運(yùn)行狀態(tài);在多域SDN網(wǎng)絡(luò)中,選擇需要遷移的交換機(jī)和目標(biāo)控制器;最后結(jié)合動(dòng)態(tài)自適應(yīng)計(jì)算的方式,實(shí)現(xiàn)多控制器的負(fù)載均衡運(yùn)行。通過對(duì)比應(yīng)用新算法前后的多控制器運(yùn)行情況得出,在應(yīng)用新算法后,多個(gè)控制器的負(fù)荷均能夠控制在理想范圍內(nèi),實(shí)現(xiàn)負(fù)載均衡,確保多域SDN網(wǎng)絡(luò)的穩(wěn)定運(yùn)行。
關(guān)鍵詞:多域;控制器;均衡;算法;負(fù)載;SDN網(wǎng)絡(luò)
中圖分類號(hào):TP393? ? 文獻(xiàn)標(biāo)識(shí)碼:A? 文章編號(hào):2096-4706(2023)06-0025-03
Research on Multi-Controller Load Balance Algorithm in Multi-Domain SDN Network
SU Xiaowei1, WEI Jun1, ZHOU Lu2
(1.Karamay Vocational and Technical College, Karamay? 834000, China; 2.Karamay Oil City Data Co., Ltd., Karamay? 834000, China)
Abstract: Aiming at the problem that low load or overload operation state will occur when multiple controllers are operating at the same time in the current multi-domain SDN network, which seriously affects the normal operation of the network, the design and research of multi-controller load balance algorithm is carried out. Combined with the characteristics of multi-controller operation, this paper determines three basic operating states of multi-controller. In the multi-domain SDN network, it selects switches and target controllers that need to be migrated. Finally, combined with the dynamic adaptive calculation method, the load balance operation of multiple controllers is realized. By comparing the operation situation of multiple controllers before and after the application of the new algorithm, it is concluded that after the application of the new algorithm, the load of multiple controllers can be controlled within the ideal range to achieve load balance and ensure the stable operation of multi-domain SDN network.
Keywords: multi-domain; controller; balance; algorithm; load; SDN network
0? 引? 言
網(wǎng)絡(luò)的快速發(fā)展,使得傳統(tǒng)的物理服務(wù)器已無(wú)法滿足日益增長(zhǎng)的需求,以服務(wù)器虛擬化為代表的技術(shù)逐漸成為主流,而當(dāng)今世界對(duì)網(wǎng)絡(luò)的質(zhì)量要求也越來(lái)越高。盡管網(wǎng)絡(luò)設(shè)備的性能得到了極大的改善,但隨著網(wǎng)絡(luò)流量的不斷增加,存在著許多問題亟待解決。SDN網(wǎng)絡(luò)以軟件定義網(wǎng)絡(luò)為基礎(chǔ),支持多控制器動(dòng)態(tài)切換,可以實(shí)現(xiàn)網(wǎng)絡(luò)功能管理與優(yōu)化,是下一代網(wǎng)絡(luò)的發(fā)展方向[1]。但目前SDN網(wǎng)絡(luò)在部署時(shí)面臨著多控制器負(fù)載均衡算法多并發(fā)故障、資源利用率低、網(wǎng)絡(luò)復(fù)雜度高等問題。在SDN網(wǎng)絡(luò)部署領(lǐng)域,為了能夠?qū)⒕W(wǎng)絡(luò)的硬件資源集中在一個(gè)節(jié)點(diǎn)上,并實(shí)現(xiàn)網(wǎng)絡(luò)資源的調(diào)度與配置,目前主流的SDN架構(gòu)都采用了分布式架構(gòu)[2]。分布式架構(gòu)需要一個(gè)節(jié)點(diǎn)來(lái)完成硬件的功能調(diào)度和配置,并且在多個(gè)節(jié)點(diǎn)中實(shí)現(xiàn)全局控制器負(fù)載均衡算法(CCA)、局部控制器負(fù)載均衡算法(MPA)及全局控制器負(fù)載均衡算法(SDM)不同程度的并發(fā)故障抑制。而分布式架構(gòu)中控制器負(fù)載均衡算法(CCA)和全局控制器負(fù)載均衡算法(SDM)集成在一個(gè)協(xié)議中并且都實(shí)現(xiàn)了網(wǎng)絡(luò)資源的調(diào)度與配置,所以很難有效的解決多控制器負(fù)載均衡算法多并發(fā)故障抑制問題[3]。此外,隨著SDN網(wǎng)絡(luò)設(shè)備和技術(shù)的發(fā)展,使得傳統(tǒng)網(wǎng)絡(luò)已經(jīng)不能滿足當(dāng)前用戶的需求以及未來(lái)發(fā)展的需要,SDN網(wǎng)絡(luò)未來(lái)將會(huì)成為各大運(yùn)營(yíng)商及IT企業(yè)部署SDN網(wǎng)絡(luò)的主要方式之一。在這一背景下,本文下述將開展多域SDN網(wǎng)絡(luò)中多控制器負(fù)載均衡算法的相關(guān)研究。
1? 判定多控制器運(yùn)行狀態(tài)
在多域SDN網(wǎng)絡(luò)中,多個(gè)控制器若想實(shí)現(xiàn)負(fù)載均衡,必須對(duì)控制器的狀態(tài)做出判定,如果判定的標(biāo)準(zhǔn)較高,則控制器會(huì)始終處于較高的負(fù)荷而沒有達(dá)到過載閾值;如果判定的基準(zhǔn)較低,則控制器就會(huì)不斷地執(zhí)行遷移運(yùn)算,從而降低控制器的使用效率,并增加整體的延時(shí)[4]。從這一點(diǎn)可以看出,控制器的狀態(tài)判斷非常重要。因此,根據(jù)多個(gè)控制器在運(yùn)行過程中的特點(diǎn),確定三種控制器的狀態(tài)表達(dá)式:
(1)
式中,F(xiàn)表示多域SDN網(wǎng)絡(luò)中控制器的運(yùn)行狀態(tài),其中,當(dāng)F取值為0時(shí),此時(shí)控制器為低負(fù)載或空閑運(yùn)行狀態(tài),當(dāng)F取值為1時(shí),此時(shí)控制器為過載運(yùn)行狀態(tài),需要進(jìn)行負(fù)載遷移,當(dāng)F取值為2時(shí),此時(shí)控制器處于正常工作狀態(tài);A表示需要進(jìn)行處理的請(qǐng)求事件;R表示控制器接收到的請(qǐng)求事件;w (Ci)表示控制器的實(shí)際運(yùn)行負(fù)荷;threshold表示針對(duì)控制器運(yùn)行設(shè)置的負(fù)載閾值。根據(jù)上述公式可以確定,在控制器運(yùn)行負(fù)荷小于負(fù)載閾值,并且接收請(qǐng)求與處理請(qǐng)求的比值小于1時(shí),此時(shí)控制器處于F為0的狀態(tài);當(dāng)控制器運(yùn)行負(fù)荷大于負(fù)載閾值,并且接收請(qǐng)求與處理請(qǐng)求的比值大于1時(shí),此時(shí)控制器處于F為1的狀態(tài);在其他情況下,控制器處理F為2的狀態(tài)[5]。以此,根據(jù)上述論述,可實(shí)現(xiàn)對(duì)多域SDN網(wǎng)絡(luò)中各個(gè)控制器運(yùn)行狀態(tài)的具體描述和判定。
2? 選擇多域SDN網(wǎng)絡(luò)交換機(jī)遷移
在確定多控制器的運(yùn)行狀態(tài)后,還需要對(duì)多域SDN網(wǎng)絡(luò)中各個(gè)交換機(jī)的遷移策略進(jìn)行選擇,確定需要遷移的交換機(jī)以及遷移路徑[6]。選擇低流量請(qǐng)求率的交換機(jī)具有更小的延遲,而高流量請(qǐng)求率的交換機(jī)則可以極大地提高傳輸?shù)呢?fù)荷。如果只選擇低流量請(qǐng)求率的交換機(jī)來(lái)降低傳輸時(shí)延,則會(huì)導(dǎo)致系統(tǒng)的遷移次數(shù)過多,從而降低了交換機(jī)的運(yùn)行效率;盲目地選擇具有高流量請(qǐng)求率的交換機(jī),會(huì)使目標(biāo)控制器不能同時(shí)處理大量的數(shù)據(jù),從而造成系統(tǒng)的延遲。在綜合上述因素的基礎(chǔ)上,確定在 RTT基礎(chǔ)上進(jìn)行交換機(jī)的遷移[7]。在多域SDN網(wǎng)絡(luò)開始運(yùn)行后,為每一臺(tái)交換機(jī)都賦予一個(gè)初始的權(quán)值,該權(quán)值會(huì)根據(jù) RTT的動(dòng)態(tài)而發(fā)生變化。對(duì)于權(quán)值的設(shè)置,可將下述公式作為依據(jù):
(2)
式中,w(Si)表示某一交換機(jī)的權(quán)值;RTTi表示某一交換機(jī)在沒有遷移時(shí)往返所需的時(shí)間; 表示某一交換機(jī)在經(jīng)過遷移后往返所需的時(shí)間;θ表示調(diào)節(jié)系數(shù)。根據(jù)上述公式,確定多域SDN網(wǎng)絡(luò)中各個(gè)交換機(jī)的權(quán)值。根據(jù)權(quán)值從小到大的順序,對(duì)交換機(jī)進(jìn)行排序,在遷移時(shí),優(yōu)先從權(quán)值大的交換機(jī)開始遷移。
3? 選擇多域SDN網(wǎng)絡(luò)目標(biāo)控制器
在確定需要進(jìn)行遷移的交換機(jī)后,再選擇需要進(jìn)行負(fù)載均衡控制的目標(biāo)控制器。結(jié)合平均化的思想,在考慮負(fù)載控制在經(jīng)過遷移后是否能夠減輕負(fù)荷的基礎(chǔ)上,同時(shí)考慮多域SDN網(wǎng)絡(luò)中所有控制器的整體負(fù)載問題。為了更方便對(duì)目標(biāo)控制器進(jìn)行判斷,對(duì)整體負(fù)載按照下述公式進(jìn)行定義:
(3)
式中,G表示單一控制器的負(fù)荷對(duì)整體負(fù)荷品質(zhì)變化影響的量化數(shù)值;qi表示某一控制器的負(fù)載狀況量化結(jié)果;q0表示所有控制器的負(fù)載狀況量化結(jié)果。為達(dá)到均衡,確??刂破髡w負(fù)荷品質(zhì),必須使各控制器的運(yùn)行狀況近似。通過計(jì)算得出的G值可以實(shí)現(xiàn)對(duì)整體狀態(tài)的描述,G取值越小,則說明控制器整體的負(fù)載均衡狀態(tài)越好;反之G取值越大,則說明控制器整體的負(fù)載均衡狀態(tài)越差。根據(jù)這一描述,選擇會(huì)影響到整體負(fù)載均衡的控制器,并將其作為目標(biāo)控制器。
4? 負(fù)載均衡動(dòng)態(tài)自適應(yīng)計(jì)算
在多域SDN網(wǎng)絡(luò)開始運(yùn)行時(shí),對(duì)各控制器的權(quán)值進(jìn)行初始化處理,并確定各個(gè)控制器所連接交換機(jī)的權(quán)值。根據(jù)多域SDN網(wǎng)絡(luò)實(shí)際運(yùn)行特點(diǎn),對(duì)負(fù)荷閾值進(jìn)行設(shè)置,并確定運(yùn)行周期[8]。每隔一個(gè)周期,完成對(duì)控制器負(fù)載情況的一次記錄,若在一個(gè)周期時(shí)間內(nèi),控制器符合未超負(fù)荷閾值,則無(wú)須進(jìn)行切換;若控制器負(fù)荷超過負(fù)荷閾值,則自動(dòng)觸發(fā)遷移動(dòng)作。根據(jù)控制器的w(Si)取值對(duì)交換機(jī)進(jìn)行選擇,并將在相同周期內(nèi)獲取到的其他所有處于空閑狀態(tài)中的控制器負(fù)載情況進(jìn)行記錄,通過下述公式計(jì)算控制器在負(fù)載最小情況時(shí)的節(jié)點(diǎn):
(4)
式中,Qi表示控制器的最小負(fù)載。將產(chǎn)生控制器最小負(fù)載對(duì)應(yīng)的節(jié)點(diǎn)作為遷移的目標(biāo)階段,開始進(jìn)行遷移。將處于過載狀態(tài)的控制器進(jìn)行遷移后,重新檢查控制器整體的負(fù)載狀況,如果負(fù)載仍然過載,則需要按照上述步驟重新進(jìn)行遷移;否則完成整個(gè)負(fù)載均衡過程,并對(duì)開關(guān)和控制器進(jìn)行加權(quán)更新,為后續(xù)控制器出現(xiàn)過載情況提供基礎(chǔ)條件。
5? 算法應(yīng)用分析
選擇將Mininet作為此次實(shí)驗(yàn)的平臺(tái)環(huán)境,將本文上述設(shè)計(jì)的負(fù)載均衡算法應(yīng)用到該環(huán)境當(dāng)中,用于對(duì)多個(gè)控制器進(jìn)行負(fù)載均衡控制。圖1為實(shí)驗(yàn)基本架構(gòu)示意圖。
在實(shí)驗(yàn)環(huán)境中包含5個(gè)控制器,其編號(hào)為A、B、C、D、E,包含8個(gè)交換機(jī),編號(hào)為1~8。每個(gè)控制器都有不同數(shù)目的開關(guān),以顯示開關(guān)數(shù)目對(duì)實(shí)時(shí)性負(fù)荷的影響。每一個(gè)開關(guān)都有一個(gè)連接到主機(jī)上的主機(jī),將UDP數(shù)據(jù)包傳送到網(wǎng)絡(luò)中的其他主機(jī)。與真實(shí)的網(wǎng)絡(luò)一樣,測(cè)試包是由一個(gè)交換機(jī)傳送的,再由控制器傳送給控制器。除了主控制器之外,每個(gè)開關(guān)都與其他的控制器相連。表1為上述實(shí)驗(yàn)環(huán)境中各設(shè)備的基本性能參數(shù)記錄表。
除此之外,在該實(shí)驗(yàn)環(huán)境當(dāng)中所選用的8個(gè)交換機(jī)均未OpenvSwitch-1.10.0,運(yùn)行網(wǎng)絡(luò)為100 Mbit/s。按照上述論述內(nèi)容,完成對(duì)實(shí)驗(yàn)應(yīng)用環(huán)境的設(shè)置。在完成相應(yīng)的準(zhǔn)備工作后,各個(gè)控制器開始運(yùn)行,并將本文上述提出的負(fù)載均衡算法應(yīng)用到該實(shí)驗(yàn)環(huán)境當(dāng)中。為實(shí)現(xiàn)對(duì)本文算法應(yīng)用效果的更直觀描述,選擇將五個(gè)控制器在運(yùn)行過程中的負(fù)荷率作為指標(biāo),根據(jù)下述公式進(jìn)行計(jì)算:
(5)
公式中,κ表示某一控制器在運(yùn)行過程中的負(fù)荷率;W表示某一控制器日負(fù)荷平均數(shù)值;D表示某一控制器的日負(fù)荷最大值。控制器在運(yùn)行過程中的負(fù)荷率若低于40%,則說明此時(shí)控制器處于低負(fù)荷運(yùn)行狀態(tài);負(fù)荷率若高于80%,則說明此時(shí)控制器處于高負(fù)荷運(yùn)行狀態(tài);負(fù)荷率若在40%~80%之間,則說明此時(shí)控制器處于負(fù)載均衡運(yùn)行狀態(tài)。根據(jù)這一論述依據(jù),將上述五種控制器在應(yīng)用本文算法前后的負(fù)荷情況記錄,并得到如表2所示結(jié)果。
從表2中記錄的五個(gè)控制器的運(yùn)行情況可以看出,在應(yīng)用本文上述提出的負(fù)載均衡算法前,只有控制器C的負(fù)荷率在負(fù)載均衡狀態(tài)的區(qū)間范圍內(nèi),而其他各個(gè)控制器均出現(xiàn)了低負(fù)荷和高負(fù)荷的運(yùn)行狀態(tài)。在應(yīng)用本文上述提出的負(fù)載均衡算法后,五個(gè)控制器的負(fù)荷率均控制在了40%~80%區(qū)間范圍內(nèi),各個(gè)控制器能夠始終保持負(fù)載均衡狀態(tài)運(yùn)行。因此,通過上述得出的實(shí)驗(yàn)結(jié)果能夠說明,本文設(shè)計(jì)的負(fù)載算法應(yīng)用可以實(shí)現(xiàn)對(duì)多域SDN網(wǎng)絡(luò)中多個(gè)控制器的均衡運(yùn)行控制,保證SDN網(wǎng)絡(luò)的穩(wěn)定運(yùn)行。
6? 結(jié)? 論
本文上述提出了一種全新的負(fù)載均衡算法,該算法將各個(gè)控制器分配到不同的負(fù)載中心或控制中心,對(duì)負(fù)載中心的承載能力進(jìn)行監(jiān)控與控制,實(shí)現(xiàn)對(duì)流量的自動(dòng)調(diào)整或控制,從而在最大程度上保證SDN設(shè)備對(duì)流量的自動(dòng)監(jiān)控與調(diào)度能力。在具體應(yīng)用中,不僅實(shí)現(xiàn)了更好的資源利用率和更低的負(fù)載時(shí)延,還提高了網(wǎng)絡(luò)資源的利用率,節(jié)省了部署成本,并且可以在 SDN網(wǎng)絡(luò)運(yùn)行中實(shí)現(xiàn)SDN對(duì)各個(gè)控制器負(fù)載不均衡的情況下進(jìn)行資源調(diào)度,為SDN網(wǎng)絡(luò)的快速演進(jìn)奠定了堅(jiān)實(shí)的基礎(chǔ)。同時(shí),本文研究的多控制器負(fù)載均衡方法也可以為網(wǎng)絡(luò)的優(yōu)化設(shè)計(jì)提供參考建議。
參考文獻(xiàn):
[1] 徐愛鑫,孫士民,汪曉凡,等.基于改進(jìn)遺傳算法的SDN多控制器負(fù)載均衡機(jī)制研究 [J].計(jì)算機(jī)應(yīng)用研究,2022,39(9):2671-2676+2694.
[2] 李峻屹.基于熱點(diǎn)訪問的分布式數(shù)據(jù)庫(kù)HBase負(fù)載均衡算法研究 [J].微型電腦應(yīng)用,2022,38(5):138-141.
[3] 周雅,謝卓辰,劉沛龍,等.基于區(qū)域分流的低軌衛(wèi)星星座星間負(fù)載均衡路由算法[J].中國(guó)科學(xué)院大學(xué)學(xué)報(bào),2021,38(5):687-695.
[4] 孫冰妹.滿足油田自動(dòng)采集的MongoDB數(shù)據(jù)庫(kù)負(fù)載均衡算法研究 [J].電腦編程技巧與維護(hù),2021(11):83-84.
[5] 程一凡,洪濤,丁曉進(jìn),等.低軌衛(wèi)星物聯(lián)網(wǎng)場(chǎng)景下基于吸引子選擇算法的多星負(fù)載均衡算法 [J].系統(tǒng)工程與電子技術(shù),2022,44(4):1354-1363.
[6] 趙斐,陳昊,白建東,等.基于改進(jìn)蟻群算法的遙感信息處理負(fù)載均衡任務(wù)調(diào)度算法研究 [J].計(jì)算機(jī)測(cè)量與控制,2021,29(11):183-188.
[7] 朱素霞,龍翼飛,孫廣路.基于大流調(diào)度的軟件定義數(shù)據(jù)中心網(wǎng)絡(luò)負(fù)載均衡算法 [J]. 計(jì)算機(jī)應(yīng)用與軟件,2021,38(1):27-32+75.
[8] 許紅亮,楊桂芹,蔣占軍.基于軟件定義網(wǎng)絡(luò)的數(shù)據(jù)中心自適應(yīng)多路徑負(fù)載均衡算法 [J].計(jì)算機(jī)應(yīng)用,2021,41(4):1160-1164.
作者簡(jiǎn)介:蘇曉偉(1987—),女,漢族,新疆克拉瑪依人,講師,碩士研究生,主要研究方向:網(wǎng)絡(luò)搭建與運(yùn)維、云計(jì)算技術(shù)。
收稿日期:2022-10-19
基金項(xiàng)目:中國(guó)高校產(chǎn)學(xué)研創(chuàng)新基金(2021FNB01005)