《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 實驗云虛擬資源動態(tài)自適應負載均衡研究
實驗云虛擬資源動態(tài)自適應負載均衡研究
2015年微型機與應用第20期
洪文圳
廣東農工商職業(yè)技術學院 計算機系,廣東 廣州 510507
摘要: 針對云平臺的虛擬資源的負載均衡問題,為了實現虛擬資源的合理分配和保持用戶桌面的穩(wěn)定性,提出一種基于動態(tài)改變算法權值的自適應粒子群算法,并利用Eucalyptus平臺進行實驗。實驗證明,該方法比貪婪算法和基本粒子群算法具有更好的調節(jié)效果,能夠有效地控制負載均衡和保持系統(tǒng)的穩(wěn)定性。
Abstract:
Key words :

  摘  要: 針對云平臺的虛擬資源的負載均衡問題,為了實現虛擬資源的合理分配和保持用戶桌面的穩(wěn)定性,提出一種基于動態(tài)改變算法權值的自適應粒子群算法,并利用Eucalyptus平臺進行實驗。實驗證明,該方法比貪婪算法和基本粒子群算法具有更好的調節(jié)效果,能夠有效地控制負載均衡和保持系統(tǒng)的穩(wěn)定性。

  關鍵詞虛擬桌面;負載均衡;服務器

0 引言

  目前已有許多高校將云計算、虛擬化技術應用到實驗實訓中心的服務器管理和用戶桌面系統(tǒng)的部署控制,搭建各種內部云計算平臺進行資源管理和提供服務。通過一段時間的部署體驗發(fā)現,當用戶的桌面需求快速增加時,服務器需要部署更多的虛擬機,負載壓力以幾何級陡增。服務器配置存在差異,服務器所承載的負載極限各不相同,如果不能對虛擬機進行實時遷徙,就會出現部分服務器的負載過大,有些服務器的負載小,造成負載不平衡和影響平臺的穩(wěn)定性[1-2]。因此,怎樣對云服務器進行負載調節(jié)管理,有效提高資源利用率是當前云計算研究的一項熱點。通過對相關參考文獻的研究[3],本文利用一種基于粒子群算法的動態(tài)改變權值的自適應變異的方法對實驗云平臺的虛擬資源進行負載均衡調節(jié)。

1 系統(tǒng)模型定義

  將實驗中心的云服務器資源定義為的四元組,分別代表了服務器的處理器資源、內存資源、網絡資源和磁盤存儲資源。采用同樣的方法將虛擬資源定義為4FF2.tmp.jpg的四元組。虛擬資源的負載均衡控制實際上就是將M個虛擬機分配到N臺服務器上的NP問題。每個虛擬桌面只能部署到一臺物理服務器上,每臺服務器上需要同時運行多個虛擬桌面,針對這種情況,利用一個矩陣來描述這種NM組合的部署情況:

  SV=D11 D12 D13 … D1mD21 D22 D23 … D2mD31 D32 D33 … D3m…  …   …   …   …Dn1 Dn2 Dn3 … Dnm(1)

  SV矩陣中每個Dnm元素的取值范圍為{0,1}。當Dnm=1時,表示第M個虛擬桌面部署到第N臺服務器上;如果Dnm=0時,則表示該服務器上沒有部署虛擬桌面。

  1.1 服務器負載能力

  利用式(2)計算云中一臺服務器的負載能力C,并對整個實驗云的服務器負載能力求平均值Cavg,將Cavg作為每個節(jié)點的基本負載能力基礎。式(2)中,50F4.tmp.jpg表示每個虛擬桌面需要的處理器資源數,517D.tmp.jpg表示所部署服務器所能提供的處理器資源總量,并且523B.tmp.jpg。

  52F8.tmp.jpg

  1.2 集群負載計算

  觀察某個時間段的虛擬機用量,假設t時刻為實驗云的某個運行時間,利用參考文獻[4]提供的方法計算該時刻前的T時間內的服務器負載情況。利用T時間作為實驗云的負載觀察區(qū)間,計算每個虛擬桌面的平均資源利用率537E.tmp.jpg作為第j臺虛擬機的負載,以此計算第k臺服務器t時間內的負載情況。利用式(3)定義第k臺服務器的負載LkS。

 548A.tmp.jpg

  其中,Ck表示第k臺服務器的負載能力,n表示在T時間區(qū)內第k臺服務器上部署的所有的虛擬桌面數量,t表示第j臺虛擬桌面在T時間區(qū)內總運行時間。部署虛擬桌面需要考慮服務器的負載均衡情況,利用式(3)預測計算每臺服務器上的虛擬桌面的負載量。通過方差公式(式(4))估算云服務器集群的負載能力,選擇負載能力較強的服務器作為部署需要的優(yōu)先考慮節(jié)點。

 5506.tmp.jpg

  其中,N是實驗云的服務器節(jié)點數量,5564.tmp.jpg是實驗云中第j臺服務器的固有負載量,55E1.tmp.jpg是實驗云中第j臺服務器在t時間預測計算的平均負載量。565D.tmp.jpg的值越大,表示服務器集群的負載能力越大,將其作為負載極限的判斷參考條件。

  1.3 目標函數

  為實現本文提出的目標,定義函數fmax(S,V)用于計算實驗云資源利用率最大化,函數fmin(m)用于計算虛擬機的遷徙次數。目標函數為:

