胡 柳,周立前,鄧 杰,趙正偉,李 瑞
(1.湖南信息職業(yè)技術(shù)學(xué)院 計算機工程學(xué)院,湖南 長沙 410200;2.湖南工業(yè)大學(xué) 計算機學(xué)院,湖南 株洲 412007;3.廣西民族大學(xué) 理學(xué)院,廣西 南寧 530006;4.河北省眼科醫(yī)院 信息科,河北 邢臺 054000)
傳統(tǒng)的數(shù)據(jù)中心網(wǎng)絡(luò)部署采用多鏈路、折疊式Clos結(jié)構(gòu)、Fat-tree胖樹拓撲等來解決網(wǎng)絡(luò)數(shù)據(jù)負載均衡、擁塞等情況,而有限的鏈路在應(yīng)對資源訪問請求量急劇增加的情況時無法有效、及時完成數(shù)據(jù)傳輸,存在數(shù)據(jù)負載不均衡、網(wǎng)絡(luò)擁塞.近年來國內(nèi)外一些學(xué)者對基于SDN的網(wǎng)絡(luò)數(shù)據(jù)傳輸進行了研究,如文獻[1]提出OFMT為每條流精確計算傳輸路徑,將網(wǎng)絡(luò)中的流量優(yōu)化分配到端到端的多條路徑上,并通過周期性輪詢和動態(tài)調(diào)度實現(xiàn)良好的負載均衡,進而提高數(shù)據(jù)中心網(wǎng)絡(luò)吞吐量;另外還有基于遺傳算法的多路徑路由問題[2-3],數(shù)據(jù)中心網(wǎng)絡(luò)數(shù)據(jù)傳輸問題[4-7],視頻服務(wù)器負載均衡監(jiān)測[8],基于SDN的安全系統(tǒng)[9-11]等,研究熱點集中在OpenFlow協(xié)議的控制層對數(shù)據(jù)包進行重路由、數(shù)據(jù)遷移等方面的計算,在自適應(yīng)多路徑負載均衡方面的研究較少且效果不明顯.
本文提出一種基于SDN的自適應(yīng)多路徑負載均衡策略(SDN-AMLB),利用Adaboost算法實現(xiàn)動態(tài)自適應(yīng)大流重路由并添加到流表,從而實現(xiàn)自適應(yīng)負載均衡.
圖 1 框架模型圖Fig.1 Framework model
實現(xiàn)自適應(yīng)多路徑負載均衡的OpenFlow控制層結(jié)構(gòu)如圖1所示,主要包括負載監(jiān)控模塊、拓撲發(fā)現(xiàn)模塊、流表管理模塊、流量檢測模塊、自適應(yīng)調(diào)度模塊.負載監(jiān)控模塊對各路徑的流量進行監(jiān)控,及時記錄空閑和過載的路徑.拓撲發(fā)現(xiàn)模塊用于幫助控制器掌握全局網(wǎng)絡(luò)結(jié)構(gòu).流表管理模塊與自適應(yīng)調(diào)度模塊相結(jié)合,將新產(chǎn)生的重路由路徑進行統(tǒng)一管理.流量檢測模塊對流入、流出的大小流量進行標(biāo)記.自適應(yīng)調(diào)度模塊根據(jù)鏈路流量的情況進行自適應(yīng)調(diào)整,調(diào)整數(shù)據(jù)流的路徑并反饋至OpenFlow數(shù)據(jù)層,從而實現(xiàn)負載均衡功能.
為了有效實現(xiàn)負載均衡機制,需要將網(wǎng)絡(luò)流量中的大小流進行區(qū)分并進行標(biāo)記,采用自適應(yīng)算法對每條流進行路徑計算,進而完善流表實現(xiàn)重路由.通過對數(shù)據(jù)中心流量的監(jiān)測發(fā)現(xiàn),近80%的流量為小于100 kB.本文監(jiān)測使用多OpenFlow控制器內(nèi)的流量檢測模塊對數(shù)據(jù)流進行解析,標(biāo)記超過100 kB的流量,并提交自適應(yīng)調(diào)度模塊對流量進行路徑計算,實現(xiàn)多路徑下的負載均衡.
自適應(yīng)調(diào)度模塊是本文中的關(guān)鍵模塊,負責(zé)為網(wǎng)絡(luò)中的流量計算最佳的路由路徑,提高全網(wǎng)的利用率和吞吐量,實現(xiàn)網(wǎng)絡(luò)負載均衡.網(wǎng)絡(luò)拓撲結(jié)構(gòu)可以認為是一個無向連通圖,將其表示為:S=(N(s),F(s)),其中連通圖中結(jié)點集合為N(s)、邊集合為F(s).為了表示模擬連通圖中數(shù)據(jù)的傳輸信息,圖中每條邊的帶寬表示為W(Ni,Nj),實際的數(shù)據(jù)傳輸表示為WT(Ni,Nj).自適應(yīng)多路徑負載均衡的目的是使得在單位時間內(nèi)W(Ni,Nj)與WT(Ni,Nj)最為接近,路徑空閑率最低,且能根據(jù)數(shù)據(jù)包大小進行自適應(yīng)調(diào)度.
控制器自適應(yīng)調(diào)度模塊初始化采用模擬網(wǎng)絡(luò)數(shù)據(jù)進行自適應(yīng)學(xué)習(xí),設(shè)單位時間內(nèi)的網(wǎng)絡(luò)數(shù)據(jù)流量為D1,D2,D3,…,Dn,其中每個元素D可使用元組表示為(p,w,r(i,j)),p為協(xié)議類型,w為數(shù)據(jù)包大小,r為默認路徑集合.單位時間內(nèi)的網(wǎng)絡(luò)數(shù)據(jù)量表示為式(1),其中Di,w為網(wǎng)絡(luò)數(shù)據(jù)Di的大?。髀窂絺鬏?shù)臄?shù)據(jù)包數(shù)量表示為式(2).
(1)
(2)
用于自適應(yīng)學(xué)習(xí)的網(wǎng)絡(luò)數(shù)據(jù)表示為矩陣
(3)
數(shù)據(jù)中心網(wǎng)絡(luò)路徑分布表示為矩陣乘積
F=F1×F2×…×Fn.
(4)
其中:n為中心服務(wù)器到網(wǎng)絡(luò)邊界結(jié)點最大路由跳數(shù),Fi定義為第i級結(jié)點到后一級結(jié)點間的路徑矩陣,如(5)所示.
(5)
自適應(yīng)學(xué)習(xí)階段利用模擬網(wǎng)絡(luò)數(shù)據(jù)D分時間段輸入到網(wǎng)絡(luò)中,結(jié)合W(Ni,Nj)和WT(Ni,Nj)對數(shù)據(jù)傳輸路徑進行模擬,并實時調(diào)整D中屬性r,尋找最優(yōu)的模型參數(shù)使數(shù)據(jù)傳輸效率最高,各路徑數(shù)據(jù)量均衡.每時間段內(nèi)的模擬數(shù)據(jù)傳輸作為一次算法的迭代過程,并獲取其最優(yōu)的弱分類器,通過N次迭代最終將N個弱分類器通過更新權(quán)重獲得強分類器.?dāng)?shù)據(jù)傳輸鏈路變換需要采用鏈路承載的數(shù)據(jù)量和鏈路帶寬進行評估,鏈路剩余帶寬為總帶寬減當(dāng)前鏈路上承載的網(wǎng)絡(luò)流量,可表示為E(Ni,Nj).
(6)
為了提高鏈路利用率,方法中引入鏈路空閑率參數(shù)S(Ni,Nj),當(dāng)鏈路(Ni,Nj)中數(shù)據(jù)包傳輸完成后對該鏈路標(biāo)記“空”狀態(tài),數(shù)據(jù)包需要尋找路徑時在“空”路徑中尋找最長“空”標(biāo)記路徑進行傳輸.設(shè)需要尋找路徑的數(shù)據(jù)包為Di,其路徑計算式如式(7)所示.
Di·r=max(S(N1,N1),S(N1,N2),…,S(N1,Nn)).
(7)
算法過程如下:
(1) 初始化操作,輸入網(wǎng)絡(luò)數(shù)據(jù)D,更新路徑上的空閑情況.
(2) 循環(huán)數(shù)據(jù)包.
(3) 大流量分析并標(biāo)記,標(biāo)記超過100 kB的數(shù)據(jù)包.
(4) 提取數(shù)據(jù)包中的路徑表,并初步分析路徑的合理性.
(5) 計算每一級路徑上可承載該數(shù)據(jù)包的可能性,且對路徑空閑情況進行評估.
(6) 尋找最優(yōu)空閑路徑并更新路徑表.
(7) 傳輸數(shù)據(jù)并更新鏈路空閑參數(shù).
(8) 記錄模型相關(guān)參數(shù),獲取弱分類器模型.
圖 2 網(wǎng)絡(luò)拓撲圖Fig.2 Network topology
選用Mininet工具模擬SDN網(wǎng)絡(luò)用以驗證SDN-AMLB的吞吐率、負載均衡二個特征結(jié)果.網(wǎng)絡(luò)拓撲結(jié)構(gòu)如圖2所示.服務(wù)器位于數(shù)據(jù)中心,通過多路徑冗余連接網(wǎng)絡(luò)邊界與用戶主機.邊界用戶分別向服務(wù)器發(fā)送請求,通過仿真實驗驗證SDN-AMLB下網(wǎng)絡(luò)吞吐率、負載均衡二個指標(biāo).
實驗中記錄時間為1 min,根據(jù)SDN-AMLB 算法過程,其中需要對大小流進行路由選擇,實驗中的終端計算機用戶分別請求數(shù)據(jù)量為區(qū)間隨機分布,大小分配的關(guān)鍵點為512 kbit,1 Mbit,5 Mbit,20 Mbit,50 Mbit,100 Mbit,服務(wù)器及交換機線路帶寬為1 Gbit/s,其余鏈路帶寬范圍[1 Mbit/s,200 Mbit/s]隨機分布.
實驗中利用SDN-AMLB算法對每個數(shù)據(jù)包進行重路由計算,根據(jù)第2節(jié)的計算過程進行自適應(yīng)多路徑數(shù)據(jù)轉(zhuǎn)發(fā).請求數(shù)據(jù)大小的分布情況有不均衡和均衡,初始15 s內(nèi)兩種情況的吞吐量基本一致,后期由于對鏈路帶寬、鏈路空閑率及節(jié)點、數(shù)據(jù)包大小等情況的綜合計算,通過算法進行重路由后使得兩種情況下網(wǎng)絡(luò)吞吐量不一致.在請求數(shù)據(jù)分布不均衡的情況下,33 s后網(wǎng)絡(luò)吞吐量穩(wěn)定在170 Mbit/s;而請求數(shù)據(jù)均衡的情況下,26 s后網(wǎng)絡(luò)吞吐量穩(wěn)定在140 Mbit/s.這是由于SDN-ALMB算法在網(wǎng)絡(luò)數(shù)據(jù)包模擬時通過不斷完善數(shù)據(jù)進行自適應(yīng)調(diào)整,經(jīng)過一定時間的收斂后結(jié)果趨于穩(wěn)定.網(wǎng)絡(luò)吞吐量指標(biāo)如圖3所示.
網(wǎng)絡(luò)負載均衡度根據(jù)網(wǎng)絡(luò)鏈路實時數(shù)據(jù)進行統(tǒng)計,網(wǎng)絡(luò)數(shù)據(jù)在鏈路中分布越均衡,該指標(biāo)數(shù)據(jù)越高.實驗中對各鏈路進行監(jiān)測,初始化情況下10~32 s內(nèi)流量不均衡狀態(tài)下的均衡度比流量均衡狀態(tài)下的均衡度低,而在32 s之后結(jié)果相反,在經(jīng)過分類器完善后使得網(wǎng)絡(luò)數(shù)據(jù)傳輸較為穩(wěn)定,線路利用率較高,各節(jié)點負載均衡程度基本穩(wěn)定.由于算法在計算過程中結(jié)合鏈路帶寬、剩余帶寬、空閑率等情況進行重路由計算,使鏈路在承擔(dān)的數(shù)據(jù)量上趨于穩(wěn)定,負載均衡指標(biāo)如圖4所示.
圖 3 網(wǎng)絡(luò)吞吐量指標(biāo) 圖 4 網(wǎng)絡(luò)負載均衡度指標(biāo) Fig.3 Network throughput index Fig.4 Network load balance index
對網(wǎng)絡(luò)中相關(guān)結(jié)點進行監(jiān)測,在用戶請求數(shù)據(jù)分布不均衡和均衡的情況下,節(jié)點A和節(jié)點B吞吐量及傳輸?shù)臄?shù)據(jù)包數(shù)量如表1所示.
表 1 節(jié)點監(jiān)控數(shù)據(jù)Table 1 Node monitoring data
表 2 鏈路監(jiān)控數(shù)據(jù)Table 2 Link monitoring data
實驗過程中對鏈路的監(jiān)測主要使用線路利用率、剩余帶寬等參數(shù)進行評估,在請求數(shù)據(jù)不均衡和均衡的情況下對節(jié)點A和結(jié)點B的監(jiān)測結(jié)果如表2所示.
設(shè)計了基于SDN的自適應(yīng)多路徑負載均衡策略SDN-MLAB,其控制層主要有負載監(jiān)控模塊、拓撲發(fā)現(xiàn)模塊、流表管理模塊、流量檢測模塊、自適應(yīng)調(diào)度模塊,其中自適應(yīng)調(diào)度模塊是本文重點,結(jié)合Adaboost自適應(yīng)學(xué)習(xí)過程對網(wǎng)絡(luò)數(shù)據(jù)包進行重路由計算,并對算法過程進行描述.仿真實驗表明,在不同網(wǎng)絡(luò)數(shù)據(jù)包傳輸情況下SDN-MLAB策略能有效實現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)包傳輸?shù)呢撦d均衡,有較高的吞吐量,提高了多路徑冗余鏈路下的鏈路利用率.
SDN-MLAB策略的不足之處是流表更新頻繁,且未對拓撲進行有效的發(fā)現(xiàn)設(shè)計.如果SDN控制器需要不停地更新流表會造成控制器效率低下,對網(wǎng)絡(luò)拓撲沒有進行故障應(yīng)對處理策略,網(wǎng)絡(luò)設(shè)備故障時會對數(shù)據(jù)傳輸產(chǎn)生影響.上述二方面的內(nèi)容是后期需要著重思考與解決的內(nèi)容.
參考文獻(References):
[1] 陳鳴,胡慧,劉波,等.一種基于OpenFlow的多路徑傳輸機制[J].電子與信息學(xué)報,2016,38(5):1242-1248.
CHEN M,HU H,LIU B,et al.An OpenFlow based multipath transmission mechanism[J].Journal of Electronics & Information Technology,2016,38(5):1242-1248.
[2] LIU Y,PAN Y,YANG M,et al.The multi-path routing problem in the software defined network[C]//International Conference on Natural Computation.IEEE,2016:250-254.
[3] KANG S B,KWON G I.Load balancing of software-defined network controller using genetic algorithm[J].Contemporary Engineering Sciences,2016,9(18):881-888.
[4] FIZI F S,ASKAR S.A novel load balancing algorithm for software defined network based datacenters[C]//International Conference on Broadband Communications for Next Generation Networks and Multimedia Applications.IEEE,2016:1-6.
[5] 楊洋,楊家海,溫皓森,等.基于SDN流量測量的數(shù)據(jù)中心多路徑傳輸研究[J].華中科技大學(xué)學(xué)報(自然科學(xué)版),2016,44(11): 53-58.
YANG Y,YANG J H,WEN H S,et al.Multipath routing research based on traffic measurement under SDN in data center networks[J].Journal of Huazhong University of Science & Technology(Natural Science Edition),2016,44(11):53-58.
[6] 林智華,高文,吳春明,等.基于離散粒子群算法的數(shù)據(jù)中心網(wǎng)絡(luò)流量調(diào)度研究[J].電子學(xué)報,2016,44(9):2197-2202.
LIN Z H,GAO W,WU C M,et al.Data center network flow scheduling based on DPSO algorithm[J].Acta Electronica Sinica,2016,44(9):2197-2202.
[7] 陸一飛,朱書宏.數(shù)據(jù)中心網(wǎng)絡(luò)下基于SDN的TCP擁塞控制機制研究與實現(xiàn)[J].計算機學(xué)報,2017,40(9):2167-2180.
LU Y F,ZHU S H.Research and implementation of TCP congestion control mechanism based on SDN in data center network[J].Chinese Journal of Computers,2017,40(9):2167-2180.
[8] YILMAZ S,TEKALP A M,UNLUTURK B D.Video streaming over software defined networks with server load balancing[C]//International Conference on Computing,NETWORKING and Communications.IEEE,2015:722-726.
[9] 王濤,陳鴻昶,程國振.軟件定義網(wǎng)絡(luò)及安全防御技術(shù)研究[J].通信學(xué)報,2017,38(11):133-160.
WANG T,CHEN H H,CHENG G Z.Research on software-defined network and the security defense technology[J].Journal on Communications,2017,38(11):133-160.
[10] 王蒙蒙,劉建偉,陳杰,等.軟件定義網(wǎng)絡(luò):安全模型、機制及研究進展[J].軟件學(xué)報,2016,27(4):969-992.
WANG M M,LIU J W,CHEN J,et al.Software defined networking:Security model,threats and mechanism[J].Journal of Software,2016,27(4):969-992.
[11] 王秀磊,陳鳴,邢長友,等.一種防御DDoS攻擊的軟件定義安全網(wǎng)絡(luò)機制[J].軟件學(xué)報,2016,27(12):3104-3119.
WANG X L,CHEN M,XING C Y,et al.Software defined security networking mechanism against DDOS attacks[J].Journal of Software,2016,27(12):3104-3119.