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 固件更新。
yum或dnf更新可能无法完成固件更新。如需更多信息,请参阅您的厂商文档。
流程
-
以
stack用户的身份登录 undercloud。 Source
stackrc文件:source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 打开您之前在 第 7.5 节 “为 SR-IOV 创建 NIC 配置模板” 中创建的 NIC 配置模板,如
single_nic_vlans.j2。提示完成本节中的步骤时,您可以参阅 第 7.7 节 “NIC 分区配置示例”。
为接口类型
sriov_pf添加一个条目,以配置主机可以使用的物理功能:- type: sriov_pf name: <interface_name> use_dhcp: false numvfs: <number_of_vfs> promisc: <true/false>- type: sriov_pf name: <interface_name> use_dhcp: false numvfs: <number_of_vfs> promisc: <true/false>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<interface_name> 替换为接口名称。 -
将
<number_of_vfs> 替换为 VF 的数量。 -
可选:将
<true/false>替换为true来设置 promiscuous 模式,设置为false来禁用 promiscuous 模式。默认值为true。
注意numvfs参数替换网络配置模板中的NeutronSriovNumVFs参数。红帽不支持在部署后修改NeutronSriovNumVFs参数或numvfs参数。如果您在部署后修改了任一参数,则可能会导致在该物理功能(PF)上运行具有 SR-IOV 端口的实例中断。在这种情况下,您必须硬重启这些实例以使 SR-IOV PCI 设备再次可用。-
将
为接口类型
sriov_vf添加一个条目,以配置主机可以使用的虚拟功能:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<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 标签。
-
将
要为实例保留 VF,请在环境文件中包含
NovaPCIPassthrough参数。Example
Copy to Clipboard Copied! Toggle word wrap Toggle overflow RHOSP director 识别主机 VF,并生成可用于实例的 VF 的 PCI 地址。
在需要 NIC 分区的所有节点上启用
IOMMU。示例
例如,如果您想要 Compute 节点的 NIC 分区,请使用该角色的
KernelArgs参数启用 IOMMU:parameter_defaults: ComputeParameters: KernelArgs: "intel_iommu=on iommu=pt"parameter_defaults: ComputeParameters: KernelArgs: "intel_iommu=on iommu=pt"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意当您首先将
KernelArgs参数添加到角色的配置中时,overcloud 节点会自动重启。如果需要,您可以禁用自动重新引导节点,并在每个 overcloud 部署后手动重启节点。-
确保将这个 NIC 配置模板(如
single_nic_vlans.j2)添加到您在 第 7.4 节 “为 SR-IOV 创建裸机节点定义文件” 中创建的裸机节点定义文件中。
后续步骤
- 使用 director 安装和管理 Red Hat OpenStack Platform 指南中的 配置和置备 overcloud 网络定义
- 使用 director 安装和管理 Red Hat OpenStack Platform 指南中的为 overcloud 配置和置备网络 VIP。
- 使用 director 安装和管理 Red Hat OpenStack Platform 指南中的 为 overcloud 置备裸机节点。
- 第 7.8 节 “部署 SR-IOV overcloud”