libvirt迁移方式


======================================================================================


迁移数据传送方式


一种是利用虚拟机本身(即Hypervisor)之间的迁移(Native),另外一种则是使用libvirtd后台进程的迁移(Tunnelld)。


Native :依赖于Hypervisor,可能不支持加密,消耗资源少,如果支持并发迁移,可能会使用多个端口


另外一种叫隧道迁移,实际上是依赖于libvirtd的后台进程,支持加密,但是增多了libvirt与Hypervisor之间的信息传递,所以等于添加了额外的开销,这个问题应用于内存比较大的东西时,就会显得比较麻烦。它也支持并发迁移,但是只会使用一个端口。要使用这种迁移方法,可以使用


======================================================================================


迁移管理方式


直接托管迁移


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.


p2p托管迁移


1 源主机和目的主机相连(认证),客户端和源主机相连(认证),客户端和目的主机不相连(认证)


2 源主机管理着整个迁移过程。


3 如果客户端崩掉的话,那么迁移过程仍然会继续。


4 if these differ, it is common to run into a situation where a client can connect to the destination directly but the source cannot make the connection to set up the peer-to-peer migration


非托管迁移


1 这种迁移模式下,libvirt客户端和libvirt后台进程都没有控制迁移过程,控制迁移的是Hypervisor本身的服务


2 客户端仅仅是控制Hypervisor这一层的服务,如果迁移过程中,libvirtd后台程序或者客户端崩掉,迁移过程仍然不会被打断。


===========================================================================================


数据安全


1 数据与迁移的数据以及管理的数据最好分开。


2 如果虚拟机不支持这种方式,最好是用隧道迁移。


===========================================================================================


离线迁移


1 传输没有运行的虚拟机


2 成功迁移后,目的主机被定义,但没有运行


 It's a bit more clever than  virsh dumpxml  on source host followed by  virsh define  on destination host, as offline migration will run the pre-migration hook to update the domain XML on destination host.)


4 不支持块迁移,仅支持共享存储迁移。


===========================================================================================


迁移的URIS


需要知道三个URI


1 源主机


2 目的主机(需要考虑是否使用p2p,如果是p2p,那么这个目的主机就是从源主机的角度来说)


3 管理程序


对于第三个,一般不关心,但是在以下三个情况需要注意


1 主机名配置不正确


2 主机由多个网络接口,这时需要考虑使用IP


3 防火墙规则下规定的端口(包括允许,禁止,以及Hypervisor等的端口)。


============================================================================================


迁移应用场合


迁移的六种方式


这种迁移并不是根据2*3=6而得,而是有自己的特殊情况而定。                                      


例如隧道迁移仅仅与p2p模式结合,所以,源主机--->客户端---->目的主机的模式不适用。


所以隧道迁移有两种,一种是客户端--->源主机----->目的主机的托管模式,另外一种是非托管模式


而本地迁移(Native)有四种模式,


第一种是


托管模式:


源主机----->客户端----->目的主机


客户端----->源主机----->目的主机


非托管模式:


p2p


所以多出来的一种也是托管模式


这种托管模式是客户端---->源主机,但是这两者都不与目的主机相连,因为两者的迁移过程是p2p方式。


虽然解释有点牵强。。。