徐勝超
(廣東財經(jīng)大學華商學院 數(shù)據(jù)科學學院, 廣東 廣州 511300)
在云數(shù)據(jù)中心中如何檢測出運行異常的物理節(jié)點并進行負載均衡操作是一個關鍵問題[1-2],目前大部分云服務提供商都采用虛擬機遷移技術[3]。
物理主機異常狀態(tài)檢測需要對即將遷移的源物理主機和目標物理主機都要進行負載判斷,這些負載基本都封裝成虛擬機的形式,周期性的檢測之后,形成負載異常的物理主機列表,從而為后續(xù)的虛擬機選擇過程和虛擬機放置過程提供輸入?yún)?shù)。
目前已有的物理主機狀態(tài)檢測方法大多采用靜態(tài)資源使用率閾值邊界來確定主機是超負載或者低負載,其資源的邊界考慮的維度因素也比較單一;其針對的云客戶端也不是自適應的,以被動的方式檢測為主。因為物理主機資源狀態(tài)是一種隨著時間和應用程序的訪問而不斷動態(tài)變化的,這對主機異常狀態(tài)檢測方法提出了新的要求。
為此本文提出了一種新的物理主機異常狀態(tài)檢測算法PHSDA(physical host status detection algorithm)。PHSDA是一種自適應的、動態(tài)的物理主機檢測方法,它采用時間序列和線性回歸來預測出物理主機在未來的一段時間內(nèi)的資源使用率情況,來確定其閾值邊界,是一種主動檢測策略。PHSDA檢測策略配合后續(xù)虛擬機選擇階段和虛擬機放置階段的其它優(yōu)化方法,就構成了一個完整的新型虛擬機遷移模型。最后描述了PHSDA物理主機狀態(tài)檢測策略的實現(xiàn)和仿真,結(jié)果表明PHSDA可以選擇適當?shù)臅r刻進行虛擬機的遷移,提高物理資源的利用效率,降低能量消耗。
本文重點考慮物理主機狀態(tài)檢測階段,在Cloudsim工具包中也稱為物理資源閾值管理策略,這種資源閾值管理策略可以分為主動法和被動法,其中被動的方法意味著在物理主機的資源已經(jīng)超過閾值邊界之后再采取動作;主動的方法是指通過觀察資源使用的樣本數(shù)據(jù)在前一階段的利用率情況,提前預測出可能出現(xiàn)狀態(tài)的物理主機,接著進行虛擬機遷移的后續(xù)步驟。
PHSDA依托于Cloudsim項目,它把物理主機異常劃分為超負載over-utilized或者低負載under-utilized狀態(tài),常見的有6種策略[3]。
文獻[4]提出一個自適應的三閾值主機狀態(tài)檢測方法,把物理主機根據(jù)資源使用閾值劃分為小負載,輕負載,中負載和高負載四個狀態(tài),采用k-means算法來管理這些閾值,實驗結(jié)果表明該物理主機狀態(tài)檢測算法可以減少云數(shù)據(jù)中心的能量消耗和SLA違規(guī)比率,但是性能提高不是很明顯。
文獻[5]采用一個局部代理來檢測物理主機狀態(tài),把物理主機劃分為超負載、預高負載、低負載和正常狀態(tài)4個狀態(tài),采用LiRCUP方法來預測超負載的物理主機,避免SLA違規(guī)率,測試結(jié)果表明它比Cloudsim中已有的檢測方法性能有提升。
近年來也有大量的采用智能算法進行優(yōu)化物理主機狀態(tài)檢測的文獻,例如處理器溫度感知[6]、遺傳算法[7]、虛擬機關聯(lián)性[8]、二次指數(shù)平滑預測[9]等,這些文獻在研究思路,測試指標等方面基本上都參考了Cloudsim項目。
圖1顯示了PHSDA物理主機狀態(tài)檢測的工作場景,這是一個典型的云客戶端對云數(shù)據(jù)中心的服務請求場景。PHSDA依托了Cloudsim各個運行模塊:全局代理Global Broker、本地代理Local Broker、虛擬機管理器Virtual Machine Manager。
在Cloudsim中每個物理主機上都運行有一個本地代理Local Broker,PHSDA優(yōu)化策略的實現(xiàn)主要在此模塊中完成。這個工作場景在文獻都有描述[3]。
圖1 PHSDA物理主機狀態(tài)檢測的工作場景
PHSDA運用到整個虛擬機遷移過程中,工作流程具體包括下面4個步驟:
步驟1:基于PHSDA,周期性的檢測云數(shù)據(jù)中心的物理主機,形成HostsToMigrateList;
步驟2:基于最小遷移時間選擇MMT算法完成虛擬機選擇[3],形成selectedVMList;
步驟3:基于遞減裝箱算法BFD優(yōu)化完成虛擬機的重新放置[3];
步驟4: 重復上述步驟1~3,通過設置一個是周期(通常是一周),達到該時間段就結(jié)束;
圖2顯示了經(jīng)PHSDA物理主機狀態(tài)檢測優(yōu)化后的虛擬機遷移工作流程。
圖2 PHSDA優(yōu)化的虛擬機遷移工作流程
2.3.1 云數(shù)據(jù)中心的能量消耗
云數(shù)據(jù)中心主要由大量的堆積在一起的物理主機組成,所以其能量消耗主要由物理主機的所有部件的能量消耗組成。已有經(jīng)驗表明一個物理服務器(雙核CPU、四條內(nèi)存、一個磁盤、2個PCI插槽,一個主板等)所消耗的能量大約為CPU占41%,內(nèi)存占18%,磁盤占7%,PCI插槽占23%,主板占12%。基于這個思路,PHSDA策略中設計的物理主機的能量消耗數(shù)學模型如公式(1)~(6):
E(Ucpu)=Eidle+(Emax-Eidle)Ucpu
(1)
(2)
E(Umem)=Eidle+(Emax-Eidle)Umem
(3)
E(Ubw)=Eidle+(Emax-Eidle)Ubw
(4)
Ehost=E(Ucpu)+E(Umem)+E(Ubw)
(5)
這里Ucpu(t)、Umem(t)、Ubw(t)表示物理主機在t時刻的CPU使用率、內(nèi)存使用率、磁盤使用率、網(wǎng)絡帶寬使用率:
0%≤Ucpu(t),Umem(t),Ubw(t)≤100%
(6)
Eidle表示物理主機CPU、內(nèi)存、網(wǎng)絡帶寬在空閑時的能量消耗,即是Ucpu(t)=0、Umem(t)=0、Ubw(t)=0的時候。
Emax表示物理主機在滿負載時的能量消耗,即是Ucpu(t)=100%、Umem(t)=100%、Ubw(t)=100%的時候。
mipsi,c是第i個虛擬機VMi的第c個處理單元的mips請求情況。
MIPSj,c是第j個物理主機Mj的第c個處理單元的整體的MIPS計算能力。pei表示虛擬機VMi的處理單元的數(shù)量,PEj表示物理主機Mj的處理單元的數(shù)量,rj(t)表示分配到物理主機Mj的虛擬機的索引集合。
一個虛擬機請求的MIPS的數(shù)量是隨著應用程序變化而變化的,所以物理主機的資源使用率也應該是隨著應用程序的變化而變化,因此統(tǒng)計物理服務器的能量消耗必須在一定的時間段內(nèi),這樣根據(jù)公式(1)可以演化為公式(7):
Ehost(t)=E(Ucpu(t))+E(Umem(t))+E(Ubw(t))
(7)
這樣第j個物理主機在[t0,t1]時間段的總體能量消耗Ehost可以按照公式(8)來計算:
(8)
整個云數(shù)據(jù)中心的能量消耗為:
(9)
2.3.2 SLA違規(guī)在線時間
當一個云客戶端提交作業(yè)到云計算平臺的時候,資源缺少就會出現(xiàn) (SLA,service level agreement)違規(guī),在虛擬機分配過程中,一個重要性能指標就是每個物理主機的SLA在線時間SLA violation Time per Active Host (SLATAH),它體現(xiàn)了物理主機具有高服務質(zhì)量的在線時間情況。
(10)
云數(shù)據(jù)中心的主機數(shù)量和虛擬機數(shù)量分別由M和N表示,其中Tsi是物理主機CPU利用率達到100%的時間,Tai是物理主機處于在線活躍狀態(tài)的時間。
2.3.3 虛擬機遷移后的性能降低(PDM,performance degradation due to migrations)
(11)
其中:Cdi是由于虛擬機VMi遷移導致的性能下降的估計值,Cri是請求虛擬機VMi的整個時間段內(nèi)總的CPU MIPS計算能力。
2.3.4 能量與SLA違規(guī)的聯(lián)合指標 (ESV)
SLA的違規(guī)率的計算通過公式(12)計算:
SLAViolation=SLATAH*PDM
(12)
ESV=Etotal*SLAViolation
(13)
正如前面所提到的,PHSDA把云數(shù)據(jù)中心的物理主機按照工作狀態(tài)劃分為4類:超負載(over-loaded)、高負載(under-pressure)、正常狀態(tài) (normal)、低負載狀態(tài)(under-loaded),這樣其對應的物理資源的閾值邊界也對應三個:Upper-Thredholds 、Pre-Thredholds、Lower-Thredholds如圖3所示。
圖3 PHSDA中物理主機的狀態(tài)分類
PHSDA的最終目的是從云數(shù)據(jù)中心的物理主機中檢測出異常狀態(tài)的節(jié)點,通過設置一個時間間隔,周期性的執(zhí)行PHSDA算法。PHSDA檢測算法是基于物理主機的CPU資源、內(nèi)存資源、網(wǎng)絡帶寬資源的使用情況。當PHSDA算法啟動后,周期性的檢測這3個資源的使用情況,并盡量使其在合適的閾值范圍內(nèi)(Upper-Thredholds、Pre-Thredholds、Lower-Thredholds)。如果有某個物理主機的資源使用情況不在這個合理的范圍內(nèi),它將被列入侯選遷移物理主機列表HostsToMigrateList。
回歸是統(tǒng)計學中的一種量化數(shù)據(jù)分析方法,它可以預測數(shù)據(jù)的下一階段的值,回歸方法被廣泛使用在數(shù)據(jù)預測領域[10]。回歸技術有兩種模型,單個輸入的單一回歸和多個輸入的多回歸。它采用回歸函數(shù)(線性或非線性)來估計出輸入變量X和輸出變量Y之間的關系。PHSDA算法采用了單一權值線性回歸來預測物理主機的資源使用效率情況。該思想如公式(14)所示:
Y=β0+β1X
(14)
這里Y是受依賴的變量,X是獨立的變量,β0和β1是回歸系數(shù),它們來自于最小二乘法技術[11],如下所示:
(15)
(16)
(17)
基于上面的這個公式,相鄰區(qū)域權重的定義如公式(18):
(18)
這里xi和xn是變量x的最近的第i個觀察值,PHSDA算法采用k次迭代來檢測物理主機資源使用效率變量(host utilization)的k個將來預測值,對于n個數(shù)據(jù)變量,回歸的函數(shù)定義如下:
(19)
(20)
在這個情況下有如公式(21):
(21)
這里c是密度常量,下面的Algorithm 1 和Algorithm 2顯示了物理主機狀態(tài)檢測PHSDA算法的偽代碼。
Algorithm 1: Overloading Host Detection Algorithm
Input:host
Output: overloadedList;
1. UTC ←PHSDA (CPU).upperThreshold;
2. PUC ←PHSDA (CPU).utilPrediction;
3. UTM ←PHSDA (Memory).upperThreshold;
4. PUM ←PHSDA (Memory). utilPrediction;
5. UTB ←PHSDA (BW).upperThreshold;
6. PUB ←PHSDA (BW). utilPrediction;
7. if ((PUC or PUM or PUB )>=1 ) then
8. underPressureList ← host;
9. Host will not accept new VM;
10. else
11. if ((UTC or UTM or UTB)>=1) then
12. overloadedList ← host;
13. end if
14. end if
15. return overloadedList;
Algorithm 2: PHSDA algorithm
Input: host utilization
Output: utilPrediction
1. for i=1 to n do
2.xi←i;
3.yi← utilHistory(i);
4.wi← calculate using equation (18);
5.xi←xi*wi;
6.yi←yi*wi;
7. end for
8. calculateβ0, using equation (15);
9. calculateβ1, using equation (16);
10. utilPrediction=β0+β1*currentUtil(h);
11. upperThreshold = utilPrediction;
12. updatex,yandw;
13. updateβ0andβ1;
14. fori=2 tokdo
15.KPredictionUtil(i)=β0+β1*utilPrediction;
16.utilPrediction=KPredictionUtil(i);
17. end for
18. return utilPrediction;
在完成了超負載物理主機狀態(tài)檢測之后,就進入到后面的虛擬機選擇和虛擬機放置階段,這樣PHSDA算法的第一階段結(jié)束。在虛擬機遷移完成后,必要進入低負載物理主機檢測階段,PHSDA可以把低負載物理主機轉(zhuǎn)入睡眠模式或者關閉其電源,節(jié)省能量消耗。
(22)
(23)
在低負載物理主機檢測中,PHSDA算法維護著一個低負載物理主機列表under-loaded hosts,首先檢測這些機器上的虛擬機是否可以遷移到其他的物理節(jié)點,對于一個可以容納虛擬機的物理主機,必須具有3個條件: 1)處理高負載狀態(tài);2)有足夠的物理資源滿足虛擬機的要求;3)在容納虛擬機后,它不能變成超負載狀態(tài);如果低負載狀態(tài)的物理主機上的虛擬機都遷移到其他的節(jié)點,它將切換到睡眠模式,進一步節(jié)省云數(shù)據(jù)中心的能量消耗。具體的算法描述見下面Algorithm 3的偽代碼:
Algorithm 3: Under loading Host Detection Algorithm
Input: hostList , hostVMlist
Output:VMmigrationList
1. for each h in hostList do
2. if ((h.utilCPU)< Tlow(CPU)) && ((h.utilRAM) 3. underloadingList ← h; 4. end for 5. for each h in underloadingList do 10. underloadingList.sortIncreasingUtil(); 11. end for 12.for each h in underloadingList do 13. for each VM in hostVMlist() do 14. for each host in hostList do 15. if( host ? underPressureList) then 16. if ((host has enough CPU, RAM and BW) && ( Not overloaded after VM migration) ) then 17. VMmigrationList ← h.VM; 18. hVMlist← hVMlist- h.VM; 19. break; 20. end if 21. end if 22. end for 23. end for 24. if (hVMlist = null) 25. return VMmigrationList; 26.end if 27. end for 因為PHSDA物理主機異常檢測算法是在虛擬機遷移過程中運用的,所以進行PHSDA實驗分析,我們構造了Cloudsim3.0云數(shù)據(jù)中心的虛擬機遷移場景,云數(shù)據(jù)中心的能量消耗模型及測試指標都參考了最常見的CoMon project,它 是由planetlab實驗室開發(fā)的一個項目[12]。在CoMon項目中設置的云數(shù)據(jù)中心主要由兩類物理服務器組成,物理服務器總數(shù)為800個,物理服務器配置如表1所示。 一周內(nèi)不同虛擬機請求個數(shù)如表2所示。 本文的PHSDA物理主機異常檢測算法結(jié)合其他虛擬機選擇和虛擬機放置階段,即形成了PHSDA-MMT-BFD虛擬機遷移模型。 表1 云數(shù)據(jù)中心物理服務器硬件配置 表2 一周內(nèi)不同的虛擬機請求個數(shù) 我們還與近年來的其他物理資源閾值管理辦法進行了比較,例如LiRCUP檢測方法、ATEA檢測方法,分析這些物理主機異常狀態(tài)檢測對云數(shù)據(jù)中心的性能改變情況。綜上所述,本實驗一起涉及到的虛擬機遷移模式如表3所示。 表3 PHSDA物理主機狀態(tài)異常檢測略性能比較對象 4.3.1 云數(shù)據(jù)中心總體能量消耗 利用PHSDA物理主機狀態(tài)檢測階段的優(yōu)化之后,各個虛擬機遷移模型一周之內(nèi)的總體能量消耗如表4所顯示。PHSDA-MMT-BFD遷移模型比其他各個遷移策略在總體能量消耗上要節(jié)約15%~30%。分析原因是PHSDA-MMT-BFD模型可以很好地檢測出異常物理主機的狀態(tài),確定好遷移的時刻,資源利用效率自然提高,關閉沒有必要啟動的空閑物理主機,所有云數(shù)據(jù)中心的總體能量消耗自然減少。 表4 各類虛擬機遷移策略的總能量消耗比較 kWh 4.3.2 虛擬機遷移次數(shù) 表5顯示了在一周的5天之內(nèi)PHSDA-MMT-BFD的虛擬機遷移次數(shù)基本最小。原因是LRR-MMT-BFD很容易增加超負載或低負載的物理主機的數(shù)量,而PHSDA-MMT-BFD策略則與LRR-MMT-BFD正好相反,它利用回歸預測法預測出物理資源的利用效率,動態(tài)地確定閾值邊界,不會增加虛擬機遷移次數(shù)。另外ACS-VMM策略、Stable-Matching策略的優(yōu)化主要在虛擬機放置階段,必須像Correlation-Based策略在虛擬機選擇階段、物理主機狀態(tài)檢測階段完成優(yōu)化才好降低遷移次數(shù)。 表5 各類虛擬機遷移策略的虛擬機遷移次數(shù) 4.3.3 SLA違規(guī)率分析 從表6可以看出,周一到周五,PHSDA-MMT-BFD都比較少出現(xiàn)SLA違規(guī),原因是PHSDA-MMT-BFD比遞減裝箱辦法的優(yōu)化能力要強,而且從本文設計的能量消耗模型來看,PHSDA-MMT-BFD考慮的遷移因素的維度范圍不僅僅限制在CPU方面,還考慮了內(nèi)存大小,磁盤空間及網(wǎng)絡帶寬。 LiRCUP、Stable-Matching、Correlation-Based和ATEA在某些時候還優(yōu)于PHSDA-MMT-BFD策略,PHSDA-MMT-BFD以降低虛擬機遷移次數(shù)為目標,所以也會犧牲一些SLA違規(guī)率的增加。 表6 各類虛擬機遷移策略的SLA違規(guī)率比較 4.3.4 能量與SLA違規(guī)的聯(lián)合指標ESV 從表7中的結(jié)果可以看到,PHSDA-MMT-BFD的ESV指標不是最好的,Stable-Matching和Correlation-Based策略針對原始的Cloudsim各個階段都有優(yōu)化,自然比LRR-MMT-BFD遷移策略性能好,ACS-VMM遷移策略的ESV最低,它比單一目標函數(shù)的PHSDA-MMT-BFD遷移策略在ESV方面要低。 表7 各類虛擬機遷移的SLA與能量消耗聯(lián)合指標ESV 本文提出了虛擬機遷移中一種新的物理主機狀態(tài)異常檢測算法PHSDA, PHSDA利用統(tǒng)計學中回歸函數(shù)操作,經(jīng)過多次循環(huán)迭代預測出云數(shù)據(jù)中心的物理資源的利用效率的Upper-Thredholds 、Pre-Thredholds值;在低負載檢測中利用多維資源的均方根確定利用效率下界Lower-Thredholds;PHSDA物理主機狀態(tài)檢測算法可以為其他虛擬機遷移過程作為參考。4 仿真實驗與性能分析
4.1 仿真環(huán)境
4.2 評測標準與比較對象
4.3 仿真結(jié)果與性能分析
5 結(jié)束語