天天看點

KVM虛拟機遷移原理分析

KVM虛拟機在不同主機之間的遷移,是個複雜的問題,有非常多的解決方案,但是不同的解決方案都有其優點和缺點,下面來分析下目前幾種可用的KVM虛拟機遷移的方案。

1. 虛拟機遷移過程中資料的傳輸(磁盤鏡像和記憶體資料)

  通常有兩種常用的資料傳輸方式:

  -- 基于hypervisor的傳輸機制,即通過host之間連接配接來進行資料傳輸

  -- 基于libvirtd的傳輸機制,即兩個libvirtd程序之間的資料傳輸

(1)基于hypervisor的資料傳輸

       這種傳輸方式具有最低的overload,因為傳輸的是裸資料,不支援資料的加密。另外,因為依賴于hypervisor的網絡,是以需要對hypervisor networks進行一些特定的配置,比如打開某些端口。

KVM虛拟機遷移原理分析

(2)基于libvirtd的資料傳輸

   這種傳輸方式支援加密,是通過libvirt内建的RPC協定來進行資料的傳輸的,但是缺點是除了傳輸裸資料外,還需要傳輸一些額外的資料,這對鏡像尺寸很大的虛拟機來說是個大問題。優點是由于不依賴與hypervisor network,是以不需要hypervisor對network做過多的配置,僅僅打開某個指定的port即可。

KVM虛拟機遷移原理分析

  (2)虛拟機遷移過程中的控制流

KVM虛拟機遷移原理分析

  帶有管理端的直接遷移,這種遷移方式是由一個管理用戶端發起,管理用戶端完全控制整個遷移流程,是以它必須能夠且有權限通路源主機和目的主機上libvirtd的權限,因為外加一個管理用戶端,是以不需要源libvirtd和目的libvirtd之間進行直接的交流,隻需要按照管理用戶端的訓示來辦事就好了。這種方式的優點是:

   If the client application crashes, or otherwise loses its connection to libvirtd during the migration process, an attempt will be made to abort the migration and restart the guest CPUs on the source host. There may be scenarios where this cannot be safely done, in which cases the guest will be left paused on one or both of the hosts

KVM虛拟機遷移原理分析

 帶有管理端的點對點的遷移,這種遷移方式下,管理用戶端至于源libvirtd互動,然後源libvirtd完全控制整個遷移過程。優點是,即使管理用戶端挂掉了,遷移還是能正常完成的。