搜索

1.2. 设备分配的硬件注意事项

download PDF

设备分配提供了将虚拟客户端直接分配给 PCIe 设备的能力,为客户机提供接近原生的性能。在与 SR-IOV 结合使用时,虚拟客户端会直接分配 VF。这样,可以将多个虚拟客户机直接分配给一个 PCIe 设备的 VF。

SR-IOV 不需要启用将虚拟机直接分配给 PCIe 设备,也没有设备分配唯一应用程序以创建 VF,但这两种功能是补充的,并且有额外的硬件注意事项。

设备分配需要在 CPU 和固件中支持 I/O 内存管理单元(IOMMU)。IOMMU 在 I/O 虚拟地址(IOVA)和物理内存地址之间转换。这允许虚拟客户机使用客户机物理地址对设备进行编程,然后由 IOMMU 转换为主机物理地址。

IOMMU 组是可与系统中所有其他设备隔离的一组设备。IOMMU 组代表 IOMMU granularity 的最小设备集合,以及系统中所有其他 IOMMU 组之间的隔离。这允许 IOMMU 区分事务和 IOMMU 组外的设备之间的直接内存访问(DMA)和 IOMMU 控件。

在虚拟客户端和 PCIe 设备的虚拟功能之间隔离事务是设备分配的基础。在 PCIe 和服务器规格中定义的访问控制服务(ACS)功能是维护 IOMMU 组内隔离的硬件标准。如果没有原生 ACS,否则来自硬件厂商的确认,IOMMU 组中的任何多功能都会在 IOMMU 之外的功能之间公开对等的 DMA,将 IOMMU 组扩展为包括缺乏适当隔离的功能。

对于服务器的根端口,还建议对原生 ACS 的支持,否则这些端口上安装的设备将被分组在一起。root 端口、基于处理器(northbridge)根端口和基于控制器 hub 的 root 端口(southbridge)根端口有两个变量关系。如上所述,如果设备分配与 SR-IOV 结合使用,而虚拟客户机被分配给 VF,则这些端口必须同时支持 ACS 和 ARI。

Intel 的 Xeon 处理器 E5 系列、Xeon 处理器 E7 系列和 High End Desktop Processors 包括基于处理器的根端口上原生 ACS 支持。

Intel Platform Controller Hub(PCH)PCI Express 根端口当前不支持 ACS 或使用非标准 ACS 实施,从而对通过这些根端口连接的设备进行精细隔离。其中许多根端口确实支持 ACS 等效功能。Red Hat Enterprise Linux 7.3 内核包括对 X79、X99、X99、5 系列到 9 系列以及 100-series PCI Express 芯片组启用此 ACS 等效功能的支持。

在安装 PCIe 设备时,请参阅厂商规格以确定基于处理器的和基于控制器的 root 端口,以确保 root 端口支持 ACS。

另外,I/O 拓扑中的任何 PCIe 交换机或桥接也需要 ACS 支持,否则它可能会扩展 IOMMU 组。

1.2.1. 概述

  • CPU 必须支持 IOMMU(如 VT-d 或 AMD-Vi)。IBM POWER8 默认支持 IOMMU。
  • 固件必须支持 IOMMU。
  • 使用的 CPU 根端口必须支持 ACS 或 ACS 等效功能。
  • PCIe 设备必须支持 ACS 或 ACS 等效功能。
  • 建议 PCIe 设备和根端口之间的所有 PCIe 交换机和网桥均应支持 ACS。例如,如果交换机不支持 ACS,该交换机后面的所有设备共享同一个 IOMMU 组,并且只能分配到同一虚拟机。

请参阅供应商规格和数据表,确认硬件是否符合这些要求。

lspci -v 命令可用于打印系统上已安装的 PCI 设备的信息。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.