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