第 9 章 在 KVM (libvirt)上置备虚拟机

基于内核的虚拟机(KVM)使用开源虚拟化守护进程和称为 libvirt 的 API,在红帽企业 Linux 上运行。Red Hat Satellite 可以连接到 KVM 服务器上的 libvirt API,在虚拟机监控程序上配置主机并控制某些虚拟化功能。

您可以使用 KVM 置备通过网络连接或从现有镜像创建主机。

前提条件

  • 为 Red Hat Enterprise Linux 同步内容仓库。有关更多信息,请参阅 内容管理指南中的 同步存储库
  • 主机注册的激活码。有关更多信息,请参阅 内容 管理指南中的 创建激活码
  • 在 KVM 服务器上管理网络的胶囊服务器。确保此网络中没有运行其他 DHCP 服务以避免与胶囊服务器冲突。有关胶囊服务器的网络服务配置的更多信息,请参阅 配置网络
  • 运行 KVM 虚拟化工具(libvirt 守护进程)的 Red Hat Enterprise Linux 服务器。如需更多信息,请参阅 Red Hat Enterprise Linux 7 虚拟化入门指南
  • 如果要使用基于镜像的置备,则现有虚拟机镜像。确保此镜像存在于 KVM 主机上的存储池中。默认 存储池通常位于 /var/lib/libvirt/images 中。只有目录池存储类型可以通过卫星进行管理。
  • 可选:这些步骤中的示例将 root 用户用于 KVM。如果要在 KVM 服务器上使用非 root 用户,您必须将用户添加到 KVM 服务器上的 libvirt 组中:

    useradd -a -G libvirt non_root_user
  • 具有以下角色的 Satellite 用户帐户:

    • 编辑主机
    • 查看主机

      有关更多信息,请参阅管理 Red Hat Satellite 指南中的 将角色分配到用户

  • Satellite 中的自定义角色,具有以下权限:

9.1. 为 KVM 连接配置 Satellite 服务器

在添加 KVM 连接前,为 foreman 用户创建 SSH 密钥对,以确保卫星服务器和 KVM 之间的安全连接。

流程

  1. 在卫星服务器上,切换到 foreman 用户:

    # su foreman -s /bin/bash
  2. 生成密钥对:

    $ ssh-keygen
  3. 将公钥复制到 KVM 服务器:

    $ ssh-copy-id root@kvm.example.com
  4. 退出 foreman 用户的 bash shell:

    $ exit
  5. 安装 libvirt-client 软件包:

    # satellite-maintain packages install libvirt-client
  6. 使用以下命令测试与 KVM 服务器的连接:

    # su foreman -s /bin/bash -c 'virsh -c qemu+ssh://root@kvm.example.com/system list'