7.6. 配置 NIC 分区


您可以通过为 Red Hat OpenStack Platform (RHOSP)管理网络和供应商网络配置单一根 I/O 虚拟化(SR-IOV)虚拟功能(VF)来减少每个主机所需的 NIC 数量。当您将单个、高速 NIC 分区为多个 VF 时,您可以将 NIC 用于控制和数据平面流量。此功能已在 Intel Fortville NIC 和 Mellanox CX-5 NIC 上进行验证。

注意

从 RHOSP 17.1.4 开始,所有内核控制台日志记录参数都将被移除,因为控制台日志记录可能会导致计算工作负载中不可接受的延迟问题。

如果您的 RHOSP 17.1.3 或更早版本的部署在 nftables 或 iptables 中包括带有 LOG 操作的过滤规则,且内核命令行(/proc/cmdline)有 console=tty50,则日志记录操作可能会导致数据包传输造成大量延迟。

如果您的 17.1.3 或更早版本的部署有此配置,并且观察 过延迟,请应用知识库解决方案 有时收到数据包(如 ICMP echo)中的临时解决方案,大约 190 ms

如果您更新到 RHOSP 17.1.4,请首先执行知识库解决方案中的步骤。

先决条件

  • 访问 stack 用户的 undercloud 主机和凭据。
  • 确保 NIC、其应用、VF 客户机和 OVS 驻留在相同的 NUMA Compute 节点上。

    这有助于防止性能下降跨 NUMA 操作。

  • 确保保持 NIC 固件更新。

    yumdnf 更新可能无法完成固件更新。如需更多信息,请参阅您的厂商文档。

流程

  1. stack 用户的身份登录 undercloud。
  2. Source stackrc 文件:

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  3. 打开您之前在 第 7.5 节 “为 SR-IOV 创建 NIC 配置模板” 中创建的 NIC 配置模板,如 single_nic_vlans.j2

    提示

    完成本节中的步骤时,您可以参阅 第 7.7 节 “NIC 分区配置示例”

  4. 为接口类型 sriov_pf 添加一个条目,以配置主机可以使用的物理功能:

       - type: sriov_pf
         name: <interface_name>
         use_dhcp: false
         numvfs: <number_of_vfs>
         promisc: <true/false>
    Copy to Clipboard Toggle word wrap
    • <interface_name > 替换为接口名称。
    • <number_of_vfs > 替换为 VF 的数量。
    • 可选:将 <true/false> 替换为 true 来设置 promiscuous 模式,设置为 false 来禁用 promiscuous 模式。默认值为 true
    注意

    numvfs 参数替换网络配置模板中的 NeutronSriovNumVFs 参数。红帽不支持在部署后修改 NeutronSriovNumVFs 参数或 numvfs 参数。如果您在部署后修改了任一参数,则可能会导致在该物理功能(PF)上运行具有 SR-IOV 端口的实例中断。在这种情况下,您必须硬重启这些实例以使 SR-IOV PCI 设备再次可用。

  5. 为接口类型 sriov_vf 添加一个条目,以配置主机可以使用的虚拟功能:

     - type: <bond_type>
       name: internal_bond
       bonding_options: mode=<bonding_option>
       use_dhcp: false
       members:
       - type: sriov_vf
           device: <pf_device_name>
           vfid: <vf_id>
       - type: sriov_vf
           device:  <pf_device_name>
           vfid: <vf_id>
    
     - type: vlan
       vlan_id:
         get_param: InternalApiNetworkVlanID
       device: internal_bond
       addresses:
       - ip_netmask:
           get_param: InternalApiIpSubnet
       routes:
         list_concat_unique:
         - get_param: InternalApiInterfaceRoutes
    Copy to Clipboard Toggle word wrap
    • <bond_type > 替换为所需的绑定类型,如 linux_bond。您可以为其他绑定在绑定上应用 VLAN 标签,如 ovs_bond
    • <bonding_option > 替换为以下支持的绑定模式之一:

      • active-backup
      • balance-slb

        注意

        不支持 LACP 绑定。

    • members 部分中,指定 sriov_vf 作为要绑定的接口类型。

      注意

      如果您使用 OVS 网桥作为接口类型,则只能在 sriov_pf 设备的 sriov_vf 上配置一个 OVS 网桥。单个 sriov_pf 设备中的多个 OVS 网桥可能会导致 VF 间的数据包重复,并降低性能。

    • <pf_device_name > 替换为 PF 设备的名称。
    • 如果使用 linux_bond,则必须分配 VLAN 标签。如果设置了 VLAN 标签,请确保为与单个 sriov_pf 设备关联的每个 VF 设置唯一标签。同一 VLAN 上不能有两个来自同一 PF 的 VF。
    • <vf_id > 替换为 VF 的 ID。适用的 VF ID 范围从零开始,以 VF 减去的最大数量结束。
    • 禁用欺骗检查。
    • sriov_vf 上为 VF 上的 linux_bond 应用 VLAN 标签。
  6. 要为实例保留 VF,请在环境文件中包含 NovaPCIPassthrough 参数。

    Example

    NovaPCIPassthrough:
     - address: "0000:19:0e.3"
       trusted: "true"
       physical_network: "sriov1"
     - address: "0000:19:0e.0"
       trusted: "true"
       physical_network: "sriov2"
    Copy to Clipboard Toggle word wrap

    RHOSP director 识别主机 VF,并生成可用于实例的 VF 的 PCI 地址。

  7. 在需要 NIC 分区的所有节点上启用 IOMMU

    示例

    例如,如果您想要 Compute 节点的 NIC 分区,请使用该角色的 KernelArgs 参数启用 IOMMU:

    parameter_defaults:
      ComputeParameters:
        KernelArgs: "intel_iommu=on iommu=pt"
    Copy to Clipboard Toggle word wrap
    注意

    当您首先将 KernelArgs 参数添加到角色的配置中时,overcloud 节点会自动重启。如果需要,您可以禁用自动重新引导节点,并在每个 overcloud 部署后手动重启节点。

  8. 确保将这个 NIC 配置模板(如 single_nic_vlans.j2) 添加到您在 第 7.4 节 “为 SR-IOV 创建裸机节点定义文件” 中创建的裸机节点定义文件中。

后续步骤

  1. 使用 director 安装和管理 Red Hat OpenStack Platform 指南中的 配置和置备 overcloud 网络定义
  2. 使用 director 安装和管理 Red Hat OpenStack Platform 指南中的为 overcloud 配置和置备网络 VIP
  3. 使用 director 安装和管理 Red Hat OpenStack Platform 指南中的 为 overcloud 置备裸机节点
  4. 第 7.8 节 “部署 SR-IOV overcloud”
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat