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