6.3. NIC 分区
此功能通常通过 Red Hat OpenStack Platform (RHOSP) 16.1.2 提供,并在 Intel Fortville NIC 和 Mellanox CX-5 NIC 上进行验证。
您可以配置单个根 I/O 虚拟化(SR-IOV),以便 RHOSP 主机可以使用虚拟功能(VF)。
当您将单个高速 NIC 分区到多个 VF 时,您可以将 NIC 用于 control 和 data plane 流量。
流程
- 为您选择的角色打开 NIC 配置文件。
为接口类型
sriov_pf
添加条目以配置主机可以使用的物理功能:- type: sriov_pf name: <interface name> use_dhcp: false numvfs: <number of vfs> promisc: <true/false> #optional (Defaults to true)
- type: sriov_pf name: <interface name> use_dhcp: false numvfs: <number of vfs> promisc: <true/false> #optional (Defaults to true)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意numvfs
参数替换网络配置模板中的 NeutronSriovNum
VFs 参数。部署后,红帽不支持修改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
指定为到 bond 的接口类型。注意如果您使用 OVS 网桥作为接口类型,您可以在 sriov_pf 设备的 sriov_vf 上配置一个 OVS 网桥。单个 sriov_pf 设备中的多个 OVS 网桥可能会导致 VF 间的数据包重复,并降低性能。
-
将
<pf_device_name
> 替换为 PF 设备的名称。 -
如果使用
linux_bond
,则必须分配 VLAN 标签。 -
将
<vf_id
> 替换为 VF 的 ID。适用的 VF ID 范围从零开始,结尾是 VFs减一的最大数量。
-
将
-
禁用 spoof 检查,并在
sriov_vf
forlinux_bond
通过 VF 应用 VLAN 标签。 要为实例保留 VF,请在环境文件中包括
NovaPCIPassthrough
参数,例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow director 识别主机 VF,并生成可供实例可用的 VF 的 PCI 地址。
在所有需要 NIC 分区的节点上启用
IOMMU
。例如,如果要将 NIC 分区用于 Compute 节点,请使用该角色的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 将角色文件和环境文件添加到堆栈中与其他环境文件一起部署 overcloud:
openstack overcloud deploy --templates \ -r os-net-config.yaml
(undercloud)$ openstack overcloud deploy --templates \ -r os-net-config.yaml -e [your environment files] \ -e /home/stack/templates/<compute_environment_file>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
NIC 分区配置示例
要通过 VF 配置 Linux 绑定,禁用
spoofcheck
,并将 VLAN 标签应用到sriov_vf
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下示例在 VF 上配置 OVS 网桥:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要在 VF 上配置 OVS 用户桥接,请将 VLAN 标签应用到
ovs_user_bridge
参数:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
检查 VF 的数量。
cat /sys/class/net/p4p1/device/sriov_numvfs 10 cat /sys/class/net/p4p2/device/sriov_numvfs 10
[root@overcloud-compute-0 heat-admin]# cat /sys/class/net/p4p1/device/sriov_numvfs 10 [root@overcloud-compute-0 heat-admin]# cat /sys/class/net/p4p2/device/sriov_numvfs 10
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查 Linux 绑定。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 列出 OVS 绑定。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 显示 OVS 连接。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
如果您使用 NovaPCIPassthrough
将 VF 传递给实例,请通过 部署 SR-IOV 实例 来测试。