云計算中采用虛擬機實時遷移技術(shù)實現(xiàn)數(shù)據(jù)中心資源的動態(tài)調(diào)度和管理。作為虛擬機實時遷移技術(shù)的核心,實時遷移算法目前雖然在運行性能方面表現(xiàn)良好,但在抗主機故障、網(wǎng)絡(luò)故障、惡意攻擊等魯棒性方面仍存在不足,進而在這些異常或危險情況下無法保證實時遷移過程順利完成,甚至干擾虛擬機內(nèi)業(yè)務(wù)正常運行。本文對虛擬機實時遷移技術(shù)中關(guān)鍵算法的魯棒性進行分析研究,指出其中所存在的問題,并提出相應(yīng)的解決思路。
【關(guān)鍵詞】虛擬機 實時遷移 云計算 魯棒性
1 引言
云計算將IT軟硬件資源通過網(wǎng)絡(luò)以服務(wù)的模式提供給最終用戶,使得用戶能夠按需使用、計量付費。基于IaaS(基礎(chǔ)設(shè)施即服務(wù))云計算平臺的應(yīng)用較為普遍,其主要采用虛擬化技術(shù)將CPU、存儲、硬盤、網(wǎng)絡(luò)等資源以虛擬機的訪問進行封裝、分配、調(diào)度及管理。用戶在云平臺提供的虛擬機上能夠快速、高效、廉價地搭建自己的IT基礎(chǔ)設(shè)施平臺。
虛擬機實時遷移是IaaS云計算平臺的一項關(guān)鍵核心技術(shù),其基于實時遷移算法將某臺物理主機上正在運行的虛擬機在線地移動到另一臺物理主機上,期間虛擬機正常提供對外服務(wù)。當(dāng)前主流的實時遷移算法雖然在運行性能方面較為良好,但是在抗主機故障、網(wǎng)絡(luò)抖動、惡意攻擊等魯棒性方面還存在一些問題。本文分析了實時遷移算法所存在的魯棒性問題并提出了相應(yīng)的幾個對策。
2 實時遷移算法
由于目前數(shù)據(jù)中心多采用共享存儲架構(gòu),因此實時遷移的主要對象是虛擬機的內(nèi)存鏡像、vCPU及I/O寄存器狀態(tài)數(shù)據(jù)。主流的實時遷移算法根據(jù)遷移對象先后次序的不同劃分為預(yù)拷貝Pre-copy和后拷貝Post-copy兩種。
Pre-copy是最先出現(xiàn)的實時遷移算法,其主要運行流程如下:
(1)實時遷移過程開始,源宿主機與目標(biāo)宿主機建立連接,目標(biāo)宿主機上預(yù)留虛擬機資源;
(2)首先將虛擬機的整個內(nèi)存鏡像,即所有內(nèi)存頁面?zhèn)鬏斶^去;
(3)進入一個迭代拷貝階段,每個迭代輪傳輸上一輪中產(chǎn)生的內(nèi)存臟頁;
(4)循環(huán)步驟3,直到剩余臟頁足夠小或者達到最大迭代次數(shù),退出迭代過程;
(5)進入停機拷貝階段,將vCPU寄存器及I/O設(shè)備狀態(tài)數(shù)據(jù)連同剩余臟頁一齊傳輸?shù)侥繕?biāo)宿主機;
(6)在宿主機上恢復(fù)虛擬機運行,實時遷移結(jié)束。
Post-copy算法出現(xiàn)較晚,其主要運行流程如下:
(1)實時遷移過程開始,源宿主機與目標(biāo)宿主機建立連接,目標(biāo)宿主機上預(yù)留虛擬機資源;
(2)源宿主機上暫停虛擬機運行,同時將虛擬機的vCPU寄存器及I/O設(shè)備狀態(tài)傳輸?shù)侥繕?biāo)宿主機上,然后立即恢復(fù)虛擬機繼續(xù)運行;
(3)虛擬機在目標(biāo)宿主機上運行期間若訪問到不存在的內(nèi)存頁面,則通過網(wǎng)絡(luò)缺頁中斷向源宿主機請求所需頁面。當(dāng)源主機將頁面?zhèn)鬏斶^來后,虛擬機繼續(xù)運行;
(4)當(dāng)虛擬機不再出現(xiàn)缺頁異常時,回收源主機上的虛擬機資源,實時遷移過程結(jié)束。
2 實時遷移算法的魯棒性研究
虛擬機實時遷移算法的魯棒性是指實時遷移算法在運行過程中,當(dāng)發(fā)生異常或危險情況下保證虛擬機正常運行、實時遷移過程不受干擾的可靠性程度。具體來說,魯棒性就是實時遷移算法能否在遇到物理主機故障、數(shù)據(jù)傳輸網(wǎng)絡(luò)故障或遭遇惡意攻擊的情況下,能否保證實時遷移過程順利完成,能否在實時遷移過程出現(xiàn)不穩(wěn)定狀況的條件下保證虛擬機內(nèi)業(yè)務(wù)的正常運行。
2.1 主機故障情況下的魯棒性問題及對策
主機故障的情況是指在實時遷移過程中,源宿主機、目標(biāo)宿主機有任何一端因設(shè)備故障或斷電導(dǎo)致主機下線。
在這種情況下,對于Pre-copy算法來說,由于采用了從源主機向目標(biāo)主機同步內(nèi)存數(shù)據(jù)的方式,而且實時遷移期間,虛擬機仍在源主機上運行,因此Pre-copy對源主機故障敏感,對目標(biāo)主機故障具有魯棒性。那么解決思路就是對源主機采取雙機熱備的物理架構(gòu);而對于Post-copy算法,由于采用了從目標(biāo)主機向源主機索取數(shù)據(jù)的方式,而且虛擬機運行在目標(biāo)主機上,因此Post-copy對源、目標(biāo)主機的故障都敏感,則解決思路就是對源、目標(biāo)主機都采用雙機熱備的架構(gòu)。
2.2 網(wǎng)絡(luò)故障情況下的魯棒性問題及對策
網(wǎng)絡(luò)故障的情況是指在實時遷移過程中,源宿主機和目標(biāo)宿主機之間的網(wǎng)絡(luò)鏈路由于暫時中斷或者發(fā)生擁塞導(dǎo)致實時遷移的數(shù)據(jù)包丟失。
在這種情況下,關(guān)鍵是需要實時遷移算法感知到網(wǎng)絡(luò)故障的發(fā)生,避免在丟失內(nèi)存頁面數(shù)據(jù)的情況下啟動虛擬機而導(dǎo)致虛擬機故障,而兩個算法尚未完善這種機制。對于Post-copy算法來說,由于采用目標(biāo)主機向源主機主動獲取頁面的方式,因此可設(shè)置當(dāng)長時間等待不到所需頁面時則認(rèn)定發(fā)生網(wǎng)絡(luò)故障;對于Pre-copy算法,由于源主機一直向目標(biāo)主機發(fā)送數(shù)據(jù),則可設(shè)置一個響應(yīng)機制,由目標(biāo)主機周期性地給源主機發(fā)送響應(yīng)報文,說明接收數(shù)據(jù)正常。
2.3 惡意攻擊情況下的魯棒性問題及對策
惡意攻擊的情況是指在實時遷移過程中,系統(tǒng)惡意攻擊者通過網(wǎng)絡(luò)監(jiān)聽、TCP/IP欺騙等攻擊方式對因進行實時遷移而傳輸在網(wǎng)絡(luò)鏈路上的虛擬機狀態(tài)數(shù)據(jù)進行非法獲取、篡改或破壞。
對于這種情況,目前兩個算法由于在數(shù)據(jù)傳輸過程中都直接傳輸內(nèi)存頁面的明文內(nèi)容,未進行任何處理,因此都不具有魯棒性。解決思路是在實時遷移算法中引入加密機制,比如SSL,對所遷移的虛擬機狀態(tài)數(shù)據(jù)進行加密。
3 結(jié)語
本文針對云計算中虛擬機實時遷移算法的魯棒性問題進行了分析和研究。通過分析Pre-copy和Post-copy兩個主流實時遷移算法在異常或危險情況下魯棒性方面的不足,給出了相應(yīng)的解決思路,為提高虛擬機實時遷移技術(shù)的魯棒性提供了進一步研究的參考依據(jù)。
參考文獻
[1]常德成,徐高潮.虛擬機動態(tài)遷移方法[J].計算機應(yīng)用研究,2013,04:971-976.
[2]袁野,趙海燕,曹健等.虛擬機內(nèi)存遷移技術(shù)研究[J].小型微型計算機系統(tǒng),2014,35(2):412-418.
作者簡介
崔勇(1983-),男,河南省鄭州市人。碩士學(xué)位。現(xiàn)為河南無線電管理信息系統(tǒng)備份中心助理工程師。主要研究方向為云計算、虛擬化技術(shù)。
張志偉(1981-),女, 河南省新鄉(xiāng)市人。現(xiàn)為河南信息工程學(xué)校助理工程師。主要研究方向為計算機網(wǎng)絡(luò)。
作者單位
1.河南無線電管理信息系統(tǒng)備份中心 河南省鄭州市 450000
2.河南信息工程學(xué)校 河南省鄭州市 450000