搜索

24.6. ARM 64 上的虚拟化与 AMD64 和 Intel 64 上的虚拟化有何不同

download PDF

ARM 64 系统上 RHEL 9 中的 KVM 虚拟化(也称为 AArch64)与 AMD64 和 Intel 64 系统上的 KVM 在许多方面不同。这包括但不限于:

客户机操作系统
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 系统上不提供。
Migration
目前不支持在 ARM 64 主机之间迁移虚拟机。
Memory page sizes

ARM 64 目前仅支持运行具有 64 KB 内存页大小的虚拟机,且仅在具有 64 KB 内存页大小的主机上。目前在主机或客户机中不支持 4 KB 页大小。

要在 ARM 64 上成功创建虚拟机,您的主机必须 使用 64 KB 内存页大小的内核 ,并且子创建虚拟机时,您必须使用 kernel-64k 软件包 安装它,例如通过在 kickstart 文件中包含以下参数:

%packages
-kernel
kernel-64k
%end
巨页

具有 64 KB 内存页大小的 ARM 64 主机支持具有以下大小的大内存页:

  • 2 MB
  • 512 MB
  • 16 GB

    当您在 ARM 64 主机上使用透明巨页(THP)文件系统时,它只支持 512 MB 巨页。

SVE

ARM 64 架构提供 Scalable Vector Expansion (SVE) 功能。如果主机支持该功能,在虚拟机中使用 SVE 可以在这些虚拟机中提高向量数计算和字符串操作的速度。

在支持它的主机 CPU 上默认启用了 SVE 的基线级别。但是,红帽建议明确配置每个向量长度。这确保虚拟机只能在兼容的主机上启动。要做到这一点:

  1. 验证您的 CPU 是否有 SVE 功能:

    # grep -m 1 Features /proc/cpuinfo | grep -w sve
    
    Features: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm fcma dcpop sve

    如果这个命令的输出中包含 sve 或其退出代码是 0,则您的 CPU 支持 SVE。

  2. 打开您要修改的虚拟机的 XML 配置:

    # virsh edit vm-name
  3. 编辑 <cpu> 元素,类似如下:

    <cpu mode='host-passthrough' check='none'>
    <feature policy='require' name='sve'/>
    <feature policy='require' name='sve128'/>
    <feature policy='require' name='sve256'/>
    <feature policy='disable' name='sve384'/>
    <feature policy='require' name='sve512'/>
    </cpu>

    这个示例明确启用了 SVE 向量长度 128、256 和 512,并明确禁用了向量长度 384。

CPU 型号
ARM 64 上的虚拟机目前仅支持 host CPU 型号。
保存和恢复虚拟机
目前在 ARM 64 主机上不支持 保存和恢复 虚拟机。
PXE

在预引导执行环境(PXE)功能中引导,但不支持,红帽强烈建议不要在生产环境中使用它。

如果您需要 PXE 引导,则只能使用 virtio-net-pci 网络接口控制器(NIC)。另外,需要使用虚拟机 UEFI 平台固件(带有 edk2-aarch64 软件包安装的)内置 VirtioNetDxe 驱动程序进行 PXE 引导。请注意,不支持 iPXE 选项 ROM。

设备内存
设备内存功能,如双列直插式内存模块(DIMM)和非易失性 DIMM (NVDIMM)在 ARM 64 上无法工作。
pvpanic
ARM 64 上目前不支持 pvpanic 设备。确保从 ARM 64 上客户机 XML 配置的 <devices> 部分中删除 <panic> 元素,因为它的存在可能导致虚拟机无法引导。
OVMF

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

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

  • SecureBoot
  • 管理模式
kvm-clock
不需要为 ARM 64 上虚拟机中的时间管理配置 kvm-clock 服务。
外设设备

ARM 64 系统支持与 AMD64 和 Intel 64 设备部分不同的外围设备的集合。

  • 仅支持 PCIe 拓扑。
  • ARM 64 系统通过使用 virtio-*-pci 驱动程序来支持 virtio 设备。另外,不支持 virtio-iommuvirtio-input 设备。
  • virtiofs 功能仅作为技术预览提供,因此不被支持。
  • virtio-gpu 驱动程序只支持图形安装。
  • ARM 64 系统只支持 usb-mouseusb-tablet 设备用于图形安装。不支持其他 USB 设备、USB passthrough 或 USB 重定向。
  • 使用虚拟功能 I/O (VFIO)的设备分配只支持 NIC(物理和虚拟功能)。
模拟设备

ARM 64 上不支持以下设备:

  • 模拟声音设备,如 ICH9、ICH6 或 AC97。
  • 模拟图形卡,如 VGA 卡。
  • 模拟网络设备,如 rtl8139
GPU 设备
ARM 64 系统上不支持 分配 GPU 设备
串行控制台配置
在虚拟机上设置串行控制台时,请使用 console=ttyAMA0 内核选项,而不是使用 grubby 实用程序的 console=ttyS0
不可屏蔽中断
目前无法向 ARM 64 虚拟机发送不可屏蔽中断(NMI)。
嵌套虚拟化
目前无法在 ARM 64 主机上创建嵌套虚拟机。
v2v 和 p2v
virt-v2vvirt-p2v 工具只在 AMD64 和 Intel 64 构架上被支持,因此在 ARM 64 上不提供。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.