王 勇,匡玉雯
(1.桂林電子科技大學計算機科學與工程學院,廣西桂林 541004; 2.桂林電子科技大學信息與通信學院,廣西桂林 541004)
基于SDN的云中心動態(tài)負載均衡方法
王 勇1,匡玉雯2
(1.桂林電子科技大學計算機科學與工程學院,廣西桂林 541004; 2.桂林電子科技大學信息與通信學院,廣西桂林 541004)
為了實現(xiàn)基于數(shù)據(jù)流級的動態(tài)負載均衡,將SDN技術應用于云數(shù)據(jù)中心,提出一種基于SDN的云中心動態(tài)負載均衡方法。該方法利用SDN技術在流和任務調度上靈活性的優(yōu)勢,通過Open Flow協(xié)議對服務節(jié)點流量及負載狀況進行實時監(jiān)測。當系統(tǒng)發(fā)生負載失衡時,控制器可全局化調配網(wǎng)絡資源負載,通過更精確的動態(tài)修正,保證系統(tǒng)在長期運行時負載不會發(fā)生明顯傾斜。仿真實驗表明,該方法實現(xiàn)并保證負載在長時間不會發(fā)生傾斜,且能提高系統(tǒng)吞吐量。
軟件定義網(wǎng)絡;云計算;數(shù)據(jù)中心;動態(tài)負載均衡
近年來,隨著社會的進步和科學技術的高速發(fā)展,帶來人類生活品質的提升,人們對網(wǎng)絡服務類型(FTP、P2P、Web、云服務等業(yè)務)需求更多元化,網(wǎng)絡性能要求也越來越高。而隨著用戶的增多及業(yè)務需求越來越復雜,傳統(tǒng)網(wǎng)絡體系架構越來越難以滿足用戶和業(yè)務的需求。
云計算[1]雖然將資源(計算資源、網(wǎng)絡資源、存儲資源)整合并動態(tài)靈活部署、優(yōu)化配置,但是信息產(chǎn)業(yè)的發(fā)展并不是一蹴而就的。初始階段人們對信息系統(tǒng)的處理能力要求較低,業(yè)務類型簡單,服務提供者只需購置少量的設備就可對外提供服務。而云計算平臺是開放的、面向大眾的平臺,其用戶數(shù)量龐大,業(yè)務種類復雜。因此,云計算中心出現(xiàn)網(wǎng)絡資源急劇消耗、大量業(yè)務無法開展等一系列問題。解決該問題最簡單直接的方法就是增加網(wǎng)絡帶寬,升級網(wǎng)絡設備,重新購置新的基礎設施,在資金有限的情況下,此方法顯得并不可取,并且對網(wǎng)絡服務質量改善較小。加之,傳統(tǒng)網(wǎng)絡架構中數(shù)據(jù)轉發(fā)與控制緊耦合,網(wǎng)絡創(chuàng)新性和可編程方面存在不足,設備研發(fā)、測試及應用的時間長,網(wǎng)絡新應用需要重新制定協(xié)議與標準,網(wǎng)絡管理和維護困難。因此,在不增加網(wǎng)絡設備的情況下,如何對網(wǎng)絡中的資源進行更為靈活和合理的分配是當前亟待解決的關鍵問題。此時,下一代可編程網(wǎng)絡架構[2]——SDN的誕生為云中心網(wǎng)絡資源管理提供了新的解決方案。
軟件定義網(wǎng)絡[3](software defined network,簡稱SDN)是一種基于控制與轉發(fā)分離的技術架構,支持集中化的網(wǎng)絡控制,實現(xiàn)了底層網(wǎng)絡設施對上層應用的透明,具有靈活的軟件編程能力,可以靈活滿足云服務中不同用戶的應用需要。
SDN技術架構由下到上包括基礎設施層、控制層、應用層,其架構如圖1所示。
圖1 SDN架構Fig.1 SDN architecture
1)基礎設施層。由大量OpenFlow交換機構成,負責數(shù)據(jù)流表的收集、數(shù)據(jù)流的轉發(fā)。
2)控制層。包含邏輯中心的控制器,負責運行控制邏輯策略,統(tǒng)籌數(shù)據(jù)平面資源、制定轉發(fā)策略、記錄并更新狀態(tài)信息,同時對網(wǎng)絡拓撲結構和全網(wǎng)視圖進行維護,并將全網(wǎng)視圖抽象成網(wǎng)絡服務。
3)應用層。有大量的應用或軟件,負責加載與開展各類應用業(yè)務;允許第三方或用戶自由選擇網(wǎng)絡操作系統(tǒng)、開發(fā)自己的網(wǎng)絡管理軟件和應用,在此過程中無需對底層設備進行技術細節(jié)的操作,只需通過簡單網(wǎng)絡編程就能實現(xiàn)對新應用的快速部署,且不會影響物理設備的正常運行。
2.1 網(wǎng)絡虛擬化及多用戶支持
隨著服務器、桌面、應用、存儲等虛擬化技術的廣泛應用,網(wǎng)絡虛擬化[4-5]在云計算發(fā)展中起著重要作用。網(wǎng)絡虛擬化的目的是在邏輯上把一個物理的網(wǎng)絡劃分成多個邏輯網(wǎng)絡,同時,也提供了一種強有力的方式,使得多個網(wǎng)絡體系結構同步運行在一共享的物理設施上。傳統(tǒng)VLAN被限制在4096個獨立段內(nèi),而很多大型化云計算中心的客戶遠超過4096個,如果采用多個、支持自由VLAN空間的非疊加網(wǎng)絡隔離用戶,受限于多種網(wǎng)絡技術之間復雜的相互影響和作用,不能滿足多用戶支持。設計要達到完全虛擬化是非常困難的,經(jīng)常有一些網(wǎng)絡限制,能采用局部方案處理,但會在架構的其他地方產(chǎn)生不利影響。而基于SDN架構的云中心網(wǎng)絡不僅具有可編程能力,且支持大量相互隔離的用戶,識別不同用戶的網(wǎng)絡流量,同時,突破虛擬網(wǎng)絡對個數(shù)的限制及虛擬機頻繁遷移的業(yè)務需求。
2.2 靈活的網(wǎng)絡控制與資源管理
云計算平臺需對資源進行統(tǒng)一管理,按需分配,而不能像傳統(tǒng)的網(wǎng)絡服務一樣,數(shù)據(jù)傳輸獨立決策,缺少全局規(guī)劃,只能根據(jù)設備自身所掌握的有限局部鏈接情況進行數(shù)據(jù)處理決策,對數(shù)據(jù)傳輸沒有任何保障,容易發(fā)生擁塞,難以保證用戶的良好體驗。
然而,SDN的分布式部署和集中式管理的全新思想在云計算平臺上具有先天優(yōu)勢。其中,控制器可通過OpenFlow協(xié)議探測網(wǎng)絡拓撲結構、感知底層網(wǎng)絡拓撲變化、檢測流量狀況,在控制層建立并維護整個網(wǎng)絡的拓撲視圖、資源表等。根據(jù)每個虛擬機所在的位置及網(wǎng)絡的不同狀況,能自適應地為數(shù)據(jù)轉發(fā)制定、調整合適的路徑和隊列管理策略,減小網(wǎng)絡發(fā)生擁塞的概率,提升網(wǎng)絡資源利用率,從而實現(xiàn)云計算中心平臺對用戶需求的QoS保證。
2.3 方便的運行維護
在傳統(tǒng)網(wǎng)絡架構中,由于硬件系統(tǒng)封閉,軟硬件緊耦合在一起,用戶無法自行修改,造成不能及時支持用戶的新業(yè)務、新需求。管理者需要深入基礎網(wǎng)絡對設備逐臺人工配置,費時費力造成運維成本高。而SDN技術架構提供了開放、靈活的API接口,使用戶或第三方軟件廠商可根據(jù)業(yè)務需要快速開發(fā)APP應用程序來直接控制底層網(wǎng)絡資源,提高網(wǎng)絡的利用率。而集中化的自動化配置能提高故障的解決速度,降低運行成本。
基于SDN的動態(tài)負載均衡方案借鑒Plug-n-Serve[6]在斯坦福大學的計算機系大樓部署SDN方案及文獻[7]中的結構,設計系統(tǒng)如圖2所示。其結構包括3部分:1)由服務器和客戶端組成的各個底層對象;2)由Open Flow交換機組成的OpenFlow交換網(wǎng)絡;3)由SDN控制器組成的數(shù)據(jù)決策平臺。
圖2 基于SDN的動態(tài)負載均衡架構Fig.2 Dynamic load balancing framework based on SDN
圖2中控制器主要功能模塊由流量檢測、負載計算、負載均衡、流管理等4個單元組成。
3.1 端到端的流量檢測模塊
在傳統(tǒng)的數(shù)據(jù)中心網(wǎng)絡中,流量檢測只能通過端口鏡像的方式復制某條鏈路上的全部流量,這種手段的弊端之一是檢測流量極大。然而,基于SDN技術架構的流量檢測,可直接獲取交換設備的流量統(tǒng)計信息,做到端到端的準確、方便、快捷的動態(tài)流量監(jiān)控與統(tǒng)計[8-9]。
3.2 快速的負載計算模塊
快速流量計算模塊在SDN架構中比傳統(tǒng)的網(wǎng)絡架構具有明顯的優(yōu)勢。首先,它可直接接收流量監(jiān)測模塊的數(shù)據(jù),快速統(tǒng)計各個網(wǎng)絡的流量狀況;其次,可根據(jù)服務的需求狀態(tài)和各處流量狀況全局化合理分配網(wǎng)絡資源。
定義1 負載均衡參數(shù):
其中:i為服務節(jié)點編號;LA(t)為服務器的平均負載;Li(t)為服務器節(jié)點i在時間t的負載量;N為OpenFlow交換機中處理該服務所有的服務器節(jié)點數(shù)目。將負載均衡參數(shù)δ(t)定義為方差的形式,也是為了更好地體現(xiàn)網(wǎng)絡負載的不均衡情況,即δ(t)越大,各節(jié)點的負載分布越不均勻,δ(t)越小,各節(jié)點的負載差異越小,而δ(t)等于0時,則所有服務節(jié)點的負載字節(jié)數(shù)相等,這種情況在流調度中為完全理想狀態(tài)。因此,在t時刻,網(wǎng)絡中的負載均衡情況與δ(t)成負相關關系,這也是該算法中最重要的參數(shù)之一,直接反映網(wǎng)絡中負載均衡的情況,作為負載調度的一個觸發(fā)策略參數(shù)。
3.3 動態(tài)負載均衡模塊
該模塊包括2步:1)先對基于流的哈希負載調度,將任務用散列性更好的異或位移Hash散列算法均勻地將網(wǎng)絡流分配到后端各個服務器節(jié)點處理,此時的處理為傳統(tǒng)的靜態(tài)負載均衡方案,但OpenFlow交換機是以流速轉發(fā)的,由于每一條流的大小不一,采用傳統(tǒng)Hash的負載均衡算法,無法避免局部節(jié)點負載過重現(xiàn)象發(fā)生,無法保證系統(tǒng)在長時間運行時,負載不會發(fā)生傾斜。2)給系統(tǒng)設定一個平衡度,通過不斷監(jiān)測系統(tǒng),當監(jiān)測到系統(tǒng)發(fā)生傾斜時,基于最大最小調度原則(即將最大流調度到負載最輕的節(jié)點上)對相關節(jié)點的流量進行流調度,使整個系統(tǒng)始終處于動態(tài)平衡。
定義2 動態(tài)負載均衡閾值Ω(最大傾斜度)發(fā)生傾斜時,需要調用動態(tài)負載均衡算法時的波動最大值。當δ(t)>Ω時,負載出現(xiàn)傾斜,觸發(fā)并運行動態(tài)流調度策略對負載進行動態(tài)調整。將最大流調度到負載最小的節(jié)點,最小流調度到負載最大的節(jié)點,以平衡節(jié)點負載,實現(xiàn)整體動態(tài)平衡。此時,相當于系統(tǒng)自我恢復平衡。
3.4 靈活的流管理模塊
流管理模塊將具體負載調度策略的網(wǎng)絡部署并執(zhí)行,通過控制器將負載調度策略以流表的形式下發(fā)到指定OpenFlow交換機,執(zhí)行流量調度,而對應的OpenFlow交換機在數(shù)據(jù)流到達時,只需根據(jù)相應流表規(guī)則轉發(fā)。
4.1 測試環(huán)境
仿真使用的測試環(huán)境為Ubuntu 11.04,Intel Pentium Dual E2180中央處理器,4 GB內(nèi)存主機、千兆以太網(wǎng)卡和Pox控制器,在Linux系統(tǒng)下搭建Mininet仿真環(huán)境,實現(xiàn)該負載均衡方法,并對其性能進行測試。
4.2 對比測試結果
4.2.1 負載狀況測試
實驗采用圖3所示的仿真測試拓撲模型,經(jīng)過測試計算后,閾值Ω設置為50 MB,并以最大速率發(fā)包,記錄服務器負載狀況,結果如圖4所示。
圖3 仿真測試結構Fig.3 The simulation test architecture
圖4 負載狀況Fig.4 Load diagram
從圖4可看出,在傳統(tǒng)架構中服務器負載在長時間運行后容易發(fā)生傾斜,尤其是節(jié)點3和節(jié)點4的負載偏差比較大,造成大量網(wǎng)絡資源的浪費。而基于SDN架構的動態(tài)負載均衡方案避免了這種情況的出現(xiàn),當負載分配波動幅度大于預設值時,控制器就觸發(fā)負載調度機制,調節(jié)各個服務器的負載,使負載達到動態(tài)平衡,測定的負載曲線較平坦,架構和算法體現(xiàn)出明顯的優(yōu)勢。
4.2.2 吞吐量比較
通過對負載狀況的測試,所有服務器節(jié)點負載總和統(tǒng)計得到的吞吐量如圖5所示。從圖5可看出,基于SDN系統(tǒng)吞吐量明顯提高。
圖5 吞吐量比較Fig.5 The comparison of throughput
基于SDN的云中心動態(tài)負載均衡方法,實現(xiàn)了基于流級的動態(tài)負載均衡,但由于實驗室設備性能上的原因,未能完全發(fā)揮SDN技術在轉發(fā)與控制分離架構上的速度優(yōu)勢,吞吐量提高不多,但還是充分體現(xiàn)了SDN在流調度上靈活性的特點。SDN是目前研究的熱點,但是對它的研究大多仍處于初步階段,而將SDN技術與云中心的結合是一種積極的探索,具有重要的應用價值。
[1] 羅軍舟,金嘉暉,宋愛波,等.云計算:體系架構與關鍵技術[J].通信學報,2011,32(7):3-21.
[2] 張朝昆,崔勇,唐翯翯,等.軟件定義網(wǎng)絡(SDN)研究進展[J].軟件學報,2015,26(1):62-81.
[3] 左青云,陳鳴,趙廣松,等.基于OpenFlow的SDN技術研究[J].軟件學報,2013,24(5):1078-1097.
[4] Erickson D,Heller B,Yang S,et al.Optimizing a virtualized data center[J].ACM Sigcomm Computer Communication Review,2011,41(4):478-479.
[5] Chowdhury N M M K,Boutaba R.Network virtualization:state of the art and research challenges[J].Communications Magazine IEEE,2009,47(7):20-26.
[6] Handigol N,Seetharaman S,Flajslik M,et al.Plug-n-Serve:load-balancing Web traffic using OpenFlow[C]// In ACM Sigcomm Demo,2009:268-270.
[7] Handigol N,Seetharaman S,Flajslik F,et al.Aster*x: load-balancing Web traffic over wide-area networks[DB/ OL].(2014-07-20).http://www.standford.edu.
[8] 張國清.QoS在IOS中的實現(xiàn)與應用[M].北京:電子工業(yè)出版社,2010:45-46.
[9] 于華.網(wǎng)絡流量監(jiān)控中的若干基本問題研究與分析[D].北京:北京郵電大學,2011:19-20.
編輯:梁王歡
A dynamic load balancing method of cloud-center based on SDN
Wang Yong1,Kuang Yuwen2
(1.School of Computer Science and Engineering,Guilin University of Electronic Technology,Guilin 541004,China;2.School of Information and Communication Engineering,Guilin University of Electronic Technology,Guilin 541004,China)
In order to achieve cloud computing center dynamic load balancing based on data flow level,SDN technology is used in the cloud data center and a dynamic load balancing method of cloud center based on SDN is proposed.the method uses SDN technology in the current task scheduling flexibility and the advantages of real-time monitoring of the service node flow and load condition by OpenFlow,when the system load is imbalanced,the global allocation of network resources and the more accurate correction is done by the controller,so as to the load of the system is not obvious tilt in the long run.The simulation results show that the load will not tilt in a long period and the system throughput is improve.
software defined network;cloud computing;data center;dynamic load balancing
TP301
:A
:1673-808X(2015)04-0321-04
2015-04-20
國家自然科學基金(61163058,61363006);廣西可信軟件重點實驗室開放基金(kx201306)
王勇(1964―),男,四川閬中人,教授,博士,研究方向為計算機網(wǎng)絡技術與應用、信息安全。E-mail:y wang@guet.edu.cn
王勇,匡玉雯.基于SDN的云中心動態(tài)負載均衡方法[J].桂林電子科技大學學報,2015,35(4):321-324.