摘要:以虛擬機動態(tài)遷移關鍵技術的優(yōu)化作為研究的主要目標,對現(xiàn)有的虛擬機動態(tài)遷移框架進行解析,改進動態(tài)遷移機制和遷移算法,提出預測概率算法和內存壓縮算法。通過實驗與比較分析,證明該改進框架和算法在虛擬機動態(tài)遷移上減少了數(shù)據(jù)傳輸量,縮短宕機時間,提高了虛擬機動態(tài)遷移性能。
關鍵詞:虛擬機;動態(tài)遷移;遷移時間;改進算法
中圖分類號:TP393文獻標識碼:A
1概述
隨著科技的發(fā)展,云計算的出現(xiàn)給網(wǎng)絡服務提出了全新的概念。云計算通過網(wǎng)絡將各種動態(tài)資源分布在大量的計算機上,包括計算資源、存儲資源等,用戶可按照需求獲取相應的服務信息[1]。虛擬化技術為云計算提供了更有效的資源分配,虛擬化方法是把各種應用程序運行在虛擬機中,以按需分配的方式提供給用戶使用,而一臺或多臺虛擬機則被分配到物理服務器上,各虛擬機間相互獨立,當某臺虛擬機出現(xiàn)故障或遭受攻擊不會影響到其他虛擬機正常運行。虛擬化技術可以為云計算合理的分配資源,有效的提高資源利用率,最終減少投資運營成本。然而,在數(shù)據(jù)中心,部署在虛擬機上應用程序的訪問量會不斷的發(fā)生變化,從而使得物理服務器的負載發(fā)生變化,為了均衡服務器上的工作負載,可以使用虛擬機的動態(tài)遷移技術[2]。
虛擬機的動態(tài)遷移是指將正在運行的虛擬機從一臺服務器遷移到另一臺服務器上。遷移過程中要確保應用程序能正常運行,不中斷為用戶提供服務。虛擬機動態(tài)遷移技術,可以用在服務器故障需要停機時,服務器負載過重時及調整硬件利用率,從而有效管理數(shù)據(jù)中心的資源,提高系統(tǒng)整體性能[3]。
2虛擬機動態(tài)遷移技術
虛擬機動態(tài)遷移主要包括:CPU的狀態(tài)、I/O設備、網(wǎng)絡資源、存儲以及內存等,只有這樣才能保證遷移后的虛擬機能正常運行[5]。網(wǎng)絡資源包括IP地址以及協(xié)議狀態(tài),存儲遷移主要包括鏡像文件及其他必要的文件,在局域網(wǎng)中可以使用共享服務。在虛擬機動態(tài)遷移中,CPU、I/O狀態(tài)的數(shù)據(jù)量非常小,而且便于封裝以及遷移。在整個遷移過程中,內存的內容會不斷地被續(xù)寫,而且內存的性能對虛擬機動態(tài)遷移的總遷移和停機時間有很大的影響,所以內存遷移是動態(tài)遷移中最復雜也是最重要的部分[6]。下面以Xen為例,著重從內存遷移的角度分析虛擬機動態(tài)遷移的過程,包括以下4個基本模塊。如圖1所示:
圖1傳統(tǒng)的遷移機制圖
計算技術與自動化2016年3月
第35卷第1期張亞昕:面向云計算的虛擬機動態(tài)遷移技術研究
1)監(jiān)聽遷移模塊:該模塊依據(jù)負載均衡的原則,開啟負責遷移的虛擬機,尋找遷移的目標域并發(fā)出遷移請求,詢問目標虛擬機能否滿足資源需求,若滿足,則預定這些資源;若不滿足,不觸發(fā)遷移,繼續(xù)尋找其他主機作為目標主機。
2)遷移執(zhí)行模塊:該模塊負責遷移的具體實施,直接影響到整個內存遷移的總遷移時間和宕機時間[7]。在收到監(jiān)聽模塊發(fā)來的內存遷移信號后,遷移執(zhí)行模塊開始收集遷移域及其他相關域的狀態(tài)信息,并封裝收集到的信息;發(fā)送凍結信號給凍結模塊;接下來,遷移執(zhí)行模塊在保持虛擬機運行的同時傳輸內存頁到目的主機。內存頁進行有限次的迭代拷貝,直到滿足退出迭代拷貝的條件,停止拷貝[8][9]。
3)凍結模塊:凍結模塊會凍結源虛擬機,這時虛擬機停止運行,內存不再更新,并傳送上一次傳送中產生的臟頁和剩下的內存頁到目標主機上,同時發(fā)送網(wǎng)絡資源和CPU狀態(tài)信息給目的主機,這段時間稱為“宕機時間”。
4)目標域喚醒模塊:遷移模塊向目標域喚醒模塊發(fā)出“喚醒”信號,喚醒目標域,目的域和遷移域服務一致,新虛擬機建立。
3動態(tài)遷移優(yōu)化算法
根據(jù)上文的研究可知,遷移執(zhí)行模塊在傳送內存頁時,臟頁率高的內存很可能再次傳送,并且在后面迭代拷貝過程中,臟頁可能被再次修改,,這樣會增加總的傳送數(shù)據(jù)量,總遷移時間變長。因此,為了提高虛擬機動態(tài)遷移的性能,關鍵是更準確的測定工作集,減少宕機時間,在原來的遷移執(zhí)行模塊中增加預測概率模塊和內存壓縮模塊,并提出兩個優(yōu)化算法:預測概率算法和內存壓縮算法。
3.1預測概率算法
預測概率算法使用了Markov預測模型,該模型首先收集所有內存頁到目前為止最近N次的修改信息并況保存起來,然后利用收集到的這N次信息預測本次傳送后又變臟的概率。該算法在預測概率的過程中考慮了臟頁的變化情況,在標記內存頁變化情況優(yōu)原來的兩個狀態(tài)位,修改為三個狀態(tài)位,提高了預測的準確度。并依據(jù)之前對內存頁的監(jiān)測情況來確定第1次迭代傳輸?shù)膬却骓摚瑴p少了臟頁的反復傳送的次數(shù),同時節(jié)省了總傳輸時間。
本文采用貝葉斯條件概率預測臟頁又變臟的概率。假設N1表示內存頁沒有被讀、寫,N2表示內存頁被修改,N3表示內存頁只讀。
(1)狀態(tài)轉移概率矩陣:假定內存頁有k個可能的狀態(tài),即N1,N2……Nk,這里假設k=3,內存頁狀態(tài)由Ni變?yōu)镹j的狀態(tài)轉移概率由qij表示。
q=q11q12…q1k
q21q22…q2k
qk1qk2…qkk(1)
(2)狀態(tài)概率:狀態(tài)概率表示內存頁的狀態(tài)轉移n次后變?yōu)闋顟B(tài)Nj的概率,即:
∑nj=1πj(d)=1(2)
根據(jù)貝葉斯的條件概率公式,得到:
πj(d)=∑ni=1πj(d-1)qij,其中j=1,2,…,k(3)
設行向量π(k)=[π1(d),π2(d),…,πk(d)],初始狀態(tài)行向量為π(0)=[0,1,1],
由公式(3)得到概率狀態(tài)遞推公式:
π(1)=π(0)q
π(2)=π(1)q=π(0)q2
π(k)=π(k-1)=π(0)qk(4)
3.2內存壓縮算法endprint
內存壓縮算法:在傳統(tǒng)虛擬機動態(tài)遷移策略中,一般采用氣球驅動程序動態(tài)調整虛擬機上運行的內存。本算法先利用Ballon驅動程序動態(tài)分配內存,再在系統(tǒng)的存儲層加入一層—內存壓縮層。該壓縮層把要遷移的內存以壓縮頁的形式存放起來,遷移到目標機上。這樣可以減少傳送的數(shù)據(jù)量,縮短總傳送時間。該系統(tǒng)是由一個可裝卸的驅動程序組成,便于在不同系統(tǒng)之間遷移,主要包括內存壓縮管理模塊、壓縮算法模塊、設備驅動程序三個模塊。
內存壓縮管理模塊是將塊設備作為一個交換設備首先在內存中為塊設備劃出一定大小的空間,壓縮要遷移的內存頁,然后以壓縮的形式存儲這些內存頁。為了有效的管理壓縮后的內存頁,本文采用LinkFit方法,即將壓縮后的每一個邏輯頁內存頁存儲在稱為cell的基本分配塊中。這些邏輯頁在內存中可以不是連續(xù)的,通過指針鏈接構成一個完整的邏輯體。壓縮算法模塊:本壓縮算法采用的是Lempel一Ziv壓縮算法,該算法在壓縮文件中用數(shù)字代替字符,非常適合應用在重復率高的文件中進行壓縮。塊設備驅動程序:塊設備驅動程序主要依靠如下幾個函數(shù)來實現(xiàn),intzipmem_init(void)的功能是向系統(tǒng)注冊zipmem設備,進行設備初始化;intzipmem_cleanuP(void)的功能是卸載設備zipmem設備,并清除信息;intzipmem_make_request是請求函數(shù),主要是完成設備的讀寫工作。具體實現(xiàn)的流程如圖2所示:
4實驗環(huán)境與結果分析
4.1實驗環(huán)境
為保證實驗環(huán)境的穩(wěn)定,實驗結果精確,本文構建構建了一個同構的局域網(wǎng)作為測試環(huán)境。實驗環(huán)境配置表如表1所示:
4.2預測概率算法測試與分析
將預測概率算法編譯進Xen源代碼中,在空負載的情況下,分別測試在低臟頁率和高臟頁率兩個環(huán)境下源算法和預測概率算法的遷移性能。把Domain中的遷移內存分別設置為256MB,512MB和1024MB,并記錄每次遷移的數(shù)據(jù),經(jīng)多次實驗取代次數(shù)、宕機時間和遷移時間的平均值,實驗結果如表2和3所示:
由表2看出,在低臟頁率的環(huán)境下,遷移迭代次數(shù)較少,沒有達到最大迭代次數(shù)30次,分配的內存空間對宕機時間影響不大,即預測概率算法對內存遷移的優(yōu)化作用不明顯。由表3可看出,在高臟頁率的環(huán)境下,迭代次數(shù)增加很多,原算法超過最大迭代次數(shù)30次而退出拷貝,預測概率算法對迭代次數(shù)略有控制,但在總遷移時間和宕機時間上明顯減少,提高遷移性能,達到優(yōu)化遷移的目的。
4.3內存壓縮算法測試與分析
本實驗預先設置虛擬機遷移內存為1024MB,在高臟頁率環(huán)境并有負載的環(huán)境下進行,實驗測試加入預測概率算法和內存壓縮算法的遷移性能。
如圖3所示:在遷移傳輸過程中,總遷移頁數(shù)越多,遷移所產生的臟頁就越多,而臟頁會影響遷移中的網(wǎng)絡服務。預測概率算法和內存壓縮算法的相互配合,使遷移時的總發(fā)送頁數(shù)和遷移過程中產生的臟頁數(shù)明顯減少,降低了對網(wǎng)絡服務的影響,縮短了傳送內存頁的總時間和停機的時間,有效提高了內存遷移的性能。
圖3(a)改進前后總
圖3(b)改進前后產生臟頁對比
5結論
本文將虛擬機動態(tài)遷移關鍵技術的優(yōu)化作為研究的主要目標,對Xen的動態(tài)遷移框架進行了解析,并提出預測概率算法和內存壓縮算法。搭建實驗平臺,構建了虛擬機動態(tài)遷移所需的基本環(huán)境,通過修改動態(tài)遷移虛擬機中內存變量,分別測試在低臟頁率和高臟頁率兩個環(huán)境下動態(tài)遷移性能。通過實驗數(shù)據(jù)得出結論:預測概率算法在臟頁率高的情況下遷移消耗時間和宕機時間明顯減少。然后在虛擬機內存為1O24MB時,在使用概率預測算法的基礎上,加上壓縮內存算法,通過對比動態(tài)遷移性能得出內存壓縮算法減少了數(shù)據(jù)傳輸量,縮短宕機時間,提高了虛擬機動態(tài)遷移性能。
參考文獻
[1]HUANGDW,YEDS,HEQM,CHENJH,YEK.ABenchmarkforLiveMigrationofVirtualMachine[C].Proceedingsofthe2ndJointWOSP/SIPEWInternationalConferenceonPerformanceEngineering,NewYork,2011:307-316.
[2]MAURYAK,SINHAR.EnergyConsciousDynamicProvisioningofVirtualMachinesusingAdaptiveMigrationThresholdsinCloudDataCenter[J].2013:34-36.
[3]張璞.基于Xen的虛擬機動態(tài)遷移策略研究[D].沈陽:遼寧大學碩士論文,2013:34-39.
[4]懷進鵬,李泌,胡春明.基于虛擬機的虛擬計算環(huán)境研究與設計[J].軟件學報,2007,18(8):2016-2026.
[5]OSTL,VARYANIS,INDRUSIAKLS,etal.EnablingAdaptiveTechniquesinHeterogeneousMPSoCsBasedonVirtualization[J].ACMTransactionsonReconfigurableTechnologyandSystems(TRETS),2012,5(3):17-21.
[6]陸勇.云計算與分布式并行處理以及網(wǎng)格布式、并行處理以及網(wǎng)格計算的關系山[J].中國媒體技術,2010(3):45-46
[7]馮振.基于LZW的數(shù)據(jù)壓縮硬件系統(tǒng)設計[D].荊州:長江大學碩士論文,2013:23-26.
[8]MISHRAM,DASA,KULKARNIP,SAHOOA.DynamicResourceManagementUsingVirtualMachineMigrations[J].CommunicationsMagazine,IEEE,2012,50(90):34-40.
[9]楊旌.服務云計算的虛擬機動態(tài)遷移技術[J].電腦知識與技術,2011,28(7):6876-6879.
第35卷第1期2016年3月計算技術與自動化ComputingTechnologyandAutomationVol35,No1Mar.2016第35卷第1期2016年3月計算技術與自動化ComputingTechnologyandAutomationVol35,No1Mar.2016endprint