Red Hat Training

A Red Hat training course is available for RHEL 8

9.5. 将虚拟机磁盘镜像与其他主机共享

要在 支持的 KVM 主机 间执行虚拟机实时迁移,需要共享虚拟机存储。以下流程提供了使用 NFS 协议将本地存储的虚拟机镜像与源主机和目标主机共享的说明。

先决条件

  • 旨在迁移的虚拟机被关闭。
  • 可选: 一个主机系统可用于托管不是源或目标主机的存储,但源和目标主机都可以通过网络访问它。这是共享存储的最佳解决方案,并被红帽推荐。
  • 请确定 NFS 文件锁定没有被使用,因为在 KVM 中不支持它。
  • 在源主机和目标主机上安装并启用 NFS。如果没有:

    1. 安装 NFS 软件包:

      # yum install nfs-utils
    2. 确保在防火墙中打开了 NFS 的端口,如 2049。

      # firewall-cmd --permanent --add-service=nfs
      # firewall-cmd --permanent --add-service=mountd
      # firewall-cmd --permanent --add-service=rpc-bind
      # firewall-cmd --permanent --add-port=2049/tcp
      # firewall-cmd --permanent --add-port=2049/udp
      # firewall-cmd --reload
    3. 启动 NFS 服务。

      # systemctl start nfs-server

流程

  1. 连接到提供共享存储的主机。在这个示例中,是 cargo-bay 主机:

    # ssh root@cargo-bay
    root@cargo-bay's password:
    Last login: Mon Sep 24 12:05:36 2019
    root~#
  2. 创建存放磁盘镜像的目录,并将与迁移主机共享。

    # mkdir /var/lib/libvirt/shared-images
  3. 将虚拟机的磁盘镜像从源主机复制到新创建的目录。例如,以下将 wanderer1 虚拟机的磁盘镜像复制到'cargo-bay' 主机上的 /var/lib/libvirt/shared-images/ 目录中:

    # scp /var/lib/libvirt/images/wanderer1.qcow2 root@cargo-bay:/var/lib/libvirt/shared-images/wanderer1.qcow2
  4. 在您要用于共享存储的主机上,将共享目录添加到 /etc/exports 文件中。以下示例与 source-exampledest-example 主机共享 /var/lib/libvirt/shared-images 目录:

    /var/lib/libvirt/shared-images source-example(rw,no_root_squash) dest-example(rw,no_root_squash)
  5. 在源和目标主机上,将共享目录挂载到 /var/lib/libvirt/images 目录中:

    # mount cargo-bay:/var/lib/libvirt/shared-images /var/lib/libvirt/images

验证

  • 要验证进程是否成功,在源主机上启动虚拟机并观察它是否正确引导。

其它资源