libvirt管理虚拟机的迁移方式

libvirt迁移方式
======================================================================================
迁移数据传送方式
一种是利用虚拟机本身(即Hypervisor)之间的迁移(Native),另外一种则是使用libvirtd后台进程的迁移(Tunnelld)。
Native :依赖于Hypervisor,可能不支持加密,消耗资源少,如果支持并发迁移,可能会使用多个端口
另外一种叫隧道迁移,实际上是依赖于libvirtd的后台进程,支持加密,但是增多了libvirt与Hypervisor之间的信息传递,所以等于添加了额外的开销,这个问题应用于内存比较大的东西时,就会显得比较麻烦。它也支持并发迁移,但是只会使用一个端口。要使用这种迁移方法,可以使用
======================================================================================
迁移管理方式
直接托管迁移
这种模式下源主机和目的主机不需要相连,由第三方libvirt客户端进行控制,所以,libvirt客户端就需要连到源主机和目的主机,需要得到它们的认证。数据从源主机到libvirt客户端,再到目的主机,这个过程中,如果客户端崩掉了,那么源主机会尝试恢复原来的状态,还有另外一个问题是,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 成功迁移后,目的主机被定义,但没有运行
3 这种方法比重新定义xml的方法(手动迁移)要好,因为离线迁移会做一些预处理( 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方式。
虽然解释有点牵强。。。

猜你喜欢

转载自javakill.iteye.com/blog/1953757