摘 要: 為了解決云服務(wù)中客戶端傳輸流量過大或者突發(fā)流霸占服務(wù)導(dǎo)致的網(wǎng)絡(luò)擁塞、服務(wù)性能降低問題,將軟件定義網(wǎng)絡(luò)(Software-Defined Networking,SDN)架構(gòu)運用于云服務(wù)流量控制,并提出了一種基于SDN的云服務(wù)流量控制方法。該方法基于SDN架構(gòu)中流表的特點,通過承諾速率與實際訪問速率的比對關(guān)系對連接請求進(jìn)行分類、修改流表、劃分優(yōu)先級,然后根據(jù)不同的請求優(yōu)先級來處理服務(wù),以此控制整個服務(wù)系統(tǒng)的流量,從而降低整個服務(wù)過程的時延。實驗測試表明,該設(shè)計能夠有效地降低網(wǎng)絡(luò)服務(wù)時延,對云服務(wù)質(zhì)量有顯著提高。
關(guān)鍵詞: 軟件定義網(wǎng)絡(luò);云服務(wù);流量控制;SDN控制器;流表
0 引言
隨著社會的進(jìn)步及科學(xué)技術(shù)的高速發(fā)展,人類生活品質(zhì)提升,人們對網(wǎng)絡(luò)服務(wù)類型(FTP、P2P、Web等業(yè)務(wù))要求多元化,對網(wǎng)絡(luò)性能要求也越來越高,而云計算平臺是開放并面向大眾的,這意味著其用戶數(shù)將極其龐大,這些用戶運行的工作流數(shù)量也將極為龐大,因此云計算中網(wǎng)絡(luò)資源被急劇消耗而出現(xiàn)不足現(xiàn)象。解決這個問題最簡單直接的方法就是增加網(wǎng)絡(luò)帶寬,但是該方法需要升級網(wǎng)絡(luò)設(shè)備,在資金有限的情況下,顯得并不可??;此外該方法對網(wǎng)絡(luò)服務(wù)質(zhì)量改善較小,而且從實現(xiàn)上看控制平面與轉(zhuǎn)發(fā)平面都運行在網(wǎng)絡(luò)設(shè)備中,給網(wǎng)絡(luò)功能的擴展和網(wǎng)絡(luò)的管理帶來了巨大的挑戰(zhàn)。
在這種情況下基于軟件定義網(wǎng)絡(luò)(SDN)的下一代網(wǎng)絡(luò)架構(gòu)誕生。而SDN是一種基于軟硬件控制與分離的技術(shù)架構(gòu),支持集中化的網(wǎng)絡(luò)控制,實現(xiàn)了底層網(wǎng)絡(luò)設(shè)施對上層應(yīng)用的透明,具有靈活的軟件編程能力,采用軟件定義網(wǎng)絡(luò)的方式,可以靈活滿足云服務(wù)中不同用戶的應(yīng)用需求[1]。
1 軟件定義網(wǎng)絡(luò)架構(gòu)組成
SDN架構(gòu)如圖1所示,將傳統(tǒng)網(wǎng)絡(luò)設(shè)備緊耦合的網(wǎng)絡(luò)架構(gòu)分成3層:基礎(chǔ)設(shè)施層、控制層和應(yīng)用層?;A(chǔ)設(shè)施層負(fù)責(zé)數(shù)據(jù)高效轉(zhuǎn)發(fā)和狀態(tài)收集,由大量OpenFlow交換機構(gòu)成,而OpenFlow交換機其核心是由12元組構(gòu)成的流表匹配域,如圖2所示,支持定義的信息流從第1層到第4層關(guān)鍵信息的匹配;控制層負(fù)責(zé)數(shù)據(jù)平面資源的統(tǒng)籌、網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的維護(hù)和狀態(tài)信息記錄與更新等;應(yīng)用層負(fù)責(zé)各服務(wù)業(yè)務(wù)應(yīng)用的加載與開展[2]。
2 云計算中基于SDN架構(gòu)的優(yōu)勢
將SDN架構(gòu)應(yīng)用于云計算中心網(wǎng)絡(luò)是由于數(shù)據(jù)流量大,交換機層次管理結(jié)構(gòu)復(fù)雜,服務(wù)器和虛擬機需要快速配置和數(shù)據(jù)遷移。將OpenFlow交換機部署到云計算中心網(wǎng)絡(luò),可以實現(xiàn)網(wǎng)絡(luò)虛擬化、流量控制和負(fù)載平衡等功能,從而進(jìn)一步增加云計算中心的可控性。
2.1 網(wǎng)絡(luò)虛擬化及多租戶支持[3]
網(wǎng)絡(luò)虛擬化在云計算和數(shù)據(jù)中心技術(shù)發(fā)展中起著重要作用。而SDN架構(gòu)不僅具有可編程能力,而且可以隨時加載用戶需求的各種應(yīng)用模塊,識別不同租戶的網(wǎng)絡(luò)流量,同時突破虛擬網(wǎng)絡(luò)對個數(shù)的限制,支持大量相互隔離的租戶網(wǎng)絡(luò)分配虛擬數(shù)據(jù)中心,還能根據(jù)資源需求和網(wǎng)絡(luò)策略按需分配[4]。
2.2 網(wǎng)絡(luò)靈活控制
基于SDN架構(gòu)的網(wǎng)絡(luò)架構(gòu)改變了傳統(tǒng)的網(wǎng)絡(luò)服務(wù)大多基于盡力而為的服務(wù)方式,通過OpenFlow協(xié)議能夠探測網(wǎng)絡(luò)拓?fù)鋅感知底層網(wǎng)絡(luò)拓?fù)渥兓?、流量狀況,在控制面建立并維護(hù)一個整網(wǎng)的拓?fù)湟晥D、負(fù)載表,從而SDN控制器能夠根據(jù)每個虛擬機所在的位置計算出每兩個虛擬機之間的最佳路徑,使流量按最佳路徑轉(zhuǎn)發(fā)、按需分配。
2.3 運維簡單
SDN架構(gòu)將交換機與路由器從固化且需要進(jìn)行大量數(shù)據(jù)處理的傳統(tǒng)模式中解放出來,使其功能更加專一,而應(yīng)用的靈活性則不斷打破了廠商的壁壘,降低了維護(hù)成本。
3 基于SDN流量控制方法的提出
網(wǎng)絡(luò)流量控制主要方法有3種:源端控制、目的端控制和數(shù)據(jù)傳輸過程中控制。傳統(tǒng)的網(wǎng)絡(luò)架構(gòu)要實現(xiàn)以上控制需要添加大量協(xié)議,而且配置復(fù)雜,而基于SDN的架構(gòu)網(wǎng)絡(luò)支持定義的信息流從第1層到第4層關(guān)鍵信息的匹配,可以輕松實現(xiàn)網(wǎng)絡(luò)流量的靈活控制。
本文鑒于SDN架構(gòu)中流表的特性,并借鑒傳統(tǒng)的單速率雙色標(biāo)記令牌桶算法[5-6],將流表當(dāng)作令牌桶中的令牌,通過對流表的控制來實現(xiàn)對網(wǎng)絡(luò)中流量的控制,根據(jù)這個思想,提出基于SDN流量控制方法。
3.1 基于SDN的云服務(wù)流量控制方案設(shè)計
如圖3所示,基于SDN的云服務(wù)流量控制方案包括三大部分:第一部分是由服務(wù)器和客戶端組成的各個底層對象;第二部分是由OpenFlow交換機組成的OpenFlow數(shù)據(jù)轉(zhuǎn)發(fā)網(wǎng)絡(luò);第三部分是由SDN控制器組成的數(shù)據(jù)決策平臺。
圖3中控制器主要功能模塊由三個單元組成:流量檢測、流量計算和流量管理(數(shù)據(jù)轉(zhuǎn)發(fā))
(1)端到端的流量檢測模塊
在傳統(tǒng)的數(shù)據(jù)中心網(wǎng)絡(luò)中,只能通過端口鏡像的方式復(fù)制某條鏈路的全部流量,這種手段的弊端之一是檢測流量極大[7]。然而SDN架構(gòu)可以對流量做到端到端的準(zhǔn)確監(jiān)控,可以根據(jù)定位想要檢測的端口以及相對應(yīng)的流將其復(fù)制出來后發(fā)送給控制器相對應(yīng)的流量計算模塊。
?。?)快速流量計算模塊
快速流量計算模塊在該設(shè)計中比傳統(tǒng)的網(wǎng)絡(luò)架構(gòu)有著明顯的優(yōu)勢,可以直接接收流量監(jiān)測模塊的數(shù)據(jù),快速統(tǒng)計出各個網(wǎng)絡(luò)的流量狀況;再根據(jù)服務(wù)的狀態(tài)和各處流量狀況全局化合理分配網(wǎng)絡(luò)資源,同時為數(shù)據(jù)轉(zhuǎn)發(fā)模塊提供判斷依據(jù)。
定義1 實際平均服務(wù)速率V(t),公式如下:
其中,Loadi(t)代表在t時間間隔內(nèi)流表i上的已經(jīng)被轉(zhuǎn)發(fā)的數(shù)據(jù)量,N是OpenFlow交換機中處理該客戶端服務(wù)的所有的流表數(shù)目。
(3)靈活的數(shù)據(jù)轉(zhuǎn)發(fā)模塊
數(shù)據(jù)轉(zhuǎn)發(fā)模塊是整個流量控制系統(tǒng)的核心,它通過前面的計算模塊得到了流量控制決策,該模塊就是由OpenFlow交換機流表匹配狀態(tài)執(zhí)行流量控制實體。
定義2 承諾服務(wù)速率δ(t),數(shù)據(jù)轉(zhuǎn)發(fā)判斷決策為:當(dāng)V(t)≤δ(t),不進(jìn)行流控,執(zhí)行正常的服務(wù)流量轉(zhuǎn)發(fā);當(dāng)V(t)>δ(t),超過的流量都會采取已經(jīng)設(shè)定的動作,即執(zhí)行標(biāo)記流表轉(zhuǎn)發(fā)決策。
3.2 基于SDN的云服務(wù)流量控制流程
基于SDN的云服務(wù)流量控制方法流程如圖4所示。
4 對比測試及結(jié)果分析
測試環(huán)境為:Ubuntu11.04(Linux 2.6.38內(nèi)核),Inter Pentium Dual E2180處理器、512 MB內(nèi)存的主機,100 M以太網(wǎng)卡及Pox1.0控制器,在Linux系統(tǒng)下的OpenFlow Vswitch上實現(xiàn)了該流量控制方法,并對其性能進(jìn)行了測試。
為了模擬真實環(huán)境,本實驗采用兩臺主機做客戶端、一臺主機做服務(wù)器的測試結(jié)構(gòu),并改變發(fā)送數(shù)據(jù)的大小,記錄服務(wù)時延,結(jié)果如圖5所示。
由圖5可知,加入SDN架構(gòu)及算法后時延明顯優(yōu)于傳統(tǒng)架構(gòu),而時延在100 Mbit之前一直比較穩(wěn)定,并維持在非常良好效果。在服務(wù)器負(fù)載量大于100 Mbit之后服務(wù)器性能開始下降,特別是在500 Mbit之后,性能下降明顯,在傳統(tǒng)架構(gòu)中服務(wù)器時延急劇上升,而基于SDN架構(gòu)的服務(wù)流量控制方法對流量起到了有效的控制,時延曲線比較緩和,算法開始體現(xiàn)出明顯的優(yōu)勢。
參考文獻(xiàn)
[1] 高浪.軟件定義網(wǎng)絡(luò)架構(gòu)和應(yīng)用分析[J].電腦知識與技術(shù),2013,13(5):3071-3073.
[2] 李萬予.編譯上層應(yīng)用:部署SDN的關(guān)鍵[N].中國計算學(xué)報,2013-07-08:021.
[3] ERICKSON D, HELLER B, YANG S, et al. Optimizing a virtualized data center[C]. Proceedings of the SIGCOMM 2011 (Demo), Toronto: ACM Press, 2011:478-479.
[4] SHERWOOD R, GIBB G, YAP K, et al. Flowvisor: a network virtualization layer[R]. 2009.
[5] 劉振宇.基于令牌桶算法的網(wǎng)絡(luò)流量控制技術(shù)的研究與實現(xiàn)[D].呼和浩特:內(nèi)蒙古大學(xué),2012.
[6] 張國清.QoS在IOS中的實現(xiàn)與應(yīng)用[M].北京:電子工業(yè)出版社,2010.
[7] 于華.網(wǎng)絡(luò)流量監(jiān)控中的若干基本問題研究與分析[D].北京:北京郵電大學(xué),2011.