鄭愛媛
(福建商學院 信息工程系,福建 福州,350012)
互聯(lián)網(wǎng)+時代,DCN作為云計算和存儲的核心網(wǎng)絡(luò)基礎(chǔ)設(shè)施連接著大量服務(wù)器集群[1]。由于數(shù)據(jù)業(yè)務(wù)不可預(yù)見,構(gòu)建DCN時將鏈路中數(shù)據(jù)流量的峰值作為網(wǎng)絡(luò)帶寬建設(shè)的目標。隨著云技術(shù)、虛擬技術(shù)、物聯(lián)網(wǎng)技術(shù)不斷融合發(fā)展,海量寬帶數(shù)據(jù)流量將以指數(shù)級呈現(xiàn)在DCN上,因此業(yè)界紛紛著手研究如何控制DCN風險以確保數(shù)據(jù)業(yè)務(wù)的QoS[2]。
就網(wǎng)絡(luò)結(jié)構(gòu)而言,采用多根樹型胖樹拓撲的傳統(tǒng)網(wǎng)絡(luò)中,由于存在核心層交換機無法應(yīng)對突發(fā)網(wǎng)絡(luò)重載的風險而無法推廣。因此,采用多路由層次型胖樹拓撲無疑是首選方案。該方案下的邊緣層和匯聚層歸屬于不同的集群,兩個層的交換機彼此相連,匯聚層僅和核心層部分交換節(jié)點互連,此舉可使DCN平臺上的服務(wù)器集群高效率地轉(zhuǎn)發(fā)數(shù)據(jù)流量載荷。從控制層面來說,傳統(tǒng)網(wǎng)絡(luò)在實施控制功能前需事先在全網(wǎng)中部署路由算法,并將數(shù)據(jù)流轉(zhuǎn)發(fā)模塊和路由模塊統(tǒng)一在一起;網(wǎng)絡(luò)設(shè)備定義的接口不具開放性;數(shù)據(jù)流轉(zhuǎn)發(fā)只對請求節(jié)點負責而缺乏對最優(yōu)路由的計算選擇。因此,實現(xiàn)高效控制無疑要將控制模塊獨立于轉(zhuǎn)發(fā)模塊,以便使控制器統(tǒng)一管理設(shè)備資源和網(wǎng)絡(luò)資源,進而規(guī)避網(wǎng)絡(luò)風險?;谏鲜龇治?,本文提出一種軟件定義網(wǎng)絡(luò)(SDN)架構(gòu)下DCN風險規(guī)避的控制算法。
SDN有別于傳統(tǒng)網(wǎng)絡(luò)架構(gòu),將控制模塊和轉(zhuǎn)發(fā)模塊分離,如圖1所示。其中Ryu控制單元根據(jù)網(wǎng)絡(luò)實時狀態(tài)為每個條數(shù)據(jù)流估算出最佳轉(zhuǎn)發(fā)路由并下發(fā)至轉(zhuǎn)發(fā)層中的OpenFlow交換機[3],交換機更新流表后再轉(zhuǎn)發(fā)該數(shù)據(jù)流。整個轉(zhuǎn)發(fā)過程的實施為:首先,突發(fā)數(shù)據(jù)包載荷到訪OpenFlow交換機,由于交換機既有的流表中并未包含與該突發(fā)數(shù)據(jù)包匹配的流表項,于是交換機向控制層中的Ryu控制器提交請求為該突發(fā)數(shù)據(jù)包估算出轉(zhuǎn)發(fā)的路由;其次,Ryu控制器計算出該突發(fā)數(shù)據(jù)包的轉(zhuǎn)發(fā)路由并響應(yīng)給轉(zhuǎn)發(fā)層中交換機;然后,交換機在其內(nèi)存流表中添加該流表項;最后為該突發(fā)數(shù)據(jù)包載荷執(zhí)行轉(zhuǎn)發(fā)動作。顯然,SDN架構(gòu)可用于應(yīng)對突發(fā)網(wǎng)絡(luò)中突發(fā)數(shù)據(jù)流的匹配請求,同時采用層次型胖樹拓撲結(jié)構(gòu)的DCN所具備的多徑路由特征也很適合SDN優(yōu)勢的發(fā)揮。
圖1 SDN體系架構(gòu) Fig.1 SDN architecture
但是,受限于轉(zhuǎn)發(fā)層中交換機尋址存儲器有限的流表項儲存空間[4],以及控制層中Ryu控制器響應(yīng)數(shù)據(jù)包轉(zhuǎn)發(fā)路由計算請求的規(guī)模,往往存在新生突發(fā)數(shù)據(jù)流無法被順利地分配到流表項的風險,使得新生突發(fā)數(shù)據(jù)流無法被順利轉(zhuǎn)發(fā),最終導(dǎo)致阻塞率、丟包率、傳輸時延等與服務(wù)質(zhì)量(QoS)相關(guān)的指標劣化。尤其在忙碌時段DCN重載情形下甚至可能引發(fā)全網(wǎng)癱瘓?;诖?,本文從交換機存儲空間流表優(yōu)化的角度提出一種控制機制來規(guī)避突發(fā)數(shù)據(jù)包無法被分配到流表項的風險。該機制主要通過統(tǒng)計轉(zhuǎn)發(fā)層中交換機存儲空間內(nèi)的流表閑置資源以及控制層中Ryu控制單元閑置的計算資源,然后根據(jù)突發(fā)數(shù)據(jù)流特性,計算出分配流表項過程中的閑置超時Tidle的最優(yōu)值來刪除無用的流表項,進而優(yōu)化整張流表,提高突發(fā)數(shù)據(jù)流和流表項的匹配成功率,實現(xiàn)快速轉(zhuǎn)發(fā)。同時通過計算并設(shè)置閑置超時Tidle的最優(yōu)值,可充分地利用Ryu控制器的計算資源改善數(shù)據(jù)包轉(zhuǎn)發(fā)路由計算請求的響應(yīng)率。這樣的控制機制不僅能優(yōu)化整個DCN,也可充分地應(yīng)對突發(fā)網(wǎng)絡(luò)潛在的流表資源匱乏的風險。
根據(jù)交換技術(shù)原理,突發(fā)載荷流量被劃分成多個子集抵達交換機。當網(wǎng)絡(luò)為該突發(fā)載荷流量分配足夠帶寬資源進行傳輸時,將該突發(fā)載荷流量子集記作DP{DP1,DP2,…DPn-1,DPn},且服從帕累托分布,并定義帕累托分布參數(shù)τ、M、α[5];當網(wǎng)絡(luò)未能為該突發(fā)載荷流量授予足夠帶寬而等候交換機響應(yīng)時,在這等候期間流表項暫時閑置,將閑置的時間間距子集記作Itn{It1,It2,…,Itn-1,Itn},遵循負指數(shù)F分布。于是,在突發(fā)網(wǎng)絡(luò)重載環(huán)境下上述兩個子集遵循函數(shù):
(2.1)
(2.2)
根據(jù)上述分析可知,在網(wǎng)絡(luò)未能為該突發(fā)載荷流量授予足夠帶寬而等候交換機響應(yīng)的情形下,如果流表項閑置的時間間隔長度Itn值超過了超時值Tidle,則交換機中的流表項將被剔除;相反,如果流表項閑置的時間間隔長度Itn值低于超時值Tidle,流表項則被保存下來。
(2.3)
顯然,在閑置的時間間距子集Itn{It1,It2,...,Itn-1,Itn}內(nèi),當無效的等待時間U(It,Tidle)越長,閑置流表項規(guī)模越大,交換機中流表的匹配率也就越低,網(wǎng)絡(luò)出現(xiàn)QoS異常的風險也就越高。為了描述無效等待時間對交換機流表生存性的影響力,對無效的等待時間做歸一化表征[7]:
(2.4)
(2.5)
風險規(guī)避目標旨在通過統(tǒng)計轉(zhuǎn)發(fā)層中交換機的流表資源響應(yīng)度、控制層中Ryu控制單元的計算資源響應(yīng)度和突發(fā)數(shù)據(jù)流量載荷對轉(zhuǎn)發(fā)層和控制層資源的依賴度[8],分析出閑置超時Tidle的最優(yōu)值,使突發(fā)數(shù)據(jù)流量載荷在短期內(nèi)被順利轉(zhuǎn)發(fā),排除因阻塞率、丟包率、傳輸時延等指標劣化而導(dǎo)致全網(wǎng)癱瘓的風險。
據(jù)此分析,將突發(fā)數(shù)據(jù)流量載荷對全網(wǎng)資源的依賴度Y(It,Tidle)描述為C·ar(It,Tidle)+S·u(It,Tidle),可得閑置超時Tidle的最優(yōu)值為:
Tidle=argmin[C·ar(It,Tidle)+S·u(It,Tidle)]
(2.6)
風險規(guī)避策略效能的評估在Mininet 2.2.1環(huán)境中開展。評估采用4元胖樹的拓撲結(jié)構(gòu),含16個終端和20個OpenSwitch交換機。通過調(diào)用命令:$sudo mn --custom ~ /mininet/custom/fattree.py -topo=mytopo -switch=ovsk--mac --controller=remote, ip=Ryu控制器遠程主機IP地址,port=6633,使Ryu控制單元和Mininet運行在兩個主機上。借助于灌包軟件Iperf協(xié)作生成突發(fā)數(shù)據(jù)流量載荷。載荷在區(qū)間[10Mb/s,106Mb/s]內(nèi)呈現(xiàn)線性遞增的趨勢。每次突發(fā)數(shù)據(jù)流量生成時間間隔為5sec.,每個突發(fā)數(shù)據(jù)流量載荷長度為60 sec.。每個OpenSwitch交換機上的突發(fā)數(shù)據(jù)流量載荷規(guī)模不超過106條,并遵循0.05的負指數(shù)參數(shù)。
同時,OpenSwitch交換機提供2Gbit/s的帶寬資源,其流表存儲空間為2 000條,其中轉(zhuǎn)發(fā)數(shù)據(jù)流的閾值缺省為70%。
目前,在基于SDN架構(gòu)的DCN[10]上實施數(shù)據(jù)流轉(zhuǎn)發(fā)請求的策略有動態(tài)鏈路均衡算法和多路由均衡算法。因此評估方案從突發(fā)數(shù)據(jù)流請求響應(yīng)度、交換機流表使用率、全網(wǎng)吞吐量三個方面將風險規(guī)避策略與動態(tài)鏈路均衡算法、多路由均衡算法做出對比。
(1)突發(fā)數(shù)據(jù)流請求響應(yīng)度
由前文描述可知,當突發(fā)網(wǎng)絡(luò)處于輕載時,控制層中Ryu控制單元計算資源較為充裕,完全可以響應(yīng)OpenSwitch交換機上的突發(fā)數(shù)據(jù)流子集向上層提交的轉(zhuǎn)發(fā)路由計算請求;反之,當突發(fā)網(wǎng)絡(luò)處于重載時,隨著Ryu控制單元計算資源耗盡,響應(yīng)度勢必減弱。這樣的特征在如圖2所示的三種算法策略仿真曲線圖中均得到了體現(xiàn)。同時,由于三種算法策略對突發(fā)數(shù)據(jù)流采用不同的處理方式,使得各自產(chǎn)生突發(fā)數(shù)據(jù)流子集規(guī)模也不一致,向Ryu控制單元提交轉(zhuǎn)發(fā)路由計算的請求機會也有所差異。相對于多路由均衡算法和動態(tài)鏈路均衡算法,本文提出的風險規(guī)避機制能夠結(jié)合突發(fā)數(shù)據(jù)流特征優(yōu)化Ryu控制單元計算資源,為相同規(guī)模的突發(fā)數(shù)據(jù)流量載荷子集提供更多的響應(yīng)度。
圖2 三種算法策略下突發(fā)數(shù)據(jù)流請求響應(yīng)度Fig.2 Response of burst data stream requests under three algorithms
(2)交換機流表使用率
如圖3所示,當突發(fā)網(wǎng)絡(luò)中生成的突發(fā)數(shù)據(jù)流規(guī)模較小時,轉(zhuǎn)發(fā)層中OpenSwitch交換機內(nèi)的流表空間存放的流表項能夠良好地滿足數(shù)據(jù)流子集的適配請求。隨著突發(fā)數(shù)據(jù)流規(guī)模線性遞增,后續(xù)的突發(fā)數(shù)據(jù)流無法從有限的流表資源中得到匹配的機會,只能向上層控制單元提交請求等候控制器為其分配流表項,這樣的情形顯著降低了流表資源的使用率。較之傳統(tǒng)算法,本文提出的風險規(guī)避機制通過一定的計算機制設(shè)定最優(yōu)化的超時值,從而顯著改善了OpenSwitch交換機內(nèi)的流表資源使用率。
圖3 三種策略下交換機流表使用率 Fig.3 Utilization of switch flow table under three policies
(3)全網(wǎng)吞吐量
理論上,網(wǎng)絡(luò)吞吐量與突發(fā)數(shù)據(jù)流載荷流量呈正比。然而受限于設(shè)備和網(wǎng)絡(luò)性能,實際吞吐量并不總是呈現(xiàn)遞增趨勢,而是在達到一定峰值后有所減緩。圖4所示的本組實驗結(jié)果總體上也符合這樣的規(guī)律。圖中不難看出,隨著負載增至10 000,動態(tài)鏈路均衡算法首先達到了峰值。數(shù)據(jù)流量進一步增加,阻塞也變得愈加嚴重,使得整體吞吐量下降。相對于多路由均衡算法,本文提出的風險規(guī)避機制能夠結(jié)合突發(fā)數(shù)據(jù)流量載荷實時特征,統(tǒng)計其對全網(wǎng)資源的依賴度來高效管理OpenSwitch交換機內(nèi)的流表項和Ryu控制單元計算資源,從而使得在相同網(wǎng)絡(luò)環(huán)境參數(shù)下,表現(xiàn)出了吞吐量優(yōu)越性。
圖4 三種策略下全網(wǎng)吞吐量Fig.4 Network throughput under three policies
DCN在傳統(tǒng)的算法機制下存在丟包、擁塞等QoS異?,F(xiàn)象。本文借助SDN架構(gòu)優(yōu)勢,將其部署在DCN中并提出一種風險規(guī)避算法,該算法結(jié)合突發(fā)數(shù)據(jù)流特征,通過計算OpenFlow交換機資源和Ryu控制器資源來求解超時優(yōu)化值,以便順利轉(zhuǎn)發(fā)突發(fā)數(shù)據(jù)流從而達到化解網(wǎng)絡(luò)阻塞和丟包的風險。該風險規(guī)避算法借助Floodlight和Mininet環(huán)境展開模擬評估,實驗表明,相對于動態(tài)均衡算法和多路由均衡算法,該機制在突發(fā)數(shù)據(jù)流請求響應(yīng)度、交換機流表使用率、網(wǎng)絡(luò)吞吐量等方面具有良好的優(yōu)勢。