9.3. 配置 Nova PCI 透传的指南


  • 在配置 PCI 透传时不要使用 devname 参数,因为 NIC 的设备名称可能会改变。反之,使用 vendor_idproduct_id,因为它们更为稳定,或使用 NIC 的 PCI 设备地址。
  • 使用 address 参数或 product_id 通过特定的物理功能(PF)。如果您有同一 product_id 的多个 PF,则当类别中请求具有相同 product_id 的别名时,计算服务会使用其中任何这些设备。address 参数始终是唯一的。
  • 要传递所有虚拟功能(VF),请只指定您要用于 PCI 透传的 VF 的 product_idvendor_id。如果您使用 SRIOV 进行 NIC 分区,且您在 VF 上运行 OVS,则还必须指定 VF 的地址。
  • 要只传递 PF 的 VF,而不是 PF 本身,您可以使用 address 参数指定 PF 和 product_id 的 PCI 地址,以指定 VF 的产品 ID。

    配置 PCI 设备地址参数
    address 参数指定设备的 PCI 地址。您可以使用字符串或字典映射来设置 address 参数的值
    字符串格式

    如果使用字符串指定地址,您可以包含通配符 rolebinding,如下例所示:

    alias = {"name": "a1", "address": "*:0a:00.*", "physical_network": "physnet1"}
    字典格式

    如果使用字典格式指定地址,您可以包含正则表达式语法,如下例所示:

    [pci]
    device_spec = {"address":{"domain": ".*", "bus": "02", "slot": "01", "function": "[0-2]"}, physical_network: "net1"}

    Compute 服务将地址字段的配置限制为以下最大值:

    Expand

    address 字段

    最大值

    domain

    0xFFFF

    Bus

    0xFF

    slot

    0x1F

    function

    0x7

计算服务支持带有 16 位地址域的 PCI 设备。计算服务忽略具有 32 位地址域的 PCI 设备。

您可以通过在配置中添加 numa_policy 来为 PCI 透传设备指定默认的 NUMA 关联性策略。例如:

alias = {"name":"a1", "product_id":"1572", "vendor_id": "8086", "device_type": "type-PF", "numa_policy": "preferred"}

您可以为 numa_policy 选择四个值之一。

Expand
表 9.1. PCI NUMA 关联性策略的类别元数据
value描述

required

计算服务会创建一个实例,它只有在至少一个实例的一个 NUMA 节点与 PCI 设备有关联性时才请求 PCI 设备。这个选项提供最佳性能。

preferred

计算服务会尝试根据 NUMA 关联性选择 PCI 设备。如果不可能,计算服务将实例调度到没有与 PCI 设备关联性的 NUMA 节点上。

传统

(默认)计算服务创建在以下情况之一请求 PCI 设备的实例:

  • PCI 设备与至少一个 NUMA 节点的关联。
  • PCI 设备不提供有关其 NUMA 关联性的信息。

socket

计算服务会创建一个实例,它只有在至少一个实例 NUMA 节点与与 PCI 设备相同的主机套接字中与 NUMA 节点关联时才请求 PCI 设备。例如,以下主机架构有两个套接字,每个套接字都有两个 NUMA 节点,PCI 设备连接到其中一个套接字中的一个节点。

+ image::../_images/NUMA_node_socket.png[NUMA 节点关联性与 PCI 设备在同一主机套接字中的 NUMA 节点]

Compute 服务可以将带有两个 NUMA 节点的实例固定到以下主机节点组合,因为它们至少有一个实例 NUMA 节点固定到 PCI 设备的套接字:

  • 节点 0 和节点 1
  • 节点 0 和节点 2
  • 节点 0 和节点 3
  • 节点 1 和节点 2
  • 节点 1 和节点 3

实例无法固定到的主机节点的唯一组合是节点 2 和节点 3,因为这些节点都没有与 PCI 设备位于同一个插槽上。如果其他节点由其他实例使用,且只有节点 2 和 3 可用,则实例将无法引导。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

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

让开源更具包容性

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

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部