馬嘉葆,李 磊
(西安工業(yè)大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,陜西 西安 710021)
云存儲(chǔ)憑借可拓展性強(qiáng)、節(jié)約存儲(chǔ)空間以及數(shù)據(jù)安全性系數(shù)較高等優(yōu)勢(shì)被應(yīng)用于在各個(gè)領(lǐng)域中[1]。而當(dāng)今網(wǎng)絡(luò)信息量不斷增加,云存儲(chǔ)等新的技術(shù)針對(duì)于網(wǎng)絡(luò)傳輸提出了更高的要求,傳統(tǒng)網(wǎng)絡(luò)對(duì)海量數(shù)據(jù)進(jìn)行傳輸時(shí),當(dāng)網(wǎng)絡(luò)內(nèi)部已滿(mǎn)負(fù)荷時(shí),還繼續(xù)將新的數(shù)據(jù)進(jìn)行導(dǎo)入,沒(méi)有進(jìn)行分流操作,使此時(shí)的網(wǎng)絡(luò)鏈路呈現(xiàn)過(guò)載狀態(tài),被迫停止運(yùn)行或無(wú)法正常傳輸。因此,如何將云存儲(chǔ)中數(shù)據(jù)負(fù)載情況進(jìn)行調(diào)整,以及針對(duì)均衡調(diào)度等問(wèn)題,成為了目前的研究重點(diǎn)[2]。
王保華[3]等人提出基于MVB網(wǎng)絡(luò)的周期數(shù)據(jù)負(fù)載均衡調(diào)度方法,該方法通過(guò)MVB網(wǎng)絡(luò)構(gòu)建模型,并采用平均負(fù)載率為中心預(yù)測(cè)域的免疫遺傳算法對(duì)該模型進(jìn)行全局最優(yōu)求解,實(shí)現(xiàn)對(duì)數(shù)據(jù)負(fù)載的均衡調(diào)度。使算法的收斂速度得到提高并簡(jiǎn)化了算法的求解過(guò)程,但是,該方法在對(duì)負(fù)載數(shù)據(jù)鏈路進(jìn)行調(diào)度時(shí),傳統(tǒng)程序不屬于開(kāi)放性可編程API,導(dǎo)致鏈路利用率不能滿(mǎn)足于固定閾值。張釗[4]等人提出基于網(wǎng)絡(luò)數(shù)據(jù)流概率路徑選擇的數(shù)據(jù)負(fù)載均衡調(diào)度方法,該方法以最短路徑選擇方法為基礎(chǔ),采用網(wǎng)絡(luò)控制器對(duì)數(shù)據(jù)流進(jìn)行分類(lèi)處理,并對(duì)每條數(shù)據(jù)流在調(diào)度過(guò)程中的占用寬帶情況進(jìn)行計(jì)算,對(duì)DCN數(shù)據(jù)流量進(jìn)行調(diào)度與優(yōu)化,進(jìn)而實(shí)現(xiàn)數(shù)據(jù)負(fù)載的均衡調(diào)度。該方法在對(duì)負(fù)載數(shù)據(jù)鏈路進(jìn)行調(diào)度時(shí),由于傳統(tǒng)設(shè)備控制面與數(shù)據(jù)面在同一平臺(tái)上,導(dǎo)致對(duì)負(fù)載數(shù)據(jù)鏈路的調(diào)度延時(shí)較長(zhǎng)。蘇洵等人[5]提出實(shí)時(shí)調(diào)度系統(tǒng)體系結(jié)構(gòu)與任務(wù)模型。該模型對(duì)執(zhí)行時(shí)間、任務(wù)截止期限以及時(shí)間間隔等屬性進(jìn)行綜合分析。根據(jù)不同任務(wù)的重要程度,提出基于服務(wù)質(zhì)量的任務(wù)松緊度。通過(guò)迫切度和松緊度實(shí)現(xiàn)對(duì)優(yōu)先級(jí)的動(dòng)態(tài)調(diào)節(jié),改善了任務(wù)執(zhí)行成功率與客戶(hù)端資源利用率。但是該模型在對(duì)負(fù)載數(shù)據(jù)鏈路進(jìn)行調(diào)度時(shí),不能實(shí)現(xiàn)對(duì)集中式網(wǎng)絡(luò)的控制,導(dǎo)致對(duì)負(fù)載數(shù)據(jù)鏈路的調(diào)度偏差較大。
為了解決上述方法存在的問(wèn)題,提出基于SDN的云存儲(chǔ)數(shù)據(jù)負(fù)載均衡調(diào)度方法,該方法通過(guò)SDN對(duì)傳統(tǒng)網(wǎng)絡(luò)進(jìn)行優(yōu)化,結(jié)合數(shù)據(jù)負(fù)載均衡調(diào)度方法對(duì)需重路由鏈路的路徑組進(jìn)行選取,利用適應(yīng)度函數(shù)尋找出需重路由的路徑組,最終SDN控制器對(duì)原始流表進(jìn)行修改與輸出,完成對(duì)負(fù)載數(shù)據(jù)的均衡調(diào)度[6]。
SDN是軟件定義的網(wǎng)絡(luò),它是對(duì)傳統(tǒng)網(wǎng)絡(luò)進(jìn)行簡(jiǎn)化以及優(yōu)化的一種體系結(jié)構(gòu)。SDN把設(shè)備間以及應(yīng)用服務(wù)間的數(shù)據(jù)傳輸或交互過(guò)程進(jìn)行緊密結(jié)合,可對(duì)集中式網(wǎng)絡(luò)進(jìn)行控制,其主要是對(duì)設(shè)備間交互的應(yīng)用程序以及所傳輸?shù)臄?shù)據(jù)信息進(jìn)行控制[7]。SDN網(wǎng)絡(luò)架構(gòu)如圖1所示。
圖1 現(xiàn)有網(wǎng)絡(luò)架構(gòu)與SDN網(wǎng)絡(luò)架構(gòu)
如圖1所示,現(xiàn)有的網(wǎng)絡(luò)架構(gòu)是以傳統(tǒng)的網(wǎng)絡(luò)設(shè)備為根本而形成的體系結(jié)構(gòu)。傳統(tǒng)網(wǎng)絡(luò)由分布式控制形式對(duì)每個(gè)設(shè)備進(jìn)行單獨(dú)控制,對(duì)轉(zhuǎn)發(fā)層和控制層進(jìn)行緊密耦合[8]。管理人員無(wú)法直接對(duì)數(shù)據(jù)中心進(jìn)行控制與轉(zhuǎn)發(fā),需配置網(wǎng)絡(luò)協(xié)議,通過(guò)網(wǎng)絡(luò)協(xié)議對(duì)轉(zhuǎn)發(fā)行為產(chǎn)生影響,這種影響是固定模式的,所以相對(duì)于傳統(tǒng)網(wǎng)絡(luò)設(shè)備以及傳統(tǒng)網(wǎng)絡(luò)架構(gòu)來(lái)說(shuō)是比較封閉及不可控制的,換言之,對(duì)現(xiàn)有的網(wǎng)絡(luò)進(jìn)行管理與控制的難度較大。
傳統(tǒng)網(wǎng)絡(luò)進(jìn)化后形成的SDN網(wǎng)絡(luò)架構(gòu)分別由應(yīng)用層、控制層以及基礎(chǔ)設(shè)施層所構(gòu)成[9],利用東西向接口通信來(lái)保持控制器間的流表一致性,用戶(hù)編碼程序通過(guò)北向接口對(duì)網(wǎng)絡(luò)進(jìn)行調(diào)用與操作,通過(guò)OpenFlow南向接口協(xié)議對(duì)網(wǎng)絡(luò)控制平面與轉(zhuǎn)發(fā)平面進(jìn)行分離。
基于SDN的云存儲(chǔ)數(shù)據(jù)負(fù)載均衡調(diào)度方法利用設(shè)置閾值法對(duì)SDN網(wǎng)絡(luò)是否出現(xiàn)擾動(dòng)等情況作出判斷,若網(wǎng)絡(luò)出現(xiàn)擾動(dòng),則會(huì)觸發(fā)所提方法對(duì)網(wǎng)絡(luò)重載鏈路上的大象流進(jìn)行調(diào)度[10]。具體流程如圖2所示。
圖2 云存儲(chǔ)數(shù)據(jù)負(fù)載均衡調(diào)度流程圖
采用基于方差劃分標(biāo)準(zhǔn)和綜合效用值的適應(yīng)度函數(shù),使云存儲(chǔ)中數(shù)據(jù)流量均衡分配。
所有網(wǎng)絡(luò)的鏈路利用率方差和重路中路徑組所包含的鏈路對(duì)應(yīng)的鏈路利用率方差分別由Bt、Br進(jìn)行表示,其相應(yīng)方差計(jì)算公式如式(1)
(1)
式中,網(wǎng)絡(luò)拓?fù)渲械娜挎溌窋?shù)目表示為N,重路中路徑組所包含的全部鏈路數(shù)目表示為M,在u時(shí)刻k鏈路中的平均鏈路利用率表示為ηk(u)。
對(duì)于網(wǎng)絡(luò)出現(xiàn)擾動(dòng)時(shí),發(fā)生網(wǎng)絡(luò)鏈路的利用率超過(guò)閾值的情況,采用基于閾值的方差劃分標(biāo)準(zhǔn),如式(2)所示。路徑組所包含的全部鏈路方差通過(guò)基于方差劃分標(biāo)準(zhǔn)進(jìn)行分級(jí),分為大于閾值級(jí)別和小于閾值級(jí)別兩種。
(2)
式(2)中,極小值表示為ω,避免分母為0。若式(1)中Bt
Br,即式(2)中A=1,此時(shí)路徑組的方差大于閾值。
為了將網(wǎng)絡(luò)鏈路利用率方差最小化,使負(fù)載分布更加均衡,在選擇最優(yōu)路徑組時(shí),優(yōu)先選擇鏈路利用率方差小于閾值的路徑組。
通過(guò)上述對(duì)重路由路徑組閾值的選取,利用適應(yīng)度函數(shù)對(duì)數(shù)據(jù)負(fù)載進(jìn)行均衡,計(jì)算公式如下
F°=A·(eC)-A
(3)
式(3)中,適應(yīng)度函數(shù)表示為F°,集成鏈路利用率與鏈路利用率方差的綜合值表示為C。通過(guò)圖3對(duì)適應(yīng)度函數(shù)進(jìn)行分析。
圖3 適應(yīng)度函數(shù)分析圖
由圖3可見(jiàn),曲線a所對(duì)應(yīng)的適應(yīng)度函數(shù)大于曲線b,當(dāng)大于或小于方差閾值的路徑組同時(shí)出現(xiàn)時(shí),據(jù)上述可知,需選取小于方差閾值的路徑組。a、b曲線均是遞減函數(shù),F(xiàn)°會(huì)隨著C的增大而減小。因此,當(dāng)對(duì)最優(yōu)重路由路徑組進(jìn)行選取時(shí),需選取最小F°路徑組為最終目標(biāo)。
重路由路徑組所含有全部鏈路的鏈路利用率之和表示為Sr,計(jì)算公式如式(4)所示。
(4)
式(4)中,鏈路容量表示為Dk,重路中路徑組所包含的全部鏈路數(shù)目表示為M,網(wǎng)絡(luò)拓?fù)渲械娜挎溌窋?shù)目表示為N,在k鏈路中實(shí)際獲取的數(shù)據(jù)流寬帶表示為Wk。
根據(jù)式(4)與式(1)可得重路由路徑組所含有鏈路的鏈路利用率方差計(jì)算公式如式(5)所示,全部網(wǎng)絡(luò)的鏈路利用率方差計(jì)算公式如式(6)所示。
(5)
(6)
當(dāng)圖3中點(diǎn)E、H所對(duì)應(yīng)的路徑組對(duì)需重路由路徑組進(jìn)行選取時(shí),則選擇H,并且對(duì)于點(diǎn)I、H所對(duì)應(yīng)的路徑組在選取需重路由路徑組時(shí),此時(shí)也選取H。此時(shí)的最小F°路徑組可表示為
(7)
對(duì)負(fù)載數(shù)據(jù)進(jìn)行調(diào)度,其主要原理是以最快速度去尋找適應(yīng)度函數(shù)F°最小的重路由路徑組,使數(shù)據(jù)流量分布更加均衡以及使所選路徑負(fù)載得到降低。其選取最小適應(yīng)度函數(shù)F°的計(jì)算公式以及約束條件如式(8)
(8)
在云存儲(chǔ)數(shù)據(jù)負(fù)載分配不均衡時(shí),需對(duì)重載鏈路上的大象流進(jìn)行調(diào)度。將鏈路利用率閾值設(shè)定為75%,若設(shè)定過(guò)高閾值,在網(wǎng)絡(luò)過(guò)度擁塞后才開(kāi)始進(jìn)行調(diào)度,反之,設(shè)定過(guò)低閾值,在網(wǎng)絡(luò)容量方面不能夠充分得到利用,且計(jì)算量過(guò)大時(shí),會(huì)影響網(wǎng)絡(luò)性能。
若網(wǎng)絡(luò)中的某條鏈路出現(xiàn)負(fù)載過(guò)重情況時(shí),在對(duì)鏈路上的哪條數(shù)據(jù)流進(jìn)行重路由則是處理問(wèn)題的關(guān)鍵。數(shù)據(jù)傳輸中存在對(duì)數(shù)據(jù)吞吐以及對(duì)數(shù)據(jù)延時(shí)的大象流和老鼠流。老鼠流對(duì)數(shù)據(jù)進(jìn)行傳輸時(shí),耗時(shí)較短且對(duì)時(shí)延較為敏感,若對(duì)老鼠流進(jìn)行重路由,則會(huì)使延遲增加以及花費(fèi)大量開(kāi)銷(xiāo),因此,選取對(duì)延時(shí)不敏感的大象流進(jìn)行重路由。利用基于流的統(tǒng)計(jì)方式對(duì)大象流與老鼠流進(jìn)行區(qū)分,當(dāng)每條數(shù)據(jù)流經(jīng)過(guò)交換機(jī)時(shí),會(huì)對(duì)其進(jìn)行監(jiān)測(cè)以及對(duì)固定時(shí)間內(nèi)傳輸?shù)臄?shù)據(jù)流大小進(jìn)行統(tǒng)計(jì),將其作為衡量大象流與老鼠流的指標(biāo),具體計(jì)算公式如式(9)
(9)
式(9)中,固定時(shí)間間隔表示為O,其固定時(shí)間內(nèi)所傳輸?shù)臄?shù)據(jù)流大小表示為L(zhǎng)J,時(shí)間間隔前后所接收到的數(shù)據(jù)流總字節(jié)數(shù)分別表示為bu0+O、bu0。經(jīng)過(guò)上式計(jì)算后,獲取到固定時(shí)間內(nèi)所傳輸?shù)臄?shù)據(jù)量,把滿(mǎn)足于大象流的對(duì)應(yīng)數(shù)據(jù)流存儲(chǔ)于控制器中,便于后期對(duì)大象流進(jìn)行篩選,為獲取被需要重路由的數(shù)據(jù)流提供依據(jù),以及對(duì)應(yīng)進(jìn)行數(shù)據(jù)流表改寫(xiě)。
通過(guò)上述對(duì)重載鏈路與大象流進(jìn)行篩選后,對(duì)篩選出來(lái)的全部大象流進(jìn)行重路由,在對(duì)大象流進(jìn)行重路由之前,選取路徑組時(shí),首先對(duì)需要進(jìn)行調(diào)度的大象流的初始節(jié)點(diǎn)與目標(biāo)節(jié)點(diǎn)進(jìn)行查找,以及大象流所對(duì)應(yīng)的Match,查找以后,將全部信息輸入到DWGPSO算法的啟動(dòng)口當(dāng)中,進(jìn)行組合選路,待程序結(jié)束后,直接進(jìn)入流表階段,將全部的大象流所對(duì)應(yīng)的流表進(jìn)行修改。
通過(guò)上述章節(jié),獲取相應(yīng)的路徑,把控制器中的原始數(shù)據(jù)流所對(duì)應(yīng)的流表進(jìn)行修改,可以將Floodlight控制器進(jìn)行調(diào)用,該控制器的Modify依據(jù)Match匹配域進(jìn)行流表的相關(guān)修改,或者利用add方法,將priority設(shè)置較高,添加一個(gè)流表項(xiàng),當(dāng)匹配到的數(shù)據(jù)流到達(dá)時(shí),則自動(dòng)將新的流表項(xiàng)進(jìn)行轉(zhuǎn)發(fā)數(shù)據(jù),完成對(duì)流表的相關(guān)改寫(xiě)[11]。
為了驗(yàn)證基于SDN的云存儲(chǔ)數(shù)據(jù)負(fù)載均衡調(diào)度方法的可行性與有效性,需對(duì)基于SDN的云存儲(chǔ)數(shù)據(jù)負(fù)載均衡調(diào)度方法進(jìn)行相關(guān)實(shí)驗(yàn),實(shí)驗(yàn)硬件環(huán)境:HT臺(tái)式機(jī)一臺(tái);實(shí)驗(yàn)軟件環(huán)境:windows xp、MyEclipse8.1 開(kāi)發(fā)語(yǔ)言java;分別對(duì)所提方法、文獻(xiàn)[3]方法、文獻(xiàn)[4]方法進(jìn)行相關(guān)實(shí)驗(yàn),研究結(jié)果表明,鏈路利用率閾值應(yīng)設(shè)定在75%左右,若超出設(shè)定閾值,會(huì)出現(xiàn)調(diào)度延時(shí)情況,若低于設(shè)定閾值,會(huì)導(dǎo)致計(jì)算量過(guò)大,使網(wǎng)絡(luò)性能受到影響,將3種不同調(diào)度方法的鏈路利用率進(jìn)行對(duì)比,對(duì)比結(jié)果如圖4所示。
圖4 對(duì)比不同方法的鏈路利用率結(jié)果
分析圖4可知,所提方法的鏈路利用率平均保持在75%左右,而文獻(xiàn)[3]方法和文獻(xiàn)[4]方法的鏈路利用率浮動(dòng)較大,證明所提方法的鏈路利用率結(jié)果較為理想,網(wǎng)絡(luò)負(fù)載數(shù)據(jù)較為均衡,運(yùn)行狀態(tài)良好,取得較為理想的調(diào)度結(jié)果。
將調(diào)度延時(shí)作為測(cè)試指標(biāo),對(duì)比不同方法的調(diào)度延時(shí)變化情況,具體測(cè)試結(jié)果如圖5所示。
圖5 對(duì)比不同方法的調(diào)度延時(shí)變化結(jié)果
由圖5數(shù)據(jù)可知,文獻(xiàn)[3]方法和文獻(xiàn)[4]方法的調(diào)度延時(shí)均高于所提方法,證明所提方法調(diào)度更加及時(shí),有效避免了對(duì)負(fù)載鏈路數(shù)據(jù)進(jìn)行調(diào)度的延時(shí)情況。
對(duì)比不同方法的調(diào)度偏差,測(cè)試結(jié)果如圖6所示。
圖6 對(duì)比不同方法的調(diào)度偏差結(jié)果
據(jù)圖6數(shù)據(jù)可知,所提方法的調(diào)度偏差均小于文獻(xiàn)[3]方法和文獻(xiàn)[4]方法,證明所提方法對(duì)負(fù)載鏈路數(shù)據(jù)進(jìn)行調(diào)度更加準(zhǔn)確,使調(diào)度偏差得到降低的同時(shí),提高了對(duì)負(fù)載鏈路數(shù)據(jù)調(diào)度的準(zhǔn)確性。
本文提出的基于SDN的云存儲(chǔ)數(shù)據(jù)負(fù)載均衡調(diào)度方法在降低了對(duì)負(fù)載鏈路數(shù)據(jù)調(diào)度偏差的同時(shí),提高了對(duì)負(fù)載鏈路數(shù)據(jù)調(diào)度的準(zhǔn)確性,有效解決了目前調(diào)度方法存在的調(diào)度延時(shí)以及調(diào)度結(jié)果不準(zhǔn)確的問(wèn)題。為調(diào)度系統(tǒng)設(shè)計(jì)提供了一定的技術(shù)支持。但同時(shí)還具有一定的局限性,后續(xù)的研究工作可以從優(yōu)化流表改寫(xiě)方法方面進(jìn)一步完善調(diào)度系統(tǒng)。