Chapter 20. Virtualization

The following chapters contain the most notable changes to virtualization between RHEL 8 and RHEL 9.

20.1. Notable changes to KVM

KVM virtualization is no longer supported on IBM POWER

Red Hat Kernel-based Virtual Machine (KVM) for Red Hat Enterprise Linux 9.0 and later is not supported on IBM POWER hardware.

VM machine types based on RHEL 7.5 and earlier are unsupported

In RHEL 9, virtual machines (VMs) no longer support machine types based on RHEL 7.5 and earlier. These also include pc-i440fx-rhel7.5.0 and earlier machine types, which were default in earlier major versions of RHEL. As a consequence, attempting to start a VM with such machine types on a RHEL 9 host fails with an unsupported configuration error. If you encounter this problem after upgrading your host to RHEL 9, see the Red Hat KnowledgeBase.

RHEL 9 still supports the pc-i440fx-rhel7.6.0 machine type. However, RHEL will remove support for all i440x machine types in a future major update.

20.2. Notable changes to libvirt

Modular libvirt daemons

In RHEL 9, the libvirt library uses modular daemons that handle individual virtualization driver sets on your host. For example, the virtqemud daemon handles QEMU drivers. This makes it possible to fine-grain a variety of tasks that involve virtualization drivers, such as resource load optimization and monitoring.

In addition, the monolithic libvirt daemon, libvirtd, has become deprecated. However, if you upgrade from RHEL 8 to RHEL 9, your host will still use libvirtd, which you can continue using in RHEL 9.

Nevertheless, Red Hat recommends enabling modular libvirt daemons instead. For instructions, see the Enabling modular libvirt daemons document.

Note, however, that if you switch to using modular libvirt daemons, pre-configured tasks that use libvirtd will stop working.

virsh iface-* commands are now unsupported

The virsh iface-* commands, such as virsh iface-start and virsh iface-destroy, are no longer supported in RHEL 9. Due to the removal of the netcf package, the majority of them do not work. To create and modify network interfaces, use NetworkManager utilities, such as nmcli.

20.3. Notable changes to QEMU

QEMU no longer includes the SGA option ROM

In RHEL 9, the Serial Graphics Adapter (SGA) option ROM has been replaced by an equivalent functionality in SeaBIOS. However, if your virtual machine (VM) configuration uses the following XML fragament, this change will not affect your VM functionality.

  <bios useserial='yes'/>

TPM passthrough has been removed

It is no longer possible to assign a physical Trusted Platform Module (TPM) device using the passthrough back end to a VM on RHEL 9. Note that this was an unsupported feature in RHEL 8. Instead, use the vTPM functionality, which uses the emulator back end, and is fully supported.

Other unsupported devices

QEMU no longer supports the following virtual devices:

  • The Cirrus graphics device. The default graphics devices are now set to stdvga on BIOS-based machines and bochs-display on UEFI-based machines.
  • The ac97 audio device. In RHEL 9, libvirt uses the ich9 device instead.

Intel vGPU removed

The packages required for the Intel vGPU feature were removed in RHEL 9.3.

Previously, as a Technology Preview, it was possible to divide a physical Intel GPU device into multiple virtual devices referred to as mediated devices. These mediated devices could then be assigned to multiple virtual machines (VMs) as virtual GPUs.

Since RHEL 9.3, you cannot use this feature.

20.4. Notable changes to SPICE

SPICE has become unsupported

In RHEL 9, the SPICE remote display protocol is no longer supported. On a RHEL 9 host, VMs configured to use SPICE fail to start and instead display an unsupported configuration error.

Instead of SPICE, Red Hat recommends using alternate solutions for remote display streaming:

  • For remote console access, use the VNC protocol. However, note that certain features available on SPICE are currently unsupported or do not work well on VNC. This includes:

    • Smart card sharing from the host to the VM (It is now supported only by third party remote visualization solutions.)
    • Audio playback from the VM to the host
    • Automated VM screen resizing
    • USB redirection from the host to the VM
    • Drag & drop file transfer from the host to the VM
    • In addition, VNC cannot be used by the GNOME Boxes application. As a consequence, Boxes is currently not available in RHEL 9.
  • For advanced remote display functions, use third party tools such as RDP, HP ZCentral Remote Boost, or Mechdyne TGX.

For graphical VMs hosted on RHEL 9, Red Hat recommends using the virtio-vga and virtio-gpu virtual graphics cards.

For more information on how to switch a VM from the SPICE protocol to VNC, see the Knowledgebase article Unable to define, create or start a Virtual Machine using spice or qxl in RHEL 9 KVM.