KVM虛擬機遷移原理分析

KVM虛擬機在不一樣主機之間的遷移,是個複雜的問題,有很是多的解決方案,可是不一樣的解決方案都有其優勢和缺點,下面來分析下當前幾種可用的KVM虛擬機遷移的方案。
1. 虛擬機遷移過程當中數據的傳輸(磁盤鏡像和內存數據)
  一般有兩種經常使用的數據傳輸方式:
  — 基於hypervisor的傳輸機制,即經過host之間鏈接來進行數據傳輸
  — 基於libvirtd的傳輸機制,即兩個libvirtd進程之間的數據傳輸
(1)基於hypervisor的數據傳輸
       這種傳輸方式具備最低的overload,由於傳輸的是裸數據,不支持數據的加密。另外,由於依賴於hypervisor的網絡,因此須要對hypervisor networks進行一些特定的配置,好比打開某些端口。
   html


(2)基於libvirtd的數據傳輸
   這種傳輸方式支持加密,是經過libvirt內建的RPC協議來進行數據的傳輸的,可是缺點是除了傳輸裸數據外,還須要傳輸一些額外的數據,這對鏡像尺寸 很大的虛擬機來講是個大問題。優勢是因爲不依賴與hypervisor network,因此不須要hypervisor對network作過多的配置,僅僅打開某個指定的port便可。 ios


  (2)虛擬機遷移過程當中的控制流 網絡


 

 帶有管理端的直接遷移,這種遷移方式是由一個管理客戶端發起,管理客戶端徹底控制整個遷移流程,因此它必須可以且有權限訪問源主機和目的主機上 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 app


 帶有管理端的點對點的遷移,這種遷移方式下,管理客戶端至於源libvirtd交互,而後源libvirtd徹底控制整個遷移過程。優勢是,即便管理客戶端掛掉了,遷移仍是能正常完成的。 ide

http://blog.chinaunix.net/uid-20940095-id-3616577.html ui

相關文章
相關標籤/搜索