Chapter 25. Virtualization The following chapters contain the most notable changes to virtualization between RHEL 8 and RHEL 9. 25.1. Notable changes to KVM KVM virtualization is no longer supported on IBM POWER Red Hat Kernel-based Virtual Machine (KVM) for RHEL 9.0 and later is not supported on IBM POWER hardware. KVM virtualization fully supported on 64-bit ARM architecture In RHEL 9.4 and later, creating KVM virtual machines on systems that use 64-bit ARM (also known as AArch64) CPUs is fully supported. Note, however, that certain virtualization features and functionalities that are available on AMD64 and Intel 64 systems might work differently or be unsupported on 64-bit ARM systems. For details, see How virtualization on ARM 64 differs from AMD 64 and Intel 64 . 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 solution Invalid virtual machines that used to work with RHEL 9 and newer hypervisors . 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. 25.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. External snapshots for virtual machines RHEL 9.4 and later supports the external snapshot mechanism for virtual machines (VMs), which replaces the previously deprecated internal snapshot mechanism. As a result, you can create, delete, and revert to VM snapshots that are fully supported. External snapshots work more reliably both on the command line and in the RHEL web console. This also applies to snapshots of running VMs, known as live snapshots. Note, however, that some commands and utilities might still create internal snapshots. To verify that your snapshot is fully supported, ensure that it is configured as external . For example: 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 . 25.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. 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. 25.4. Notable changes to SPICE SPICE has become unsupported In RHEL 9, the SPICE remote display protocol is no longer supported. QXL, the graphics device used by SPICE, has also become unsupported. On a RHEL 9 host, VMs configured to use SPICE or QXL 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 Clipboard sharing between the host and the VM Uninterrupted connection to VM during live migration Dynamic resizing of the VM screen with the client window 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 Red Hat Knowledgebase solution Unable to define, create or start a Virtual Machine using spice or qxl in RHEL 9 KVM .

Commands:
virsh snapshot-dumpxml VM-name snapshot-name | grep external <disk name='vda' snapshot='external' type='file'>
<bios useserial='yes'/>