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方式。
虽然解释有点牵强。。。
分享到:
相关推荐
2. libvirt和libvirtd的作用:libvirt为不同虚拟化技术提供了统一的管理接口,而libvirtd作为libvirt的守护进程,负责处理虚拟化操作的具体请求,并管理虚拟机迁移的详细流程。 3. 虚拟机迁移过程中的网络配置:...
通过本文的介绍,我们可以看到libvirt和virsh为用户提供了强大且灵活的方式来管理KVM虚拟机。无论是创建新的虚拟机、修改虚拟机配置还是执行虚拟机的各种状态转换,virsh都提供了简单易用的命令行工具。掌握这些基本...
而在KVM中,libvirt库提供了迁移接口,结合qemu-kvm可以实现虚拟机的动态迁移。这些工具通常会结合Live Migration策略,如使用本机内存映射(NMI-based migration)或无锁内存转储(copy-on-write migration)等方法...
对于没有使用共享存储的环境,可以采用本地存储的动态迁移方式。这种方式需要同时迁移虚拟机的内存状态和磁盘状态,因此迁移时间会更长。实现步骤如下: 1. **准备阶段**:在目标主机上准备好必要的存储空间和其他...
虚拟机迁移技术是服务器虚拟化领域的重要组成部分,它赋予了资源调配更高的灵活性,尤其在线迁移技术,极大地提升了虚拟服务器的可用性和可靠性。在众多虚拟化解决方案中,KVM(Kernel-based Virtual Machine)作为...
【KVM 安装部署】 KVM(Kernel-based ...总的来说,将VMware或Xenserver虚拟机迁移到KVM涉及多个步骤,包括KVM环境的搭建、虚拟机文件格式的转换、远程虚拟机的导出和导入。理解并掌握这些步骤是成功迁移的关键。
KVM 提供了强大的虚拟机迁移功能,能够实现热迁移和冷迁移两种方式。热迁移是在虚拟机继续运行的情况下进行迁移,而冷迁移是在虚拟机关闭的情况下进行迁移。 本文档详细介绍了 KVM 虚拟化安装和虚拟机迁移的过程,...
Libvirt是一个开源的虚拟机管理工具和API,提供了一个统一的接口来管理多种不同的虚拟化提供方式和hypervisor。Libvirt由应用程序编程接口(API)库、一个守护进程(libvirtd)和默认命令行实用工具(virsh)等部分...
virsh是libvirt提供的一个命令行工具,用于管理虚拟机。通过virsh命令,可以完成虚拟机的创建、启动、迁移、快照等管理工作。 创建虚拟机的过程主要涉及编写XML配置文件,该文件描述了虚拟机的硬件配置和启动参数。...
本文将深入探讨如何将 VMware 虚拟机迁移到 KVM 环境,包括使用 virt-v2v 工具以及手动方法,并分析迁移过程中的关键步骤和注意事项。 VMware 产品家族包括 ESX/ESXi、Server、Workstation、Player 等,它们各自有...
【迁移VMware虚拟机到KVM】是一种常见的虚拟化技术操作,这允许用户将原本运行在VMware...通过了解虚拟机迁移的基本原理和技术,IT管理员可以更有效地在不同虚拟化平台之间进行迁移,从而提高系统的灵活性和可维护性。
libvirt 是一个开源项目,其核心是一个动态链接库 libvirt.so,它提供了一组API,允许管理员和开发者通过一致的方式控制各种虚拟化平台,包括 Xen、KVM、VirtualBox、QEMU 等。virsh 利用 libvirt 库,使得用户无需...
libvirt与KVM的结合,使得管理KVM虚拟机如同操作本地系统一样简单,包括创建、启动、停止、迁移以及监控虚拟机状态。 3. **libvirt API** libvirt提供了C语言的原生API,同时也为其他编程语言如Python、Java、...
4. **Ironic**:对于物理机管理,Ironic 也可能会使用 Libvirt 的部分功能,特别是在转换物理机为虚拟机(如使用 PxeBoot 或其他部署方式)时。 Libvirt 还包含了一些命令行工具,如 `virsh` 和 `libguestfs`,它们...
3. **迁移虚拟机**:libvirt支持热迁移功能,可以在不中断服务的情况下将虚拟机从一个物理主机迁移到另一个。 4. **资源调整**:实时修改虚拟机的CPU和内存配额,满足动态负载的需求。 五、进阶应用 除了基础的...
libvirt-java则通过Java语言封装了这个库,使得Java开发者能够利用其丰富的类库和API,以面向对象的方式处理虚拟机的创建、管理、监控等任务。 在libvirt-java 0.4.7版本中,主要包含以下几个核心组件: 1. **连接...
虚拟机迁移技术是云计算和数据中心管理中的关键技术之一,它涉及到如何在不中断服务的情况下,将运行在一台物理服务器上的虚拟机(Virtual Machine, VM)移动到另一台物理服务器上。这项技术对于资源调度、负载均衡...
6. **迁移操作**:支持在不同的libvirt主机之间迁移虚拟机。 在实际开发中,`libvirt_vmcfg`库能够帮助系统管理员和开发者编写自动化脚本,实现虚拟环境的自动化部署和维护。对于云服务提供商或者需要大规模管理...
Libvirt的Python绑定允许开发者使用Python语言直接操作Libvirt API,进行更高效和高级的虚拟机管理。 5. **虚拟机环境搭建**: 书中详细介绍了如何使用Libvirt API建立虚拟机环境。这通常包括选择合适的虚拟化解决...