喻新榮,李志華,2,閆成雨,李雙俐
(1.江南大學(xué) 物聯(lián)網(wǎng)工程學(xué)院,江蘇 無(wú)錫 214122; 2.物聯(lián)網(wǎng)應(yīng)用技術(shù)教育部工程研究中心(江南大學(xué)),江蘇 無(wú)錫 214122)(*通信作者電子郵箱wxzhli@aliyun.com)
云計(jì)算是一種新興的計(jì)算模式,它通過(guò)互聯(lián)網(wǎng)為全球提供可擴(kuò)展、按需供應(yīng)的服務(wù)[1],但是,云計(jì)算的廣泛使用使得數(shù)據(jù)中心的能源消耗不斷攀升[2]。而在整個(gè)數(shù)據(jù)中心,物理主機(jī)的能源消耗最為突出,其能耗與CPU的利用率近似呈線性關(guān)系[3],且空閑狀態(tài)的主機(jī)能耗相當(dāng)于其能耗峰值的70%,因此,如何減少低利用率物理主機(jī),同時(shí)保持良好的系統(tǒng)性能,是數(shù)據(jù)中心亟待解決的問(wèn)題之一[4]。虛擬機(jī)整合(Virtual Machine Consolidation, VMC)通過(guò)在單個(gè)主機(jī)上部署多個(gè)虛擬機(jī),提高主機(jī)CPU的利用率并關(guān)閉低利用率主機(jī),從而降低數(shù)據(jù)中心的能源消耗[5];同時(shí),周期性的整合能夠及時(shí)調(diào)整虛擬機(jī)和主機(jī)的映射關(guān)系,緩解由于虛擬機(jī)資源請(qǐng)求變化導(dǎo)致的主機(jī)過(guò)載風(fēng)險(xiǎn),從而提升數(shù)據(jù)中心的服務(wù)質(zhì)量(Quality of Service, QoS)。但是,虛擬機(jī)整合是一個(gè)NP問(wèn)題[6],難以在多項(xiàng)式時(shí)間內(nèi)求解,因此,文獻(xiàn)[7]將整合問(wèn)題進(jìn)行分解,通過(guò)解決過(guò)載物理主機(jī)檢測(cè)、待遷移虛擬機(jī)選擇、遷移虛擬機(jī)放置以及活動(dòng)物理主機(jī)規(guī)模收縮四個(gè)子問(wèn)題來(lái)整合虛擬機(jī)。
文獻(xiàn)[7]提出了靜態(tài)閾值(Static Threshold, ST)算法進(jìn)行過(guò)載物理主機(jī)檢測(cè),該算法通過(guò)給活動(dòng)物理主機(jī)設(shè)置CPU資源利用率的上限和下限,來(lái)確保所有活動(dòng)物理主機(jī)處于一個(gè)相對(duì)合理的資源利用率區(qū)間。然而,虛擬機(jī)的資源需求具有隨機(jī)性,設(shè)置固定的閾值難以適應(yīng)各活動(dòng)物理主機(jī)的工作負(fù)載變化,使得確保服務(wù)質(zhì)量和節(jié)約能耗無(wú)法同時(shí)兼顧。
針對(duì)虛擬機(jī)工作負(fù)載的隨機(jī)性,文獻(xiàn)[8]提出了自適應(yīng)主機(jī)過(guò)載檢測(cè)算法,包括絕對(duì)中位偏差(Median Absolute Deviation, MAD)算法、四分位距 (InterQuartile Range, IQR)算法和局部回歸 (Local Regression, LR)算法。其中,前兩個(gè)算法分別通過(guò)主機(jī)近期CPU資源利用率的絕對(duì)中位偏差和四分位距來(lái)確定主機(jī)上資源請(qǐng)求的波動(dòng)區(qū)間,根據(jù)波動(dòng)區(qū)間自適應(yīng)地調(diào)整主機(jī)當(dāng)前的過(guò)載閾值并用于過(guò)載檢測(cè);LR算法通過(guò)主機(jī)CPU資源利用率歷史記錄直接預(yù)測(cè)下一時(shí)刻的資源利用率,然后根據(jù)資源利用率預(yù)測(cè)值判斷主機(jī)是否過(guò)載。同時(shí),文獻(xiàn)[8]還提出了最小遷移時(shí)間(Minimum Migration Time, MMT)、隨機(jī)選擇(Random Choice, RC)和最大相關(guān) (Maximum Correlation, MC)三個(gè)虛擬機(jī)選擇算法以及用于放置虛擬機(jī)的能耗感知最適降序(Power Aware Best Fit Decreasing, PABFD)算法。通過(guò)組合不同的過(guò)載檢測(cè)算法和選擇策略進(jìn)行對(duì)比研究,證實(shí)使用MAD與MMT相結(jié)合的整合方法能夠有效地降低數(shù)據(jù)中心能耗并且確保服務(wù)質(zhì)量;但是,主機(jī)負(fù)載出現(xiàn)突然性的波動(dòng)會(huì)增大MAD算法的絕對(duì)中位偏差,導(dǎo)致過(guò)載閾值不精確,進(jìn)一步影響節(jié)約能耗的目標(biāo)。PABFD算法在放置虛擬機(jī)時(shí)傾向于將虛擬機(jī)部署在資源利用率較高的主機(jī)上,容易導(dǎo)致過(guò)度的虛擬機(jī)整合,從而影響服務(wù)質(zhì)量。
從已有的虛擬機(jī)整合方法中發(fā)現(xiàn),精確的工作負(fù)載預(yù)測(cè)對(duì)優(yōu)化整合目標(biāo)大有裨益。其中,文獻(xiàn)[9]使用三次指數(shù)平滑算法(Holt-Winters’ exponential smoothing method)對(duì)虛擬機(jī)負(fù)載進(jìn)行預(yù)測(cè),并且針對(duì)三次指數(shù)平滑法只能進(jìn)行短期預(yù)測(cè)這一缺點(diǎn),提出參數(shù)自動(dòng)優(yōu)化的模型,該模型能夠調(diào)整預(yù)測(cè)模型的參數(shù)和設(shè)置合理的預(yù)測(cè)周期長(zhǎng)度;文獻(xiàn)[10]提出了基于線性回歸的CPU資源利用率預(yù)測(cè)(Linear Regression-based CPU Utilization Prediction, LiRCUP)算法,通過(guò)線性回歸對(duì)主機(jī)CPU資源使用情況進(jìn)行預(yù)測(cè),并利用預(yù)測(cè)結(jié)果進(jìn)行虛擬機(jī)整合。雖然上述的兩種方法在降低數(shù)據(jù)中心能耗方面表現(xiàn)優(yōu)秀,但都未對(duì)服務(wù)質(zhì)量進(jìn)行深入的研究。
本文在以往研究的基礎(chǔ)上,提出基于高斯混合模型的虛擬機(jī)整合(Gaussian Mixture Model-based Virtual Machine Consolidation, GMM-VMC)方法。該方法首先使用高斯混合模型(Gaussian Mixture Model, GMM)[15]為物理主機(jī)建立工作負(fù)載的隨機(jī)模型,通過(guò)該模型計(jì)算主機(jī)的過(guò)載概率;然后根據(jù)主機(jī)過(guò)載概率自適應(yīng)地計(jì)算各主機(jī)的過(guò)載閾值并用于主機(jī)過(guò)載檢測(cè)。當(dāng)過(guò)載主機(jī)上的虛擬機(jī)被選擇為待遷移虛擬機(jī)時(shí),該主機(jī)的過(guò)載概率會(huì)被重新計(jì)算并作為最后遷移選擇的依據(jù)之一;同樣在放置虛擬機(jī)時(shí),根據(jù)主機(jī)負(fù)載的高斯混合模型所計(jì)算的主機(jī)過(guò)載概率是確定最終虛擬機(jī)放置策略的參考依據(jù)。
為了清晰地描述本文觀點(diǎn)和論證相關(guān)方法,在此對(duì)云計(jì)算數(shù)據(jù)中心的一些相關(guān)概念進(jìn)行相應(yīng)描述。在一個(gè)數(shù)據(jù)中心里有許多不同配置的物理主機(jī)H={h1,h2,…,hn},物理主機(jī)hi有各自的CPU資源配置,可以表示為Ci;VM={vm1,vm2,…,vmm}是整個(gè)數(shù)據(jù)中心虛擬機(jī)的集合,這些虛擬機(jī)分別部署在不同的物理主機(jī)上,rj表示虛擬機(jī)vmjCPU資源請(qǐng)求的容量;VMi表示部署在主機(jī)hi上的虛擬機(jī)集合。當(dāng)虛擬機(jī)集合VMi部署在主機(jī)hi上并產(chǎn)生相應(yīng)的資源請(qǐng)求,那么主機(jī)接收到的CPU資源需求容量Di如式(1)所示,主機(jī)的CPU資源利用率如式(2)所示。
(1)
(2)
其中aj表示分配給虛擬機(jī)vmj的CPU資源量。
文獻(xiàn)[11-14]用正態(tài)分布來(lái)描述虛擬機(jī)上CPU資源請(qǐng)求的分布模型,并通過(guò)各自的方法將部署在物理主機(jī)上各虛擬機(jī)的負(fù)載模型進(jìn)行累加,從而得到主機(jī)CPU資源利用率的分布模型,但是,使用單峰正態(tài)分布去描述虛擬機(jī)資源需求的隨機(jī)模型不具備通用性,尤其是當(dāng)實(shí)際的資源需求為多峰分布時(shí),正態(tài)分布偏差較大,不能完全擬合資源需求的分布情況,因此,由累加虛擬機(jī)需求分布得到的物理主機(jī)負(fù)載分布模型也不夠準(zhǔn)確。針對(duì)這一問(wèn)題,本文使用高斯混合模型(GMM)對(duì)主機(jī)的負(fù)載分布進(jìn)行擬合。以下對(duì)在主機(jī)上建立GMM的具體過(guò)程進(jìn)行描述。
假設(shè)主機(jī)hi接收到的CPU資源需求Di服從某個(gè)隨機(jī)分布,該分布可用高斯混合模型來(lái)近似表示。若高斯混合模型是由K個(gè)高斯模型組成,那么Di的概率分布模型如式(3)所示:
(3)
Di的高斯混合模型參數(shù)將通過(guò)期望最大化(Expectation Maximization, EM)算法來(lái)估算,具體步驟如下所示:
步驟1設(shè)定高斯混合模型參數(shù)的初始值。
(4)
步驟3通過(guò)式(5)~(7)計(jì)算新一輪迭代的模型參數(shù):
(5)
(6)
(7)
步驟4重復(fù)以上兩個(gè)步驟,至模型參數(shù)收斂。
主機(jī)過(guò)載是指虛擬機(jī)請(qǐng)求的資源量超出了物理主機(jī)所能提供的最大資源量,從而導(dǎo)致虛擬機(jī)資源請(qǐng)求不能夠被滿足而影響云服務(wù)質(zhì)量的情況。結(jié)合1.2節(jié)介紹的隨機(jī)負(fù)載模型,可以對(duì)物理主機(jī)的過(guò)載概率進(jìn)行估計(jì),過(guò)載概率如式(8)所示。通過(guò)主機(jī)過(guò)載概率可以反映出當(dāng)前該主機(jī)面臨過(guò)載風(fēng)險(xiǎn)的大?。寒?dāng)過(guò)載風(fēng)險(xiǎn)較大時(shí),整合方法應(yīng)使主機(jī)預(yù)留充足的資源應(yīng)對(duì)負(fù)載變化,從而確保服務(wù)質(zhì)量;當(dāng)過(guò)載風(fēng)險(xiǎn)較小時(shí),主機(jī)的資源利用率應(yīng)適當(dāng)提高,從而達(dá)到降低數(shù)據(jù)中心能耗的目的。
(8)
由于數(shù)據(jù)中心的工作負(fù)載具有隨機(jī)性,活動(dòng)物理主機(jī)經(jīng)常面臨過(guò)載風(fēng)險(xiǎn)。一旦主機(jī)過(guò)載,就會(huì)對(duì)服務(wù)質(zhì)量和服務(wù)等級(jí)協(xié)議(Service Level Agreement, SLA)產(chǎn)生影響,因此,在進(jìn)行虛擬機(jī)整合時(shí),及時(shí)預(yù)測(cè)主機(jī)的負(fù)載變化,有利于主機(jī)規(guī)避過(guò)載風(fēng)險(xiǎn),確保云計(jì)算供應(yīng)商和用戶雙方的利益。
(9)
GAOHD算法描述如下。
算法1GAOHD算法。
輸入H;
輸出Hover。
步驟1獲取數(shù)據(jù)中心各物理主機(jī)H={h1,h2,…,hn},并按照當(dāng)前的順序,對(duì)每個(gè)主機(jī)進(jìn)行步驟2到步驟4的過(guò)載檢測(cè)。
步驟2使用EM算法估算主機(jī)hi的GMM參數(shù)。
步驟4將主機(jī)當(dāng)前的CPU資源利用率ui和過(guò)載閾值Ti進(jìn)行對(duì)比,如果ui>Ti,則將主機(jī)hi加入到過(guò)載主機(jī)集合中。
步驟5輸出過(guò)載物理主機(jī)集合Hover并結(jié)束。
GAOHD算法的時(shí)間開(kāi)銷主要來(lái)自于過(guò)載閾值的求解,而要計(jì)算過(guò)載閾值需要首先確定主機(jī)負(fù)載的高斯混合模型參數(shù)。因?yàn)槭褂肊M算法求解GMM參數(shù)的時(shí)間復(fù)雜度為O(ρ·K·N),所以GAOHD算法的時(shí)間復(fù)雜度為O(ρ·K·N·|Hactive|)。其中:ρ為EM算法迭代次數(shù),K為高斯混合模型中分模型的個(gè)數(shù),N為觀測(cè)數(shù)據(jù)長(zhǎng)度,|Hactive|為數(shù)據(jù)中心需要進(jìn)行過(guò)載檢測(cè)的活動(dòng)物理主機(jī)數(shù)量。最初的ST檢測(cè)算法求解主機(jī)過(guò)載閾值的時(shí)間復(fù)雜度為O(|Hactive|),但是ST算法在整合開(kāi)始時(shí)為所有物理主機(jī)設(shè)定統(tǒng)一的固定過(guò)載閾值,無(wú)法根據(jù)主機(jī)負(fù)載對(duì)檢測(cè)過(guò)程作出調(diào)整,難以適應(yīng)主機(jī)負(fù)載的變化。為克服固定閾值的缺陷,基于自適應(yīng)閾值的過(guò)載檢測(cè)算法被提出,其中最為經(jīng)典的MAD算法的時(shí)間復(fù)雜度為O(N·|Hactive|)。與MAD相比,GAOHD算法的復(fù)雜度明顯偏高,但是MAD算法在追求快速運(yùn)算的同時(shí)也忽略了對(duì)主機(jī)負(fù)載的準(zhǔn)確預(yù)測(cè),這一點(diǎn)從3.3節(jié)的實(shí)驗(yàn)結(jié)果部分可以看出,因此,GAOHD算法的目的是在合理的運(yùn)算時(shí)間內(nèi),盡可能準(zhǔn)確地預(yù)測(cè)主機(jī)負(fù)載變化。
物理主機(jī)的過(guò)載會(huì)給云服務(wù)的使用者和提供商的利益帶來(lái)影響,因此,解決物理主機(jī)過(guò)載就成為虛擬機(jī)整合過(guò)程中重要的部分。通常,解決過(guò)載的方式是將一些虛擬機(jī)從面臨過(guò)載風(fēng)險(xiǎn)或已經(jīng)過(guò)載的主機(jī)上遷出,緩解當(dāng)前主機(jī)上資源緊張的狀態(tài)。在進(jìn)行待遷移虛擬機(jī)選擇時(shí),需要考慮到遷移操作將會(huì)影響遷移中虛擬機(jī)的服務(wù)質(zhì)量,同時(shí)也要兼顧遷移的有效性即遷移選擇應(yīng)有助于當(dāng)前主機(jī)保持長(zhǎng)期的穩(wěn)定。
本文在MMT選擇算法的基礎(chǔ)上結(jié)合主機(jī)過(guò)載概率,提出最低內(nèi)存容量和過(guò)載概率選擇(Minimum RAM and Overload Probability Selection, MROPS)算法來(lái)進(jìn)行虛擬機(jī)選擇。該算法通過(guò)內(nèi)存和過(guò)載概率綜合指標(biāo)(Ram and Probability, RAP)進(jìn)行虛擬機(jī)選擇:
(10)
(11)
MROPS算法描述如下。
算法2MROPS算法。
輸入Hover;
輸出VMa。
步驟1獲取過(guò)載物理主機(jī)的集合Hover,并按照當(dāng)前的順序?qū)γ總€(gè)主機(jī)hi∈Hover進(jìn)行步驟2到步驟3的虛擬機(jī)選擇。
步驟2使用式(10)得到主機(jī)hi上遷出后的RAP指標(biāo),然后根據(jù)式(12)選擇出該指標(biāo)最小的虛擬機(jī):
(12)
并將vmmig加入當(dāng)前主機(jī)的待遷移虛擬機(jī)集合VMS中。
步驟3判斷當(dāng)前主機(jī)是否滿足式(11),如果不滿足則繼續(xù)對(duì)當(dāng)前主機(jī)執(zhí)行步驟2;否則,將當(dāng)前主機(jī)的待遷移虛擬機(jī)集合VMS加入到所有待遷移虛擬機(jī)集合VMa中,然后對(duì)下一個(gè)主機(jī)進(jìn)行虛擬機(jī)選擇。
步驟4輸出所有待遷移虛擬機(jī)集合VMa并結(jié)束。
MMT算法在進(jìn)行虛擬機(jī)選擇時(shí),主要參考虛擬機(jī)內(nèi)存的大小,采用該算法能夠確保主機(jī)負(fù)載的穩(wěn)定性。MMT算法的時(shí)間復(fù)雜度為O(|VMi|),其中|VMi|為主機(jī)上虛擬機(jī)的個(gè)數(shù)。MROPS算法在MMT算法的基礎(chǔ)上加入主機(jī)過(guò)載概率作為虛擬機(jī)選擇的參考指標(biāo),根據(jù)上一節(jié)對(duì)過(guò)載概率求解的分析,MROPS算法的時(shí)間復(fù)雜為O(ρ·K·N·|VMi|),MROPS算法雖然時(shí)間復(fù)雜度偏高,但是在降低整合過(guò)程中虛擬機(jī)的遷移次數(shù)和穩(wěn)定主機(jī)負(fù)載方面比MMT算法表現(xiàn)優(yōu)秀,具體的對(duì)比見(jiàn)3.3節(jié)。
待遷移虛擬機(jī)需要遷移到新的目的主機(jī)繼續(xù)運(yùn)行,當(dāng)虛擬機(jī)部署到目的主機(jī)上,該主機(jī)的資源需求必然發(fā)生變化,過(guò)載風(fēng)險(xiǎn)隨之提高,因此,合理的放置策略是在盡量降低主機(jī)過(guò)載風(fēng)險(xiǎn)的前提下提升主機(jī)資源利用率。
具體MOPP算法描述如下。
算法3MOPP算法。
輸入Ha,VMa;
輸出Map〈host,vm〉。
步驟1獲取適合放置虛擬機(jī)的活動(dòng)物理主機(jī)集合Ha∈{H-Hover-Hs}(Hs為處于休眠或關(guān)閉狀態(tài)的虛擬機(jī)集合)。
步驟2對(duì)待分配虛擬機(jī)按資源請(qǐng)求降序排列,并對(duì)集合中的每一個(gè)虛擬機(jī)進(jìn)行步驟3到步驟5的放置步驟。
步驟3將待遷移虛擬機(jī)vmj(vmj∈VMa)依次部署在Ha的各個(gè)主機(jī)上,并根據(jù)式(8)求得放置后各主機(jī)的過(guò)載概率。
步驟4根據(jù)式(13)選擇最優(yōu)的主機(jī)進(jìn)行放置:
(13)
步驟5將當(dāng)前求得的分配關(guān)系加入到分配映射集合Map〈host,vm〉中。
步驟6輸出待分配虛擬機(jī)新的放置關(guān)系集合。
MOPP算法與經(jīng)典的PABFD算法有著明顯的不同。PABFD主要關(guān)注能耗增量,時(shí)間復(fù)雜度為O(|VMa|·|Ha|),其中:|VMa|為待放置虛擬機(jī)數(shù)量,|Ha|為適合放置的活動(dòng)物理主機(jī)數(shù)量。而MOPP算法關(guān)注的是虛擬機(jī)重新部署后主機(jī)的穩(wěn)定性,其時(shí)間復(fù)雜度為O(|VMa|·|Ha|·ρ·K·N),主要體現(xiàn)在計(jì)算放置虛擬機(jī)后主機(jī)負(fù)載的高斯混合模型,并求得當(dāng)前的過(guò)載概率用于新目的主機(jī)的挑選。雖然PABFD算法的時(shí)間復(fù)雜度較低但是在穩(wěn)定主機(jī)負(fù)載方面不如MOPP算法;而MOPP算法通過(guò)更復(fù)雜的計(jì)算判斷放置后的主機(jī)穩(wěn)定性,從而確保充分利用主機(jī)資源,降低數(shù)據(jù)中心能源消耗。
由于數(shù)據(jù)中心工作負(fù)載的不確定性,活動(dòng)物理主機(jī)不僅可能出現(xiàn)過(guò)載狀況,也有可能出現(xiàn)主機(jī)CPU資源利用率偏低的情況,這就容易導(dǎo)致資源浪費(fèi),因此,通過(guò)遷移低負(fù)載物理主機(jī)上的所有虛擬機(jī)并關(guān)閉該主機(jī),以此來(lái)提高活動(dòng)物理主機(jī)的CPU資源利用率,從而達(dá)到節(jié)約能耗的目的。所以在收縮活動(dòng)物理主機(jī)規(guī)模時(shí),首先挑選CPU資源利用率最低的物理主機(jī),嘗試將該主機(jī)上所有的虛擬機(jī)都遷移出去,并且使用MOPP算法放置到合適的目的主機(jī)上。如果該主機(jī)上所有的虛擬機(jī)都能被合理地放置,就說(shuō)明該主機(jī)可以被關(guān)閉。循環(huán)執(zhí)行上述步驟,直到當(dāng)前數(shù)據(jù)中心中的物理主機(jī)都不能遷出全部虛擬機(jī)為止。
結(jié)合前文提出的GAOHD、MROPS、MOPP算法以及活動(dòng)物理主機(jī)規(guī)模收縮的過(guò)程,提出了GMM-VMC方法,該方法主要包括四個(gè)執(zhí)行過(guò)程:首先,使用GAOHD算法檢測(cè)出當(dāng)前數(shù)據(jù)中心存在過(guò)載風(fēng)險(xiǎn)的物理主機(jī);然后,使用MROPS算法從過(guò)載主機(jī)中選出待遷移虛擬機(jī),解除主機(jī)過(guò)載風(fēng)險(xiǎn);接著,使用MOPP算法將待分配的虛擬機(jī)集合放入合適的活動(dòng)物理主機(jī);最后,通過(guò)收縮活動(dòng)物理主機(jī)規(guī)模減少整個(gè)數(shù)據(jù)中心活動(dòng)物理主機(jī)的數(shù)量。
具體的GMM-VMC方法描述如下。
步驟1使用GAOHD算法得到過(guò)載物理主機(jī)集合。具體步驟為:首先采用高斯混合模型對(duì)各活動(dòng)物理主機(jī)的工作負(fù)載進(jìn)行擬合,得到的各個(gè)高斯混合模型能夠準(zhǔn)確地描述對(duì)應(yīng)主機(jī)的近期負(fù)載變化;然后根據(jù)高斯混合模型計(jì)算相應(yīng)的過(guò)載概率,通過(guò)過(guò)載概率求得自適應(yīng)的主機(jī)過(guò)載閾值;最后根據(jù)主機(jī)當(dāng)前的過(guò)載閾值進(jìn)行過(guò)載檢測(cè)。與ST算法相比,GAOHD算法采用自適應(yīng)的閾值計(jì)算法方式,能夠及時(shí)適應(yīng)主機(jī)負(fù)載變化,對(duì)虛擬機(jī)整合過(guò)程進(jìn)行調(diào)整。MAD、IQR和LR算法雖然也采用自適應(yīng)的閾值計(jì)算方式,但是在對(duì)主機(jī)負(fù)載的描述方面遠(yuǎn)遠(yuǎn)沒(méi)有高斯混合模型精確。通過(guò)高斯混合模型對(duì)主機(jī)負(fù)載的準(zhǔn)確預(yù)測(cè)能確保主機(jī)長(zhǎng)時(shí)間的穩(wěn)定,從而對(duì)整合方法的服務(wù)質(zhì)量指標(biāo)有相當(dāng)大的提升。
步驟2使用MROPS算法對(duì)每個(gè)過(guò)載物理主機(jī)進(jìn)行虛擬機(jī)選擇,并得到待遷移虛擬機(jī)集合。MROPS算法在虛擬機(jī)選擇的過(guò)程中加入主機(jī)過(guò)載概率作為選擇依據(jù),優(yōu)先選擇遷移后主機(jī)工作負(fù)載更加穩(wěn)定的虛擬機(jī)。所以,MROPS算法比MMT、RC、MC等虛擬機(jī)選擇算法更加有利于數(shù)據(jù)中心活動(dòng)物理主機(jī)的負(fù)載穩(wěn)定,能夠相應(yīng)地提升服務(wù)質(zhì)量。
步驟3使用MOPP算法將待分配虛擬機(jī)放入合適的物理主機(jī)。MOPP算法在為虛擬機(jī)進(jìn)行新的目的主機(jī)挑選時(shí),注重放置后主機(jī)工作負(fù)載的穩(wěn)定性,避免了PABFD算法因追求低能耗帶來(lái)的過(guò)度整合。由于MOPP算法提升了主機(jī)負(fù)載的穩(wěn)定性,所以在整合過(guò)程中主機(jī)不要預(yù)留過(guò)多的資源應(yīng)對(duì)負(fù)載的突然變化,從而可以更加充分地利用主機(jī)資源,降低數(shù)據(jù)中心的能源消耗。
步驟4進(jìn)行活動(dòng)物理主機(jī)規(guī)模收縮。該過(guò)程通過(guò)將低負(fù)載主機(jī)上的虛擬機(jī)重新部署到其他主機(jī)上,提升整個(gè)數(shù)據(jù)中心的主機(jī)資源利用率。在重新部署時(shí),用高斯混合模型預(yù)測(cè)放置后的主機(jī)負(fù)載,以確保服務(wù)質(zhì)量不受到影響。
步驟5結(jié)束。
本文使用CloudSim[16]作為實(shí)驗(yàn)平臺(tái),該平臺(tái)由CLOUDBUS實(shí)驗(yàn)室所研發(fā),是當(dāng)今研究虛擬機(jī)整合的主要仿真工具之一。平臺(tái)包含了CoMon項(xiàng)目中PlanetLab研究的相關(guān)數(shù)據(jù),其中有超過(guò)1 300臺(tái)虛擬機(jī)在10 d運(yùn)行過(guò)程中的CPU資源利用率記錄。
在模擬整合過(guò)程中,數(shù)據(jù)中心將創(chuàng)建800臺(tái)物理主機(jī)。這些物理主機(jī)的型號(hào)為:HP ProLiant ML110 G4(Intel Xeon 3040 2cores 1 860 MHz, 4 GB)與HP ProLiant ML110 G5(Intel Xeon 3075 2cores 2 260 MHz, 4 GB)這兩種。對(duì)應(yīng)于PlanetLab中某一天每個(gè)虛擬機(jī)CPU資源利用率記錄,數(shù)據(jù)中心會(huì)創(chuàng)建相應(yīng)個(gè)數(shù)的虛擬機(jī),這些虛擬機(jī)分成多個(gè)種類:High-CPU Medium Instance (2 500 MIPS, 0.85 GB)、Extra Large Instance (2 000 MIPS, 3.75 GB)、Small Instance (1 000 MIPS, 1.7 GB)、Micro Instance (500 MIPS, 613 MB)。
為合理、有效地評(píng)價(jià)GMM-VMC方法的有效性,本文采用了文獻(xiàn)[8]提出的評(píng)價(jià)指標(biāo)來(lái)對(duì)各個(gè)整合方法進(jìn)行對(duì)比。這些評(píng)價(jià)指標(biāo)分別是:數(shù)據(jù)中心物理主機(jī)的能源消耗(Energy Consumption, EC),每個(gè)活動(dòng)物理主機(jī)違背SLA的平均時(shí)間比(SLA violation Time per Active Host, SLATAH),虛擬機(jī)遷移所帶來(lái)的服務(wù)性能下降比例(Performance Degradation due to Migration, PDM),服務(wù)等級(jí)協(xié)議違背率(SLA Violation, SLAV),虛擬機(jī)遷移次數(shù)Migrations,能耗與服務(wù)等級(jí)協(xié)議違背率綜合指標(biāo)(Energy and SLA Violation, ESV)。
文獻(xiàn)[6,8]在CloudSim平臺(tái)上對(duì)虛擬機(jī)整合過(guò)程進(jìn)行了深入的研究,并提出相應(yīng)的算法。其中包括用于虛擬機(jī)放置的PABFD,物理主機(jī)過(guò)載檢測(cè)檢測(cè)算法ST、MAD、IQR、LR,虛擬機(jī)選擇算法MMT、RC、MC。通過(guò)將這些算法組合,可以得到12個(gè)不同的虛擬機(jī)整合方法,每一個(gè)整合方法都包含過(guò)載檢測(cè)算法、虛擬機(jī)選擇算法和放置算法。四種過(guò)載檢測(cè)算法都有各自的安全系數(shù):當(dāng)安全系數(shù)設(shè)置得越大,表明過(guò)載檢測(cè)時(shí)將注重主機(jī)的穩(wěn)定性以確保服務(wù)質(zhì)量;相反安全系數(shù)越小,檢測(cè)算法就會(huì)放棄一些穩(wěn)定性來(lái)追求主機(jī)資源的充分利用,以達(dá)到節(jié)約能源的目的。通過(guò)對(duì)各檢測(cè)算的不同安全參數(shù)取值進(jìn)行實(shí)驗(yàn)對(duì)比,發(fā)現(xiàn)將MAD、IQR、LR、ST的安全參數(shù)分別設(shè)置為2.5,1.5,1.2,0.8時(shí)能夠讓相應(yīng)的整合方法在節(jié)約能耗和保證服務(wù)質(zhì)量方面做到相對(duì)的均衡。本文提出的GMM-VMC方法的安全參數(shù)設(shè)置為2.0,過(guò)載閾值上限Tmax設(shè)為1,均為經(jīng)驗(yàn)值。
表1列出了各虛擬機(jī)整合方法在能耗和服務(wù)質(zhì)量方面的結(jié)果,由于PlanetLab中有10 d的數(shù)據(jù),所以在表中列出的是10 d數(shù)據(jù)仿真結(jié)果的均值。通過(guò)表1可以對(duì)各個(gè)方法在EC、SLAV以及ESV指標(biāo)上進(jìn)行對(duì)比。由表1可以看出:本文提出的GMM-VMC方法在這三個(gè)指標(biāo)中表現(xiàn)都非常優(yōu)秀;相比其他整合方法,GMM-VMC降低了數(shù)據(jù)中心的能源消耗,同時(shí)在服務(wù)質(zhì)量方面有很大的提升。為作圖清晰,圖1~3中的各虛擬機(jī)整合算法用表1中的序號(hào)代替。
圖1描述了各個(gè)整合方法所對(duì)應(yīng)的虛擬機(jī)遷移次數(shù)。通過(guò)圖1對(duì)比發(fā)現(xiàn)GMM-VMC的遷移次數(shù)最少,而且結(jié)合表1可知該方法降低遷移次數(shù)的同時(shí)大幅提升了服務(wù)質(zhì)量。這就說(shuō)明,根據(jù)主機(jī)負(fù)載模型得到的主機(jī)過(guò)載閾值設(shè)置合理,能有效地提高主機(jī)資源利用率,降低數(shù)據(jù)中心的能耗;該模型使也得主機(jī)處于長(zhǎng)期穩(wěn)定的狀態(tài)。其他算法中,使用MMT作為虛擬機(jī)選擇算法的整合方法遷移次數(shù)比較高,這是因?yàn)镸MT算法每次選擇遷移時(shí)間最少的虛擬機(jī),所以解除過(guò)載時(shí)較其他算法必然需要更多的遷移次數(shù)。
表1 各個(gè)算法能耗及服務(wù)質(zhì)量數(shù)據(jù)Tab. 1 Results of EC and QoS by algorithms
圖1 虛擬機(jī)遷移次數(shù)對(duì)比Fig. 1 Comparison of VM migration times
虛擬機(jī)從源主機(jī)遷移到新的目的主機(jī),必然會(huì)對(duì)虛擬機(jī)所提供的計(jì)算服務(wù)產(chǎn)生影響。圖2對(duì)比了各算法在整合過(guò)程中由虛擬機(jī)遷移產(chǎn)生的PDM。從圖2可以看出,使用MMT作為選擇算法的整合方法在PDM上低于其他選擇算法。根據(jù)圖1中遷移次數(shù)的表現(xiàn),可知雖然MMT算法虛擬機(jī)遷移次數(shù)多,但是遷移時(shí)間短,所帶來(lái)的服務(wù)質(zhì)量下降也就少。GMM-VMC方法由于遷移次數(shù)少,而且MROPS算法總是選擇遷移時(shí)間少且遷移后主機(jī)過(guò)載概率低的主機(jī),所以在PDM這一指標(biāo)上表現(xiàn)依然優(yōu)秀。
圖2 虛擬機(jī)遷移引起的服務(wù)質(zhì)量下降對(duì)比Fig. 2 Comparison of PDM due to migration
虛擬機(jī)整合最主要的目的之一就是確保服務(wù)質(zhì)量,而主機(jī)負(fù)載穩(wěn)定則是確保服務(wù)質(zhì)量的首要前提。圖3對(duì)衡量數(shù)據(jù)中心主機(jī)過(guò)載情況的SLATAH指標(biāo)進(jìn)行了對(duì)比。從圖3可以看出,GMM-VMC方法在SLATAH這一指標(biāo)上領(lǐng)先于其他整合方法。由于GMM-VMC方法對(duì)主機(jī)工作負(fù)載的建模準(zhǔn)確度高,通過(guò)自適應(yīng)的過(guò)載閾值調(diào)整物理主機(jī)和虛擬機(jī)之間的映射關(guān)系,所以過(guò)載情況大量減少。而使用MMT作為選擇算法的整合方法在解除主機(jī)過(guò)載風(fēng)險(xiǎn)時(shí)遷移較多的虛擬機(jī),所以使得主機(jī)留有更多資源應(yīng)對(duì)負(fù)載變化,從而提升了服務(wù)質(zhì)量。
圖3 活動(dòng)物理主機(jī)違背SLA的平均時(shí)間對(duì)比Fig. 3 Comparison of SLATAH
根據(jù)表1中的數(shù)據(jù)和圖1~3的對(duì)比可以發(fā)現(xiàn),不同的過(guò)載檢測(cè)算法搭配MMT作為虛擬機(jī)選擇算法的整合方法比搭配其他選擇算法的整合方法在PDM指標(biāo)上降低了21%~34%,同樣在SLATAH指標(biāo)上也降低了17%~28%。MMT算法在服務(wù)質(zhì)量方面總體表現(xiàn)較好的原因是MMT算法解除主機(jī)過(guò)載時(shí)會(huì)遷移較多的虛擬機(jī),這使得采用MMT算法的整合方法需要開(kāi)啟更多的活動(dòng)物理主機(jī)來(lái)放置虛擬機(jī),因此虛擬得到的主機(jī)資源相對(duì)充足;同時(shí)開(kāi)啟較多的活動(dòng)物理主機(jī)也導(dǎo)致MMT算法在能耗上的表現(xiàn)不如其他算法,但相比MMT算法在服務(wù)質(zhì)量方面的提升幅度,其在節(jié)約能耗方面的不足就能夠被接受了。在使用MMT作為選擇算法的整合方法中,LR-MMT- 1.2方法的能耗最低,但是其在服務(wù)質(zhì)量方面的表現(xiàn)遠(yuǎn)不及能耗次低的MAD-MMT- 2.5方法,因此,為了更深入地對(duì)GMM-VMC方法進(jìn)行論證,接下來(lái)對(duì)GMM-VMC方法和在能耗和服務(wù)質(zhì)量的表現(xiàn)上都較為均衡的MAD-MMT- 2.5方法進(jìn)行更多指標(biāo)的詳細(xì)對(duì)比。
圖4反映的是在虛擬機(jī)整合過(guò)程中數(shù)據(jù)中心活動(dòng)物理主機(jī)的變化。因?yàn)镚MM-VMC需要一段工作負(fù)載來(lái)建立主機(jī)負(fù)載模型,所以在1到12次整合中GMM-VMC和MAD-MMT采用了同樣的整合方法,即ST-MMT- 0.7。根據(jù)圖4中顯示,在第12次整合之后,采用GMM-VMC方法的活動(dòng)物理主機(jī)的數(shù)量明顯低于MAD-MMT方法。最終,GMM-VMC方法使得活動(dòng)物理主機(jī)數(shù)在40到45的范圍內(nèi)且波動(dòng)性不大。MAD-MMT方法使得活動(dòng)物理主機(jī)在55到60之間,且整合過(guò)程中主機(jī)數(shù)波動(dòng)大于GMM-VMC方法。GMM-VMC方法能夠?qū)⑻摂M機(jī)集中在部署在較少的物理主機(jī)上,因此其能耗低于MAD-MMT方法。
將數(shù)據(jù)中心活動(dòng)物理主機(jī)數(shù)控制在較低的水平充分說(shuō)明GMM-VMC算法在整合上的有效性。接下來(lái),通過(guò)圖5來(lái)說(shuō)明GMM-VMC算法在整合時(shí)的速度。圖5對(duì)比了兩種方法在整合過(guò)程中虛擬機(jī)遷移次數(shù)的變化。在第12次整合之后GMM-VMC方法經(jīng)過(guò)一個(gè)短暫的頻繁遷移之后,遷移次數(shù)大幅降低并穩(wěn)定于40次上下;MAD-MMT方法則沒(méi)有急劇的變化,而是逐漸減少最終在80次上下波動(dòng)。GMM-VMC方法在整合時(shí)使得數(shù)據(jù)中心虛擬機(jī)的放置更加穩(wěn)定,從而帶來(lái)其在虛擬遷移次數(shù)上的優(yōu)勢(shì)。遷移次數(shù)直接影響服務(wù)質(zhì)量,這也是GMM-VMC方法在服務(wù)質(zhì)量上表現(xiàn)出色的原因。經(jīng)過(guò)圖4、5兩個(gè)指標(biāo)的詳細(xì)對(duì)比,驗(yàn)證了GMM-VMC方法在整合時(shí)的高效性。
圖4 活動(dòng)物理主機(jī)數(shù)變化Fig. 4 Changes of active physical hosts
圖5 虛擬機(jī)遷移次數(shù)的變化Fig. 5 Changes of VM migration times
針對(duì)云數(shù)據(jù)中心由于資源請(qǐng)求的隨機(jī)性容易導(dǎo)致主機(jī)負(fù)載不穩(wěn)定的問(wèn)題,本文通過(guò)使用GMM建立主機(jī)工作負(fù)載模型,提出了GMM-VMC方法。該方法在整合過(guò)程中利用主機(jī)負(fù)載模型自動(dòng)調(diào)整物理主機(jī)過(guò)載閾值,并且將主機(jī)負(fù)載模型應(yīng)用到虛擬機(jī)選擇和放置的決策過(guò)程當(dāng)中。實(shí)驗(yàn)表明,GMM-VMC方法在減少能耗的同時(shí)能夠有效地改善服務(wù)質(zhì)量,這也說(shuō)明了GMM對(duì)主機(jī)工作負(fù)載進(jìn)行建模的有效性。GMM-VMC方法主要考慮的是與能耗和服務(wù)質(zhì)量最為相關(guān)的CPU資源,在實(shí)驗(yàn)中其他主機(jī)資源都被認(rèn)為是資源量充足暫未進(jìn)行考慮,如何兼顧實(shí)際數(shù)據(jù)中心中所有的影響因素,研究出更為高效、實(shí)用的虛擬機(jī)整合方法將是未來(lái)研究的重點(diǎn)。
參考文獻(xiàn)(References)
[1]GOSCINSKI A, BROCK M. Toward dynamic and attribute based publication, discovery and selection for cloud computing [J]. Future Generation Computer Systems, 2010, 26(7): 947-970.
[2]MOSA A, PATON N W. Optimizing virtual machine placement for energy and SLA in clouds using utility functions [J]. Journal of Cloud Computing, 2016, 5(1): 17.
[3]FAN X B, WEBER W D, BARROSO L A. Power provisioning for a warehouse-sized computer [C]// Proceedings of the 34th Annual International Symposium on Computer Architecture. New York: ACM, 2007: 13-23.
[4]房丙午,黃志球.云計(jì)算中能耗和性能感知的虛擬機(jī)優(yōu)化部署算法[J].計(jì)算機(jī)工程與科學(xué),2016,38(12):2419-2424. (FANG B W, HUANG Z Q. An energy-and-performance-aware virtual machine placement optimization algorithm in cloud computing [J]. Journal of Computer Engineering & Science, 2016, 38(12): 2419-2424.)
[5]劉德欣,閆永明,郭軍,等.云環(huán)境下基于多目標(biāo)決策的待整合服務(wù)器選擇方法研究[J].小型微型計(jì)算機(jī)系統(tǒng),2016,37(4):699-704. (LIU D X, YAN Y M, GUO J, et al. Method of selecting consolidating server in cloud environment based on multi-objective decision [J]. Journal of Chinese Computer Systems, 2016, 37(4): 699-704.)
[7]BELOGLAZOV A, ABAWAJY J, BUYYA R. Energy-aware re-source allocation heuristics for efficient management of data centers for cloud computing [J]. Future Generation Computer Systems, 2012, 28(5): 755-768.
[8]BELOGLAZOV A, BUYYA R. Optimal online deterministic algo-rithms and adaptive heuristics for energy and performance efficient dynamic consolidation of virtual machines in cloud data centers [J]. Concurrency and Computation: Practice and Experience, 2012, 24(13): 1397-1420.
[9]CAO J, WU Y H, LI M L. Energy efficient allocation of virtual machines in cloud computing environments based on demand forecast [J]. Advances in Grid and Pervasive Computing, 2012, 7296: 137-151.
[10]FARAHNAKIAN F, LILJEBERG P, PLOSILA J. LiRCUP: linear regression based CPU usage prediction algorithm for live migration of virtual machines in data centers [C]// Proceedings of the 39th EUROMICRO Conference on Software Engineering and Advanced Applications. Washington, DC: IEEE Computer Society, 2013: 357-364.
[11]YU L, CHEN L, CAI Z, et al. Stochastic load balancing for virtual resource management in datacenters [J]. IEEE Transactions on Cloud Computing, 2016, PP(99): 1-1.
[12]CHEN M, ZHANG H, SU Y Y, et al. Effective VM sizing in virtualized data centers [C]// Proceedings of the 2011 IFIP/IEEE International Symposium on Integrated Network Management. Piscataway, NJ: IEEE, 2011: 594-601.
[13]JIN H, PAN D, XU J, et al. Efficient VM placement with multiple deterministic and stochastic resources in data centers [C]// Proceedings of the 2012 IEEE Global Communications Conference. Piscataway, NJ: IEEE, 2012: 2505-2510.
[14]WANG M, MENG X, ZHANG L. Consolidating virtual machines with dynamic bandwidth demand in data centers [C]// INFOCOM 2011: Proceedings of the 30th IEEE International Conference on Computer Communications, Joint Conference of the IEEE Computer and Communications Societies. Piscataway, NJ: IEEE, 2011: 71-75.
[15]STAUFFER C, GRIMSON W E L. Adaptive background mixture models for real-time tracking [C]// Proceedings of the 1999 Conference on Computer Vision and Pattern Recognition. Washington, DC: IEEE Computer Society, 1999: 246-252.
[16]CALHEIROS R N, RANJAN R, BELOGLAZOV A, et al. CloudSim: a toolkit for modeling and simulation of cloud computing environments and evaluation of resource provisioning algorithms [J]. Software Practice & Experience, 2011, 41(1): 23-50.