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