KVM虚拟机迁移原理分析

KVM虚拟机在不同主机之间的迁移,是个复杂的问题,有非常多的解决方案,但是不同的解决方案都有其优点和缺点,下面来分析下当前几种可用的KVM虚拟机迁移的方案。
1。虚拟机迁移过程中数据的传输(磁盘镜像和内存数据)
,通常有两种常用的数据传输方式:
,——基于虚拟机监控程序的传输机制,即通过主机之间连接来进行数据传输
,——基于libvirtd的传输机制,即两个libvirtd进程之间的数据传输
(1)基于虚拟机监控程序的数据传输
,,,,,,这种传输方式具有最低的过载,因为传输的是裸数据,不支持数据的加密。另外,因为依赖于虚拟机监控程序的网络,所以需要对程序网络进行一些特定的配置,比如打开某些端口。
,,

 KVM虚拟机迁移原理分析


(2)基于libvirtd的数据传输
,,这种传输方式支持加密,是通过libvirt内建的RPC协议来进行数据的传输的,但是缺点是除了传输裸数据外,还需要传输一些额外的数据,这对镜像尺寸很大的虚拟机来说是个大问题。优点是由于不依赖与管理网络,所以不需要管理程序对网络做过多的配置,仅仅打开某个指定的端口即可。

 KVM虚拟机迁移原理分析


,(2)虚拟机迁移过程中的控制流

 KVM虚拟机迁移原理分析


,

,带有管理端的直接迁移,这种迁移方式是由一个管理客户端发起,管理客户端完全控制整个迁移流程,所以它必须能够且有权限访问源主机和目的主机上libvirtd的权限,因为外加一个管理客户端,所以不需要源libvirtd和目的libvirtd之间进行直接的交流,只需要按照管理客户端的指示来办事就好了。这种方式的优点是:
,,如果客户机应用程序崩溃,或者失去了连接libvirtd在迁移过程中,试图将中止迁移和重新启动客人cpu>  KVM虚拟机迁移原理分析


,带有管理端的点对点的迁移,这种迁移方式下,管理客户端至于源libvirtd交互,然后源libvirtd完全控制整个迁移过程。优点是,即使管理客户端挂掉了,迁移还是能正常完成的。

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

KVM虚拟机迁移原理分析