源起:
道聽途說曰,VMotion是VMware的特色之一,以此為基礎,上面實現了動態遷移,DRS,HA等功能,但是底層的原理是什么樣的呢?
什么是VMotion?
VMotion允許虛機動態的從一臺物理主機遷移到另外一臺物理主機,并保證遷移過程0停機,不停服,并且能保障事務完整性。
當虛機從一臺物理主機遷移到另外一臺物理主機,并且保持不停機,不停服 到底是如何做到的?
VMotion是如何工作的?
先決條件,多臺物理ESXI主機共享一套存儲,所有的連接到這套存儲上的ESXI主機都可以讀寫虛機文件。
首先,VMotion在目的主機上建立一套源虛機的“Shadow Copy",用于接收源虛機的內存數據。
然后, VMotion建立一套源虛機的系統快照,一般稱作"PreCopy".并把這個PreCopy迅速通過以太網絡傳輸給目標主機。
于此同時,VMotion建立一套change log buffer用于存儲此時源虛機的內存變化,VMotion不斷的傳輸變化內容給目的主機直到下一組變化數據小于500ms就可以傳輸完畢。VMotion關閉源虛機CPU,并把最后一片兒change log buffer傳輸給目的虛機,切斷源虛機的磁盤訪問,并打開目的虛機的磁盤訪問。最后,啟動目的虛機的CPU。
最后,VMotion通知目的虛機發送一個RARP包,通知網絡中的交換機更新其MAC地址-----物理地址映射。從而,所有流量會轉發至正確的接口。
熱遷移過程中虛機MAC地址不變,但是克隆虛機會導致目的虛機MAC地址變化。