56F3.tmp.jpg

  約束條件為:5768.tmp.jpg<ε,即通過式(4)計算得到負載方差5768.tmp.jpg必須小于服務器固有預定的閾值ε;5802.tmp.jpg<Cε,即通過負載均衡后云的負載總量5802.tmp.jpg必須小于固有的負載能力Cε。

2 負載均衡設計

  2.1 動態(tài)自適應算法

  為了實現動態(tài)自適應負載均衡目標,在標準粒子群算法的基礎上進行自適應變異處理和動態(tài)改變權值,克服原有算法收斂過快的現象。具體算法使用的公式如下。

  (1)算法的粒子速度和位置更新公式:

 58BC.tmp.jpg

  為了提高算法的全局搜索能力,使粒子能夠隨群體規(guī)模的大小而變化,根據參考文獻[5]對式(6)中w進行動態(tài)設置[5],具體公式如下:

  w=wmin-hvwh+svws(8)

  其中,wmin為w的初始值;hv為進化速度因子,hv=5945.tmp.jpg,用當前迭代f(Gn)與上一次迭代f(Gn-1)間的最小值和最大值計算進化速度hv;sv為粒子聚集因子,59F9.tmp.jpg。Ft為當前迭代粒子適應度值的平均值,5A92.tmp.jpg,計算規(guī)模為N的粒子群迭代到第t次時的適應度平均值。

 ?。?)計算群體的自適應公式:

5B2C.tmp.jpg

  其中,f(Gi)表示利用目標函數計算第i群體的適應度,  f(Gavg)表示N個群體的平均適應度,f(G)表示從i到N不斷演變的群體適應度值。f(G)的取值范圍是{1,fmax(f(Gi)-f(Gavg))}。根據參考文獻[4]的方法定義隨機因子Pm,Pm的取值范圍是{K,0},同時滿足5BBF.tmp.jpg且f(P)<fd[4]。5C58.tmp.jpg是預期的方差閾值,fd是預期的適應度最優(yōu)值,K的取值范圍是{0.1,0.55}。利用式(10)對群體的N各粒子進行自適應變異,提高算法的全局求優(yōu)能力。

  5CCE.tmp.jpg

  其中,Zk是表示粒子Z的第k維數值,5D3A.tmp.jpg是呈正態(tài)分布的隨機變量。對群體N個粒子進行升序操作,利用式(10)將升序后的前一半數量的粒子與全局最優(yōu)的粒子進行變異計算。將變異前后的粒子適應度值進行比較,選取最大值作為新的全局最優(yōu),值小的作為新的局部最優(yōu)。

  2.2 粒子編碼設計

  由于服務器負載均衡涉及多種資源的控制分配,因此算法需要的粒子編碼采用多維向量的方式來處理,每一維代表一種資源情況。為了使算法更易于實現,將粒子編碼統(tǒng)一轉為整數編碼。假設第Zi粒子的編碼形式為{2,1,2,3,5,3,4,8,1},在矩陣SV中對應的值是D21=D12=D23=D34=D55=D36=D47=D88=D19=1,表示第1和第3虛擬桌面部署在2號服務器上,第4和第6虛擬桌面部署在3號服務器上,其他的虛擬桌面與服務器的映射部署以此類推。在算法的實現過程中,由于對于粒子的位置和速度進行計算會出現粒子編碼為非整數情況,在這種情況下,采用四舍五入的規(guī)則對粒子編碼進行轉換操作。

  2.3 算法步驟設計

  將目標函數作為適應度函數,設置預期的閾值ε,約束條件作為判斷條件,具體實現步驟如下:

 ?。?)根據用戶需求創(chuàng)建虛擬桌面集合,利用式(4)計算云負載能力5DDA.tmp.jpg,將虛擬桌面分配到合適的服務器。

 ?。?)利用式(5)的目標函數作為算法的適應度函數,初始化算法中粒子的位置和速度,設置粒子當前的局部最優(yōu)P和群體中的全局最優(yōu)G的位置。

  (3)迭代進行計算,判斷當前的實驗云負載極限5DDA.tmp.jpg是否達到約束條件的ε(預定閾值),如果達到跳到步驟(11),否則繼續(xù)執(zhí)行步驟(4)。

 ?。?)利用式(6)和(7)計算更新后的粒子的位置和速度,并且利用式(9)計算群體更新后的負載情況5DDA.tmp.jpg。

  (5)根據式(8)計算調節(jié)算法的權值w,動態(tài)更新w,保持權值的動態(tài)更新。

 ?。?)判斷更新后的群體變化是否達到約束條件,如果是執(zhí)行步驟(8),否則執(zhí)行步驟(7)。

 ?。?)保留上次計算的局部最優(yōu)P值,迭代更新并重新初始化,繼續(xù)循環(huán)計算,直至達到約束條件,停止迭代。

 ?。?)計算更新后的適應度,如果更新后的適應度優(yōu)于上一次的P的適應度,則更新當前的P值;假如更新后的群體適應度優(yōu)于上一次的G的適應度,則更新當前的G值。

 ?。?)根據式(9)計算當前的粒子群體的適應度的自適應情況,并計算自動變異因子Pm。

 ?。?0)判斷式(6)中的隨機數是否小于Pm,如果小于Pm,利用式(10)進行自適應變異操作,并且更新當前的P值和G值;否則跳轉到步驟(3)。

 ?。?1)迭代計算結束,輸出負載均衡的組合結果。

