宋宇翔,徐勝超
(1.廣東培正學(xué)院數(shù)據(jù)科學(xué)與計(jì)算機(jī)學(xué)院,廣州,510830;2.北部灣大學(xué)電子與信息工程學(xué)院,欽州,535011)
虛擬機(jī)遷移是近年來(lái)大規(guī)模節(jié)能綠色云數(shù)據(jù)中心構(gòu)造的關(guān)鍵技術(shù)[1-3],虛擬機(jī)遷移過(guò)程中不可避免地涉及到物理主機(jī)的資源閾值邊界[4],目前Cloudsim 工具包中提到的幾種物理資源閾值管理辦法往往局限在物理主機(jī)狀態(tài)檢測(cè)階段;已經(jīng)有很多算法對(duì)物理資源的利用率進(jìn)行優(yōu)化[5],比如溫度感知算法[6-7]、穩(wěn)定匹配算法[8]、虛擬機(jī)關(guān)聯(lián)性算法[9]以及貪心算法[10]等,但它們局限在虛擬機(jī)選擇或放置階段,缺乏主動(dòng)性、自適應(yīng)性。物理主機(jī)資源閾值邊界管理策略可以分為主動(dòng)法和被動(dòng)法,其中被動(dòng)的方法意味著在物理主機(jī)的資源已經(jīng)超過(guò)閾值邊界之后再采取動(dòng)作;主動(dòng)的方法是指通過(guò)觀察資源使用的樣本數(shù)據(jù)在前一階段的利用率情況,提前預(yù)測(cè)出可能出現(xiàn)狀態(tài)異常的物理主機(jī),接著進(jìn)行虛擬機(jī)遷移的后續(xù)步驟。已有的物理主機(jī)資源閾值管理策略大多采用靜態(tài)資源使用率閾值邊界來(lái)確定主機(jī)是超負(fù)載或者低負(fù)載,其資源邊界考慮的維度因素也比較單一;其針對(duì)的云客戶端也不是自適應(yīng)的,以被動(dòng)的方式檢測(cè)為主。因?yàn)槲锢碇鳈C(jī)資源狀態(tài)是隨著時(shí)間和應(yīng)用程序的訪問(wèn)而不斷動(dòng)態(tài)變化的,這對(duì)物理主機(jī)資源閾值管理提出了新的要求。本文提出了一種新的物理主機(jī)資源利用閾值邊界管理策略(Physical resource host utilization thresholds management strategy, RUT-MS)。該策略是一種自適應(yīng)的、動(dòng)態(tài)的物理資源閾值邊界管理方法,它采用時(shí)間序列和迭代權(quán)重線性回歸方法預(yù)測(cè)出物理主機(jī)在未來(lái)的一段時(shí)間內(nèi)的資源使用率情況來(lái)確定其閾值邊界,是一種主動(dòng)檢測(cè)策略,同時(shí)考慮的物理資源包括處理器、內(nèi)存、網(wǎng)絡(luò)帶寬等多個(gè)維度。RUT-MS 在整個(gè)虛擬機(jī)遷移過(guò)程中都有運(yùn)用到,通過(guò)對(duì)超負(fù)載物理主機(jī)和低負(fù)載物理主機(jī)的物理資源利用效率閾值進(jìn)行反復(fù)判斷,使整個(gè)云數(shù)據(jù)中心的物理資源利用效率進(jìn)一步提高。
RUT-MS 物理資源利用閾值管理策略通過(guò)Cloudsim 來(lái)實(shí)現(xiàn)和仿真,結(jié)果表明在RUT-MS 技術(shù)之上形成的虛擬機(jī)遷移策略比其他常見的虛擬機(jī)遷移策略可以更好地節(jié)省云數(shù)據(jù)中心的能量消耗,節(jié)約了云服務(wù)提供商的企業(yè)成本,可以為其他企業(yè)構(gòu)造節(jié)能大數(shù)據(jù)中心作為參考。
云數(shù)據(jù)中心的物理資源閾值管理最主要目標(biāo)是提高資源利用效率,在空閑的情況下應(yīng)該關(guān)閉物理主機(jī),在超負(fù)載的情況下應(yīng)該遷移其上運(yùn)行的虛擬機(jī)。
文獻(xiàn)[6]采用一種物理主機(jī)處理器溫度閾值邊界遷移方法,建立了物理主機(jī)的處理器溫度閾值管理模型,實(shí)驗(yàn)結(jié)果驗(yàn)證了該閾值管理策略各個(gè)性能指標(biāo)上的優(yōu)點(diǎn)。它的不足是把物理資源閾值管理維度限制在處理器利用率的單一因素[5],對(duì)其他的磁盤空間與內(nèi)存等閾值管理沒(méi)有考慮。
文獻(xiàn)[11]提出了云數(shù)據(jù)中心考慮資源使用閾值邊界的物理資源閾值管理辦法,在工作負(fù)載高于或者低于設(shè)置的閾值上界與閾值下界時(shí),完成虛擬機(jī)遷移, 文中指出它比Cloudsim 中已有的策略等性能都要優(yōu)秀,它是一種固定靜態(tài)的閾值管理辦法,但是隨著資源的不斷變化,需要提出動(dòng)態(tài)的閾值管理辦法來(lái)動(dòng)態(tài)提高資源利用效率。
文獻(xiàn)[12]提出一個(gè)自適應(yīng)的物理主機(jī)資源三閾值管理辦法,把物理主機(jī)根據(jù)資源使用閾值劃分為小負(fù)載、輕負(fù)載、中負(fù)載和高負(fù)載4 個(gè)狀態(tài),采用k-means 算法來(lái)管理這些閾值,實(shí)驗(yàn)結(jié)果表明該物理資源閾值管理辦法可以減少云數(shù)據(jù)中心的能量消耗,但它沒(méi)有考慮虛擬機(jī)放置階段的閾值管理,對(duì)虛擬機(jī)遷移的整個(gè)過(guò)程而言,物理資源利用效率的提高不明顯。
文獻(xiàn)[13]采用一個(gè)局部代理來(lái)完成物理資源閾值管理,把物理主機(jī)劃分為超負(fù)載、低負(fù)載、正常狀態(tài)和預(yù)高負(fù)載4 個(gè)狀態(tài),采用LiRCUP 方法[14]來(lái)預(yù)測(cè)超負(fù)載的物理主機(jī),避免SLA(Service level agreement)違規(guī)率,測(cè)試結(jié)果表明它比Cloudsim 中已有的檢測(cè)方法性能有提升,它考慮的資源維度也只限制在處理器和內(nèi)存等因素,需要繼續(xù)擴(kuò)展到網(wǎng)絡(luò)帶寬閾值管理等多個(gè)維度的因素。
近年來(lái)也有大量的采用新型算法進(jìn)行優(yōu)化的物理資源閾值管理的文獻(xiàn),例如基于最鄰近算法資源閾值預(yù)測(cè)管理[5]、貪心算法[10]以及虛擬機(jī)關(guān)聯(lián)性[9]等。這些文獻(xiàn)在研究思路、測(cè)試指標(biāo)等方面大部分都參考了Cloudsim 項(xiàng)目,它們發(fā)展到有內(nèi)存閾值管理、網(wǎng)絡(luò)帶寬閾值管理和網(wǎng)絡(luò)接口閾值管理,在節(jié)省能量消耗方面都有很大的提高,對(duì)企業(yè)節(jié)能云數(shù)據(jù)中心研究都有很好的參考價(jià)值。
RUT-MS 物理資源閾值管理策略依托于Cloudsim 工具包,Cloudsim 中涉及到虛擬機(jī)遷移的部分主要由3 個(gè)模塊組成:全局代理(Global broker)、本地代理(Local broker)、虛擬機(jī)管理器(Virtual machine manager),如圖1 所示。
圖1 RUT-MS 物理資源閾值管理的工作場(chǎng)景Fig.1 Working mechanism of RUT-MS
由圖1 可見,每個(gè)物理主機(jī)上都運(yùn)行有一個(gè)本地代理,RUT-MS 物理資源閾值管理策略的實(shí)現(xiàn)主要在此模塊中完成。這個(gè)工作場(chǎng)景在文獻(xiàn)[4]中有描述。
考慮到RUT-MS 既依賴于Cloudsim 工具包的軟件環(huán)境,也有自己的特點(diǎn),為了管理好整個(gè)虛擬機(jī)遷移過(guò)程,RUT-MS 把Cloudsim 中虛擬機(jī)遷移的步驟由3 個(gè)擴(kuò)展到5 個(gè)[4]。RUT-MS 把虛擬機(jī)遷移過(guò)程進(jìn)一步劃分為超負(fù)載主機(jī)檢測(cè)、虛擬機(jī)選擇、虛擬機(jī)放置第1 階段、低負(fù)載主機(jī)檢測(cè)和虛擬機(jī)放置第2階段,工作流程具體包括下面5 個(gè)步驟,這樣處理的好處是把物理資源的閾值邊界可能出現(xiàn)異常的情況都考慮到,同時(shí)為虛擬機(jī)選擇和放置過(guò)程做參考,從而間接地進(jìn)一步提高資源使用效率。圖2給出了RUT-MS 物理資源閾值管理策略的工作流程。
圖2 RUT-MS 物理資源閾值管理策略工作流程Fig.2 The working flow of RUT-MS
步驟1基于RUT-MS,周期性的檢測(cè)云數(shù)據(jù)中心的超負(fù)載物理主機(jī),形成超負(fù)載物理主機(jī)列表。
步驟2針對(duì)超負(fù)載物理主機(jī)列表,基于已有的最小能量消耗選擇算法完成虛擬機(jī)選擇,形成侯選遷移虛擬機(jī)列表selectedVMList。
步驟3針對(duì)超負(fù)載物理主機(jī)中的侯選遷移的大量虛擬機(jī),基于RUT-MS 物理資源閾值管理策略完成虛擬機(jī)的放置第1 階段。
步驟4基于RUT-MS,周期性的檢測(cè)云數(shù)據(jù)中心的低負(fù)載物理主機(jī),形成低負(fù)載物理主機(jī)列表。
步驟5低負(fù)載物理主機(jī)中的侯選遷移的大量虛擬機(jī),基于RUT-MS 物理資源閾值管理策略完成虛擬機(jī)的放置第2 階段。
重復(fù)上述步驟1~5,設(shè)置1 個(gè)周期(通常是1 周),達(dá)到該時(shí)間段就結(jié)束。
本文的RUT-MS 在第1 階段物理主機(jī)狀態(tài)檢測(cè)過(guò)程中,根據(jù)下述的Algorithm 1 和Algorithm 2 進(jìn)行閾值管理,在第2 階段基于Algorithm 3 和Algorithm 4 完成虛擬機(jī)選擇,而在第3 階段虛擬機(jī)放置中,RUT-MS 繼續(xù)提出新型的物理閾值管理辦法,通過(guò)Algorithm 5~7 來(lái)優(yōu)化虛擬機(jī)放置。
RUT-MS 物理資源閾值管理策略把云數(shù)據(jù)中心的物理主機(jī)按照工作狀態(tài)劃分為4 類:超負(fù)載(Over-loaded)、高負(fù)載(Under-pressure)、正常狀態(tài)(Normal)和低負(fù)載狀態(tài)(Under-loaded)。這樣其對(duì)應(yīng)的物理資源的閾值邊界為:閾值上邊界Upper-thredholds、資源當(dāng)前閾值Util-prediction 和閾值下邊界Lower-thredholds。RUT-MS 在每個(gè)階段都要明確Upper-thredholds,Util-prediction,Lower-thredholds 三個(gè)變量的情況,這些物理資源閾值都是動(dòng)態(tài)調(diào)整的,由物理主機(jī)的具體情況所決定,而不是設(shè)置為固定值。
當(dāng)RUT-MS 策略啟動(dòng)后,周期性地檢測(cè)物理主機(jī)的處理器資源、內(nèi)存資源、網(wǎng)絡(luò)帶寬資源的使用情況,并盡量使其在合適的閾值范圍內(nèi)。如果有某個(gè)物理主機(jī)的資源使用情況不在合理的范圍內(nèi),它將被列入侯選遷移物理主機(jī)列表或者關(guān)閉進(jìn)入睡眠狀態(tài)。
回歸是統(tǒng)計(jì)學(xué)中的一種量化數(shù)據(jù)分析方法,它可以預(yù)測(cè)數(shù)據(jù)的下一階段的值,回歸方法被廣泛使用在數(shù)據(jù)預(yù)測(cè)領(lǐng)域[15]。RUT-MS 算法采用了單一權(quán)值線性回歸來(lái)預(yù)測(cè)物理主機(jī)的資源使用效率情況。
式中:Y 為受依賴的變量;X 為獨(dú)立的變量;β0和β1為回歸系數(shù),它們來(lái)自于最小二乘法技術(shù)[16],即
基于式(4),相鄰區(qū)域權(quán)重的定義為
式中xi和xn為變量x 最近的第i 個(gè)觀察值。RUT-MS 在這個(gè)階段采用k 次迭代來(lái)檢測(cè)物理主機(jī)資源使用效率變量(Host utilization)的k 個(gè)將來(lái)預(yù)測(cè)值,對(duì)于n 個(gè)數(shù)據(jù)變量,回歸的函數(shù)定義為
RUT-MS 策略在超負(fù)載檢測(cè)階段定義了2 個(gè)閾值邊界,Upper-thredholds 和Util-prediction。對(duì)于一個(gè)給定的k 值,如果資源使用的下一次迭代(i=1)預(yù)測(cè)值超過(guò)了它的整體提供能力的100%,那么該物理主機(jī)將被標(biāo)識(shí)為超負(fù)載物理主機(jī)(Over-loaded),此時(shí)物理主機(jī)的資源使用邊界為Upper-thredholds。如果RUT-MS 策略檢測(cè)到將來(lái)的多次迭代預(yù)測(cè)值(i=2~k)超過(guò)了它整體提供能力的100%,該物理主機(jī)將標(biāo)識(shí)為高負(fù)載物理主機(jī)(Under-pressure),y^的資源使用邊界即為Util-prediction,在這個(gè)情況下物理主機(jī)不會(huì)容納新的虛擬機(jī)。Algorithm 1 和Algorithm 2 給出了RUT-MS 算法在第1 階段的偽代碼。
Algorithm 1 RUT-MS algorithm first phase Input: host utilization
Output: utilPrediction
(1) for i=1 to n do
(2)xi←i; yi←utilHistory(i);
(3)wi←calculate using Eq.(5);
(4)xi←xi× wi; yi←yi× wi;
(5) end for
(6)calculate β0, using Eq.(2);
(7)calculate β1, using Eq.(3);
(8)utilPrediction = β0+ β1× currentUtil( h );//線性回歸預(yù)測(cè)資源的使用閾值情況
(9)upperThreshold = utilPrediction;
(10)update x, y and w;
(11)update β0and β1;
(12)for i=2 to k do
(13)KPredictionUtil( i )= β0+ β1× utilPrediction ;//通過(guò)k 次迭代預(yù)測(cè)可能的閾值邊界
(14)utilPrediction = KPredictionUtil( i );
(15) end for
(16)return utilPrediction;
將算法Algorithm 1 的輸出作為算法Algorithm 2 的輸入,就可以完成超負(fù)載物理主機(jī)的檢測(cè)。
Algorithm 2 Overloaded host detection algorithm
Input:host
Output: overloadedList
(1)UTC ←CPU.upperThreshold;
(2)PUC ←CPU.utilprediction;
(3)UTM ←Memory.upperThreshold;
(4)PUM ←Memory.utilprediction;
(5)UTB ←BW.upperThreshold;
(6)PUB ←BW.utilprediction;
(7)if ((PUC or PUM or PUB )≥1 ) then//低負(fù)載物理主機(jī)判斷
(8)underPressureList ←host;
(9)Host will not accept new VM;
(10)else
(11) if ((UTC or UTM or UTB)≥1) then //高負(fù)載物理主機(jī)判斷
(12)overloadedList ←host;
(13)end if
(14)end if
(15)return overloadedList
RUT-MS 物理資源閾值管理運(yùn)用在虛擬機(jī)選擇階段,采用的是最小能量消耗策略(Maximum power reduction policy, MPR)。最小能量消耗策略MPR 目的是選擇一個(gè)虛擬機(jī)之后,盡可能最大程度地降低物理主機(jī)的能量消耗,相反地,如果選擇其上運(yùn)行的其他虛擬機(jī)來(lái)遷移肯定達(dá)不到這個(gè)效果。假設(shè)物理主機(jī)i 上有j 個(gè)虛擬機(jī)的集合VMj,MPR 策略試圖發(fā)現(xiàn)式(7)中的虛擬機(jī)V 并選擇之。
式中:ui表示物理主機(jī)i 的資源利用率;Tup物理資源的上限閾值,u( v )表示物理主機(jī)分配給虛擬機(jī)v 的CPU 可用CPU 利用率;P| u( v ) |表示物理主機(jī)i 上面運(yùn)行的虛擬機(jī)v 所產(chǎn)生的能量消耗。MPR 策略的算法偽代碼如下。
Algorithm 3 Maximum power reduction
(1)for each VM in hostVMlist do
(2)selectedVM=NULL;
(3)maxPower = MIN;//定義最大能量消耗變量
(4)power=power(host , VM);
(5)if power >maxpower then
(6)selectedVM =VM;
(7)selectedVMlist= selectedVM;
(8)maxpower=power;
(9)end if
(10)end for
虛擬機(jī)選擇策略整個(gè)過(guò)程的偽代碼見Algorithm 4。從代碼中可以看出,RUT-MS 在這個(gè)階段主要是對(duì)Upper-Thredholds 資源閾值的判斷。
Algorithm 4 VM selection algorithm
Input: overloadedList, hostVMlist
Output: selectedVMList
(1)for each host in overloadedList do
(2)for each VM in hostVMlist do
(3)selectedVM=NULL;
(4)Maximum power reduction function;//計(jì)算虛擬機(jī)的能量消耗
(5)selectedVMlist= selectedVM;
(6)end for
(7)currentCPUutil= currentCPUutil- selectedVMCPUutil
(8)currentRAMutil= currentRAMutil- selectedVMRAMutil
(9)currentBWutil= currentBWutil- selectedVMBWutil
(10)if((currentCPUutil<upperThreshold) &&
(currentRAMutil<upperThreshold) &&
(currentBWutil<upperThreshold)) then
(11)break; else
(12)hostVMlist = hostVMlist -selectedVM;
(13)go to line 2;
(14)end if
(15)end for
(16)return selectedVMList
在虛擬機(jī)放置階段,RUT-MS 有兩個(gè)步驟要完成:(1)放置從超負(fù)載主機(jī)(Overloadedlist)列表中侯選遷移的虛擬機(jī);(2)放置從低負(fù)載主機(jī)(Underloadedlist)列表中侯選遷移的虛擬機(jī)。
RUT-MS 遍歷正常狀態(tài)的物理主機(jī)列表(Normallist),找到足夠CPU、內(nèi)存及網(wǎng)絡(luò)帶寬的主機(jī)安排給新虛擬機(jī),而且在虛擬機(jī)放置之后不會(huì)使其負(fù)載過(guò)大。每個(gè)主機(jī)設(shè)計(jì)一個(gè)Mark 值,即有
最后通過(guò)判斷,具有最小Mark 值的正常主機(jī)就容納新的虛擬機(jī)。如果正常狀態(tài)的物理主機(jī)不具備容納新虛擬機(jī)的條件,那么RUT-MS 將遍歷低負(fù)載狀態(tài)的物理主機(jī)(Underloadedlist),從新計(jì)算物理主機(jī)的Mark 值,如果這些主機(jī)列表里也沒(méi)有滿足容納新虛擬機(jī)的條件,則需要重新開啟一個(gè)新的物理主機(jī),過(guò)程如算法Algorithm 5 所示。
Algorithm 5 VM Placement (First phase)
Input: hostList, selectedVMlist
Output: allocation of VMs
(1)selectedVMlist.sortDecreasing( );
(2)for each h in hostList do
(3)if (lowrthreshold <currentUtil <util-Prediction) then normalHostList ←host;
(4)else if (currentUtil <lowrthreshold)
(5)underloadedhostList ←host;
(6)end if
(7)end for
(8)for each VM in selectedVMlist do
(9)minMark ←MAX; selectedHost ←null;
(10)for each h in normalHost do
(11)estimate utilAfterPlacement;
(12)if (utilAfterPlacement <upperthreshold) then
(13)estimate Mark by Eq.(8);
(14) if (Mark <minMark) then //最小Mark 值的正常主機(jī)就容納新的虛擬機(jī)
(15)selectedHost ←host; selectedHostlist ←selectedHost; minMark ←Mark;
(16)end if
(17)end for
低負(fù)載物理主機(jī)檢測(cè)主要是要確定自適應(yīng)低閾值Lower-thredholds。RUT-MS 通過(guò)物理資源比較低的四分位值來(lái)完成判斷。將該四分位值指定為資源使用閾值下邊界Lower-thresholds,所以Tlow=u((n+1)/4),這里u 表示物理主機(jī)資源使用的利用率,n 表示數(shù)值在數(shù)據(jù)集中的編號(hào),( n + 1 )/4 表示u 的下標(biāo)。只要物理資源的處理器CPU、內(nèi)存RAM 和網(wǎng)絡(luò)帶寬BW 的利用率低于Tlow,則該主機(jī)將處理低負(fù)載狀態(tài)(Under-loaded),根據(jù)向量的平方根式(9),式(10)可以用來(lái)計(jì)算不同維度對(duì)變量的影響,然后可以對(duì)Util 完成升序排列。
在低負(fù)載物理主機(jī)檢測(cè)中,RUT-MS 算法維護(hù)著一個(gè)低負(fù)載物理主機(jī)列表,首先檢測(cè)這些機(jī)器上的虛擬機(jī)是否可以遷移到其他的物理節(jié)點(diǎn),對(duì)于一個(gè)可以容納虛擬機(jī)的物理主機(jī),必須具有3 個(gè)條件:(1)處理高負(fù)載狀態(tài);(2)有足夠的物理資源滿足虛擬機(jī)的要求;(3)在容納虛擬機(jī)后,它不能變成超負(fù)載狀態(tài)。具體的算法描述如Algorithm 6 所示。
Algorithm 6 Under loading host detection
Input: hostList,hostVMlist
Output:VMmigrationList
(1)for each h in hostList do
(2)if (( h.utilCPU)<Tlow( CPU )) && (( h.utilRAM)<Tlow( RAM ))&& (( h.utilBW)<Tlow( BW )) then
(3)underloadingList ←h; //處于低負(fù)載狀態(tài)
(4)end for
(5)for each h in underloadingList do
(7)Util = utilCPU + utilRAM + utilBW //計(jì)算均方根
(8)underloadingList.sortIncreasingUtil( );
(9)end for
(10)for each h in underloadingList do
(11)for each VM in hostVMlist( ) do
(12)for each host in hostList do
(13)if( host ?underPressureList) then
(14)if ((host has enough CPU, RAM and BW) && ( Not overloaded after VM migration) ) then
(15)VMmigrationList ←h.VM;
(16)hVMlist←hVMlist- h.VM;
(17)end if end if
(18)end for end for end for
檢測(cè)低負(fù)載物理主機(jī)列表的時(shí)候,低負(fù)載物理主機(jī)被進(jìn)一步劃分為接受虛擬機(jī)列表和非接受虛擬機(jī)列表物理主機(jī)。RUT-MS 試圖把那些非接受虛擬機(jī)列表的物理主機(jī)切換到睡眠或者關(guān)閉狀態(tài),減少了虛擬機(jī)遷移次數(shù)。
首先遍歷接受虛擬機(jī)列表,如果沒(méi)有滿足條件的物理主機(jī),繼續(xù)遍歷非接受虛擬機(jī)列表,如果還是沒(méi)有滿足容納新虛擬機(jī)的物理主機(jī),系統(tǒng)必須重新啟動(dòng)一臺(tái)物理主機(jī),過(guò)程如算法Algorithm 7 所示。
Algorithm 7 VM Placement (Second phase)
Input: hostList, selectedVMlist
Output: allocation of VMs
(1)if (host admitted any VM in the first phase) then
(2)receivedVMlist←host; else otherHostslist ←host;
(3)end if end if end for
(4)for each VM in selectedVMlist do
(5)minMark ←MAX; selectedHost ←null;
(6)for each host in normalHost do
(7)estimate Utilafterplacement;
(8)if (Utilafterplacement <upperthreshold) then
(9)estimate Mark by Eq.(8);
(10)if (Mark <minMark) then
(11)selectedHost ←host;
(12)selectedHostlist ←selectedHost;
(13)minMark ←Mark;
(14)end if end if
(15)end for end for
(16)return selectedhostlist ;
因?yàn)镽UT-MS 物理資源閾值的管理策略運(yùn)用在虛擬機(jī)遷移過(guò)程中,所以進(jìn)行RUT-MS 實(shí)驗(yàn)分析必須構(gòu)造Cloudsim3.0 云數(shù)據(jù)中心的虛擬機(jī)遷移場(chǎng)景,同時(shí)依據(jù)圖1 中的運(yùn)行場(chǎng)景,在Cloudsim 中實(shí)現(xiàn)基于Java 語(yǔ)言的局部代理、全局代理和虛擬機(jī)管理器。
云數(shù)據(jù)中心的能量消耗模型及測(cè)試指標(biāo)都參考了最常見的CoMon project,它是由Planetlab 實(shí)驗(yàn)室開發(fā)的一個(gè)項(xiàng)目[17]。在CoMon 項(xiàng)目中設(shè)置的云數(shù)據(jù)中心主要由兩類物理服務(wù)器組成,物理服務(wù)器總數(shù)為800 個(gè),物理服務(wù)器配置如表1 所示。
表1 云數(shù)據(jù)中心物理服務(wù)器配置Table 1 Physical host configuration of cloud data center
在線性回歸中設(shè)置觀察近1 h 的物理主機(jī)資源使用率數(shù)據(jù),這種設(shè)置意味著循環(huán)迭代的次數(shù)為12次及虛擬機(jī)的遷移每5 min 運(yùn)行1 次,一共運(yùn)行24 h,每次統(tǒng)計(jì)1 天內(nèi)的能量消耗,在1 周內(nèi)重復(fù)運(yùn)行5次,1 周內(nèi)每天虛擬機(jī)請(qǐng)求的個(gè)數(shù)見表2, 不同虛擬機(jī)的類型與粒度配置見表3。
表2 RUT-MS 物理資源閾值的管理策略實(shí)驗(yàn)環(huán)境Table 2 Experimental environments of RUT-MS
表3 虛擬機(jī)類型配置Table 3 Experimental environments on virtual machine type of RUT-MS
由于RUT-MS 物理資源閾值的管理策略評(píng)價(jià)的主要指標(biāo)有4 個(gè): (1)云數(shù)據(jù)中心的總體能量消耗;(2)虛擬機(jī)遷移次數(shù);(3)平均SLA 違規(guī)分析;(4)能量與SLA 違規(guī)的聯(lián)合指標(biāo)。
根據(jù)虛擬機(jī)遷移3 個(gè)階段的步驟,Cloudsim 中比較好的辦法是LRR(Local regression robust)策略為物理主機(jī)狀態(tài)檢測(cè),結(jié)合MMT 策略完成虛擬機(jī)選擇,再結(jié)合遞減裝箱方法(Best-fit-decreasing CPP,BFD)完成虛擬機(jī)放置,稱之為L(zhǎng)RR-MMT-BFD 策略,它應(yīng)該作為首要比較對(duì)象。LRR 方法是一種自適應(yīng)的主機(jī)利用效率閾值檢測(cè)辦法,它通過(guò)檢測(cè)一個(gè)物理主機(jī)的最近j 個(gè)處理器的使用效率值作為評(píng)價(jià)方法,在本實(shí)驗(yàn)中設(shè)j=10。MMT 選擇一個(gè)在最短時(shí)間內(nèi)能夠完成遷移的虛擬機(jī)作為侯選遷移對(duì)象,形成侯選遷移虛擬機(jī)列表。 BFD 是遞減裝箱方法,它按照處理器的使用效率以遞減的方式排序,然后依次完成虛擬機(jī)放置,它是一種無(wú)優(yōu)化的普通放置方法。
本文還將RUT-MS 與近年來(lái)的其他物理資源閾值管理辦法進(jìn)行了比較,例如LiRCUP 閾值檢測(cè)方法[14]、ATEA 閾值檢測(cè)方法[12]以及在虛擬機(jī)放置階段優(yōu)化的智能算法,例如基于穩(wěn)定匹配[8]、基于虛擬機(jī)關(guān)聯(lián)性[9]和基于螢火蟲群優(yōu)化的算法[18],并且分析這些物理資源閾值管理辦法對(duì)云數(shù)據(jù)中心的性能改變情況。綜上所述,本實(shí)驗(yàn)涉及到的虛擬機(jī)遷移模式如表4 所示,包括RUT-MS,LRR-MMT-BFD,LiRCUP,ATEA,Stable-Matching,Correlation-Based 和GSO-VMM 共7 個(gè)虛擬機(jī)遷移模式。
表4 RUT-MS 物理資源利用閾值邊界管理性能比較對(duì)象Table 4 Different kinds of compared objects of RUT-MS
4.3.1 云數(shù)據(jù)中心總體能量消耗
Cloudsim 模擬器仿真的云數(shù)據(jù)中心1 周之內(nèi)得到的總體能量消耗如圖3 所示。從圖3 可以看出,RUT-MS 遷移模型比Cloudsim 中的LRR-MMT-BFD 遷移策略在總體能量消耗上要節(jié)約20%~25%,比Stable-Matching 策略、Correlation-Based 策略和GSO-VMM 策略的能量消耗也要低,雖然周一到周五之間的數(shù)據(jù)有一定的波動(dòng),但是整體趨勢(shì)是RUT-MS 物理資源閾值管理策略性能最優(yōu)。分析原因是RUT-MS 能夠每次回歸檢測(cè)到狀態(tài)異常的超負(fù)載物理主機(jī),而且在最后虛擬機(jī)放置階段后,還可以檢測(cè)到低負(fù)載的物理主機(jī),將它們轉(zhuǎn)入睡眠狀態(tài)。
4.3.2 虛擬機(jī)遷移次數(shù)
圖3 各類虛擬機(jī)遷移策略的總能量消耗比較Fig.3 Experimental results on total energy consumption in different kinds of virtual machine migration model
圖4 顯示了云數(shù)據(jù)中心的各個(gè)遷移模型總體的虛擬機(jī)遷移次數(shù)。大部分研究都認(rèn)為虛擬機(jī)次數(shù)越少,表示云數(shù)據(jù)中心性能比較好[5]。從圖中可以看出在1 周的5 天之內(nèi)RUT-MS 的虛擬機(jī)遷移次數(shù)都低于LRR-MMT-BFD 策略;而Stable-Matching 策略、Correlation-Based 遷移策略、GSO-VMM 策略、LiRCUP 策略和ATEA 策略則處理性能均為中等水平。分析原因是LRR-MMT-BFD 增加了超負(fù)載或低負(fù)載的物理主機(jī)的數(shù)量,這樣很容易出現(xiàn)虛擬機(jī)遷移的現(xiàn)象,結(jié)論是增加虛擬機(jī)遷移也間接地增加了物理主機(jī)的能量消耗,因?yàn)樘摂M機(jī)遷移過(guò)程也要消耗物理主機(jī)的CPU 資源,而RUT-MS 管理策略則與LRR-MMT-BFD 正好相反,RUT-MS 都是基于對(duì)物理主機(jī)資源使用效率的估計(jì)策略,它不會(huì)增加低負(fù)載主機(jī)數(shù)量。另外Stable-Matching策略、Correlation-Based 策略以及GSO-VMM 策略的優(yōu)化主要在虛擬機(jī)放置階段,基本沒(méi)有減少虛擬機(jī)遷移次數(shù),要想減少虛擬機(jī)遷移次數(shù),必須在物理主機(jī)狀態(tài)檢測(cè)、虛擬機(jī)選擇階段完成優(yōu)化。
4.3.3 SLA 違規(guī)率分析
從圖5 可以看出,周一到周五RUT-MS 的SLA 違規(guī)率比LRR-MMT-BFD 遷移策略要低,原因是RUT-MS 的虛擬機(jī)遷移次數(shù)比較少,它可以避免物理主機(jī)出現(xiàn)100% 的CPU 利用率的機(jī)會(huì),SLA 違規(guī)比率自然會(huì)降低。 Stable-Matching 策略、Correlation-Based策略和GSO-VMM 策略在虛擬機(jī)放置階段都采用另外的優(yōu)化算法,這樣整個(gè)云數(shù)據(jù)中心的SLA 違規(guī)率自然會(huì)比LRR-MMT-BFD 遷移策略要低。LiRCUP 策略和ATEA 策略則處于性能中等水平,比Cloudsim 的原始遷移策略要SLA 違規(guī)率低。
4.3.4 能量與SLA 違規(guī)的聯(lián)合指標(biāo)ESV[4]
ESV 指標(biāo)是體現(xiàn)云服務(wù)提供商的高服務(wù)質(zhì)量、低SLA 違規(guī)比率和總體能量消耗平衡的指標(biāo),即
式中E為能量消耗指標(biāo)。 從圖6 中的結(jié)果可以看到,RUT-MS 遷移策略的ESV 也要低于LRR-MMT-BFD 遷移策略。結(jié)果表明在各個(gè)階段過(guò)程中智能算法優(yōu)化對(duì)云數(shù)據(jù)中心的物理資源利用效率提高的重要性。LiRCUP 策略、ATEA 策略、Stable-matching 策略和Correlation-Based 策略是2016年和2017 年提出的虛擬機(jī)放置改進(jìn)算法,自然比2012 年的LRR-MMT-BFD 遷移策略性能優(yōu)秀。RUT-MS 最重要的目的是降低能量消耗,而GSO-VMM 策略主要面向降低SLA 違規(guī)率,所以它們的ESV 聯(lián)合指標(biāo)在某些條件下也優(yōu)于RUT-MS 管理策略。
圖4 各類虛擬機(jī)遷移策略的虛擬機(jī)遷移次數(shù)Fig.4 Experimental results on number of migration in different kinds of virtual machine migration model
圖5 各類虛擬機(jī)遷移策略的SLA 違規(guī)率比較Fig.5 Experimental results on SLA violation in different kinds of virtual machine migration mode
圖6 各類虛擬機(jī)遷移的SLA 與能量消耗聯(lián)合指標(biāo)ESVFig.6 Experimental results on ESV in different kinds of virtual machine migration model
本文提出了一種新的物理主機(jī)資源利用閾值邊界管理策略RUT-MS,動(dòng)態(tài)設(shè)置物理資源的邊界Upper-thredholds 值、Util-prediction 值和Lower-thredholds 值。RUT-MS 的閾值邊界具有自適應(yīng)性和動(dòng)態(tài)性特點(diǎn),并且在虛擬機(jī)遷移過(guò)程5 個(gè)階段都有算法進(jìn)行閾值邊界的優(yōu)化。實(shí)驗(yàn)表明RUT-MS 比常見的虛擬機(jī)遷移策略在總體能量消耗、虛擬機(jī)遷移次數(shù)上有明顯優(yōu)勢(shì),SLA 違規(guī)比率、ESV 等指標(biāo)只有少量的增加,RUT-MS 物理資源利用閾值邊界管理策略的每個(gè)階段還可以進(jìn)一步細(xì)分與優(yōu)化,可以繼續(xù)提高系統(tǒng)性能。