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