3 實驗分析

  3.1 實驗環(huán)境搭建

  為了驗證本文提出算法的有效性和可行性,利用Eucalyptus系統(tǒng)作為實驗測試環(huán)境。根據參考文獻提供的方法,基于Eucalyptus平臺并結合KVM與QEMU的虛擬架構搭建算法實驗需要的運行平臺[6-7]。

  3.2 實驗結果分析

  分別利用Eucalyptus自帶的貪婪算法、基本粒子群算法與本文設計的算法進行實驗。根據實驗需要,設置了所需虛擬機桌面的數量規(guī)模分別為50、100、150、200、250和300等數量級。根據云控制器顯示的服務器與虛擬機的運行分析視圖,分別記錄了各個算法對服務器虛擬資源利用率的情況,結果如圖1和圖2所示,并對結果進行分析。

Image 001.png

  如圖1所示,三種算法在不同規(guī)模用戶壓力下的服務器資源利用率的執(zhí)行結果各不相同,很明顯動態(tài)自適應粒子群算法比其他兩種能更好地進行資源的負載均衡調節(jié),提高服務器的資源利用率。隨著虛擬桌面數量的不斷增加,為了保持服務器間資源利用率的平衡,利用三種算法進行虛擬資源負載調節(jié)。如圖2所示,動態(tài)自適應粒子群算法的遷徙數明顯少于基本粒子群算法和貪婪算法作用下的遷徙數,在穩(wěn)定性方面具有較好的表現。

4 結論

  本文研究了實驗云虛擬資源的負載均衡問題,利用基于動態(tài)改變權值的自適應變異的粒子群算法對服務器上的虛擬機進行負載均衡調節(jié)。以Eucalyptus作為實驗平臺進行測試,實驗結果驗證了本文提出負載均衡算法具有更好的優(yōu)越性。但本文的方法還處于實驗測試,沒有應用到實際的用戶桌面負載調節(jié)中,這將是以后研究的重點。

參考文獻

  [1] 陳小嬌,陳世平,方芳.云計算中虛擬機資源分配算法[J].計算機應用研究,2014,31(9):2584-2587.

  [2] 常德成,徐高潮.虛擬機動態(tài)遷移方法[J].計算機應用研究,2013,30(4):971-976.

  [3] 何丹丹.云環(huán)境下基于節(jié)能和負載均衡的混沌粒子群資源優(yōu)化調[J].計算機控制與測量,2014,22(5):1626-1628.

  [4] 劉衛(wèi)寧,高龍.異構云中面向集群負載均衡的任務調度策略[J].計算機應用,2013,33(8):2140-2142.

  [5] 張選平.一種動態(tài)改變慣性權的自適應粒子群算法[J].西安交通大學學報,2005,39(10):1039-1042.

  [6] 楊子夜,周逸勛,陳海波,等.利用虛擬機動態(tài)遷移技術整合虛擬和模擬環(huán)境[J].小型微型計算機系統(tǒng),2010,31(3):423-429.

  [7] 洪文圳,陳玉琴,黃曉峰.基于Eucalyptus的實驗云平臺搭建[J].微型機與應用,2014,33(17):59-61.


此內容為AET網站原創(chuàng),未經授權禁止轉載。