7.2. 为 SR-IOV 配置 PCI 透传设备


为 SR-IOV 环境部署 Red Hat OpenStack Platform 时,您必须在自定义环境文件中为 SR-IOV 计算节点配置 PCI 透传设备。

先决条件

  • 访问包含 PCI 卡的一个或多个物理服务器。
  • 访问 stack 用户的 undercloud 主机和凭据。

流程

  1. 在具有 PCI 卡的物理服务器上使用以下命令之一:

    • 如果部署了 overcloud:

      $ lspci -nn -s  <pci_device_address>
      Copy to Clipboard Toggle word wrap

      输出示例

      3b:00.0 Ethernet controller [0200]: Intel Corporation Ethernet
      Controller X710 for 10GbE SFP+ [<vendor_id>: <product_id>] (rev 02)
      Copy to Clipboard Toggle word wrap

    • 如果您的 overcloud 尚未部署:

      $ openstack baremetal introspection data save <baremetal_node_name> | jq '.inventory.interfaces[] | .name, .vendor, .product'
      Copy to Clipboard Toggle word wrap
  2. 为 SR-IOV 计算节点上 PCI 透传设备保留供应商和产品 ID。后续步骤中您将需要这些 ID。
  3. stack 用户的身份登录 undercloud。
  4. Source stackrc 文件:

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  5. 创建自定义环境 YAML 文件,如 sriov-overrides.yaml。通过在文件中添加以下内容,为 SR-IOV 计算节点配置 PCI 透传设备:

    parameter_defaults:
      ComputeSriovParameters:
        ...
        NovaPCIPassthrough:
          - vendor_id: "<vendor_id>"
            product_id: "<product_id>"
            address: <NIC_address>
            physical_network: "<physical_network>"
        ...
    Copy to Clipboard Toggle word wrap
    • <vendor_id > 替换为 PCI 设备的厂商 ID。
    • <product_id > 替换为 PCI 设备的产品 ID。
    • <NIC_address > 替换为 PCI 设备的地址。
    • 使用 PCI 设备所在的物理网络的名称替换 <physical_network>

      注意

      在配置 PCI 透传时不要使用 devname 参数,因为 NIC 的设备名称可以更改。要在 PF 上创建网络服务(neutron)端口,在 NovaPCIPassthrough 中指定 vendor_idproduct_id 和 PCI 设备地址,并使用 --vnic-type direct-physical 选项创建端口。要在虚拟功能(VF)上创建网络服务端口,请在 NovaPCIPassthrough 中指定 vendor_idproduct_id,并使用 --vnic-type 直接 选项创建端口。vendor_idproduct_id 参数的值可能因物理功能(PF)和 VF 上下文而异。

  6. 另外,在自定义环境文件中,确保 PciPassthroughFilterAggregateInstanceExtraSpecsFilter 位于 NovaSchedulerEnabledFilters 参数的过滤器列表中,计算服务(nova)用来过滤节点:

    parameter_defaults:
      ComputeSriovParameters:
        ...
        NovaPCIPassthrough:
          - vendor_id: "<vendor_id>"
            product_id: "<product_id>"
            address: <NIC_address>
            physical_network: "<physical_network>"
        ...
      NovaSchedulerEnabledFilters:
        - AvailabilityZoneFilter
        - ComputeFilter
        - ComputeCapabilitiesFilter
        - ImagePropertiesFilter
        - ServerGroupAntiAffinityFilter
        - ServerGroupAffinityFilter
        - PciPassthroughFilter
        - AggregateInstanceExtraSpecsFilter
    Copy to Clipboard Toggle word wrap
  7. 请注意您创建的自定义环境文件的路径和文件名。您稍后会在部署 overcloud 时使用此文件。
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部