22.6. How virtualization on ARM 64 differs from AMD64 and Intel 64
KVM virtualization in RHEL 9 on ARM 64 systems is different from KVM on AMD64 and Intel 64 systems in a number of aspects. These include, but are not limited to, the following:
- Soutien
- Virtualization on ARM 64 is only provided as a Technology Preview on RHEL 9, and is therefore unsupported.
- Guest operating systems
- The only guest operating system currently working on ARM 64 virtual machines (VMs) is RHEL 9.
- Web console management
- Some features of VM management in the RHEL 9 web console may not work correctly on ARM 64 hardware.
- vCPU hot plug and hot unplug
- Attaching a virtual CPU (vCPU) to a running VM, also referred to as a vCPU hot plug, is not supported on ARM 64 hosts. In addition, like on AMD64 and Intel 64 hosts, removing a vCPU from a running VM (vCPU hot unplug), is not supported on ARM 64.
- SecureBoot
- The SecureBoot feature is not available on ARM 64 systems.
- PXE
-
Booting in the Preboot Execution Environment (PXE) is only possible with the
virtio-net-pci
network interface controller (NIC). In addition, the built-inVirtioNetDxe
driver of the virtual machine UEFI platform firmware (installed with theedk2-aarch64
package) needs to be used for PXE booting. Note that iPXE option ROMs are not supported. - Device memory
- Device memory features, such as the dual in-line memory module (DIMM) and non-volatile DIMM (NVDIMM), do not work on ARM 64.
- pvpanic
-
The pvpanic device is currently not functional on ARM 64. Make sure to remove the
<panic>
element from the<devices>
section of the guest XML configuration on ARM 64, as its presence can lead to the VM failing to boot. - OVMF
VMs on an ARM 64 host cannot use the OVMF UEFI firmware used on AMD64 and Intel 64, included in the
edk2-ovmf
package. Instead, these VMs use UEFI firmware included in theedk2-aarch64
package, which provides a similar interface and implements a similar set of features.Specifically,
edk2-aarch64
provides a built-in UEFI shell, but does not support the following functionality:- SecureBoot
- Management Mode
- TPM-1.2 support
- kvm-clock
-
The
kvm-clock
service does not have to be configured for time management in VMs on ARM 64. - Peripheral devices
- ARM 64 systems do not support all the peripheral devices that are supported on AMD64 and Intel 64 systems. In some cases, the device functionality is not supported at all, and in other cases, a different device is supported for the same functionality.
- Serial console configuration
-
When setting up a serial console on a VM , use the
console=ttyAMA0
kernel option instead ofconsole=ttyS0
with thegrubby
utility. - Non-maskable interrupts
- Sending non-maskable interrupts (NMIs) to an ARM 64 VM is currently not possible.
- Nested virtualization
- Creating nested VMs is currently not possible on ARM 64 hosts.
- v2v and p2v
-
The
virt-v2v
andvirt-p2v
utilities are only supported on the AMD64 and Intel 64 architecture and are, therefore, not provided on ARM 64.