虛擬化學習筆記 KVM虛擬化跨機遷移原理

2021-08-15 21:25:01 字數 1691 閱讀 5472

參考:

圖 1-1在目標端新建虛擬機器映象

圖 1-2 在目標端建立新虛擬機器

為此,在遷移過程中各種資料如何有序遷移?首先,libvirt會傳送qmp_dirve_mirror命令來通知qemu進行虛擬機器磁碟資料遷移,從而在源端和目標端直接同步磁碟資料。然後,libvirt會再次傳送qmp_migrate命令通知qemu進行虛擬機器記憶體資料遷移,進一步完成虛擬機器主要資料的遷移。最後,由於裝置狀態對應的資料量很少,在遷移最後階段會通過一次性同步,將qemu裡每個裝置註冊的狀態同步到目標端。

另外,遷移過程中發生變更的資料如何遷移?如果不遷移變更的資料,那資料必然不一致,也表明遷移還不能結束,因此qemu一般通過資料遷移準備、資料遷移、資料遷移收尾三個步驟來完成。

迴圈呼叫磁碟和記憶體遷移函式也是按階段來分別呼叫的。首先,迴圈呼叫磁碟和記憶體遷移函式的遷移資料準備功能,即前期準備工作,例如把磁碟按block為單位組織成乙個陣列,並設定記錄髒塊機制;把記憶體所有頁全部設定為臟頁,並傳送開始遷移的標誌到vm』的程序。

緊接著,需要進行真正的資料遷移,qemu在這個階段呼叫磁碟和記憶體遷移函式的第二步驟功能,並且要求必須等磁碟資料遷移完成後才會執行記憶體資料遷移。如圖 1-4所示,qemu首先會進行磁碟(記憶體)的全量資料遷移,依次將每個block(頁)遷移到目標端desthost。

圖 1-4 全量資料遷移示意圖

然後再通過多次迭代,將遷移過程中虛擬機器產生的新資料遷移到目標端desthost(如圖 1-5所示)。這一迭代過程是收斂的,收斂依據與之前設定的頻寬、最大停機時間有關。同時,在迭代過程中,qemu將邊遷移邊記錄剩下的髒資料大小,並與停機時間進行比較,如果這個值比停機時間大,那麼繼續遷移,如果比停機時間小,那麼源端qemu程序就會暫停,從而避免產生新的髒資料,以便進行遷移收尾工作。

在虛擬機器暫停之後,進入第三步遷移收尾工作,源端qemu程序會把磁碟、記憶體髒資料和裝置狀態一次性同步到目標端,完成時vm和vm』的資料將會一致。這時,上層管理軟體會把vm關閉,並把vm』的vcpu恢復執行狀態,整個虛擬機器的資料遷移就完成了。

圖 1-5 增量資料遷移示意圖

這就是遷移完成後的網路切換,由於切換時間很短,少於tcp的超時重傳時間,因此對於原vm上跑著網路服務程式幾乎是無感知的。此後,如圖 1-6所示,目標端desthost虛擬機器就具備和使用者直接進行互動的能力,而源端sourcehost虛擬機器此時就可以刪除。

圖 1-6 完成虛擬機器遷移示意圖

- 在磁碟和記憶體負載高的情況下,存在遷移無法完成的情況;

- 跨機遷移存在網路中斷時間長的問題;

- 跨儲存型別的場景下如何進行遷移;

- 如何應用遷移進行虛擬機器元件的更新。

虛擬化學習筆記 KVM虛擬化跨機遷移原理

參考 圖 1 1在目標端新建虛擬機器映象 圖 1 2 在目標端建立新虛擬機器 為此,在遷移過程中各種資料如何有序遷移?首先,libvirt會傳送qmp dirve mirror命令來通知qemu進行虛擬機器磁碟資料遷移,從而在源端和目標端直接同步磁碟資料。然後,libvirt會再次傳送qmp mig...

kvm虛擬化學習筆記 八 之kvm虛擬機器vnc配置

kvm虛擬化學習筆記系列文章列表 kvm虛擬化學習筆記 一 之kvm虛擬化環境安裝 kvm虛擬化學習筆記 二 之linux kvm虛擬機器安裝 kvm虛擬化學習筆記 三 之windows kvm虛擬機器安裝 kvm虛擬化學習筆記 四 之kvm虛擬機器日常管理與配置 kvm虛擬化學習筆記 五 之win...

kvm虛擬化學習筆記 八 之kvm虛擬機器vnc配置

原始出處 作者資訊和本宣告。否則將追究法律責任。kvm虛擬化學習筆記系列文章列表 kvm虛擬化學習筆記 一 之kvm虛擬化環境安裝 kvm虛擬化學習筆記 二 之linux kvm虛擬機器安裝 kvm虛擬化學習筆記 三 之windows kvm虛擬機器安裝 kvm虛擬化學習筆記 四 之kvm虛擬機器日...