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


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

客户机操作系统
ARM 64 虚拟机(VM)中唯一支持的客户机操作系统是 RHEL 9。
vCPU 热插和热拔
目前,ARM 64 主机不支持将虚拟 CPU (vCPU)附加到正在运行的虚拟机(也称为 vCPU 热插)。另外,与 AMD64 和 Intel 64 主机类似,ARM 64 上不支持从正在运行的虚拟机中移除 vCPU (vCPU 热拔)。
SecureBoot
SecureBoot 功能在 ARM 64 系统上不提供。
Migration
目前不支持在 ARM 64 主机之间迁移虚拟机。
保存和恢复虚拟机
目前在 ARM 64 主机上不支持 保存和恢复 虚拟机。
Memory page sizes

ARM 64 目前支持运行具有 64 KB 或 4 KB 内存页面大小的虚拟机,但主机和客户机必须使用相同的内存页面大小。不支持主机和客户机具有不同的内存页面大小的配置。

默认情况下,RHEL 9 使用 4 KB 内存页面大小。如果要运行具有 64 KB 内存页面大小的虚拟机,您的主机 必须使用 64 KB 内存页面大小的内核。在创建虚拟机时,您必须使用 kernel-64k 软件包 进行安装,例如在 kickstart 文件中包括以下参数:

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

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

  • 2 MB
  • 512 MB
  • 16 GB

    当您在具有 64 KB 内存页面大小的 ARM 64 主机上使用透明大内存页(THP)时,它只支持 512 MB 的巨页。

    带有 4 KB 内存页面大小的 ARM 64 主机支持以下巨页:

  • 64 KB
  • 2 MB
  • 32 MB
  • 1024 MB

    当您在带有 4 KB 内存页面大小的 ARM 64 主机上使用透明大内存页(THP)时,它只支持 2 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-passthrough CPU 模型。
PXE

在预启动执行环境(PXE)中引导可以正常工作,但不支持,红帽强烈建议在生产环境中使用它。

如果您需要 PXE 引导,则只能使用 virtio-net-pci 网络接口控制器(NIC)。

EDK2

ARM 64 客户机使用 edk2-aarch64 软件包中包含的 UEFI 固件,它提供了一个与 AMD64 和 Intel 64 上的 OVMF 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 设备。
  • 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 设备
嵌套虚拟化
目前无法在 ARM 64 主机上创建嵌套虚拟机。
v2v 和 p2v
virt-v2vvirt-p2v 工具只在 AMD64 和 Intel 64 构架上被支持,因此在 ARM 64 上不提供。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.