VMware VMotion詳解
VMotion作為VMware VI3和vSphere產品系列的一個重要特性,常常讓很多用戶感到驚奇,具體的實現方式也一直是一個謎。實際上,VMotion已經成為服務器虛擬化的一個標竿,如果沒有VMotion功能的虛擬化,根本沒辦法運行生產環境。既然VMotion如此重要,所以我試著從純流程的角度來解釋VMotion發生時背后的故事,讓大家能夠更深入理解虛擬化中VMotion的實現機理。
發生VMotion開始時,就相當于在目標機器上創建一個新的虛擬機。在新虛擬機創建過程中的前10%部分和創建其他的虛擬機沒什么兩樣。接下去,我們開始為該虛擬機啟動VMM(虛擬機監控程序,是每個虛擬機必備的底層),這實際上就是啟動了一個新的虛擬機,并為它清空了一段內存地址。此時,該虛擬機并沒有訪問磁盤,也沒有執行任何指令,它只是準備好了接受內存段,然后填充到它自己的內存頁表里。
從虛擬機創建到10%這個點,我們開始從源虛擬機將內存段復制到目標虛擬機,該動作需要的時間取決于網絡速度、網絡擁塞、虛擬機正在使用的內存大小和內存變化的速度(此時虛擬機仍然在正常運行中)。當完成到80%時,我們假定可以在1秒或更短時間內完成內存復制。接著我們就暫停源虛擬機,復制剩余的內存段,啟動目標虛擬機,并且從目標虛擬機上執行反向ARP,讓網絡交換機知道新的MAC地址。當到達90%,復制***可能變化的內存到目標虛擬機。接著源虛擬機被破壞(只是解散配置和VMM),從而成功完成該次VMotion。
【編輯推薦】