趙雪陽,岳延奇,王海晨
(長安大學 信息工程學院,陜西 西安 710064)
隨著數(shù)據(jù)中心應用業(yè)務日漸增長和規(guī)模不斷擴大,能耗顯著增加;同時,云服務提供商需要保證可靠的服務質(zhì)量(Quality of Service,QoS),否則將受到懲罰[1]。因此,節(jié)能和保證服務質(zhì)量是數(shù)據(jù)中心亟待解決的問題。
虛擬機整合是解決上述問題的重要方法。該方法利用動態(tài)虛擬機遷移來定期合并虛擬機,避免主機過載引起的性能下降、減少低載主機數(shù)量從而降低能耗。虛擬機整合的相關研究大多[2-7]將虛擬機整合分解為:過載主機檢測、欠載主機檢測、虛擬機選擇、虛擬機放置。
在數(shù)據(jù)中心,主機資源的低利用率會浪費資源,而高利用率引起過載,進而影響性能[8]。Beloglazov等[9]提出雙靜態(tài)閾值算法,該算法設置了主機CPU利用率的過載閾值、欠載閾值,根據(jù)閾值將主機分為3類。但是,由于云數(shù)據(jù)中心的主機負載變化的動態(tài)特性,基于靜態(tài)閾值的方法不能很好地適應這種動態(tài)的變化。為解決該問題,Buyya等[10]提出了兩種穩(wěn)健的統(tǒng)計估計來調(diào)整閾值,即中位數(shù)絕對偏差法和四分位距法。Farahnakian等[11]分別使用線性回歸和K近鄰(K-Nearest Neighbor,KNN)回歸算法,根據(jù)從虛擬機生命周期中收集的數(shù)據(jù)來近似函數(shù),從而預測過載、低載物理主機以減少SLA違規(guī)和能源的消耗。在虛擬機選擇問題上,Jiang等[12]給出了一種包含GPU利用率和CPU利用率兩個影響因素的能效評價模型。他們使用基于人工蜂群算法的虛擬機選擇算法,選定可以使得能耗降低最多的虛擬機。徐勝超等[13]提出了一種基于皮爾遜系數(shù)的虛擬機選擇策略,該策略引入了皮爾遜系數(shù),將CPU利用率最高的虛擬機放入到待遷移虛擬機列表。在虛擬機放置階段,能耗感知最適降序(Power-Aware Best Fit Decreasing,PABFD[9])算法在放置虛擬機時將虛擬機遷移到資源利用率高的主機上,容易導致過度的虛擬機整合,從而影響服務質(zhì)量。Murtazaev等[14]提出了Sercon算法,該算法繼承了首次適應(First Fit,FF)算法和最佳適應(Best Fit,BF)算法的一些屬性,以最小化主機數(shù)量和遷移次數(shù)。
虛擬機整合會受到多種資源的約束,其中多種類型的資源相互關聯(lián)、約束[15],使得同時保持所有資源類型的高利用率變得困難,可能導致不同資源利用失衡和過載風險。針對該問題,該文提出了基于多資源協(xié)同優(yōu)化的虛擬機整合(Multi-Resource Collaborative Optimization-based Virtual Machine Consolidation,MRCO-VMC)方法。使用基于正態(tài)分布的多資源過載檢測算法篩選出數(shù)據(jù)中心的過載主機;利用基于正態(tài)分布的最小遷移時間虛擬機選擇算法選出過載主機中待遷移的虛擬機;采用基于正態(tài)分布的能耗感知最適降序算法將虛擬機從源主機遷移到目的主機;最后,采用貪心策略將運行物理主機數(shù)量進行收縮。經(jīng)仿真實驗驗證,在虛擬機整合中,該方法有效地減少了遷移次數(shù)、減少了能耗并提高了服務質(zhì)量,取得了較好的結(jié)果。
(1)
(2)
此時,虛擬機放置滿足公式(3)所示的約束條件,即主機上的全部虛擬機的各類資源需求總量不能超過該主機的相應的各類資源的總量,并且每臺虛擬機只能放置到一個物理主機上。
(3)
虛擬機所需資源來源于用戶向云數(shù)據(jù)中心提交的任務請求,這些請求是隨機的,這導致虛擬機的資源需求是動態(tài)變化的;物理主機的負載是其上虛擬機的所有資源的總和,隨著虛擬機需求資源的變化,主機負載也隨之變化。由于云數(shù)據(jù)中心負載的動態(tài)特性,很難準確地對物理主機負載進行預測。但有研究表明,虛擬機的資源利用率服從正態(tài)分布[16]。因此,該文采用正態(tài)分布模型估計虛擬機的資源利用率,計算虛擬機處于資源利用平衡狀態(tài)的概率。
(4)
(5)
(6)
(7)
(8)
(9)
在虛擬機放置過程中,如何快速高效地識別虛擬機遷移所涉及的源主機和目標主機是首先要解決的關鍵問題。根據(jù)虛擬機資源利用率的歷史記錄,并且通過公式(7)~公式(9)計算f(hj)的值,如果從一個物理主機遷出虛擬機或向其部署虛擬機后的下一個虛擬機整合周期中f(hj)的值較高,則優(yōu)先選擇該物理主機作為源主機或目標主機,因此f(hj)可以作為一個量化指標來指導待遷移虛擬機的選擇和放置。
物理主機過載是導致云數(shù)據(jù)中心服務質(zhì)量下降的主要原因之一,在虛擬機整合中預測主機的負載,從而減少避免主機過載的情況,將有利于服務質(zhì)量的提升。該文提出了一種基于正態(tài)分布的多資源過載檢測(Normal Distribution-based multi-resource Overload Host Detection,NDOHD)算法來檢測過載主機。NDOHD算法時間復雜度為O(|H|),|H|為需要過載檢測的主機數(shù)量。
NDOHD算法步驟如下:
(1)給定過載主機hi;
(2)根據(jù)物理主機中多維資源負載的歷史數(shù)據(jù),使用式(4)、式(5)為每個虛擬機建立正態(tài)分布模型;
該文將云數(shù)據(jù)中心虛擬機資源利用率服從正態(tài)分布的特點與MMT算法結(jié)合,提出基于正態(tài)分布模型的最小遷移時間虛擬機選擇(Normal Distribution Model-based Minimum Migration Time,NDMMMT)策略。在選擇待遷移虛擬機時,必須充分考慮虛擬機內(nèi)存的大小,因為虛擬機遷移會導致虛擬機宕機,虛擬機內(nèi)存越大,對云數(shù)據(jù)中心的QoS產(chǎn)生的負面影響越大,所以盡量選擇內(nèi)存較小的虛擬機遷移。
具體計算公式如下:
vmi∈VMhj∣?a∈VMhj
(10)
NDMMMT算法步驟如下:
(1)輸入過載主機hover;
(2)對hover中每個虛擬機vmi執(zhí)行以下步驟;
(3)計算選擇虛擬機vmi的優(yōu)先級priority,如式(11)所示,如果該值大于前一虛擬機的值,則更新待遷移虛擬機vmMig;
(11)
(4)循環(huán)結(jié)束后,得到待遷移的虛擬機vmMig。
虛擬機放置算法也被稱為虛擬機映射或分配策略。在選擇完要遷移的虛擬機之后,整合的最后一個階段是為當前選定的待遷移虛擬機集合找到最佳的目標主機。為了確保遷移后不影響目標主機的穩(wěn)定性,需要根據(jù)物理主機中未分配的資源數(shù)量和每臺主機處于資源均衡利用的概率選擇目標主機。
在PABFD算法的基礎上,結(jié)合NDOHD檢測算法,該文提出了ND-PABFD算法。該算法在PABFD算法的基礎上結(jié)合了多資源協(xié)同優(yōu)化。首先,將所有待遷移虛擬機按照CPU資源請求量進行降序排列。其次,為虛擬機匹配物理主機,并根據(jù)公式(12)計算虛擬機需要選擇的物理主機的優(yōu)先級;最后,選擇優(yōu)先級最高的物理主機放置虛擬機。重復以上步驟,直到所有的虛擬機都被放置到合適的目標物理主機上。ND-PABFD的算法復雜度為O(|Ha|·|VMa|)。
ND-PABFD算法步驟如下:
(1)非過載主機集合Ha、待遷移虛擬機VMa作為輸入;
(2)遷移虛擬機按照CPU資源請求量進行降序排列;
(3)while vmi∈vmList,執(zhí)行步驟(4)~(5);
(4)遍歷所有主機hi,根據(jù)式(12)計算主機對應的PRI(vmi,hj),選擇PRI(vmi,hj)最大值相應主機allocationHost作為vmi放置的主機:
(12)
(5)將(vmi,allocationHost)放入虛擬機映射集合allocation;
(6)輸出虛擬機映射集合allocation。
由于云數(shù)據(jù)中心負載的不確定性,虛擬機放置完成后,云計算中心的部分主機上可能會出現(xiàn)負載不足的情況,必須將低負載物理主機上的所有虛擬機遷移出去并休眠該主機。
首先,選擇出與其他主機相比利用率最低的主機,并嘗試將此物理主機上的虛擬機放置在其他物理主機上,同時避免目標主機過載。如果可以完成此操作,則將虛擬機設置為遷移到確定的目標主機,并在所有遷移完成后將源主機切換到休眠模式。如果源主機上的所有虛擬機都無法放置到其他物理主機上,則將該物理主機保持活動狀態(tài)。未被視為過載的主機則會重復此過程。
結(jié)合前文提出的NDOHD、NDMMMT、ND-PABFD算法以及活動主機規(guī)模收縮過程,提出了MRCO-VMC方法。MRCO-VMC策略的工作步驟如下:首先,該策略采用NDOHD算法計算運行中物理主機過載的概率,形成過載主機集合;其次,使用NDMMMT算法從過載的物理主機中選擇向外遷移虛擬機,直到該主機上的負載降低到過載閾值以下,并將待遷移的虛擬機添加到向外遷移虛擬機集合中;第三,利用ND-PABFD算法為向外遷移的虛擬機找到合適的目標主機,即滿足向外遷移虛擬機的資源需求和虛擬機放置后虛擬機的低過載風險需求的目標主機;最后,選擇負載最低的物理主機,將其所有的虛擬機移動到合適的目標主機上,并休眠該物理主機,直到所有低載物理主機都被關閉為止,其偽代碼見算法1。
算法1:MRCO-VMC算法。
1 Input:hostList
2 Output:Map〈host,vm〉
3 //過載檢測
4 for eachhjin hostList
5 if NDOHD(hj) is true then
6 將hj加入過載主機集overHostList
7 end if
8 end for
9 //虛擬機選擇
10 for eachhjin overHostList
11 While NDOHD(hj) is true do
12 NDMMMT(hj)
13 vmMigrateList←vm
14 end while
15 end for
16 //虛擬機放置
17 ND-PABFD算法輸入:過載主機,待遷移虛擬機
18 使用貪心策略,關閉低載主機
19 return 虛擬機與主機映射關系Xm*n
該文使用虛擬機整合的主要仿真平臺CloudSim模擬云計算環(huán)境進行仿真。實驗中使用的數(shù)據(jù)集來源于CoMon項目中PlabetLab平臺,其擁有超1 000臺虛擬機在10天運行的負載記錄。模擬的數(shù)據(jù)中心有800臺物理主機,為CloudSim提供的HP ProLiant ML110 G4和HP ProLiant ML110 G5;虛擬機參考Amazon Ec2,共四類:High-CPU medium、Extra large、Small、Micro[9-10]。
采用文獻[10]中的指標作為算法的評估標準,包括能源消耗(EC)、服務等級協(xié)議違背率(SLAV)以及二者組成的指標ESV,遷移引發(fā)的服務質(zhì)量下降(PDM)、活動物理主機的平均等級協(xié)議違背率(SLATAH)。
為了驗證提出虛擬機整合策略的效果,選擇了Beloglazov和Buyya教授放置在CloudSim中的三種基準算法[10]。三種算法所采用的過載主機檢測方法分別是:四分位距(Inter Quartile Range,IQR)、局部回歸(Local Regression,LR)以及絕對中位差(Median Absolute Difference,MAD)。文獻[10]還介紹了三種虛擬機選擇算法,分別為最少遷移時間算法(MMT)、隨機選擇算法(RS)、最大相關性系數(shù)算法(MC)。此外,CloudSim中又新增了最小利用率(MU)方法,該方法的思想是遷移對象為CPU利用率最小的虛擬機。通過對上文介紹的算法進行組合,選擇了IQR-MMT、LR-RS、MAD-MU(對比算法)三種算法。根據(jù)“控制變量法”思想,將MRCO-VMC策略與對比算法在各個指標上進行比較。
能耗指標反映的是云數(shù)據(jù)中心電能消耗的情況,其值越小代表虛擬機整合算法產(chǎn)生的能耗越少。由圖1可知,MRCO-VMC算法具有最低的能耗值,LR-RS算法次之,MAD-MU消耗的電能最多,而MRCO-VMC算法比對比算法中平均能耗最低的LR-RS算法還要低36.66%。由此看出,MRCO-VMC算法在降低能耗方面效果顯著。
圖1 EC指標平均值對比
SLAV指標代表服務水平協(xié)議違背率,它既表示由于過度利用物理主機而產(chǎn)生的SLA違規(guī),也表示由于遷移虛擬機而產(chǎn)生的SLA違規(guī),其值越低表示云計算中心服務質(zhì)量越好。由圖2可知,MRCO-VMC算法的平均服務等級協(xié)議違背率處于較低的水平,低于其他對比算法,IQR-MMT算法次之,LR_RS算法的SLAV指標最高,且MRCO-VMC算法的SLAV指標與IQR-MMT算法相比平均下降了64.1%。由此可知,MRCO-VMC算法的SLAV性能最好,服務質(zhì)量提升最高。
圖2 SLAV指標平均值對比
由于SLAV指標是將PDM和SLATAH這兩項指標綜合評定之后云數(shù)據(jù)中心的整體服務質(zhì)量,所以有必要對PDM和SLATAH這兩項指標做出更深入的剖析。SLATAH指標是指由于活動物理主機運行時過載給服務質(zhì)量帶來的下降率。虛擬機整合過程中物理主機越少則SLATAH指標越小。由圖3可知,MRCO-VMC算法的SLATAH指標最低,IQR-MMT算法和LR-RS算法次之,MAD-MU算法的指標值最高,這主要是因為IQR-MMT算法、LR-RS算法和MAD-MU算法在虛擬機整合時無法預測工作負載趨勢,更容易導致物理主機過載,服務質(zhì)量下降。由此可知,MRCO-VMC算法降低了活動物理主機過載的概率,保障了服務質(zhì)量。PDM指標是指虛擬機整合過程中受到的虛擬機遷移次數(shù)和持續(xù)時間的影響,通常情況下,虛擬機遷移次數(shù)越少、遷移時間越短,PDM越低,即虛擬機遷移對云數(shù)據(jù)中心的服務質(zhì)量的負面影響越小。當選擇遷移虛擬機時,MRCO-VMC算法綜合考慮了使遷移時間最小化的因素,它的最終目標是最大化物理主機處于資源均衡利用狀態(tài)的概率,防止物理主機超載,虛擬機遷移更少,圖5也驗證了該算法遷移次數(shù)相比較少。因此,MRCO-VMC算法的PDM指標值要低于其他三種對比算法,如圖4所示。
圖3 SLATAH指標平均值對比
圖4 PDM指標平均值對比
虛擬機在遷移時會被迫停止服務,因此需要盡量減少虛擬機的遷移次數(shù)。VMMs表示虛擬機整合過程中的遷移總次數(shù),它的值越小說明相應的虛擬機整合策略對服務質(zhì)量的影響越小。由圖5可知,MRCO-VMC算法的虛擬機遷移次數(shù)遠遠低于其他三種對比算法,其次是LR-RS算法和IQR-MMT算法,MAD-MU算法的虛擬機遷移次數(shù)最多。這是由于MRCO-VMC算法利用正態(tài)分布模型估計云數(shù)據(jù)中心處于多資源均衡利用狀態(tài)的概率,平衡了各種資源的工作負載,有效避免了物理主機頻繁過載的風險,同時,避免了不必要的虛擬機遷移。
圖5 虛擬機遷移次數(shù)平均值對比
ESV指標是在服務質(zhì)量和能量消耗之間平衡的組合度量,ESV的值越低說明對應的算法綜合性能越好。與其他三種方法相比,MRCO-VMC算法引起的SLAV和消耗的電能較少,從而降低了ESV。如圖6所示,MRCO-VMC策略的ESV的值最低,且該策略的值要遠低于對比算法,說明該策略在保證服務質(zhì)量、降低能耗方面表現(xiàn)較好,其次是IQR-MMT算法和LR-RS算法,ESV值最高的是MAD-MU算法。
圖6 ESV平均值對比
為解決主機多資源利用不平衡引起的數(shù)據(jù)中心能耗增加、服務質(zhì)量下降,該文提出了一種基于多資源協(xié)同優(yōu)化的虛擬機整合策略(MRCO-VMC)。該策略根據(jù)虛擬機的資源利用率呈現(xiàn)正態(tài)分布的特點,采用正態(tài)分布模型估計虛擬機的資源利用率,計算物理主機處于資源利用平衡狀態(tài)的概率;使用基于正態(tài)分布的多資源過載檢測算法預測物理主機過載的概率,篩選出數(shù)據(jù)中心的過載主機;基于正態(tài)分布的最小遷移時間虛擬機選擇算法通過結(jié)合云數(shù)據(jù)中心虛擬機資源利用呈正態(tài)分布的特點和MMT算法,選取待遷移的虛擬機;基于正態(tài)分布的能耗感知最適降序算法將PABFD算法與正態(tài)分布模型相結(jié)合,將虛擬機從源主機遷移到目的主機;最后,采用貪心策略將運行物理主機數(shù)量進行收縮。
基于真實虛擬機負載數(shù)據(jù)進行仿真實驗,實驗結(jié)果表明MRCO-VMC能夠有效地減少虛擬機遷移次數(shù)、提升系統(tǒng)服務質(zhì)量。由于實驗環(huán)境的局限性,該文僅在CloudSim仿真平臺上進行了對比實驗,無法保證其在真實實驗環(huán)境中的效率,在未來工作中將進行更多仿真實驗,評估提出的方法在實際負載中的性能表現(xiàn)。