22.6. ARM 64 上的虚拟化与 AMD64 和 Intel 64 的不同

ARM 64 系统上的 RHEL 9 中的 KVM 虚拟化与 AMD64 和 Intel 64 系统中的 KVM 虚拟化在很多方面有所不同。这包括但不限于:

支持
ARM 64 上的虚拟化只作为 RHEL 9 的一个 技术预览提供,因此不被支持。
客户机操作系统
目前唯一在 ARM 64 虚拟机 (VM) 上操作的客户机操作系统是 RHEL 9。
Web 控制台管理
RHEL 9 web 控制台中虚拟机管理的某些功能在 ARM 64 硬件上无法正常工作。
vCPU 热插和热拔
在 ARM 64 主机上不支持将虚拟 CPU (vCPU) 附加到正在运行的虚拟机(也称为 vCPU 热插)。另外,与 AMD64 和 Intel 64 主机类似,ARM 64 不支持从正在运行的虚拟机(vCPU 热拔)中删除 vCPU。
SecureBoot
SecureBoot 功能在 ARM 64 系统中不可用。
PXE
在 Preboot Execution Environment (PXE) 中引导只能使用 virtio-net-pci 网络接口控制器(NIC)。另外,需要使用虚拟机 UEFI 平台固件(带有 edk2-aarch64 软件包安装的)内置 VirtioNetDxe 驱动程序进行 PXE 引导。请注意,不支持 iPXE 选项 ROM。
设备内存
设备内存特性(如双线内存模块(DIMM)和非易失性 DIMM)在 ARM 64 上不起作用。
pvpanic
pvpanic 设备目前在 ARM 64 上无法正常工作。确保从 ARM 64 上的客户机 XML 配置的 <<devices> 部分删除 <panic> 元素,因为它的存在可能会导致虚拟机无法引导。
OVMF

ARM 64 主机上的虚拟机无法使用 AMD64 和 Intel 64 使用的 OVMF UEFI 固件,包括在 edk2-ovmf 软件包中。相反,这些虚拟机使用 edk2-aarch64 软件包中包含的 UEFI 固件,它提供类似的接口并实施类似的功能集。

具体来说,edk2-aarch64 提供了一个内置的 UEFI shell,但不支持以下功能:

  • SecureBoot
  • 管理模式
  • TPM-1.2 支持
kvm-clock
kvm-clock 服务不必为 ARM 64 的虚拟机中的时间管理配置。
外设设备
ARM 64 系统不支持 AMD64 和 Intel 64 系统支持的所有外设设备。在某些情况下,设备功能完全不被支持,其他情况下,支持不同的设备来实现相同的功能。
串行控制台配置
在虚拟机上设置串行控制台时,请使用 console=ttyAMA0 内核选项,而不是使用 grubby 实用程序的 console=ttyS0
不可屏蔽中断
目前无法向 ARM 64 虚拟机发送不可屏蔽中断 (NMI)。
嵌套虚拟化
目前在 ARM 64 主机上无法创建嵌套虚拟机。
v2v 和 p2v
virt-v2vvirt-p2v 实用程序只在 AMD64 和 Intel 64 构架中被支持,因此不是在 ARM 64 中提供。