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