This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.13.4. 配置 SR-IOV 网络设备
您可以在集群中配置单一根 I/O 虚拟化(SR-IOV)设备。
13.4.1. SR-IOV 网络节点配置对象 复制链接链接已复制到粘贴板!
您可以通过创建 SR-IOV 网络节点策略来为节点指定 SR-IOV 网络设备配置。策略的 API 对象是 sriovnetwork.openshift.io API 组的一部分。
以下 YAML 描述了 SR-IOV 网络节点策略:
- 1
- 自定义资源对象的名称。
- 2
- 安装 SR-IOV Operator 的命名空间。
- 3
- SR-IOV 设备插件的资源名称。您可以为资源名称创建多个 SR-IOV 网络节点策略。
- 4
- 节点选择器指定要配置的节点。只有所选节点上的 SR-IOV 网络设备才会被配置。SR-IOV Container Network Interface(CNI)插件和设备插件仅在所选节点上部署。
- 5
- 可选: priority 是一个
0到99之间的整数。较小的值具有更高的优先级。例如,优先级10是高于优先级99。默认值为99。 - 6
- 可选:虚拟功能的最大传输单元(MTU)。最大 MTU 值可能因不同的网络接口控制器(NIC)型号而有所不同。
- 7
- 为 SR-IOV 物理网络设备创建的虚拟功能((VF)的数量。对于 Intel 网络接口控制器(NIC),VF 的数量不能超过该设备支持的 VF 总数。对于 Mellanox NIC,VF 的数量不能超过
128。 - 8
- NIC 选择器标识要配置的 Operator 的设备。您不必为所有参数指定值。建议您足够精确地识别网络设备以避免意外选择设备。
如果指定了
rootDevices,则必须同时为vendor、deviceID或pfNames指定一个值。如果同时指定了pfNames和rootDevices,请确保它们引用同一设备。如果您为netFilter指定了一个值,那么您不需要指定任何其他参数,因为网络 ID 是唯一的。 - 9
- 可选: SR-IOV 网络设备的厂商十六进制代码。允许的值只能是
8086和15b3。 - 10
- 可选: SR-IOV 网络设备的设备十六进制代码。允许的值只能是
158b、1015和1017。 - 11
- 可选:该设备的一个或多个物理功能(PF)名称的数组。
- 12
- 可选:用于该设备的 PF 的一个或多个 PCI 总线地址的数组。使用以下格式提供地址:
0000:02:00.1。 - 13
- 可选:特定平台的网络过滤器。唯一支持的平台是 Red Hat OpenStack Platform(RHOSP)。可接受的值具有以下格式:
openstack/NetworkID:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx。将xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxxx替换为来自/var/config/openstack/latest/network_data.json元数据文件的值。 - 14
- 可选:虚拟功能的驱动程序类型。允许的值只能是
netdevice和vfio-pci。默认值为netdevice。对于裸机节点上的 Data Plane Development Kit(DPDK)模式中的 Mellanox NIC,请使用
netdevice驱动程序类型,并将isRdma设为true。 - 15
- 可选:是否启用远程直接访问(RDMA)模式。默认值为
false。如果将
isRDMA参数设定为true,您可以继续使用启用了 RDMA 的 VF 作为普通网络设备。设备可在其中的一个模式中使用。 - 16
- 可选:VF 的链接类型。您可以指定以下值之一:
eth或ib。为 Ethernet 指定eth,或为 InfiniBand 指定ib。默认值为eth。当将
linkType设置为ib时,SR-IOV Network Operator Webhook 会自动将isRdma设置为true。当将linkType设定为ib时,deviceType不应该被设置为vfio-pci。
13.4.1.1. SR-IOV 网络节点配置示例 复制链接链接已复制到粘贴板!
以下示例描述了 InfiniBand 设备的配置:
InfiniBand 设备的配置示例
以下示例描述了 RHOSP 虚拟机中的 SR-IOV 网络设备配置:
虚拟机中的 SR-IOV 设备配置示例
13.4.1.2. SR-IOV 设备的虚拟功能 (VF) 分区 复制链接链接已复制到粘贴板!
在某些情况下,您可能想要将同一个物理功能 (PF) 的虚拟功能 (VF) 分成多个资源池。例如: 您可能想要某些 VF 使用默认驱动程序载入,而其他的 VF 负载使用 vfio-pci 驱动程序。在这样的部署中,您可以使用SriovNetworkNodePolicy 自定义资源 (CR) 中的 pfNames 选项器(selector)来为池指定 VF 的范围,其格式为: <pfname>#<first_vf>-<last_vf>。
例如,以下 YAML 显示名为 netpf0 的、带有 VF 2 到 7 的接口的选择器:
pfNames: ["netpf0#2-7"]
pfNames: ["netpf0#2-7"]
-
netpf0是 PF 接口名称。 -
2是包含在范围内的第一个 VF 索引(基于 0)。 -
7是包含在范围内的最后一个 VF 索引(基于 0)。
如果满足以下要求,您可以使用不同的策略 CR 从同一 PF 中选择 VF:
-
选择相同 PF 的不同策略的
numVfs值必须相同。 -
VF 索引范围是从
0到<numVfs>-1之间。例如,如果您有一个策略,它的numVfs被设置为8,则<first_vf>的值不能小于0,<last_vf>的值不能大于7。 - 不同策略中的 VF 范围不得互相重叠。
-
<first_vf>不能大于<last_vf>。
以下示例演示了 SR-IOV 设备的 NIC 分区。
策略 policy-net-1 定义了一个资源池 net-1,其中包含带有默认 VF 驱动的 PF netpf0 的 VF 0 。策略 policy-net-1-dpdk 定义了一个资源池 net-1-dpdk,其中包含带有 vfio VF 驱动程序的 PF netpf0 的 VF 8 到 15。
策略 policy-net-1:
策略 policy-net-1-dpdk: