蘇曉偉 魏軍 周魯



摘? 要:針對當前多域SDN網絡中多個控制器同時運行時會出現低負荷或過載運行狀態,嚴重影響網絡正常運行的問題,開展對多控制器負載均衡算法的設計研究。結合多控制器運行特點,判定多控制器三種基本運行狀態;在多域SDN網絡中,選擇需要遷移的交換機和目標控制器;最后結合動態自適應計算的方式,實現多控制器的負載均衡運行。通過對比應用新算法前后的多控制器運行情況得出,在應用新算法后,多個控制器的負荷均能夠控制在理想范圍內,實現負載均衡,確保多域SDN網絡的穩定運行。
關鍵詞:多域;控制器;均衡;算法;負載;SDN網絡
中圖分類號:TP393? ? 文獻標識碼:A? 文章編號: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? 引? 言
網絡的快速發展,使得傳統的物理服務器已無法滿足日益增長的需求,以服務器虛擬化為代表的技術逐漸成為主流,而當今世界對網絡的質量要求也越來越高。盡管網絡設備的性能得到了極大的改善,但隨著網絡流量的不斷增加,存在著許多問題亟待解決。SDN網絡以軟件定義網絡為基礎,支持多控制器動態切換,可以實現網絡功能管理與優化,是下一代網絡的發展方向[1]。但目前SDN網絡在部署時面臨著多控制器負載均衡算法多并發故障、資源利用率低、網絡復雜度高等問題。在SDN網絡部署領域,為了能夠將網絡的硬件資源集中在一個節點上,并實現網絡資源的調度與配置,目前主流的SDN架構都采用了分布式架構[2]。分布式架構需要一個節點來完成硬件的功能調度和配置,并且在多個節點中實現全局控制器負載均衡算法(CCA)、局部控制器負載均衡算法(MPA)及全局控制器負載均衡算法(SDM)不同程度的并發故障抑制。而分布式架構中控制器負載均衡算法(CCA)和全局控制器負載均衡算法(SDM)集成在一個協議中并且都實現了網絡資源的調度與配置,所以很難有效的解決多控制器負載均衡算法多并發故障抑制問題[3]。此外,隨著SDN網絡設備和技術的發展,使得傳統網絡已經不能滿足當前用戶的需求以及未來發展的需要,SDN網絡未來將會成為各大運營商及IT企業部署SDN網絡的主要方式之一。在這一背景下,本文下述將開展多域SDN網絡中多控制器負載均衡算法的相關研究。
1? 判定多控制器運行狀態
在多域SDN網絡中,多個控制器若想實現負載均衡,必須對控制器的狀態做出判定,如果判定的標準較高,則控制器會始終處于較高的負荷而沒有達到過載閾值;如果判定的基準較低,則控制器就會不斷地執行遷移運算,從而降低控制器的使用效率,并增加整體的延時[4]。從這一點可以看出,控制器的狀態判斷非常重要。因此,根據多個控制器在運行過程中的特點,確定三種控制器的狀態表達式:
(1)
式中,F表示多域SDN網絡中控制器的運行狀態,其中,當F取值為0時,此時控制器為低負載或空閑運行狀態,當F取值為1時,此時控制器為過載運行狀態,需要進行負載遷移,當F取值為2時,此時控制器處于正常工作狀態;A表示需要進行處理的請求事件;R表示控制器接收到的請求事件;w (Ci)表示控制器的實際運行負荷;threshold表示針對控制器運行設置的負載閾值。根據上述公式可以確定,在控制器運行負荷小于負載閾值,并且接收請求與處理請求的比值小于1時,此時控制器處于F為0的狀態;當控制器運行負荷大于負載閾值,并且接收請求與處理請求的比值大于1時,此時控制器處于F為1的狀態;在其他情況下,控制器處理F為2的狀態[5]。以此,根據上述論述,可實現對多域SDN網絡中各個控制器運行狀態的具體描述和判定。
2? 選擇多域SDN網絡交換機遷移
在確定多控制器的運行狀態后,還需要對多域SDN網絡中各個交換機的遷移策略進行選擇,確定需要遷移的交換機以及遷移路徑[6]。選擇低流量請求率的交換機具有更小的延遲,而高流量請求率的交換機則可以極大地提高傳輸的負荷。如果只選擇低流量請求率的交換機來降低傳輸時延,則會導致系統的遷移次數過多,從而降低了交換機的運行效率;盲目地選擇具有高流量請求率的交換機,會使目標控制器不能同時處理大量的數據,從而造成系統的延遲。在綜合上述因素的基礎上,確定在 RTT基礎上進行交換機的遷移[7]。在多域SDN網絡開始運行后,為每一臺交換機都賦予一個初始的權值,該權值會根據 RTT的動態而發生變化。對于權值的設置,可將下述公式作為依據:
(2)
式中,w(Si)表示某一交換機的權值;RTTi表示某一交換機在沒有遷移時往返所需的時間; 表示某一交換機在經過遷移后往返所需的時間;θ表示調節系數。根據上述公式,確定多域SDN網絡中各個交換機的權值。根據權值從小到大的順序,對交換機進行排序,在遷移時,優先從權值大的交換機開始遷移。
3? 選擇多域SDN網絡目標控制器
在確定需要進行遷移的交換機后,再選擇需要進行負載均衡控制的目標控制器。結合平均化的思想,在考慮負載控制在經過遷移后是否能夠減輕負荷的基礎上,同時考慮多域SDN網絡中所有控制器的整體負載問題。為了更方便對目標控制器進行判斷,對整體負載按照下述公式進行定義:
(3)
式中,G表示單一控制器的負荷對整體負荷品質變化影響的量化數值;qi表示某一控制器的負載狀況量化結果;q0表示所有控制器的負載狀況量化結果。為達到均衡,確保控制器整體負荷品質,必須使各控制器的運行狀況近似。通過計算得出的G值可以實現對整體狀態的描述,G取值越小,則說明控制器整體的負載均衡狀態越好;反之G取值越大,則說明控制器整體的負載均衡狀態越差。根據這一描述,選擇會影響到整體負載均衡的控制器,并將其作為目標控制器。
4? 負載均衡動態自適應計算
在多域SDN網絡開始運行時,對各控制器的權值進行初始化處理,并確定各個控制器所連接交換機的權值。根據多域SDN網絡實際運行特點,對負荷閾值進行設置,并確定運行周期[8]。每隔一個周期,完成對控制器負載情況的一次記錄,若在一個周期時間內,控制器符合未超負荷閾值,則無須進行切換;若控制器負荷超過負荷閾值,則自動觸發遷移動作。根據控制器的w(Si)取值對交換機進行選擇,并將在相同周期內獲取到的其他所有處于空閑狀態中的控制器負載情況進行記錄,通過下述公式計算控制器在負載最小情況時的節點:
(4)
式中,Qi表示控制器的最小負載。將產生控制器最小負載對應的節點作為遷移的目標階段,開始進行遷移。將處于過載狀態的控制器進行遷移后,重新檢查控制器整體的負載狀況,如果負載仍然過載,則需要按照上述步驟重新進行遷移;否則完成整個負載均衡過程,并對開關和控制器進行加權更新,為后續控制器出現過載情況提供基礎條件。
5? 算法應用分析
選擇將Mininet作為此次實驗的平臺環境,將本文上述設計的負載均衡算法應用到該環境當中,用于對多個控制器進行負載均衡控制。圖1為實驗基本架構示意圖。
在實驗環境中包含5個控制器,其編號為A、B、C、D、E,包含8個交換機,編號為1~8。每個控制器都有不同數目的開關,以顯示開關數目對實時性負荷的影響。每一個開關都有一個連接到主機上的主機,將UDP數據包傳送到網絡中的其他主機。與真實的網絡一樣,測試包是由一個交換機傳送的,再由控制器傳送給控制器。除了主控制器之外,每個開關都與其他的控制器相連。表1為上述實驗環境中各設備的基本性能參數記錄表。
除此之外,在該實驗環境當中所選用的8個交換機均未OpenvSwitch-1.10.0,運行網絡為100 Mbit/s。按照上述論述內容,完成對實驗應用環境的設置。在完成相應的準備工作后,各個控制器開始運行,并將本文上述提出的負載均衡算法應用到該實驗環境當中。為實現對本文算法應用效果的更直觀描述,選擇將五個控制器在運行過程中的負荷率作為指標,根據下述公式進行計算:
(5)
公式中,κ表示某一控制器在運行過程中的負荷率;W表示某一控制器日負荷平均數值;D表示某一控制器的日負荷最大值。控制器在運行過程中的負荷率若低于40%,則說明此時控制器處于低負荷運行狀態;負荷率若高于80%,則說明此時控制器處于高負荷運行狀態;負荷率若在40%~80%之間,則說明此時控制器處于負載均衡運行狀態。根據這一論述依據,將上述五種控制器在應用本文算法前后的負荷情況記錄,并得到如表2所示結果。
從表2中記錄的五個控制器的運行情況可以看出,在應用本文上述提出的負載均衡算法前,只有控制器C的負荷率在負載均衡狀態的區間范圍內,而其他各個控制器均出現了低負荷和高負荷的運行狀態。在應用本文上述提出的負載均衡算法后,五個控制器的負荷率均控制在了40%~80%區間范圍內,各個控制器能夠始終保持負載均衡狀態運行。因此,通過上述得出的實驗結果能夠說明,本文設計的負載算法應用可以實現對多域SDN網絡中多個控制器的均衡運行控制,保證SDN網絡的穩定運行。
6? 結? 論
本文上述提出了一種全新的負載均衡算法,該算法將各個控制器分配到不同的負載中心或控制中心,對負載中心的承載能力進行監控與控制,實現對流量的自動調整或控制,從而在最大程度上保證SDN設備對流量的自動監控與調度能力。在具體應用中,不僅實現了更好的資源利用率和更低的負載時延,還提高了網絡資源的利用率,節省了部署成本,并且可以在 SDN網絡運行中實現SDN對各個控制器負載不均衡的情況下進行資源調度,為SDN網絡的快速演進奠定了堅實的基礎。同時,本文研究的多控制器負載均衡方法也可以為網絡的優化設計提供參考建議。
參考文獻:
[1] 徐愛鑫,孫士民,汪曉凡,等.基于改進遺傳算法的SDN多控制器負載均衡機制研究 [J].計算機應用研究,2022,39(9):2671-2676+2694.
[2] 李峻屹.基于熱點訪問的分布式數據庫HBase負載均衡算法研究 [J].微型電腦應用,2022,38(5):138-141.
[3] 周雅,謝卓辰,劉沛龍,等.基于區域分流的低軌衛星星座星間負載均衡路由算法[J].中國科學院大學學報,2021,38(5):687-695.
[4] 孫冰妹.滿足油田自動采集的MongoDB數據庫負載均衡算法研究 [J].電腦編程技巧與維護,2021(11):83-84.
[5] 程一凡,洪濤,丁曉進,等.低軌衛星物聯網場景下基于吸引子選擇算法的多星負載均衡算法 [J].系統工程與電子技術,2022,44(4):1354-1363.
[6] 趙斐,陳昊,白建東,等.基于改進蟻群算法的遙感信息處理負載均衡任務調度算法研究 [J].計算機測量與控制,2021,29(11):183-188.
[7] 朱素霞,龍翼飛,孫廣路.基于大流調度的軟件定義數據中心網絡負載均衡算法 [J]. 計算機應用與軟件,2021,38(1):27-32+75.
[8] 許紅亮,楊桂芹,蔣占軍.基于軟件定義網絡的數據中心自適應多路徑負載均衡算法 [J].計算機應用,2021,41(4):1160-1164.
作者簡介:蘇曉偉(1987—),女,漢族,新疆克拉瑪依人,講師,碩士研究生,主要研究方向:網絡搭建與運維、云計算技術。
收稿日期:2022-10-19
基金項目:中國高校產學研創新基金(2021FNB01005)