穆瑞輝
(新鄉(xiāng)學(xué)院計算機(jī)與信息工程學(xué)院,河南新鄉(xiāng)453003)
改進(jìn)的在線遷移算法在云計算環(huán)境中的應(yīng)用
穆瑞輝
(新鄉(xiāng)學(xué)院計算機(jī)與信息工程學(xué)院,河南新鄉(xiāng)453003)
針對當(dāng)前虛擬機(jī)遷移算法易造成物理節(jié)點(diǎn)負(fù)載不均衡、能耗高和SLA違反率高等問題,提出了一種基于云計算的在線遷移算法。通過構(gòu)建在線遷移算法模型和虛擬機(jī)負(fù)載評估向量,依據(jù)各物理節(jié)點(diǎn)的帶寬占用率、內(nèi)存占用率和CPU占用率來確定遷移時機(jī)和需要遷移的源物理節(jié)點(diǎn);同時,依據(jù)各節(jié)點(diǎn)的CPU占有率、ROM使用效率和帶寬的利用率來確定目標(biāo)物理節(jié)點(diǎn)。通過仿真模擬試驗得出,該算法能在虛擬機(jī)在線遷移中大幅度提高物理節(jié)點(diǎn)的負(fù)載均衡,且其SLA違反率和云計算數(shù)據(jù)中心能耗都最小。
違反率;虛擬機(jī);物理節(jié)點(diǎn);遷移算法
云計算[1](Cloud Computing)是一種系統(tǒng)運(yùn)算平臺,客戶端不需要知道工作原理,只需通過Internet將各種SERVICE和為這些SERVICE服務(wù)的各種資源鏈接起來,就可以使用這些資源??梢?,云計算的一個重要特點(diǎn)[2]就是資源的虛擬化和服務(wù)的虛擬化。
基于云計算的虛擬機(jī)在線遷移可以描述為:在不影響云計算中心提供服務(wù)的前提下,在規(guī)定的時間范圍內(nèi),將虛擬機(jī)從源物理節(jié)點(diǎn)遷移到目標(biāo)節(jié)點(diǎn)上,以均衡節(jié)點(diǎn)負(fù)載和節(jié)約云計算數(shù)據(jù)中心能耗。目前已經(jīng)應(yīng)用的有VMware企業(yè)的VMotion虛擬機(jī)產(chǎn)品[3]和Xen企業(yè)的Live Migration虛擬機(jī)產(chǎn)品[4]。
基于虛擬機(jī)的遷移算法主要體現(xiàn)在遷移物理節(jié)點(diǎn)時,需選擇恰當(dāng)?shù)倪w移時間、等待遷移的虛擬機(jī)和恰當(dāng)?shù)哪繕?biāo)物理節(jié)點(diǎn)。
本文在原有算法的基礎(chǔ)上,提出了基于云計算的遷移算法,并驗證了該算法的可靠性和有效性。
圖1 在線遷移算法模型
圖1為在線遷移算法模型。在此算法模型中,客戶端把數(shù)據(jù)計算任務(wù)上傳到云計算中心,云計算平臺根據(jù)各服務(wù)器的數(shù)據(jù)計算負(fù)載狀況,把數(shù)據(jù)計算任務(wù)分配給負(fù)載較輕的服務(wù)器,再用相應(yīng)的虛擬機(jī)來進(jìn)行云計算。
2.1 虛擬機(jī)負(fù)載度量評估
可以通過檢測CPU、帶寬流量和內(nèi)存利用率來確定相應(yīng)物理節(jié)點(diǎn)的負(fù)載。
CPU的平均占有率為
其中,Vcpuk表示虛擬機(jī)vk中單個CPU的利用率,k為虛擬機(jī)對應(yīng)的物理節(jié)點(diǎn)擁有CPU的數(shù)目。
物理節(jié)點(diǎn)上內(nèi)存的占用率為
式中,m為物理節(jié)點(diǎn)上的vk的個數(shù),Vusek表示vk正在使用的內(nèi)存大小,Vswapk表示vk交換頁面實(shí)際需要的內(nèi)存大小,M表示該物理節(jié)點(diǎn)總的內(nèi)存大小。
物理節(jié)點(diǎn)帶寬的占用率為
其中,Vbandk表示帶寬在vk上被占用的情況,Tb表示該物理節(jié)點(diǎn)上最大的帶寬流量。
物理節(jié)點(diǎn)的負(fù)載情況為
2.2 確定源物理節(jié)點(diǎn)和選擇遷移時機(jī)
數(shù)據(jù)計算中心設(shè)置一個閥值向量 Sth=(Ucputh,Umemoth,Ubandth),同時采集每一個物理節(jié)點(diǎn)在采集周期Tc中的節(jié)點(diǎn)負(fù)載向量S。如果在連續(xù)三個周期Tc內(nèi),該物理節(jié)點(diǎn)采集的負(fù)載向量的某個分量都大于Sth相應(yīng)的分量,就激活相應(yīng)的遷移算法,即:如果在連續(xù)三個數(shù)據(jù)采集周期Tc中,Ucpu都大于Ucputh,則CPU激發(fā)遷移;如果Umemo都大于Umemoth時,則內(nèi)存激發(fā)遷移;如果Uband都大于Ubandth時,則帶寬激發(fā)遷移。確定源物理節(jié)點(diǎn)和選擇遷移時機(jī)的流程如圖2所示。
圖2 遙感服務(wù)模擬器的交互映射機(jī)制
2.3 確定和選擇高效的在線遷移算法
以前的遷移算法[5]只遷移CPU占有率高的虛擬機(jī)。為了高效利用虛擬機(jī),本文不僅考慮CPU的占用率,也考慮帶寬和內(nèi)存的占用率:CPU在虛擬機(jī)中的占用率越高,就表示CPU占用的資源越多;內(nèi)存在虛擬機(jī)中的占用率越高,就表示內(nèi)存遷移需要的能量消耗越大;帶寬流量在虛擬機(jī)中越大,則表示需要發(fā)送和接受的資源越多。筆者選擇CPU占用率、帶寬占用率和內(nèi)存占用率都比較高的虛擬機(jī)進(jìn)行遷移,用V=(Vcpuk,Vusek,Vbandk)來表示,其中的三個分量分別表示CPU占用率、帶寬占用率和內(nèi)存占用率。
如果選擇的是CPU激發(fā)遷移的物理節(jié)點(diǎn),那么就要對該物理節(jié)點(diǎn)所對應(yīng)的虛擬機(jī)向量V進(jìn)行占用率排序,以確定遷移具有最大Vcpuk值的虛擬機(jī),類似地,可選擇遷移最大Vusek和最大Vbandk的虛擬機(jī)。
2.4 選擇目標(biāo)物理節(jié)點(diǎn)
一旦確定了集合,即等待遷移的虛擬機(jī),那么就要選擇恰當(dāng)?shù)哪繕?biāo)物理節(jié)點(diǎn)了。選擇步驟如下。
1)依據(jù)源物理節(jié)點(diǎn)激發(fā)的類別,也就是根據(jù)帶寬、CPU和內(nèi)存激發(fā)的類別,把源物理節(jié)點(diǎn)對應(yīng)的虛擬機(jī)分成三個等待隊列Qband、Qcpu和Qmemo。
2)依據(jù)帶寬、CPU和內(nèi)存的占用率由小到大對各物理節(jié)點(diǎn)排序,由此得到Qnodeband、Qnodecpu和Qnodememo三個等待隊列,其中的節(jié)點(diǎn)分別為物理節(jié)點(diǎn)中帶寬、CPU和內(nèi)存占用率較大的節(jié)點(diǎn)。
3)把Qnodeband等待隊列中的首元素取出,把該元素作為目標(biāo)物理節(jié)點(diǎn)Qband隊列的首元素,同時,把Qnodeband等待隊列中的首元素從Qnodecpu和Qnodememo等待隊列中刪除。
4)把Qnodecpu等待隊列中的首元素取出,把該元素作為目標(biāo)物理節(jié)點(diǎn)中Qcpu隊列的首元素,同時把該元素從Qnodememo和Qnodeband等待隊列中刪除。
5)把Qnodememo等待隊列中的首元素取出,把該元素作為目標(biāo)物理節(jié)點(diǎn)Qmemo隊列的首元素,同時,把Qnodememo等待隊列中的首元素從Qnodecpu和Qnodeband等待隊列中刪除。
6)重復(fù)步驟3)~5),直到Qband、Qcpu和Qmemo等待隊列中都為空時結(jié)束。
2.5 基于云計算的在線遷移算法表述
基于云計算的在線遷移算法可以表述如下。
輸入:基于云計算的各個源物理節(jié)點(diǎn)。
輸出:需要遷移的等待隊列<s,v,g>,也就是需要把虛擬機(jī)v從源物理節(jié)點(diǎn)s中遷移到目標(biāo)物理節(jié)點(diǎn)g上。
步驟1:依據(jù)(1)式計算物理節(jié)點(diǎn)上CPU的占用率,依據(jù)(2)式計算物理節(jié)點(diǎn)上內(nèi)存的占用率,依據(jù)(3)式計算物理節(jié)點(diǎn)上帶寬的占用率,從而得出物理節(jié)點(diǎn)上的S向量。
步驟2:根據(jù)Sth閥值,采集在連續(xù)三個Tc周期內(nèi)S的分量值都大于Sth向量值的源物理節(jié)點(diǎn),同時把S的分量記錄為對應(yīng)的帶寬激發(fā)節(jié)點(diǎn)、CPU激發(fā)節(jié)點(diǎn)和內(nèi)存激發(fā)節(jié)點(diǎn),得到源物理節(jié)點(diǎn)集合。
步驟3:依據(jù)激發(fā)類型,遷移物理節(jié)點(diǎn)上對應(yīng)值最大的虛擬機(jī),比如該物理節(jié)點(diǎn)是內(nèi)存激發(fā)節(jié)點(diǎn),那么就在該物理節(jié)點(diǎn)上選擇內(nèi)存占用率最高的虛擬機(jī)遷移,從而得到表示等待遷移的虛擬機(jī)的集合。
步驟4:依據(jù)2.4中步驟1)、2)得到等待隊列Q band、Q cpu、Q memo和Q nodeband、Q nodecpu、Q nodememo。
步驟5:將Qband、Qcpu和Qmemo中的虛擬機(jī)根據(jù)2.4中步驟3)~6),分別遷移到物理節(jié)點(diǎn)隊列Qnodeband、Qnodecpu和Qnodememo。
本文利用基于云計算的仿真模擬工具Cloudsim[6]來構(gòu)建實(shí)驗環(huán)境,表1是基于云計算環(huán)境中的實(shí)驗參數(shù)。在模擬環(huán)境中仿真與文中算法的結(jié)果比較如表2所示。
表1 云計算環(huán)境實(shí)驗參數(shù)
表2 實(shí)驗結(jié)果比較
通過表2可以看出,因為文中算法從帶寬占用率、內(nèi)存占用率和CPU占用率來進(jìn)行分析,所以在選擇目標(biāo)物理節(jié)點(diǎn)、等待遷移的虛擬機(jī)和源物理節(jié)點(diǎn)上的效率更高,從而使遷移效率更高。因此,在等待遷移的數(shù)量不為最小值的情形下,該算法SLA違反率較低,能耗最小。另外,通過以犧牲用戶的QoS作為代價來提高負(fù)載均衡和節(jié)能的方法,具很高的SLA違反率。
本文算法對傳統(tǒng)算法中確定目標(biāo)物理節(jié)點(diǎn)、選擇等待遷移的虛擬機(jī)和選擇源物理節(jié)點(diǎn)等遷移的各個關(guān)鍵點(diǎn)進(jìn)行了優(yōu)化,通過動態(tài)分配遷移虛擬機(jī)來實(shí)現(xiàn)云計算環(huán)境下的節(jié)能和負(fù)載均衡。仿真結(jié)果顯示,虛擬機(jī)在線遷移中,能夠提高物理節(jié)點(diǎn)的負(fù)載均衡,同時能耗最低。以后還需要研究如何解決在用戶QoS需求越來越高的情況下,在云計算環(huán)境中實(shí)現(xiàn)高效的虛擬機(jī)遷移的問題。
[1]VAQUERO L,RODERO M L,CACERCE J,et al.A Break in theClouds:TowardsaCloudDefinition[J].SIGCOMM Computer Communication Review,2009(1):50-55.
[2] 張彬彬,羅英偉,汪小林,等.虛擬機(jī)全系統(tǒng)在線遷移[J].電子學(xué)報,2009(4):894-899.
[3] 徐志紅,劉進(jìn)軍,趙生慧.適應(yīng)廣域網(wǎng)的虛擬機(jī)在線遷移模型[J].計算機(jī)應(yīng)用,2012(7):1929-1931.
[4] 王得發(fā),王麗芳,蔣澤軍.云計算環(huán)境中虛擬機(jī)智遷移關(guān)鍵技術(shù)研究[J].計算機(jī)測量與控制,2012(5):1389-1391.
[5] 方義秋,唐道紅,葛君偉.云環(huán)境下基于虛擬機(jī)動態(tài)遷移的調(diào)度算法研究[J].微電子學(xué)與計算機(jī),2012(4):45-48.
[6] 胡志剛,歐陽晟,閻朝坤.云環(huán)境下面向能耗降低的資源負(fù)載均衡方法[J].計算機(jī)工程,2012(5):53-55.
【責(zé)任編輯 梅欣麗】
Live M igration Algorithm Based on Cloud Com puting
MU Ruihui
(College of Computer and Information Engineering,Xinxiang University,Xinxiang 453003,China)
As current virtualmachinemigration algorithm is likely to cause physical node load imbalance,high energy consumption, SLA violation rate and other issues,this paper proposed a new algorithm based on onlinemigration of cloud computing.By building models and virtualmachine load assessment vector,through bandwidth usage based on each physical node,memory usage and CPU utilization,this paper determined migration timing and source physical nodes;meanwhile,according to the CPU usage of each node, the efficient use of ROM,and bandwidth utilization,it determined the target physical node.Finally,the simulation of environmental testing proved that the proposed algorithm in a virtualmachine live migration could greatly improve load balancing of the physical nodes,minimize the SLA violation rate and the power consumption in cloud computing data center.
violation rate;virtualmachine;physical node;migration algorithm
TP393
A
2095-7726(2015)06-0036-03
2014-11-12
穆瑞輝(1980-),男,河南輝縣人,講師,碩士,研究方向:軟件設(shè)計與開發(fā)。