王 勇,匡玉雯
(1.桂林電子科技大學計算機科學與工程學院,廣西桂林 541004; 2.桂林電子科技大學信息與通信學院,廣西桂林 541004)
基于SDN的云中心動態(tài)負載均衡方法
王 勇1,匡玉雯2
(1.桂林電子科技大學計算機科學與工程學院,廣西桂林 541004; 2.桂林電子科技大學信息與通信學院,廣西桂林 541004)
為了實現(xiàn)基于數(shù)據(jù)流級的動態(tài)負載均衡,將SDN技術(shù)應(yīng)用于云數(shù)據(jù)中心,提出一種基于SDN的云中心動態(tài)負載均衡方法。該方法利用SDN技術(shù)在流和任務(wù)調(diào)度上靈活性的優(yōu)勢,通過Open Flow協(xié)議對服務(wù)節(jié)點流量及負載狀況進行實時監(jiān)測。當系統(tǒng)發(fā)生負載失衡時,控制器可全局化調(diào)配網(wǎng)絡(luò)資源負載,通過更精確的動態(tài)修正,保證系統(tǒng)在長期運行時負載不會發(fā)生明顯傾斜。仿真實驗表明,該方法實現(xiàn)并保證負載在長時間不會發(fā)生傾斜,且能提高系統(tǒng)吞吐量。
軟件定義網(wǎng)絡(luò);云計算;數(shù)據(jù)中心;動態(tài)負載均衡
近年來,隨著社會的進步和科學技術(shù)的高速發(fā)展,帶來人類生活品質(zhì)的提升,人們對網(wǎng)絡(luò)服務(wù)類型(FTP、P2P、Web、云服務(wù)等業(yè)務(wù))需求更多元化,網(wǎng)絡(luò)性能要求也越來越高。而隨著用戶的增多及業(yè)務(wù)需求越來越復(fù)雜,傳統(tǒng)網(wǎng)絡(luò)體系架構(gòu)越來越難以滿足用戶和業(yè)務(wù)的需求。
云計算[1]雖然將資源(計算資源、網(wǎng)絡(luò)資源、存儲資源)整合并動態(tài)靈活部署、優(yōu)化配置,但是信息產(chǎn)業(yè)的發(fā)展并不是一蹴而就的。初始階段人們對信息系統(tǒng)的處理能力要求較低,業(yè)務(wù)類型簡單,服務(wù)提供者只需購置少量的設(shè)備就可對外提供服務(wù)。而云計算平臺是開放的、面向大眾的平臺,其用戶數(shù)量龐大,業(yè)務(wù)種類復(fù)雜。因此,云計算中心出現(xiàn)網(wǎng)絡(luò)資源急劇消耗、大量業(yè)務(wù)無法開展等一系列問題。解決該問題最簡單直接的方法就是增加網(wǎng)絡(luò)帶寬,升級網(wǎng)絡(luò)設(shè)備,重新購置新的基礎(chǔ)設(shè)施,在資金有限的情況下,此方法顯得并不可取,并且對網(wǎng)絡(luò)服務(wù)質(zhì)量改善較小。加之,傳統(tǒng)網(wǎng)絡(luò)架構(gòu)中數(shù)據(jù)轉(zhuǎn)發(fā)與控制緊耦合,網(wǎng)絡(luò)創(chuàng)新性和可編程方面存在不足,設(shè)備研發(fā)、測試及應(yīng)用的時間長,網(wǎng)絡(luò)新應(yīng)用需要重新制定協(xié)議與標準,網(wǎng)絡(luò)管理和維護困難。因此,在不增加網(wǎng)絡(luò)設(shè)備的情況下,如何對網(wǎng)絡(luò)中的資源進行更為靈活和合理的分配是當前亟待解決的關(guān)鍵問題。此時,下一代可編程網(wǎng)絡(luò)架構(gòu)[2]——SDN的誕生為云中心網(wǎng)絡(luò)資源管理提供了新的解決方案。
軟件定義網(wǎng)絡(luò)[3](software defined network,簡稱SDN)是一種基于控制與轉(zhuǎn)發(fā)分離的技術(shù)架構(gòu),支持集中化的網(wǎng)絡(luò)控制,實現(xiàn)了底層網(wǎng)絡(luò)設(shè)施對上層應(yīng)用的透明,具有靈活的軟件編程能力,可以靈活滿足云服務(wù)中不同用戶的應(yīng)用需要。
SDN技術(shù)架構(gòu)由下到上包括基礎(chǔ)設(shè)施層、控制層、應(yīng)用層,其架構(gòu)如圖1所示。
圖1 SDN架構(gòu)Fig.1 SDN architecture
1)基礎(chǔ)設(shè)施層。由大量OpenFlow交換機構(gòu)成,負責數(shù)據(jù)流表的收集、數(shù)據(jù)流的轉(zhuǎn)發(fā)。
2)控制層。包含邏輯中心的控制器,負責運行控制邏輯策略,統(tǒng)籌數(shù)據(jù)平面資源、制定轉(zhuǎn)發(fā)策略、記錄并更新狀態(tài)信息,同時對網(wǎng)絡(luò)拓撲結(jié)構(gòu)和全網(wǎng)視圖進行維護,并將全網(wǎng)視圖抽象成網(wǎng)絡(luò)服務(wù)。
3)應(yīng)用層。有大量的應(yīng)用或軟件,負責加載與開展各類應(yīng)用業(yè)務(wù);允許第三方或用戶自由選擇網(wǎng)絡(luò)操作系統(tǒng)、開發(fā)自己的網(wǎng)絡(luò)管理軟件和應(yīng)用,在此過程中無需對底層設(shè)備進行技術(shù)細節(jié)的操作,只需通過簡單網(wǎng)絡(luò)編程就能實現(xiàn)對新應(yīng)用的快速部署,且不會影響物理設(shè)備的正常運行。
2.1 網(wǎng)絡(luò)虛擬化及多用戶支持
隨著服務(wù)器、桌面、應(yīng)用、存儲等虛擬化技術(shù)的廣泛應(yīng)用,網(wǎng)絡(luò)虛擬化[4-5]在云計算發(fā)展中起著重要作用。網(wǎng)絡(luò)虛擬化的目的是在邏輯上把一個物理的網(wǎng)絡(luò)劃分成多個邏輯網(wǎng)絡(luò),同時,也提供了一種強有力的方式,使得多個網(wǎng)絡(luò)體系結(jié)構(gòu)同步運行在一共享的物理設(shè)施上。傳統(tǒng)VLAN被限制在4096個獨立段內(nèi),而很多大型化云計算中心的客戶遠超過4096個,如果采用多個、支持自由VLAN空間的非疊加網(wǎng)絡(luò)隔離用戶,受限于多種網(wǎng)絡(luò)技術(shù)之間復(fù)雜的相互影響和作用,不能滿足多用戶支持。設(shè)計要達到完全虛擬化是非常困難的,經(jīng)常有一些網(wǎng)絡(luò)限制,能采用局部方案處理,但會在架構(gòu)的其他地方產(chǎn)生不利影響。而基于SDN架構(gòu)的云中心網(wǎng)絡(luò)不僅具有可編程能力,且支持大量相互隔離的用戶,識別不同用戶的網(wǎng)絡(luò)流量,同時,突破虛擬網(wǎng)絡(luò)對個數(shù)的限制及虛擬機頻繁遷移的業(yè)務(wù)需求。
2.2 靈活的網(wǎng)絡(luò)控制與資源管理
云計算平臺需對資源進行統(tǒng)一管理,按需分配,而不能像傳統(tǒng)的網(wǎng)絡(luò)服務(wù)一樣,數(shù)據(jù)傳輸獨立決策,缺少全局規(guī)劃,只能根據(jù)設(shè)備自身所掌握的有限局部鏈接情況進行數(shù)據(jù)處理決策,對數(shù)據(jù)傳輸沒有任何保障,容易發(fā)生擁塞,難以保證用戶的良好體驗。
然而,SDN的分布式部署和集中式管理的全新思想在云計算平臺上具有先天優(yōu)勢。其中,控制器可通過OpenFlow協(xié)議探測網(wǎng)絡(luò)拓撲結(jié)構(gòu)、感知底層網(wǎng)絡(luò)拓撲變化、檢測流量狀況,在控制層建立并維護整個網(wǎng)絡(luò)的拓撲視圖、資源表等。根據(jù)每個虛擬機所在的位置及網(wǎng)絡(luò)的不同狀況,能自適應(yīng)地為數(shù)據(jù)轉(zhuǎn)發(fā)制定、調(diào)整合適的路徑和隊列管理策略,減小網(wǎng)絡(luò)發(fā)生擁塞的概率,提升網(wǎng)絡(luò)資源利用率,從而實現(xiàn)云計算中心平臺對用戶需求的QoS保證。
2.3 方便的運行維護
在傳統(tǒng)網(wǎng)絡(luò)架構(gòu)中,由于硬件系統(tǒng)封閉,軟硬件緊耦合在一起,用戶無法自行修改,造成不能及時支持用戶的新業(yè)務(wù)、新需求。管理者需要深入基礎(chǔ)網(wǎng)絡(luò)對設(shè)備逐臺人工配置,費時費力造成運維成本高。而SDN技術(shù)架構(gòu)提供了開放、靈活的API接口,使用戶或第三方軟件廠商可根據(jù)業(yè)務(wù)需要快速開發(fā)APP應(yīng)用程序來直接控制底層網(wǎng)絡(luò)資源,提高網(wǎng)絡(luò)的利用率。而集中化的自動化配置能提高故障的解決速度,降低運行成本。
基于SDN的動態(tài)負載均衡方案借鑒Plug-n-Serve[6]在斯坦福大學的計算機系大樓部署SDN方案及文獻[7]中的結(jié)構(gòu),設(shè)計系統(tǒng)如圖2所示。其結(jié)構(gòu)包括3部分:1)由服務(wù)器和客戶端組成的各個底層對象;2)由Open Flow交換機組成的OpenFlow交換網(wǎng)絡(luò);3)由SDN控制器組成的數(shù)據(jù)決策平臺。
圖2 基于SDN的動態(tài)負載均衡架構(gòu)Fig.2 Dynamic load balancing framework based on SDN
圖2中控制器主要功能模塊由流量檢測、負載計算、負載均衡、流管理等4個單元組成。
3.1 端到端的流量檢測模塊
在傳統(tǒng)的數(shù)據(jù)中心網(wǎng)絡(luò)中,流量檢測只能通過端口鏡像的方式復(fù)制某條鏈路上的全部流量,這種手段的弊端之一是檢測流量極大。然而,基于SDN技術(shù)架構(gòu)的流量檢測,可直接獲取交換設(shè)備的流量統(tǒng)計信息,做到端到端的準確、方便、快捷的動態(tài)流量監(jiān)控與統(tǒng)計[8-9]。
3.2 快速的負載計算模塊
快速流量計算模塊在SDN架構(gòu)中比傳統(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ò)資源。
定義1 負載均衡參數(shù):
其中:i為服務(wù)節(jié)點編號;LA(t)為服務(wù)器的平均負載;Li(t)為服務(wù)器節(jié)點i在時間t的負載量;N為OpenFlow交換機中處理該服務(wù)所有的服務(wù)器節(jié)點數(shù)目。將負載均衡參數(shù)δ(t)定義為方差的形式,也是為了更好地體現(xiàn)網(wǎng)絡(luò)負載的不均衡情況,即δ(t)越大,各節(jié)點的負載分布越不均勻,δ(t)越小,各節(jié)點的負載差異越小,而δ(t)等于0時,則所有服務(wù)節(jié)點的負載字節(jié)數(shù)相等,這種情況在流調(diào)度中為完全理想狀態(tài)。因此,在t時刻,網(wǎng)絡(luò)中的負載均衡情況與δ(t)成負相關(guān)關(guān)系,這也是該算法中最重要的參數(shù)之一,直接反映網(wǎng)絡(luò)中負載均衡的情況,作為負載調(diào)度的一個觸發(fā)策略參數(shù)。
3.3 動態(tài)負載均衡模塊
該模塊包括2步:1)先對基于流的哈希負載調(diào)度,將任務(wù)用散列性更好的異或位移Hash散列算法均勻地將網(wǎng)絡(luò)流分配到后端各個服務(wù)器節(jié)點處理,此時的處理為傳統(tǒng)的靜態(tài)負載均衡方案,但OpenFlow交換機是以流速轉(zhuǎn)發(fā)的,由于每一條流的大小不一,采用傳統(tǒng)Hash的負載均衡算法,無法避免局部節(jié)點負載過重現(xiàn)象發(fā)生,無法保證系統(tǒng)在長時間運行時,負載不會發(fā)生傾斜。2)給系統(tǒng)設(shè)定一個平衡度,通過不斷監(jiān)測系統(tǒng),當監(jiān)測到系統(tǒng)發(fā)生傾斜時,基于最大最小調(diào)度原則(即將最大流調(diào)度到負載最輕的節(jié)點上)對相關(guān)節(jié)點的流量進行流調(diào)度,使整個系統(tǒng)始終處于動態(tài)平衡。
定義2 動態(tài)負載均衡閾值Ω(最大傾斜度)發(fā)生傾斜時,需要調(diào)用動態(tài)負載均衡算法時的波動最大值。當δ(t)>Ω時,負載出現(xiàn)傾斜,觸發(fā)并運行動態(tài)流調(diào)度策略對負載進行動態(tài)調(diào)整。將最大流調(diào)度到負載最小的節(jié)點,最小流調(diào)度到負載最大的節(jié)點,以平衡節(jié)點負載,實現(xiàn)整體動態(tài)平衡。此時,相當于系統(tǒng)自我恢復(fù)平衡。
3.4 靈活的流管理模塊
流管理模塊將具體負載調(diào)度策略的網(wǎng)絡(luò)部署并執(zhí)行,通過控制器將負載調(diào)度策略以流表的形式下發(fā)到指定OpenFlow交換機,執(zhí)行流量調(diào)度,而對應(yīng)的OpenFlow交換機在數(shù)據(jù)流到達時,只需根據(jù)相應(yīng)流表規(guī)則轉(zhuǎn)發(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 對比測試結(jié)果
4.2.1 負載狀況測試
實驗采用圖3所示的仿真測試拓撲模型,經(jīng)過測試計算后,閾值Ω設(shè)置為50 MB,并以最大速率發(fā)包,記錄服務(wù)器負載狀況,結(jié)果如圖4所示。
圖3 仿真測試結(jié)構(gòu)Fig.3 The simulation test architecture
圖4 負載狀況Fig.4 Load diagram
從圖4可看出,在傳統(tǒng)架構(gòu)中服務(wù)器負載在長時間運行后容易發(fā)生傾斜,尤其是節(jié)點3和節(jié)點4的負載偏差比較大,造成大量網(wǎng)絡(luò)資源的浪費。而基于SDN架構(gòu)的動態(tài)負載均衡方案避免了這種情況的出現(xiàn),當負載分配波動幅度大于預(yù)設(shè)值時,控制器就觸發(fā)負載調(diào)度機制,調(diào)節(jié)各個服務(wù)器的負載,使負載達到動態(tài)平衡,測定的負載曲線較平坦,架構(gòu)和算法體現(xiàn)出明顯的優(yōu)勢。
4.2.2 吞吐量比較
通過對負載狀況的測試,所有服務(wù)器節(jié)點負載總和統(tǒng)計得到的吞吐量如圖5所示。從圖5可看出,基于SDN系統(tǒng)吞吐量明顯提高。
圖5 吞吐量比較Fig.5 The comparison of throughput
基于SDN的云中心動態(tài)負載均衡方法,實現(xiàn)了基于流級的動態(tài)負載均衡,但由于實驗室設(shè)備性能上的原因,未能完全發(fā)揮SDN技術(shù)在轉(zhuǎn)發(fā)與控制分離架構(gòu)上的速度優(yōu)勢,吞吐量提高不多,但還是充分體現(xiàn)了SDN在流調(diào)度上靈活性的特點。SDN是目前研究的熱點,但是對它的研究大多仍處于初步階段,而將SDN技術(shù)與云中心的結(jié)合是一種積極的探索,具有重要的應(yīng)用價值。
[1] 羅軍舟,金嘉暉,宋愛波,等.云計算:體系架構(gòu)與關(guān)鍵技術(shù)[J].通信學報,2011,32(7):3-21.
[2] 張朝昆,崔勇,唐翯翯,等.軟件定義網(wǎng)絡(luò)(SDN)研究進展[J].軟件學報,2015,26(1):62-81.
[3] 左青云,陳鳴,趙廣松,等.基于OpenFlow的SDN技術(shù)研究[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)與應(yīng)用[M].北京:電子工業(yè)出版社,2010:45-46.
[9] 于華.網(wǎng)絡(luò)流量監(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)絡(luò)技術(shù)與應(yīng)用、信息安全。E-mail:y wang@guet.edu.cn
王勇,匡玉雯.基于SDN的云中心動態(tài)負載均衡方法[J].桂林電子科技大學學報,2015,35(4):321-324.