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