第 12 章 KVM 实时迁移

12.1. 动态迁移要求

12.2. 共享存储示例:使用 NFS 进行简单迁移

12.3. 使用 virsh 进行实时 KVM 迁移

12.4. 使用 virt-manager 迁移

本章论述了如何将在 KVM 管理程序中运行的客户端迁移到其它 KVM 主机中。

迁移就是将虚拟客户端从一个主机移动到另一个主机的进程名称。迁移是虚拟化的一个主要特性,因为软件是与硬件完全分开的。迁移在以下方面很有用:

  • Load balancing - guests can be moved to hosts with lower usage when a host becomes overloaded.

  • Hardware failover - when hardware devices on the host start to fail, guests can be safely relocated so the host can be powered down and repaired.

  • Energy saving - guests can be redistributed to other hosts and host systems powered off to save energy and cut costs in low usage periods.

  • Geographic migration - guests can be moved to another location for lower latency or in serious circumstances.

迁移可离线或者实时进行。要迁移客户端,则存储必须是共享的。迁移工作是将客户端内存发送到目的主机中。共享存储保存客户端的默认文件系统。该文件系统映像不是通过网络从源主机发送到目的主机的。

An offline migration suspends the guest then moves an image of the guests memory to the destination host. The guest is resumed on the destination host and the memory the guest used on the source host is freed.

离线迁移所需时间依赖网络带宽和等待时间。有 2GB 内存的客户端在 1Gbit 以太网链接中平均需要十秒左右。

实时迁移可让客户端继续在源主机中运行并在不停止客户端的情况下开始移动内存。发送映像的同时监控所有修改的内存页面的变化并将其发送到目的地。使用更改的页面更新内存。持续进行此过程直到客户端允许的暂停时间与预计最后几页的传输时间相等。KVM 将估计剩余时间并尝试从源主机到目的主机传输最大量的页面文件,直到 KVM 预计剩余的页面在虚拟客户端暂停的时候可以在很短时间内完成传输。在新主机中载入这些记录器,然后在目的地主机中恢复该客户端。如果无法合并该客户端(客户端处于极限负载时出现),则会暂停该客户端,然后启动离线迁移。

离线迁移所需时间依赖网络带宽和等待时间。如果网络正处于高负载或者带宽较小,则迁移会需要很长时间。

12.1. 动态迁移要求

迁移客户端需要以下条件:

迁移要求
  • 使用以下协议之一在共享联网存储中安装虚拟客户端:

    • Fibre Channel

    • iSCSI

    • NFS

    • GFS2

  • 同一版本的两个或者两个以上的 Fedora 系统有同样的更新。

  • 两个系统必须打开正确的端口。

  • 两个系统必须有一致的网络配置。两个主机中的所有桥接和网络配置必须完全一致。

  • 源系统和目的系统中的共享存储必须挂载在同一位置。挂载的目录名必须一致。

配置网络存储

Configure shared storage and install a guest on the shared storage. For shared storage instructions, refer to 第 5 章 共享存储和虚拟化.

Alternatively, use the NFS example in 第 12.2 节 “共享存储示例:使用 NFS 进行简单迁移”.