12.5. 使用 web 控制台实时迁移虚拟机
如果要迁移正在执行需要持续运行的任务的虚拟机(VM),您可以将该虚拟机迁移到另一个 KVM 主机,而无需关闭它。这也称为实时迁移。您可以使用 Web 控制台来实时迁移虚拟机。
先决条件
已安装 RHEL 10 web 控制台。
具体步骤请参阅安装并启用 Web 控制台。
- Web 控制台 VM 插件 安装在您的系统上。
- Hypervisor : 源主机和目标主机都使用 KVM hypervisor。
- 主机 : 源和目标主机都在运行。
打开端口 : 确保以下端口在目标主机上已打开。
- 使用 SSH 连接到目标主机需要端口 22。
- 使用 TLS 连接到目标主机需要端口 16514。
- 使用 TCP 连接到目标主机需要端口 16509。
- QEMU 需要端口 49152-49215 来传输内存和磁盘迁移数据。
- CPU: 虚拟机必须与目标主机的 CPU 功能兼容。要确保情况如此,请参阅验证虚拟机迁移的主机 CPU 兼容性。
存储: 要迁移的虚拟机的磁盘镜像可以被源主机和目标主机访问。这在离线迁移中是可选的,但在迁移运行的虚拟机时是必需的。要确保存储可被两个主机访问,必须应用以下内容之一:
- 您正在使用存储区域网络(SAN)逻辑单元(LUN)。
- 正在您使用 Ceph 存储集群。
-
您已创建了与源虚拟机磁盘 相同的格式和大小的磁盘镜像,在迁移虚拟机时将使用
--copy-storage-all参数。 - 磁盘镜像在单独的网络位置上。有关设置这样的共享虚拟机存储的步骤,请参阅与其他主机共享虚拟机磁盘镜像。
网络带宽 : 迁移正在运行的虚拟机时,您的网络带宽必须比虚拟机产生脏内存页的速度要快。
要在开始实时迁移前获得虚拟机的脏页率,请在命令行上执行以下操作:
监控虚拟机在短时间内的脏页面生成率。
virsh domdirtyrate-calc vm-name 30
# virsh domdirtyrate-calc vm-name 30Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在监控完成后,获取其结果:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在本例中,VM 每秒会生成 2 MB 的脏内存页面。如果您不暂停虚拟机或降低其工作负载,那么在小于或等于 2 MB/秒带宽的网络中尝试实时迁移这样的虚拟机会导致实时迁移不会进行。
为确保实时迁移成功完成,您的网络带宽应显著大于虚拟机的脏页面生成率。
注意calc_period选项的值可能因工作负载和脏页率而异。您可以使用多个calc_period值进行试验,以确定与您环境中脏页率一致的最合适的周期。
- 网桥 tap 网络细节: 在公共网桥 tap 网络中迁移现有虚拟机时,源和目标主机必须位于同一网络上。否则,迁移后 VM 网络将无法正常工作。
流程
在 web 控制台的虚拟机界面中,单击您要迁移的虚拟机的菜单按钮 。
此时会出现一个下拉菜单,控制各种虚拟机操作。
点击
此时将显示将虚拟机迁移到另一主机的对话框。
- 输入目标主机的 URI。
配置迁移的持续时间:
- Permanent - 如果要永久迁移虚拟机,请勿选中此框。永久迁移会从源主机上完全删除虚拟机配置。
- Temporary - 临时迁移会将虚拟机的副本迁移到目标主机。虚拟机关闭时,此副本将从目标主机中删除。原始虚拟机会保留在源主机上。
点击
您的虚拟机被迁移到目标主机上。
验证
要验证虚拟机是否已成功迁移并正常工作:
- 确认虚拟机是否在目标主机上可用虚拟机的列表中。
- 启动迁移的虚拟机,并观察其是否启动。