Red Hat Training

A Red Hat training course is available for RHEL 8

第 4 章 在 IBM Z 中使用虚拟化

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

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

4.1. 在 IBM Z 中启用虚拟化

要在运行 RHEL 8 的 IBM Z 系统上设置 KVM 管理程序并创建虚拟机(VM)请遵循以下步骤。

先决条件

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

    • 主机有 6 GB 可用磁盘空间,以及每个预期的虚拟机需要额外 6 GB 空间。
    • 主机需要 2 GB RAM,以及每个预期的虚拟机需要额外 2 GB。
  • 您的 IBM Z 主机系统使用 z13 CPU 或更高版本。
  • RHEL 8 安装在逻辑分区(LPAR)上。另外,LPAR 支持 启动阶段执行(SIE)虚拟化功能。

    要验证这一点,请在 /proc/cpuinfo 文件中搜索 sie

    # grep sie /proc/cpuinfo/
    features        : esan3 zarch stfle msa ldisp eimm dfp edat etf3eh highgprs te sie

流程

  1. 载入 KVM 内核模块:

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

    # lsmod | grep kvm

    如果 KVM 成功加载,这个命令的输出会包括 kvm

  3. 删除系统已包含的任何已存在的虚拟化软件包和模块:

    # yum remove -y libvirt* qemu* @virt
    # yum module reset virt
  4. virt:av/common 模块中安装软件包:

    # yum module install virt:av/common
  5. 启动 libvirtd 服务。

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

    # virt-host-validate
    [...]
    QEMU: Checking if device /dev/kvm is accessible                : PASS
    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
    [...]
  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)

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

4.2. IBM Z 上的虚拟化与 AMD64 和 Intel 64 有什么不同

IBM Z 系统中的 RHEL 8 虚拟化与 AMD64 和 Intel 64 系统的 KVM 不同,如下:

PCI 和 USB 设备

IBM Z 不支持虚拟 PCI 和 USB 设备。这也意味着 virtio-*-pci 设备不受支持,应当使用 virtio-*-ccw 设备。例如,使用 virtio-net-ccw 而不是 virtio-net-pci

请注意,支持直接附加 PCI 设备(也称 PCI 透传)。

支持的客户端操作系统
如果它们使用 RHEL 7 或 RHEL 8 作为客户机操作系统,红帽只支持在 IBM Z 上托管的虚拟机。
设备引导顺序

IBM Z 不支持 <boot dev='device'> XML 配置元素。要定义设备引导顺序,使用 XML 的 <devices> 部分中的 <boot order='number'> 元素。例如:

<disk type='file' device='disk'>
  <driver name='qemu' type='qcow2'/>
  <source file='/path/to/qcow2'/>
  <target dev='vda' bus='virtio'/>
  <address type='ccw' cssid='0xfe' ssid='0x0' devno='0x0000'/>
  <boot order='2'>
</disk>
注意

使用 <boot order='number'> 进行引导顺序管理,这在 AMD64 和 Intel 64 主机中是首选的。

内存热插拔
在 IBM Z 上无法将内存添加到正在运行的虚拟机。请注意,在 IBM Z 上,以及 AMD64 和 Intel64 上,从正在运行的虚拟机(内存热插拔)中不可能删除内存。
NUMA 拓扑
IBM Z 上的 libvirt 不支持 CPU 的非统一内存访问(NUMA)拓扑。因此,在这些系统中无法使用 NUMA 调整 vCPU 性能。
vfio-ap
IBM Z 主机上的虚拟机可以使用 vfio-ap 加密设备透传,其它架构都不支持它。
SMBIOOS
IBM Z 不提供 SMBIOS 配置。
watchdog 设备

如果在 IBM Z 主机上使用 VM 中的 watchdog 设备,请使用 diag288 模型。例如:

<devices>
  <watchdog model='diag288' action='poweroff'/>
</devices>
kvm-clock
kvm-clock 服务专用于 AMD64 和 Intel 64 系统,且不必为 IBM Z 中的虚拟机时间管理配置。
v2v 和 p2v
virt-v2vvirt-p2v 工具只在 AMD64 和 Intel 64 构架中被支持,且不在 IBM Z 中提供。
嵌套虚拟化
创建嵌套虚拟机需要在 IBM Z 上进行与 AMD64 和 Intel64 的不同设置。详情请查看 第 18 章 创建嵌套虚拟机
之前的版本中没有图形输出
当在主机上使用 RHEL 8.3 或更早的次版本时,当使用 VNC 协议连接到虚拟机时,无法显示 VM 图形输出。这是因为 IBM Z 上的早期 RHEL 版本不支持 gnome-desktop 工具程序。另外,SPICE 显示协议无法在 IBM Z 上工作。

其它资源


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