周 震 袁正道 李俊峰
1(洛陽師范學(xué)院信息技術(shù)學(xué)院 河南 洛陽 471934) 2(河南廣播電視大學(xué)信息工程學(xué)院 河南 鄭州 450001) 3(中電科信息產(chǎn)業(yè)有限公司 河南 鄭州 450001)
為了倡導(dǎo)綠色云計算環(huán)境,近年來大規(guī)模節(jié)能的云數(shù)據(jù)中心的構(gòu)造與使用成了政府和各大IT企業(yè)越來越重視的問題[1-3]。虛擬化是云數(shù)據(jù)中心中最關(guān)鍵的技術(shù),它在應(yīng)用程序執(zhí)行過程中,利用虛擬機(jī)遷移策略來提高云資源的利用效率,節(jié)省云服務(wù)提供商的能量消耗和成本[4]。
目前CloudSim項(xiàng)目在云數(shù)據(jù)中心的節(jié)能研究方面處于世界領(lǐng)先地位[5-8],而且有大量的關(guān)于CloudSim項(xiàng)目的后續(xù)研究工作,例如有基于閾值邊界[4]、安全檢測[9]、 遺傳算法[10]、貪心算法[11]、任務(wù)映射[12]、 數(shù)據(jù)依賴[13]、穩(wěn)定匹配[14]、虛擬機(jī)關(guān)聯(lián)[15]等的虛擬機(jī)遷移策略。上述策略往往把虛擬機(jī)遷移過程劃分為物理主機(jī)狀態(tài)檢測、虛擬機(jī)選擇和虛擬機(jī)放置三個步驟。在三個步驟中都把遷移因素關(guān)注在物理主機(jī)的CPU使用效率、內(nèi)存大小、空余磁盤空間、網(wǎng)絡(luò)帶寬等多個方面,考慮問題的維度從早期的處理器單一維度到現(xiàn)在的多維的復(fù)雜組合。盡管如此,如果從最簡單的物理層次來分析,物理主機(jī)的處理器溫度應(yīng)該是影響云數(shù)據(jù)中心能量消耗的最直接因素。
為此本文提出了一種基于溫度感知的虛擬機(jī)遷移模型TA-VMM。TA-VMM在溫度感知的過程中采用一種物理主機(jī)處理器溫度閾值邊界遷移方法, 在物理主機(jī)負(fù)載均衡中考慮的是資源使用效率閾值邊界遷移方法。最后本文把TA-VMM虛擬機(jī)遷移模型和CloudSim中已有的模型及常見的其他模型進(jìn)行仿真實(shí)驗(yàn)與性能分析,實(shí)驗(yàn)結(jié)果驗(yàn)證了TA-VMM在各個性能指標(biāo)上的優(yōu)勢。
目前學(xué)術(shù)界對虛擬機(jī)遷移進(jìn)行了大量的研究。第一種是運(yùn)行冷凝系統(tǒng)保證物理服務(wù)器的空間不會過熱[16],它通過設(shè)計與布局物理服務(wù)器的空間放置方法來散熱與節(jié)能;第二種是通過虛擬機(jī)遷移策略和算法,即云服務(wù)提供商應(yīng)用虛擬機(jī)遷移與合并策略到公有云、私有云、混合云之中。
后者利用虛擬機(jī)動態(tài)遷移的手段來節(jié)省云數(shù)據(jù)中心的能量消耗又可分為單純的虛擬機(jī)遷移策略[17]和采用智能算法等來進(jìn)行優(yōu)化的虛擬機(jī)分配與遷移策略[18]。另一類是以CloudSim模擬器為主線的虛擬機(jī)分配策略極其后續(xù)相關(guān)的研究[4-8]。由于本文的實(shí)驗(yàn)環(huán)境、性能指標(biāo)、虛擬機(jī)遷移過程都參考CloudSim項(xiàng)目,所以相關(guān)工作描述主要關(guān)注這些方面。
把物理主機(jī)狀態(tài)檢測稱為物理資源閾值管理方法。CloudSim模擬器中已經(jīng)有的常見的物理資源閾值管理方法包括下面五種,即根據(jù)物理資源利用效率的使用閾值情況來決定:(1) 局部歸約檢測方法(Local Regression,LR);(2) 魯棒局部歸約檢測方法(Local Regression Robust,LRR);(3) 絕對中位差檢測方法(Median Absolute Deviation,MAD);(4) 靜態(tài)的資源使用效率閾值檢測法(Static Threshold,THR);(5) 四分位數(shù)區(qū)間檢測方法(Inter Quartile Range,IQR)。
在CloudSim模擬器中已經(jīng)有的虛擬機(jī)選擇算法包括如下四種:
(1) 最大關(guān)聯(lián)選擇方法(Maximum Correlation,MC),即選擇同一個物理主機(jī)上的,與CPU使用效率有最高關(guān)聯(lián)度的虛擬機(jī)作為對象。
(2) 最小遷移時間選擇方法(Minimum Migration Time,MMT),即將一個在最短時間內(nèi)能夠完成遷移的虛擬機(jī)作為選擇對象。
(3) 最小資源使用效率選擇方法(Minimum Utilization,MU),即對一個具有最小處理器使用效率的虛擬機(jī)進(jìn)行遷移。
(4) 隨機(jī)選擇策略(Random Selection,RS)。
在CloudSim項(xiàng)目中采用的是最小時間虛擬機(jī)選擇策略(MMT),即選擇一個在最短時間內(nèi)能夠完成遷移的虛擬機(jī)作為候選遷移對象,本文的TA-VMM虛擬機(jī)遷移策略在這個階段提出了自己的溫度感知的虛擬機(jī)選擇方法。
虛擬機(jī)放置研究中一個最重要的因素是活動物理主機(jī)的數(shù)量,因?yàn)樗梢宰畲笙薅鹊貨Q定云數(shù)據(jù)中心能量消耗的大小[19]。
在虛擬機(jī)放置中,如果資源比較單一,只把目標(biāo)放到物理主機(jī)的數(shù)量降低上,該類問題可以被劃歸為經(jīng)典的裝箱問題。CloudSim項(xiàng)目中采用的是經(jīng)典裝箱方法(Bin Packing Problem,BPP)和改進(jìn)的經(jīng)典裝箱方法(Best-Fit-Decreasing BPP,BFD)策略來完成虛擬機(jī)的重新放置[6]。
總體來講TA-VMM虛擬機(jī)遷移模型考慮的是物理硬件層次,而目前大部分虛擬機(jī)遷移模型采用智能算法來優(yōu)化改善,雖然文獻(xiàn)[20-21]在資源分配時也考慮了物理資源的溫度因素,但是并沒有運(yùn)用到云端的虛擬機(jī)選擇與放置之中。
在TA-VMM中,物理主機(jī)處理器的溫度作為重要因素在虛擬機(jī)選擇和分配過程中予以考慮,其工作場景為一個有N個物理服務(wù)器節(jié)點(diǎn)的云數(shù)據(jù)中心,云平臺上運(yùn)行著M個虛擬機(jī)。云客戶端向云數(shù)據(jù)中心申請資源的時候,存在著虛擬機(jī)遷移、虛擬機(jī)合并等事件,多個虛擬機(jī)也可以被分配到一個單獨(dú)的物理服務(wù)器節(jié)點(diǎn)。
在TA-VMM中,為了計算云端的能源消耗,本文假設(shè)服務(wù)器是空閑的,它的能源消耗的百分比是k,Pfull表示服務(wù)器在完全滿負(fù)載工作時的能源消耗(峰值能量消耗),ui是當(dāng)前的物理主機(jī)i的CPU使用效率,一個物理服務(wù)器的能量消耗計算見式(1),整個云服務(wù)器端的能源消耗計算見式(2)。
(1)
(2)
在溫度的數(shù)學(xué)模型中,TA-VMM主要參考了文獻(xiàn)[22]中的lumped RC物理服務(wù)器的溫度行為。即在時刻t,一個能量消耗為P的處理器的溫度可以描述為:
T(t)=P×Rh+Tamb-(P×Rth+Tamb-Tinit)×e-t/RthCth
(3)
式中:Rth和Cth分別表示了其等效的熱電阻和熱電容;Tamb表示了環(huán)境溫度;Tinit表示的是初始溫度。
采用了兩個因素來評價SLA違規(guī)比率(SLA violation),違規(guī)率值SLAV可以計算如下:
SLAV=SLATAH×PDM
(4)
式中:SLATAH是活動主機(jī)的CPU具有100%的使用效率所占的時間比例;PDM是整個系統(tǒng)因?yàn)樘摂M機(jī)遷移后的性能降低情況。
TA-VMM虛擬機(jī)遷移策略的工作機(jī)制包括如下三個步驟:(1) 判斷云數(shù)據(jù)中心的所有物理主機(jī)狀態(tài),即哪個是超負(fù)載工作主機(jī)或者低負(fù)載的工作主機(jī),形成候選遷移物理主機(jī)列表;(2) 從存在的所有虛擬機(jī)中選擇出候選遷移的虛擬機(jī)列表,該選擇過程都是在候選遷移物理主機(jī)列表上選擇;(3) 重新放置候選遷移虛擬機(jī)到那些正常狀態(tài)的物理主機(jī)之上。
TA-VMM模型在起初的時候通過調(diào)用第2節(jié)中提到的溫度模型和能量消耗模型來獲得云數(shù)據(jù)中心中的每個物理主機(jī)處理器的溫度參數(shù)和處理器的資源使用效率情況??傮w來說,如果一個物理主機(jī)達(dá)到溫度的閾值邊界或者資源利用效率的閾值邊界,TA-VMM將尋找另外一個具有更好處理器溫度或者CPU利用效率的物理主機(jī)來容納新的虛擬機(jī),這樣虛擬機(jī)就從源主機(jī)遷移到目的主機(jī)。因此可以看出TA-VMM遷移模型既考慮到了云數(shù)據(jù)中心的能量消耗情況,也考慮到了物理主機(jī)的負(fù)載均衡,最終間接地提高了物理資源的利用效率。
為了驗(yàn)證提出的溫度感知的虛擬機(jī)遷移模型,本文在Java環(huán)境下模擬了TA-VMM。原型系統(tǒng)的實(shí)現(xiàn)仍然基于CloudSim項(xiàng)目,它是一個Java環(huán)境下的一個模擬云數(shù)據(jù)中心的工具。在第一個物理主機(jī)狀態(tài)檢測算法步驟中,TA-VMM可以找到云數(shù)據(jù)中心的候選遷移物理主機(jī)(MigrationFromHosts)。該物理資源閾值管理算法如算法1所示,它區(qū)別于Cloudsim項(xiàng)目中已有的絕對中位差檢測等方法。
算法1物理資源閾值管理算法
輸入: HostList, VmList。
輸出: MigratingFromHosts。
1 For each host in hostList Do
2 If isHostOverThresholdTemperature (host) Then
3 overThresholdTempHosts ← add host
4 Else
5 If isHostOverThreshold_Utilization (host) Then
6 overUtilizedHosts ← add host
7 End if
8 End if
9 End for
10 MigratingFromHosts ← overThresholdTempHosts
11 + overUtilizedHosts
12 Return MigratingFromHosts
由算法1可見,TA-VMM模型首先遍歷了云數(shù)據(jù)中心的所有活動物理主機(jī),同時發(fā)現(xiàn)那些溫度情況和處理器使用效率情況超過指定閾值的物理主機(jī),該檢測過程步驟執(zhí)行完成后,形成了候選遷移的物理主機(jī)列表MigratingFromHosts,該算法的輸出將作為第二步虛擬機(jī)選擇階段的輸入。
由于已經(jīng)形成了候選遷移的物理主機(jī)列表MigrationFromHosts,本文需要從其上尋找出候選遷移的虛擬機(jī)列表VMstoMigrateList。
這些候選遷移的虛擬機(jī)將按照其CPU的使用效率進(jìn)行排序,那些具有比較小的CPU使用效率的虛擬機(jī)將具有更加高的遷移的優(yōu)先級,其目的是為了給將來的目標(biāo)物理主機(jī)減輕壓力,不會帶來過負(fù)載,同時可以避免更多的虛擬機(jī)遷移。
在這個過程中,TA-VMM還必須保證目標(biāo)物理主機(jī)的處理器溫度不能超過閾值邊界。在這個虛擬機(jī)選擇算法的最后,TA-VMM形成了候選遷移的虛擬機(jī)列表VmstoMigrateList,該列表將作為第三步虛擬機(jī)放置階段的輸入。虛擬機(jī)選擇過程見算法2,它區(qū)別于CloudSim項(xiàng)目中的最小遷移時間選擇等算法。
算法2虛擬機(jī)選擇算法
輸入: MigratingFromHosts。
輸出: VMstoMigrateList。
1 For each host in MigratingFromHosts Do
2 While true Do
3 vm ← getVmtoMigrate (host)
4 If vm = Null Then
5 break
6 End if
7 VmstoMigrateList ← add vm
8 host ← deallocate vm
9 If !( isHostOverThresholdTemperature(host) &&
10 isHostOverThresholdUtilisation (host) ) Then
11 break
12 End if
13 End while
14 End for
15 Return VMstoMigrateList
最后一個步驟主要把候選虛擬機(jī)列表VMstoMigrateList中的虛擬機(jī)全部放置到新的正常狀態(tài)的目標(biāo)物理主機(jī)之中,該過程還要考慮工作負(fù)載需求。TA-VMM首先觀察目標(biāo)物理主機(jī)的溫度情況,如果物理主機(jī)的溫度情況低于溫度閾值邊界且物理主機(jī)的資源情況滿足虛擬機(jī),那么該觀察到的物理主機(jī)可以作為目標(biāo)放置主機(jī)。
如果發(fā)現(xiàn)了多個滿足條件的物理主機(jī),那么具有最小能量消耗的物理主機(jī)將作為新的目標(biāo)物理主機(jī)。TA-VMM中的虛擬機(jī)放置算法見算法3。
算法3虛擬機(jī)放置算法
輸入: MigratingFromHosts, vmstoMigrateList。
輸出: MigrationMap。
1 MigrationMap ← null
2 vms toMigrateList.SortDecreasingCPUUtilisation
3 For each vm in vmstoMigrateList Do
4 allocated Host ← null
5 minPower ← Max
6 For each host not in MigratingFromHost Do
7 If host has enough resources for vm Then
8 power ← estimatePower(host,vm)
9 End if
10 If host switchedOff &&
11 hostoverUtilizedAfterAlloc | |
12 overThresholdTemparureAfterAlloc(power)
13 Then continue
14 End if
15 If power 16 allocated Host ← host 17 minPower ← power 18 End if 19 If allocated Host !=Null Then 20 allocate vm to allocated Host 21 End if 22 End for 23 MigrationMap ← add (vm, allocated Host) 24 End for 25 Return migrationMap 為了進(jìn)一步改善TA-VMM在能量消耗方面的性能,算法3將那些物理主機(jī)的CPU使用效率低于其閾值范圍的低負(fù)載的物理主機(jī)上虛擬機(jī)遷移到其他的物理主機(jī)上,同時進(jìn)入睡眠模式,這樣就間接地節(jié)省了云數(shù)據(jù)中心的能量消耗。 TA-VMM的仿真環(huán)境采用CloudSim 3.0,前面已經(jīng)提到CloudSim中已經(jīng)有了許多物理資源閾值管理方法、虛擬機(jī)選擇策略、虛擬機(jī)放置策略,這些都是TA-VMM將要比較的對象。 在CloudSim模擬的云數(shù)據(jù)中心的物理主機(jī)和虛擬機(jī)的配置如表1和表2所示。溫度常量參考了lumped RC溫度模型中的具體值,如表3所示。這個溫度模型可以用來很好地模擬單核心的CPU,實(shí)驗(yàn)中測試數(shù)據(jù)的最高溫度為353 K。 表1 云數(shù)據(jù)中心中的物理節(jié)點(diǎn)配置 表2 虛擬機(jī)類型配置 表3 溫度模型中常量的設(shè)置 TA-VMM參考CloudSim,把云數(shù)據(jù)中心的總體能量消耗、SLA違規(guī)比率、虛擬機(jī)遷移次數(shù)作為主要測試指標(biāo)。模擬云客戶端的應(yīng)用程序訪問,使用10 000個具有正確CPU與內(nèi)存請求的任務(wù)數(shù)據(jù),這樣就可以保證云數(shù)據(jù)中心的基本負(fù)載。本文統(tǒng)計一天24小時內(nèi)云數(shù)據(jù)中心的各個指標(biāo)數(shù)據(jù),把虛擬機(jī)遷移的周期設(shè)置為5分鐘。 TA-VMM最后還需要設(shè)置2個閾值常量,分別是資源使用效率閾值常量和溫度閾值常量。根據(jù)CloudSim項(xiàng)目中提到的處理器的使用效率設(shè)置為90%條件下系統(tǒng)性能處理最優(yōu),所以在TA-VMM中的效率閾值常量設(shè)置為90%,這意味著超過了90%的CPU資源被占用后,其上運(yùn)行的虛擬機(jī)將遷移到其他的物理主機(jī)之上。 溫度閾值常量Tthreshold(最優(yōu)溫度)的設(shè)定可以參考芯片廠商的要求設(shè)置,文獻(xiàn)[23]提到了這一點(diǎn)。本文溫度閾值常量的設(shè)置為343 K,343 K這個溫度可以達(dá)到云數(shù)據(jù)中心的總體能量消耗和SLA違規(guī)之間的平衡。之所以這樣設(shè)置是因?yàn)楫?dāng)前的物理主機(jī)的處理器都比較先進(jìn),處理器都有自動測量芯片溫度的功能,如果芯片處于高溫的狀態(tài),即表明它有高的能量消耗,芯片長期處于功耗大狀態(tài)將會出現(xiàn)硬件故障,所以在TA-VMM中期望遷移過來的虛擬機(jī)能夠使CPU處于低能量消耗狀態(tài)和低溫的狀態(tài)。 把當(dāng)前環(huán)境溫度和初始溫度根據(jù)式(3)進(jìn)行計算就得到處理器的當(dāng)前溫度T(t)。把T(t)和Tthreshold比較,通過TA-VMM中的算法1-算法3來找到最合適的虛擬機(jī)或者最合適的物理主機(jī),完成物理主機(jī)狀態(tài)檢測、虛擬機(jī)選擇和虛擬機(jī)分配。 第一個實(shí)驗(yàn)是分析TA-VMM模型中溫度閾值邊界對云數(shù)據(jù)中心的性能影響。圖1-圖3為實(shí)驗(yàn)結(jié)果。圖1顯示了溫度閾值對總體能量消耗的影響,圖2顯示了溫度閾值對虛擬機(jī)遷移次數(shù)的影響,圖3顯示了溫度閾值對SLA違規(guī)率的影響。 圖1 TA-VMM的能量消耗隨溫度閾值的性能變化 圖2 TA-VMM的遷移次數(shù)隨溫度閾值的性能變化 圖3 TA-VMM的SLA違規(guī)率隨溫度閾值的性能變化 從圖1可以看出,溫度閾值從333 K到360 K,可以分為四個區(qū)間,在333 K到335 K之間時總體能量消耗每天保持在52 KWh。 TA-VMM只遷移那些源物理主機(jī)的處理器溫度達(dá)到了溫度閾值邊界以上的虛擬機(jī)。如果一個虛擬機(jī)需要遷移,那么它必須有一個溫度小于溫度閾值的物理主機(jī)。若出現(xiàn)云數(shù)據(jù)中心的所有物理主機(jī)的溫度都超過了溫度閾值,那么TA-VMM將找不到合適的物理主機(jī)去容納那些虛擬機(jī),該情況下將不存在虛擬機(jī)遷移活動。比如圖1和圖3中溫度閾值小于333 K,這樣TA-VMM模型將不起作用,云數(shù)據(jù)中心的能量消耗也比較大,同時也沒有SLA違規(guī)率和虛擬機(jī)遷移。 第二個區(qū)間是335 K到340 K,在這個區(qū)間,TA-VMM將開始工作,算法1-算法3將起作用,開始完成物理主機(jī)狀態(tài)檢測、虛擬機(jī)選擇和虛擬機(jī)放置過程。隨著溫度閾值的提高,目標(biāo)物理主機(jī)的個數(shù)也增加,這是因?yàn)橛懈嗟奈锢碇鳈C(jī)的溫度會低于這個溫度閾值。在這個區(qū)間中,有大量的虛擬機(jī)完成遷移,同時也導(dǎo)致了CPU的使用效率下降,間接地導(dǎo)致了SLA違規(guī)率的增加。 第三個區(qū)間是340 K到353 K,TA-VMM對系統(tǒng)的能量消耗改變不大,因?yàn)樵谶@個階段目的物理主機(jī)的溫度低于溫度閾值。所以虛擬機(jī)遷移個數(shù)也沒有什么變化,SLA違規(guī)率也沒有大的波動。 第四個區(qū)間是353 K以上,系統(tǒng)總體能量消耗有少量降低,原因是到了最高溫度353 K以后,TA-VMM將很多物理主機(jī)上的虛擬機(jī)都遷移走了,將其設(shè)置到了睡眠模式。但是在這個情況下SLA違規(guī)率又有少量的增加。 由圖1-圖3可以看出,虛擬機(jī)的遷移次數(shù)十分依賴于溫度閾值邊界的大小設(shè)置,當(dāng)沒有虛擬機(jī)遷移的時候,系統(tǒng)總體能量消耗處理較高的水平。當(dāng)?shù)搅俗罡邷囟萒case情況下,大部分物理主機(jī)將進(jìn)入睡眠模式,這樣間接影響到了CPU的資源使用效率閾值常量那么虛擬機(jī)的遷移個數(shù)也將減少。 為了進(jìn)一步驗(yàn)證TA-VMM遷移模型的高效性,本節(jié)將TA-VMM與其他三個虛擬機(jī)遷移模型進(jìn)行比較:(1) CloudSim中的LRR-MMT-BPP策略,之所以這樣書寫是因?yàn)镃loudsim中采用魯棒局部歸約檢測方法LRR完成物理主機(jī)狀態(tài)檢測,采用最小時間選擇MMT策略完成虛擬機(jī)選擇,采用經(jīng)典裝箱方法BPP完成虛擬機(jī)放置。(2) 無溫度與負(fù)載均衡的虛擬機(jī)遷移策略,稱為No-TA-VMM。(3) DVFS(Dynamic voltage and frequency scaling)虛擬機(jī)遷移策略[24]。TA-VMM的資源使用效率閾值還是設(shè)置為90%,溫度閾值設(shè)置為343 K。 圖4顯示了TA-VMM模型與其他幾個模型比較的結(jié)果,主要統(tǒng)計的是24小時的總體能量消耗??梢钥闯鯰A-VMM模型使一個云數(shù)據(jù)中心具有最小的能量消耗25.64 kWh;在No-TA-VMM能量管理模型中,有150.68 kWh的能量消耗;DVFS模型有52.98 kWh的能量消耗;LRR-MMT-BPP虛擬機(jī)遷移策略只有28.9 kWh的能量消耗,性能與TA-VMM最接近。所以可得結(jié)論:(1) 云數(shù)據(jù)中心必須使用虛擬機(jī)遷移策略;(2) 虛擬機(jī)遷移必須充分考慮物理主機(jī)的溫度情況才可以更好地降低總體能量消耗;(3) TA-VMM性能優(yōu)于常見的其他虛擬機(jī)遷移模型。 圖4 模型總體能量消耗性能比較 本文提出云數(shù)據(jù)中心基于溫度感知的虛擬機(jī)遷移策略TA-VMM,它對物理主機(jī)狀態(tài)檢測、虛擬機(jī)選擇、虛擬機(jī)放置的各個階段都進(jìn)行了優(yōu)化。仿真結(jié)果表明,溫度閾值的調(diào)整對云數(shù)據(jù)中心的性能具有很大的影響,與其他的虛擬機(jī)遷移策略比較起來,TA-VMM在總體能量消耗上具有優(yōu)勢。TA-VMM模型給構(gòu)造綠色云數(shù)據(jù)中心的企業(yè)提供了一個新的思路,溫度感知的虛擬機(jī)遷移策略在一定程度上可以更好地降低能量消耗。4 TA-VMM仿真與性能分析
4.1 仿真環(huán)境與性能指標(biāo)
4.2 溫度變化的測試
4.3 與其他遷移模型的比較
5 結(jié) 語