Red Hat Training

A Red Hat training course is available for RHEL 8

第 3 章 在 IBM POWER 中使用虚拟化

您可以在 IBM POWER8 或 POWER9 硬件中使用 RHEL 8 虚拟化。但是,与 AMD64 和 Intel64 构架中的虚拟化相比,在您的系统中启用 KVM 虚拟机管理程序需要额外的步骤。某些 RHEL 8 虚拟化功能在 IBM POWER 中也具有 不同或受限的功能

除以下部分中的信息外,在 IBM POWER 中使用虚拟化与 AMD64 和 Intel64 相同。因此,您可以在 IBM POWER 中使用虚拟化时查看其他 RHEL 8 虚拟化文档。

3.1. 在 IBM POWER 中启用虚拟化

要在运行 RHEL 8 的 IBM POWER8 或 IBM POWER9 系统上设置 KVM 管理程序并创建虚拟机(VM),请按照以下步骤操作。

先决条件

  • RHEL 8 已安装并在主机中注册。
  • 有以下最小系统资源可用:

    • 主机有 6 GB 可用磁盘空间,以及每个预期的虚拟机需要额外 6 GB 空间。
    • 主机需要 2 GB RAM,以及每个预期的虚拟机需要额外 2 GB。
  • 您的 CPU 机器类型必须支持 IBM POWER 虚拟化。

    要验证这一点,请在您的 /proc/cpuinfo 文件中查询平台信息。

    # grep ^platform /proc/cpuinfo/
    platform        : PowerNV

    如果这个命令的输出中包含 PowerNV 条目,您将运行 PowerNV 机器类型,并可在 IBM POWER 中使用虚拟化。

流程

  1. 载入 KVM-HV 内核模块

    # modprobe kvm_hv
  2. 验证是否载入了 KVM 内核模块

    # lsmod | grep kvm

    如果成功载入 KVM,该命令的输出会包括 kvm_hv

  3. 在虚拟化模块中安装软件包:

    # yum module install virt
  4. 安装 virt-install 软件包:

    # yum install virt-install
  5. 启动 libvirtd 服务。

    # systemctl start libvirtd
  6. 确认您的系统已准备好成为虚拟化主机:

    # virt-host-validate
    [...]
    QEMU: Checking if device /dev/vhost-net exists                          : PASS
    QEMU: Checking if device /dev/net/tun exists                            : PASS
    QEMU: Checking for cgroup 'memory' controller support                   : PASS
    QEMU: Checking for cgroup 'memory' controller mount-point               : PASS
    [...]
    QEMU: Checking for cgroup 'blkio' controller support                    : PASS
    QEMU: Checking for cgroup 'blkio' controller mount-point                : PASS
    QEMU: Checking if IOMMU is enabled by kernel                            : PASS
  7. 如果所有 virt-host-validate 检查都返回 PASS 值,则代表您的系统已经准备好用于创建虚拟机

    如果有任何检查返回 FAIL 值,请按照显示的步骤解决相关问题。

    如果任何检查返回 WARN 值,请考虑根据显示内容改进虚拟化功能。

附加信息

  • 请注意:如果您的主机 CPU 不支持虚拟化,virt-host-validate 会生成以下输出:

    QEMU: Checking for hardware virtualization: FAIL (Only emulated CPUs are available, performance will be significantly limited)

    但是,在这样的主机系统中尝试创建虚拟机会失败,而不是存在性能问题。

3.2. IBM POWER 中的虚拟化与 AMD64 和 Intel 64 的不同

IBM POWER 系统中的 RHEL 8 虚拟化与 AMD64 和 Intel 64 系统中的 KVM 虚拟化在很多方面有所不同,特别是:

内存要求
IBM POWER 上的虚拟机消耗更多内存。因此,推荐在 IBM POWER 主机上为虚拟机(VM)分配最小内存为 2GB RAM。
显示协议

IBM POWER 系统不支持 SPICE 协议。要显示虚拟机的图形输出,请使用 VNC 协议。另外,只支持以下虚拟图形卡设备:

  • vga - 仅在 -vga std 模式中支持,不支持 -vga cirrus 模式。
  • virtio-vga
  • virtio-gpu
SMBIOOS
SMBIOS 配置不可用。
内存分配错误

POWER8 虚拟机(包括兼容模式虚拟机)可能会因为类似如下的错误而失败:

qemu-kvm: Failed to allocate KVM HPT of order 33 (try smaller maxmem?): Cannot allocate memory

这在使用 RHEL 7.3 及之前作为虚拟机操作系统的虚拟机上发生的可能性更大。

要解决这个问题,在主机内核命令行中添加 kvm_cma_resv_ratio=memory,为客户端散列页表(HPT)增加 CMA 内存池。其中 memory 是应该为 CMA 池保留的主机内存的百分比(默认为 5)。

巨页

透明巨页(THP)在 IBM POWER8 虚拟机上不提供任何显著的性能优势。但是 IBM POWER9 虚拟机可以如预期从 THP 中受益。

另外,IBM POWER8 系统中静态巨页的大小为 16 MiB 和 16 GiB,而 AMD64、Intel 64 和 IBM POWER9 上的 2 MiB 和 1 GiB 不同。因此,要将配置有静态巨页的虚拟机从 IBM POWER8 主机迁移到 IBM POWER9 主机,您必须首先在虚拟机上设置 1GiB 巨页。

kvm-clock
kvm-clock 服务不必为 IBM POWER9 的虚拟机中的时间管理配置。
pvpanic

IBM POWER9 系统不支持 pvpanic 设备。但是在这个构架中默认使用并激活等同的功能。要在虚拟机中启用它,使用带有 preserve 值的 <on_crash> XML 配置元素。

另外,请确定从 <devices> 部分中删除 <panic> 元素,因为它存在可能会导致虚拟机无法在 IBM POWER 系统中引导。

单线程主机
在 IBM POWER8 系统中,主机机器必须以 单线程模式 运行,才能支持虚拟机。如果安装了 qemu-kvm 软件包,则会自动进行配置。但是,在单线程主机上运行的虚拟机仍然可以使用多个线程。
外设设备

IBM POWER 系统中不支持在 AMD64 和 Intel 64 系统上支持很多外设设备,或者支持不同的设备替换。

  • 不支持用于 PCI-E 层次结构的设备,包括 ioh3420xio3130-downstream。这个功能由 spapr-pci-host-bridge 设备提供的多个独立 PCI 根桥接替代。
  • 不支持 UHCI 和 EHCI PCI 控制器。使用 OHCI 和 XHCI 控制器。
  • 不支持 IDE 设备,包括虚拟 IDE 光盘(ide-cd)和虚拟 IDE 磁盘(ide-hd)。使用 virtio-scsivirtio-blk 设备替代。
  • 不支持模拟 PCI NIC(rtl8139)。使用 virtio-net 设备替代。
  • 不支持包括 intel-hdahda-outputAC97 在内的声音设备。
  • 不支持 USB 重定向设备,包括 usb-redirusb-tablet
v2v 和 p2v
virt-v2vvirt-p2v 工具只在 AMD64 和 Intel 64 构架中被支持,且不在 IBM POWER 中提供。

其他资源


为了尽快向用户提供最新的信息,本文档可能会包括由机器自动从英文原文翻译的内容。如需更多信息,请参阅此说明。