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