李 攀 陳 平 劉秋菊
1(濟源職業(yè)技術(shù)學院 河南 濟源 459000)
2(鄭州工程技術(shù)學院 河南 鄭州 450044)
云計算將傳統(tǒng)的計算能力獲取模式轉(zhuǎn)變?yōu)楫斍暗姆兆庥媚J絒1],基于資源的實際使用情況,按需以即付即用的彈性服務利用方式向用戶提供資源。云數(shù)據(jù)中心是云服務的支撐基礎設施。為了適應巨量規(guī)模云服務的需求增長,數(shù)據(jù)中心需要配置數(shù)以千計的服務器以滿足這種計算需求。然而,數(shù)據(jù)中心同時需要消耗巨大的能量提供云服務。根據(jù)美國能源部的報告[2],美國的數(shù)據(jù)中心消耗了其國家總能量的2%(約700億kW·h)。數(shù)據(jù)中心不僅消耗能量,同時還會產(chǎn)生巨量的溫室氣體,導致很高的碳排放。具體地,每年有430億噸CO2排放,每季度在以13%的速度增長[3-4]。因此,改善數(shù)據(jù)中心能效對于云計算的可持續(xù)發(fā)展和營運代價將是至關(guān)重要的。
云數(shù)據(jù)中心的主要能耗來源于計算系統(tǒng)和冷卻系統(tǒng),基本上,冷卻系統(tǒng)的能耗等于計算系統(tǒng)的能耗[5]。因此,數(shù)據(jù)中心資源管理系統(tǒng)需要同步考慮計算和冷卻系統(tǒng),從而實現(xiàn)全局的整體能效。
為了降低計算能耗,將負載合并至更少的主機上是一種有效方法,這樣可以保持未使用的主機處于低功能狀態(tài)[6-9]。然而,這種激進的合并可能導致局部熱點的產(chǎn)生。熱點主機的產(chǎn)生對于整個數(shù)據(jù)中心系統(tǒng)的可靠性具有很大的不利影響[10]。此外,若超過主機的溫度閾值也會導致CPU硅組成的損壞,進而導致主機的失效。而且,為了進一步解決散熱問題,冷卻系統(tǒng)會傳輸很多的冷空氣進而增加冷卻系統(tǒng)的代價。而通過最優(yōu)的負載分布的熱量管理方法可以有效避免熱點出現(xiàn),并同步降低數(shù)據(jù)中心的能耗。
數(shù)據(jù)中心的溫度變化也與多個因素相關(guān)。首先,主機功耗所揮發(fā)的熱量會分布至數(shù)據(jù)中心環(huán)境中[11],這種功耗與資源的利用率是成正比的。其次,機房空調(diào)系統(tǒng)CRAC所提供的冷空氣本身也會攜帶一定溫度,即所謂的供冷溫度。最后,研究表明主機的入口溫度具有時空現(xiàn)象[12]。從一臺主機所揮發(fā)的熱量會影響其他主機的溫度。由于熱空氣熱力學的特征,這種熱量會在數(shù)據(jù)中心內(nèi)循環(huán)存在,經(jīng)過主機的空氣并不會完全到達回流口,部分仍將留在主機所有空間,此時,解決這種時空特征也可以優(yōu)化能量使用。另一方面,估算數(shù)據(jù)中心溫度也有一定難度,目前主要有三種方法。第一種方法是計算流體動態(tài)模型進行精確預測[13],然而這種方法固定的復雜性使其利用在實時在線調(diào)度問題上計算代價太高,不可行。第二種方法是利用機器學習的預測模型,這種方法極大地依賴于預測模型和數(shù)據(jù)的數(shù)量和質(zhì)量。第三種方法是分析模型,主要根據(jù)熱量的熱力學特征和數(shù)據(jù)中心物理屬性進行預測。
動態(tài)虛擬機合并是數(shù)據(jù)中心能耗節(jié)省的有效手段。而這些合并算法對于實體布局和物理主機的位置并不可知。由于數(shù)據(jù)中心內(nèi)部溫度的分布,將負載合并至較少的主機上并不一定會節(jié)省能耗,甚至可能導致冷卻系統(tǒng)的代價升高和創(chuàng)建一些熱點主機。但部分的合并能解決部分能耗問題。如文獻[14]在異構(gòu)數(shù)據(jù)中心中提出一種功耗和溫度感知的負載分配算法,文獻[15]提出基于DVFS的對偶時空感知的作業(yè)調(diào)度算法,但是這些方案均不直接應用于虛擬云數(shù)據(jù)中心中。
本文綜合考慮了主機利用率、主機溫度、主機功耗、冷卻系統(tǒng)功耗,以及主機可靠性間的相互關(guān)系,建立了確保主機可靠性的冗余模型,在主動避免產(chǎn)生機架熱點的情況下,可以實現(xiàn)動態(tài)的虛擬機部署決策,在降低數(shù)據(jù)中心總體能耗的前提下,確保主機服務的可靠性。仿真實驗驗證了算法在能效提高和性能提升上的優(yōu)勢。
云數(shù)據(jù)中心中的虛擬機部署問題有多個需要考慮的性能評估因素,為了建立考慮能效和可靠性的虛擬機部署的性能模型,本節(jié)將討論:主機利用率與功耗間的關(guān)系,主機利用率與主機熱量間的關(guān)系,主機利用率與冷卻系統(tǒng)功耗間的關(guān)系,主機熱量與主機可靠性間的關(guān)系,以及建立一個冗余模型在給定的主機溫度下獲得主機的目標可靠性。
由于數(shù)據(jù)中心中主機的實際利用率一般較低,通過利用虛擬機技術(shù)將主機運行整合至數(shù)量較少的主機上(替代以較低的利用率運行所有可用主機)的方式可以降低主機功耗。為了最小化主機能耗,需要以集中的方式將虛擬機部署至數(shù)據(jù)較少的主機上。將虛擬機部署至一臺主機上即可增加主機的利用率,如此,主機利用率與主機功耗擁有以下關(guān)系:
Ps(u)=Pidle+u×(Pmax-Pidle)
(1)
式中:u代表主機利用率;Pidle代表主機在空閑狀態(tài)時的功耗;Pmax代表主機在100%利用率時的功耗。即使主機在空閑狀態(tài),仍將消耗能量。如果數(shù)據(jù)中心中的一臺主機僅提供一種服務,那么當它無法滿足來自用戶的大量請求時,其資源利用率將較低。因此,通過虛擬機部署的主機合并方法可以節(jié)省數(shù)據(jù)中心的主機能耗。
多數(shù)的數(shù)據(jù)中心功耗消耗于遷移主機散發(fā)的熱量?;旧?,數(shù)據(jù)中心冷卻系統(tǒng)的功耗等于計算系統(tǒng)的功耗,這表明冷卻系統(tǒng)需要持續(xù)運行以確保遷移來自主機所散發(fā)的大量熱量。因此,降低主機本身的能耗與降低主機的熱量散發(fā)對于整個數(shù)據(jù)中心而言具有相同的重要性。主機產(chǎn)生的熱量(溫度)與主機功耗的關(guān)系為[16]:
Tout=Tin+K×Ps(u)
(2)
式中:Tin代表提供給主機降溫的冷氣溫度;Ps(u)代表主機功耗,為主機利用率的函數(shù);K代表一個常量,K=1/ρfcp,ρ代表空氣密度,為1.19 kg/m3,f代表氣流速率,為0.245 4 m3/s,cp代表空氣比熱,為1 005 J/(kg·K)。
數(shù)據(jù)中心中的空調(diào)系統(tǒng)的目的是快速地遷移主機的熱量。由于主機所散發(fā)的空氣溫度會隨著主機利用率的增加而增加,此時需要更多的冷卻熱量。對于高度整合的服務器機架,如刀片服務器,需要專用的機架空調(diào)系統(tǒng),由于主機可能釋放的熱量要高于冷卻系統(tǒng)的制冷能力。數(shù)據(jù)中心的空調(diào)系統(tǒng)可劃分為兩種類型:外部空氣冷卻法和水冷卻法。水冷卻系統(tǒng)的功耗可表示為:
(3)
式中:性能度量系數(shù)CoP表示冷卻系統(tǒng)用于揮發(fā)主機產(chǎn)生熱量的功耗,可表示為:
(4)
式中:Tsup代表空調(diào)系統(tǒng)揮發(fā)的空氣溫度(單位:℃)。如果Tsup設置為預定義的主機穩(wěn)定運行的最大值,則冷卻系統(tǒng)的功耗與主機利用率存在線性關(guān)系。因此,虛擬機部署可以改變主機利用率,不僅可以影響主機功耗,而且還可以影響冷卻系統(tǒng)的功耗。
由于主機是由大量的復雜半導體元器件所構(gòu)成,正常的運行必須保持其合適的溫度和濕度。如果虛擬機被部署至數(shù)量較少的主機上,以此降低主機的使用數(shù)量,則可能產(chǎn)生熱量島,即熱點主機,這反過來會影響主機長周期運行的可靠性,甚至不利于能耗的降低。根據(jù)文獻[17]的研究,主機的環(huán)境溫度與主機可靠性有直接關(guān)系。圖1為主機的相對失效率與主機溫度的關(guān)系。假設主機相對失效率為1時的溫度為20 ℃,則根據(jù)溫度主機將有不同的失效概率。在35 ℃時,主機失效率是主機運行于20 ℃的1.6倍。相當于,如果數(shù)據(jù)中心擁有10 000臺主機運行于20 ℃,則將有100臺主機在給定周期內(nèi)會失效。若溫度增加至40 ℃,主機相對失效率將提高1.66倍,這表明將有166臺主機出現(xiàn)失效。因此,為了降低主機的失效率,冷卻系統(tǒng)需要運行維持一個合適的室內(nèi)溫度,則備份主機也必須有充分的冗余準備。
圖1 主機溫度與相對失效率間的關(guān)系
本文利用可用性作為描述主機可靠性的性能指標??捎眯远x為系統(tǒng)在給定時間內(nèi)的系統(tǒng)可用的概率[18]:
(5)
式中:MTBF代表主機失效間的平均時間,即系統(tǒng)的平均生命周期;MTTR代表主機修復的平均時間,即主機出現(xiàn)失效后修復系統(tǒng)需要的平均時間。
為了改進主機可靠性,需要冗余主機作為備份。一旦應用主機冗余,則需要考慮主機并行連接計算主機可用性。假設擁有N個工作主機和一個備份主機,表示為N:1冗余,其中N代表冗余率。當N個工作主機中的一臺失效時,備份系統(tǒng)可以代替失效主機工作。這種類型的主機聯(lián)接可建模為M/M/1/N+1/N+1的隊列模型[19],如圖2所示。圖中每個狀態(tài)上的數(shù)字代表失效主機的數(shù)量,λ代表平均失效發(fā)生率,等于1/MTBF,μ代表平均失效完成率,等于1/MTTR。基于以上的隊列模型,應用冗余的主機可用性可通過以下方式計算。k個主機失效的概率為:
(6)
式中:k=1,2,…,N+1。
(7)
圖2 基于系統(tǒng)可靠性的M/M/1/N+1/N+1隊列模型
由于當所有主機均可用(P0)或僅有一個主機失效時(P1),主機即可用。擁有一個備份主機A時N個個體主機的可用性可計算為:
(8)
現(xiàn)在計算溫度在20 ℃和40 ℃時主機的可用性以及兩種情況下的主機冗余率。根據(jù)圖1,溫度為40 ℃時,其失效率比20 ℃時高66%。為了利用式(8),假設在給定周期內(nèi)溫度為20 ℃時主機失效發(fā)生率(λ=1/MTBF)為0.001,即10 000個主機擁有10個失效。因此,主機失效發(fā)生率為0.001 66,相當于10 000個主機中有16.6個失效。如果MTTR設置為1小時,則失效完成率μ變?yōu)?。利用式(8),假設數(shù)據(jù)中心中一個主機的目標可用性是0.999 9,則其溫度需要維持在20 ℃,備份主機需要在每9個工作主機間提供一次。對于數(shù)據(jù)中心溫度在40 ℃的情況,備份主機則需要在每6個工作主機間提供一次。
對于備份主機,其能耗取決于它是否為熱備份或冷待機。若運行在熱備份,則主機為空閑狀態(tài),擁有空閑能耗,由于需要隨時準備主機失效的發(fā)生。冷待機狀態(tài)則僅僅消耗最小的能量。
為了節(jié)省數(shù)據(jù)中心的能耗,需要將虛擬機盡可能部署至數(shù)量較少的主機上。利用虛擬化技術(shù)可以將大量的虛擬機合并至較少數(shù)量的主機上,從而降低整個主機的能耗,以及冷卻系統(tǒng)的功耗。然而,過度的合并勢必會導致熱點主機的出現(xiàn),這反過來會影響設備的可靠性。為了確保運行于高溫環(huán)境下的主機的可靠性,需要考慮主機的冗余機制。本節(jié)提出一種同步考慮能耗節(jié)省和主機可靠性的虛擬機部署算法。算法的目標是最小化容納虛擬機部署請求的主機功耗,并同時考慮避免由于主機密集部署下的熱點主機,并滿足主機的目標可靠性。假設J表示M臺主機的集合,I表示D臺虛擬機的集合,以上的最優(yōu)化問題可以形式化為:
目標函數(shù):
(9)
約束條件:
(10)
xij∈{0,1} ?i∈I,?j∈J
(11)
Tj≤Tth?j∈J
(12)
(13)
(14)
虛擬機部署算法的目標是最小化所有主機的總體功耗。如式(1)所示,主機j的功耗P為主機利用率Sj的函數(shù)。式(10)表明擁有需求V的虛擬機將盡可能地部署于主機上,Vi表示虛擬機i的資源請求量,需要小于或等于一臺主機的全部能力。假設一臺主機的全部能力為1,一臺主機的利用率Sj∈R為0至1之間。式(11)定義主機j與虛擬機i間的部署關(guān)系,xij=1代表虛擬機i部署于主機h上,xij=0代表未部署。式(12)表明服務器機架的出口溫度Tj(主機j的位置處)需小于或等于最大可允許的溫度Tth,Tj和Tth均為實數(shù)值,Tj由式(2)和式(1)計算,表示主機利用率Sj的函數(shù)。即使有主機可以滿足虛擬機的部署請求,若出口溫度超過最大溫度,虛擬機也無法進行部署,這樣可以避免產(chǎn)生熱點。式(13)確保成功部署在主機上的虛擬機數(shù)量小于或等于用戶請求的虛擬機數(shù)量。式(14)表明用戶請求的虛擬機的總資源需求量之和需要小于或等于所有主機的能力之和。
擁有約束條件的虛擬機部署目標最優(yōu)化問題是NP問題,本文設計一種啟發(fā)式算法,如算法1所示。
算法1能效可靠的虛擬機部署算法
輸入:服務器集合S,目標可靠性的冗余率,最大可允許溫度Tth,虛擬機需求集合V。
輸出:虛擬機映射解。
1. 對虛擬機請求進行降序排列
2. fori=1 toD
//虛擬機請求集合
3.Savailable=1-S
//可用主機能力,S是主機利用率
4. forj=1 toM
//主機集合
5. ifV[i]≤Savailable[j]
//請求量小于等于主機可用量
6.S[j]=S[j]+V[i]
//添加虛擬機請求i至主機j
7. 計算主機功耗和主機所在機架的整體功耗
8. 計算主機所在機架的出口溫度
9. ifT≥Tth
//避免熱點機架,需要搜索其他可用主機
10. 到下一服務器
11.S[j]=S[j]-V[i]
//從主機j上刪除虛擬機請求i
12. end if
13. end if
//代表沒有可用主機
14. 到下一服務器
15. if the number of working servers>N
//確保主機目標可靠性
16. 添加備份主機
17. 計算主機功耗
18. end if
19. end for
20. end for
初始條件下,有多個算法的輸入?yún)?shù),包括:主機集合(S[j],j=1,2,…,M,M是數(shù)據(jù)中心中主機的總量)、主機最大允許溫度Tth、主機運行的目標可靠性A、用戶請求的虛擬機量(V[i],i=1,2,…,D,D是到達數(shù)據(jù)中心的虛擬機總量)。S[i]表示主機j的利用率。算法開始時,需要通過式(8)計算滿足主機目標可靠性的冗余率N。步驟1對虛擬機請求量做降序排列??扇菁{虛擬機部署要求的可用主機被按序搜索,即步驟3-步驟5。如果一臺主機擁有足夠的資源能力容納虛擬機部署請求,虛擬機即部署于該主機上,即步驟6。步驟7計算主機功耗P[j]和主機所處位置的機架。由于超載主機密集部署在一個主機機架時會產(chǎn)生熱點,步驟8需要計算每個主機機架的出口溫度Tout。即使有一個可用主機可以容納虛擬機,如果出口溫度超過最大允許的溫度,也需要搜索其他可用主機用于虛擬機部署,即步驟9-步驟11。
另一方面,為了實現(xiàn)主機的目標可靠性,需要安排備份主機。根據(jù)前文所述,當目標溫度給定時,可以計算冗余率N來確保主機的可靠性。隨著虛擬機的部署,如果工作主機的數(shù)量增加,并超過冗余率N,則需要部署附加的備份主機。備份主機的功耗需要加至數(shù)據(jù)中心的總體功耗中,即步驟15-步驟17。
算法首先對請求的虛擬機做降序排列(步驟1),排序算法的時間復雜度為O(nlogn),n為待部署的虛擬機數(shù)量。步驟2-步驟20將所有虛擬機部署至可用主機上,時間復雜度為O(n)。步驟4-步驟19從最低ID至最高ID的主機間尋找一臺可容納虛擬機的主機,時間復雜度為O(m),m為所有主機的數(shù)量。在搜索主機期間,一部分需要計算決定是否產(chǎn)生一個熱點,即步驟9-步驟13,另一部分需要計算備份主機,即步驟15-步驟18,這部分并不會影響算法的時間復雜度。因此,算法的時間復雜度為O(nm)。為了改進算法的運行時間,搜索主機部分可以修改為二進制搜索方法,則算法時間復雜度為O(nlogm)。仿真中,算法試圖從較低ID搜索主機,利用較低ID的可用主機部署虛擬機。隨著虛擬機數(shù)量n的增加,仿真算法的運行時間呈線性增加。當虛擬機數(shù)量較少時,主機數(shù)量m對算法運行時間影響較小,然而,隨著虛擬機數(shù)量的增加,它將進一步影響算法運行時間。這是由于虛擬機數(shù)量較少時,可搜索的主機數(shù)量受限,而在大量的虛擬機數(shù)量下,待搜索的主機數(shù)量增加,就增加了算法的運行時間。
根據(jù)前文所述,主機設備的失效率會隨著主機運行溫度的增加而增加,因此,有必要配置備份主機以備工作主機出現(xiàn)失效。表1給出了根據(jù)主機運行溫度和主機目標可靠性得到的請求冗余率,可由1.5節(jié)中的相關(guān)計算公式得到。冗余率代表共享一個備份主機的主機數(shù)量。主機溫度和目標可靠性要求越高,則冗余率越低。例如:如果主機溫度為20 ℃,目標可靠性為0.999 5,則需要一臺備份主機服務于21臺工作主機。然而,溫度為45 ℃,目標可靠性為0.999 95時,必須為三臺工作主機預留一臺備份主機。即:失效率越高,或目標可靠性越高,則所要求的備份主機也越多。根據(jù)文獻[17]設計的ASHRAE模型,本文假設最大允許溫度為70 ℃,主機的目標可靠性為0.999 95進行性能評估。根據(jù)這些假設條件,可知每5臺工作主機的失效需要配置一臺備份主機。
表1 確保目標可靠性的冗余率
仿真環(huán)境如下:主機總共有1 000臺,每10臺配置一個主機機架。所有主機的硬件和軟件運行環(huán)境是相同的。用戶請求的云服務以請求的虛擬機表示,該虛擬機對于主機的資源請求服從正態(tài)的均勻分布。假設主機處于待機狀態(tài)時的功耗為5 W,處于空閑狀態(tài)時的功耗為120 W,處于最大利用率時的功耗為450 W。冷卻系統(tǒng)提供至主機的空氣溫度為20 ℃,主機最大允許的溫度為70 ℃。假設來自于主機的熱量揮發(fā)不會再次流入該主機環(huán)境。算法在MATLAB環(huán)境下進行仿真。
選取的基準算法及主要思想如下:Random算法將所有虛擬機隨機部署在所選主機上,不考慮主機熱量或功耗狀態(tài)。RR算法即輪轉(zhuǎn)法,所有虛擬機以輪轉(zhuǎn)方式部署至主機上,試圖以均勻方式將負載分布至活躍主機上。PABFD算法[7]是一種基于功耗感知的修改最佳適應算法,但僅考慮了合并過程中的CPU利用率,而沒有考慮熱量問題。GRANITE算法[20]是一種以最小化數(shù)據(jù)中心能耗為目標的貪婪虛擬機調(diào)度算法,可以動態(tài)地進行虛擬機遷移,從而將負載均勻分配,使主機溫度在確定的溫度閾值以內(nèi)。TAS算法[21]是一種溫度感知調(diào)度算法,所選目標主機是溫度最低的主機。
能耗:數(shù)據(jù)中心所有主機運行帶來的能耗,單位kW。
SLA違例:該指標描述由于動態(tài)合并帶來的性能開銷,定義為式(15)。由于過量訂購原因,主機可能達到滿利用率100%,此時,這類主機上的虛擬機會表現(xiàn)出較差的性能,即出現(xiàn)單個活動主機的SLA違例SLATAH,定義為式(16)。進一步,由于虛擬機的遷移所帶動的虛擬機合并還會帶到性能的開銷。這種虛擬機遷移所帶來的性能下降PDM可定義為式(17)。
SLAviolation=SLATAH×PDM
(15)
(16)
(17)
式中:N為主機總量;Tmax為主機經(jīng)歷100%占用的時間;Tactive為主機的總活躍時間;M為虛擬機總量;pdmj為由于虛擬機j遷移帶來的性能下降,實驗中設置為10%;Cdemandj為虛擬機j在其生命周期內(nèi)請求的CPU資源總量。總體SLA違例SLAviolation為兩個指標的乘積。
熱點主機:描述超過門限值溫度的主機數(shù)量。
活動主機:描述整個實驗過程中活躍主機的數(shù)量。
峰值溫度:描述在調(diào)度間隔中任意主機的最高溫度。
圖3是算法的能耗情況,隨機算法最高能耗有363 kW·h,RR、PABFD、GRANITE和TAS算法分別達到342 kW·h、235 kW·h、265 kW·h、327 kW·h,本文算法約為250 kW·h,同時還具有95%的置信區(qū)域CI,即(247,252)。換言之,本文算法能耗較隨機算法、RR、GRANITE和TAS算法分別降低了31%、27%、6%、23%。較PABFD算法略高6%,這是由于PABFD算法進行了更極端的虛擬機合并,所使用的主機數(shù)量更少。但這種極端合并忽略了潛在的熱量約束,可能導致熱點。
圖3 能耗情況
圖4是算法得到熱點主機數(shù)量情況,盡管PABFD比本文算法的能耗更少,但其創(chuàng)造了大量熱點主機。隨機算法的隨機順序?qū)τ谀芎暮蜔狳c的產(chǎn)生均有較大影響,熱點最多。RR算法的均勻分布策略比較隨機算法具有一定優(yōu)勢,熱點降低至約416臺,然而其能耗太高。PABFD約有123臺熱點主機,本文算法沒有產(chǎn)生一臺熱點主機。本文算法雖然能耗略高于PABFD,但沒有產(chǎn)生熱點,其優(yōu)勢在于:1) 溫度過高可能使得服務器失效;2) 熱點產(chǎn)生后,數(shù)據(jù)中心管理員需要進一步降低冷卻溫度,這會進一步增加冷卻系統(tǒng)的能耗。
圖4 熱點主機數(shù)量
圖5是算法的SLA違例情況。隨機算法、PABFD和TAS的SLA違例較多,其他三種算法較少。盡管RR算法在做出部署決策時沒有考慮SLA需求,但其固有的負載均勻分布的特征較隨機算法、PABFD和TAS算法還是可以降低一定的SLA違例的。本文算法在SLA違例方面已經(jīng)表現(xiàn)得足夠優(yōu)秀,同時還可以降低能耗和避免熱點主機的產(chǎn)生,綜合性能最優(yōu)。
圖5 SLA違例
圖6是算法的活躍主機數(shù)量情況。標記時間是每隔一小時得到的均值結(jié)果。PABFD得到更少的活躍主機,而本文算法在PABFD的基礎上仍有增加,GRANITE則又高于本文算法,這種結(jié)果也可從圖3的能耗結(jié)果中推斷出來。隨機算法擁有最多的活躍主機數(shù)量,TAS的增加幅度最小,并小于RR算法。同時,活躍主機數(shù)量、熱點主機、能耗之間的關(guān)系也可被推斷出來,擁有更少活躍主機的算法也傾向于會產(chǎn)生較多的熱點主機。隨機算法顯得比較異常,因為它是隨機選擇主機的??傮w來看,活躍主機數(shù)量在所有算法間并沒有表現(xiàn)出很大的不同,原因在于算法在超載主機和低載主機發(fā)現(xiàn)機制上采用了相同的策略。本文算法雖然沒有得到最少的活躍主機數(shù)量,但相比PABFD能夠避免負載過于集中,溫度過高并避免熱點主機的產(chǎn)生。
圖6 平均資源利用率
圖7是算法中主機的峰值溫度情況。本文由于利用能效可靠的虛擬機部署機制從未超過紅線溫度,并接近于紅線溫度,這樣極大地提高了資源利用率,降低了冷卻代價。TAS總是運行在一個更低的溫度等級,而PABFD幾乎均運行在紅線溫度周圍,甚至超過紅線溫度70度。GRANITE的主機峰值溫度一直是最低的,由于該算法僅僅考慮了溫度閾值,高溫度的主機上的虛擬機會被遷移出去,從而均衡負載。盡管RR是均勻分配負載,但由于主機性能的異差以及未進行熱量感知,部分主機會超過紅線溫度。同時需要注意,圖中的溫度結(jié)果并非所有主機的溫度均值結(jié)果,而是所有主機中的最高溫度。
圖7 主機的峰值溫度
如果數(shù)據(jù)中心中的主機無法提供滿足用戶請求的虛擬機部署要求,虛擬機部署會出現(xiàn)失效。虛擬機部署的失效率結(jié)果如表2所示。當虛擬機部署請求為1 000和1 500時,沒有出現(xiàn)部署失效。但是,在部署數(shù)量為2 000時,由于沒有可用的主機,虛擬機部署出現(xiàn)了失效。本文算法通過嚴格控制部署數(shù)量,使得不能超過主機目標溫度,其失效率略微高于對比算法。但經(jīng)過100次重復實驗后得到的標準差結(jié)果已經(jīng)較為接近??紤]到服務的質(zhì)量,本文算法在本項指標上似乎并沒有優(yōu)勢,但對于確保主機熱量控制上,本文算法是最優(yōu)的。實際運行過程中,主機的出口溫度會隨著虛擬機部署請求的到達或離開出現(xiàn)變化,因此,本文模型的瞬間主機熱量應該更低。因此,實際出現(xiàn)的未部署的失效虛擬機數(shù)量應該小于仿真實驗中得到的結(jié)果。
表2 失效虛擬機部署的數(shù)量
本文提出一種基于能效和可靠性的虛擬機部署算法。算法綜合考慮了主機利用率、主機溫度、主機功耗、冷卻系統(tǒng)功耗、主機可靠性間的相互關(guān)系,建立了確保主機可靠性的冗余模型,在主動避免產(chǎn)生機架熱點的情況下,可以實現(xiàn)動態(tài)的虛擬機部署決策,在降低數(shù)據(jù)中心總體能耗的前提下,保障主機服務的可靠性。分析了算法的時間復雜度,對算法進行了仿真測試。仿真結(jié)果表明,所提算法不僅可以節(jié)省更多能耗,避免熱點機架,而且性能保障也更好。