穆瑞輝(新鄉(xiāng)學(xué)院計算機與信息工程學(xué)院,河南新鄉(xiāng)453003)
基于云計算的虛擬機在線遷移算法
穆瑞輝
(新鄉(xiāng)學(xué)院計算機與信息工程學(xué)院,河南新鄉(xiāng)453003)
構(gòu)建了在線遷移算法模型和虛擬機負(fù)載評估向量,并依據(jù)各物理節(jié)點的帶寬占用率、內(nèi)存占用率和CPU占用率,確定遷移時機和需要遷移的源物理節(jié)點,依據(jù)CPU在各節(jié)點的占有率、ROM的使用效率、帶寬的利用率來確定目標(biāo)物理節(jié)點。通過仿真模擬環(huán)境試驗證明,文中算法在虛擬機在線遷移中能夠大幅度地提高物理節(jié)點的負(fù)載均衡,同時SLA違反率最小和云計算數(shù)據(jù)中心能耗最小。
違反率;虛擬機;物理節(jié)點;遷移算法
云計算[1](cloud computing)是一個系統(tǒng)運算平臺或可執(zhí)行應(yīng)用的程序,通過INTERNET將各種SER?VICE和以及為這些SERVICE服務(wù)的各種資源鏈接起來,從而使我們客戶端不需要知道它的工作原理,就可以用來為我們服務(wù)。那么云計算的一個重要特點[2]就是資源的虛擬化和服務(wù)的虛擬化。
基于云計算的虛擬機在線遷移可以描述為:在不影響云計算中心提供的服務(wù)的前提下,在規(guī)定的時間范圍內(nèi),將虛擬機從源物理節(jié)點遷移到目標(biāo)節(jié)點上,以均衡節(jié)點負(fù)載和節(jié)約云計算數(shù)據(jù)中心能耗。
截至目前,已經(jīng)應(yīng)用的有來自VMware企業(yè)的VMotion[3]虛擬機產(chǎn)品和來自Xen企業(yè)的Live Mi?gration[4]虛擬機產(chǎn)品。
目前在基于虛擬機的遷移算法主要體現(xiàn)在物理節(jié)點的遷移和選擇恰當(dāng)?shù)倪w移時間、選擇等待遷移的虛擬機和選擇恰當(dāng)?shù)哪繕?biāo)物理節(jié)點。
本文基于原有算法的優(yōu)缺點,提出了基于云計算的遷移算法,并在實驗中佐證了該算法的可靠性和有效性。
通過圖1可以清晰地構(gòu)建在線遷移算法模型。
在圖1的算法模型中,客戶端可以把數(shù)據(jù)計算任務(wù)上傳到云計算中心,云計算平臺就會依據(jù)各服務(wù)器的數(shù)據(jù)計算負(fù)載狀況,自主確定把數(shù)據(jù)計算任務(wù)分配給負(fù)載輕的服務(wù)器,最后用相應(yīng)的虛擬機來進行云計算。
2.1虛擬機負(fù)載度量評估
我們可以通過檢測CPU、帶寬流量和內(nèi)存的利用率來確定相應(yīng)物理節(jié)點的負(fù)載。其中可以用公式(1)來表示CPU的平均占有率:
在該公式中,Usek用來計算單個CPU在虛擬機vk中的占用率,k用來表示虛擬機對應(yīng)的物理節(jié)點所擁有CPU的數(shù)目。
用公式(2)來計算物理節(jié)點上內(nèi)存的占用率:
在公式(2)中,m為物理節(jié)點上的虛擬機vk的個數(shù),Vusek表示虛擬機vk正在使用的內(nèi)存大小,Vswapk表示虛擬機vk交換頁面實際需要的內(nèi)存大小,M表示該物理節(jié)點總的內(nèi)存大小。
用公式(3)來計算物理節(jié)點帶寬的占用率:
在公式(3)中,m表示在該物理節(jié)點中的虛擬機vk的數(shù)量,Vbandk表示帶寬在虛擬機vk上的占用情況,Tb表示該物理節(jié)點最大的帶寬流量。
用公式(4)來表示該物理節(jié)點的負(fù)載情況:
2.2確定源物理節(jié)點和選擇遷移時機
數(shù)據(jù)計算中心依據(jù)設(shè)置一個閥值向量Sth={Usecputh,Usememoth,Usebandth},同時對采集每一個物理節(jié)點在采集周期Tc中的節(jié)點負(fù)載向量S={Usecpu,Usememo,Useband},如果在三個連續(xù)的周期Tc內(nèi),該物理節(jié)點采集的負(fù)載向量值都大于Sth分量,那么就會激活相應(yīng)的遷移算法,也就是說,如果在三個連續(xù)的數(shù)據(jù)采集周期Tc中,Usecpu都大于Usecputh時,那么CPU會激發(fā)遷移;如果Usememo都大于Usememoth時,內(nèi)存會激發(fā)遷移;如果在Useband都大于Usebandth時,帶寬會激發(fā)遷移,確定源物理節(jié)點和選擇遷移時機流程圖如圖2所顯示。
2.3確定和選擇高效的在線遷移算法
以前的遷移算法[5]只遷移虛擬機中CPU占有率高的,為了高效的利用虛擬機,我們不僅考慮CPU的占用率,也考慮了帶寬、內(nèi)存的占用率,如果CPU的占用率高,那么表示占用的資源越大;如果內(nèi)存在虛擬機中的占用率越大,那么表示內(nèi)存遷移需要的能量消耗越多;如果帶寬流量在虛擬機中越大,則表示需要發(fā)送和接受的資源越大,因此我們選擇CPU占用率、帶寬占用率和內(nèi)存占用率都比較高的來進行遷移,用公式(5)來表示CPU占用率、帶寬占用率和內(nèi)存占用率:
如果選擇的是CPU激發(fā)的物理節(jié)點,那么就要對該物理節(jié)點所對應(yīng)的虛擬機向量V進行占用率排序,然后確定遷移最大Vcpuk值的虛擬機,同樣的以此推理,選擇遷移最大Vusek值和最大Vbandk值的虛擬機。
2.4選擇目標(biāo)物理節(jié)點
一旦確定了集合Sv={v1,v2,...vt},即等待遷移的虛擬機,那么就要選擇恰當(dāng)?shù)哪繕?biāo)物理節(jié)點,選擇步驟如下:
1)依據(jù)源物理節(jié)點激發(fā)的類別,也就是說根據(jù)帶寬、CPU和內(nèi)存激發(fā)的類別,把源物理節(jié)點對應(yīng)的虛擬機分成三種等待隊列QbandQcpu和Qmemo,同時按照各自占用率的大小排序;
2)依據(jù)帶寬、CPU和內(nèi)存的占用率由小到大對各物理節(jié)點排序,由此得到三個Qnodeband、Qnodecpu和Qnodememo的等待隊列,這三個Qnodeband、Qnodecpu和Qnodememo等待隊列分別表示目前物理節(jié)點中帶寬、CPU和內(nèi)存占用率最大的節(jié)點。
3)把Qnodeband等待隊列中的首元素取出,與之同時,把該首元素在Qnodecpu和Qnodememo等待隊列中刪除,同時把該首元素目標(biāo)物理節(jié)點中Qband隊列的首元素;
4)把Qnodecpu等待隊列中的首元素取出,與之同時,把該首元素在Qnodememo和Qnodeband等待隊列中刪除,同時把該首元素目標(biāo)物理節(jié)點中Qcpu隊列的首元素;
5)把Qnodememo等待隊列中的首元素取出,與之同時,把該首元素在Qnodecpu和Qnodeband等待隊列中刪除,同時把該首元素目標(biāo)物理節(jié)點中Qmemo隊列的首元素;
6)一直重復(fù)(3)—(5)步驟,條件是Qcpu、Qmemo和Qband等待隊列中都為空結(jié)束。
2.5基于云計算的在線遷移算法表述
基于云計算的在線遷移算法可以表述如下:
INPUT:基于云計算的各個源物理節(jié)點;
OUTPUT:需要遷移的等待隊列,也就是說需要把虛擬機v從源物理節(jié)點s中,遷移到目標(biāo)物理節(jié)點g上;
STEP1:依據(jù)公式(2)計算物理節(jié)點上CPU的占用率,依據(jù)公式(3)計算物理節(jié)點上內(nèi)存的占用率,依據(jù)公式(4)計算物理節(jié)點上帶寬的占用率,從而可以計算出物理節(jié)點上的S向量值,S表示該物理節(jié)點的負(fù)載值;
STEP2:根據(jù)Sth閥值向量值,在三個連續(xù)的Tc周期內(nèi),采集S分量值都大于Sth向量值的源物理節(jié)點,同時把S分量記錄為對應(yīng)的帶寬激發(fā)節(jié)點、CPU激發(fā)節(jié)點和內(nèi)存激發(fā)節(jié)點,從而就可以得到源物理節(jié)點s集合;
STEP3:依據(jù)激發(fā)類型,把物理節(jié)點上對應(yīng)值最高的虛擬機用來進行遷移,比如該物理節(jié)點是內(nèi)存激發(fā)節(jié)點,那么就在該物理節(jié)點上選擇內(nèi)存占用率最大的虛擬機用來遷移,從而得到v的集合,v表示等待遷移的虛擬機;
STEP4:依據(jù)帶寬激發(fā)、CPU激發(fā)和內(nèi)存激發(fā)把等待遷移的虛擬機進行分類,從而得到三個Qband、Qcpu和Qmemo等待隊列,
STEP5:依據(jù)帶寬、CPU和內(nèi)存的占用率由小到大對各物理節(jié)點排序,由此得到三個Qnodeband、Qnodecpu和Qnodememo的等待隊列,
STEP6:將Qcpu、Qmemo和Qband中的虛擬機根據(jù)2.4分別遷移到物理節(jié)點隊列Qnodecpu、Qnodememo和Qnodeband。
為了通過數(shù)據(jù)驗證文中算法,利用基于云計算的仿真模擬工具Cloudsim[6]來構(gòu)建實驗環(huán)境,表1就是基于云計算環(huán)境中的實驗參數(shù)。
表1 云計算環(huán)境實驗參數(shù)
那么在仿真模擬環(huán)境中,把文中算法和它比較,得到比較結(jié)果如表2。
表2 實驗比較結(jié)果
通過表2可以得出如下結(jié)論:由于文中算法分別從帶寬占用率、內(nèi)存占用率和CPU占用率來進行分析,所以在選擇目標(biāo)物理節(jié)點、等待遷移的虛擬機和源物理節(jié)點上效率更高,從而使遷移對應(yīng)的虛擬機效率更高,因此在等待遷移的數(shù)量不為最小值的虛擬機情形下,該算法SLA違反率較低,同時能耗最小,同時,也可以得出通過以用戶的QoS作為犧牲代價,來提高負(fù)載均衡和節(jié)能的方法,都有很高的SLA違反率。
文中算法通過對確定目標(biāo)物理節(jié)點、選擇等待遷移的虛擬機和選擇源物理節(jié)點等遷移的各個關(guān)鍵點上的以往傳統(tǒng)算法進行優(yōu)化,通過動態(tài)分配遷移虛擬機來提高云計算環(huán)境下的節(jié)能和負(fù)載均衡。文中仿真模擬結(jié)果顯示,文中算法在虛擬機在線遷移中,能夠提高物理節(jié)點的負(fù)載均衡,同時能耗最小。后續(xù)的研究方向就是,如何在用戶越來越高的QOS需求下,實現(xiàn)云計算環(huán)境中高效的虛擬機遷移問題。
[1]VAQUERO L,RODERO M L,CACERCE J,et al.A break in the clouds:towards a cloud definition[J].SIGCOMM Comput?er Communication Review,2009,39(1):50-55.
[2]張彬彬,羅英偉,汪小林,等.虛擬機全系統(tǒng)在線遷移[J].電子學(xué)報,2009,37(4):894-899.
[3]徐志紅,劉進軍,趙生慧.適應(yīng)廣域網(wǎng)的虛擬機在線遷移模型[J].計算機應(yīng)用,2012,32(7):1929-1931,1968.
[4]王得發(fā),王麗芳,蔣澤軍.云計算環(huán)境中虛擬機智能遷移關(guān)鍵技術(shù)研究[J].計算機測量與控制,2012,20(5):1389-1391.
[5]方義秋,唐道紅,葛君偉.云環(huán)境下基于虛擬機動態(tài)遷移的調(diào)度策略研究[J].微電子學(xué)與計算機,2012,29(4):45-48.
[6]胡志剛,歐陽晟,閻朝坤.云環(huán)境下面向能耗降低的資源負(fù)載均衡方法[J].計算機工程,2012,38(5):53-55.
(責(zé)任編輯:趙建周)
Live Migration Algorithm Based on Cloud Computing
MU Rui-hui
(College of Computer and Information Engineering,Xinxiang University,Xinxiang 453003,China)
Firstly,build an online migration algorithm model and virtual machine load assessment vector,then, according to the bandwidth rate for each physical node,memory usage and CPU utilization to determine migra?tion timing and source physical nodes need to migrate at the same time,according to the CPU in the share of each node,the efficient use of ROM,and bandwidth utilization to determine the target physical nodes.Through simula?tion environment test,showed that the proposed algorithm in a virtual machine live migration,and can greatly im?prove load balancing physical nodes,while the SLA violation rate minimum and cloud computing data center power consumption to a minimum.
violation rate;virtual machine;physical node;migration algorithm
TP301.6
A
1673-2928(2015)02-0049-03
2014-11-16
國家自然基金項目(61250007),河南省自然科學(xué)基金(1221013210871)。
穆瑞輝(1980-),男,河南輝縣人,新鄉(xiāng)學(xué)院講師,碩士研究生,研究方向:軟件設(shè)計與開發(fā)。