6.6. OVS 硬件卸载的组件
用于配置和排除使用 Mellanox 智能 NIC 的 OVS HW Offload 组件的引用。
Nova
将 Nova 调度程序配置为使用 NovaPCIPassthrough
过滤器及 NUMATopologyFilter
和 DerivePciWhitelistEnabled
参数。当您启用 OVS HW Offload 时,Nova 调度程序与生成实例的 SR-IOV 透传相似。
Neutron
启用 OVS HW Offload 时,使用 devlink
cli 工具将 NIC e-switch 模式设置为 switchdev
。Switchdev
模式建立 NIC 上的代表器端口,这些端口映射到 VF。
流程
要从启用了
switchdev
-enabled NIC 分配端口,请创建一个 neutron 端口,其绑定
配置集为capabilities
,并禁用端口安全性:$ openstack port create --network private --vnic-type=direct --binding-profile '{"capabilities": ["switchdev"]}' direct_port1 --disable-port-security
在创建实例时传递此端口信息。您可以将代表器端口与实例 VF 接口关联,并将代表端口连接到 OVS 网桥 br-int 以进行一次性 OVS 数据路径处理。VF 端口代表器功能,如物理"patch 面板"前端的软件版本。有关新实例创建的更多信息,请参阅: 为 SR-IOV 部署实例
OVS
在配置了硬件卸载的环境中,传输的第一个数据包会遍历 OVS 内核路径,此数据包则为实例流量的传入和传出流量建立 ml2 OVS 规则。建立流量流后,OVS 会使用流量控制(TC)流程序实用程序在 NIC 硬件上推送这些流。
流程
使用 director 在 OVS 上应用以下配置:
$ sudo ovs-vsctl set Open_vSwitch . other_config:hw-offload=true
- 重启 以启用 HW Offload。
流量控制(TC)子系统
当您启用 hw-offload
标志时,OVS 将使用 TC 数据路径。TC Flower 是一个 iproute2 实用程序,用于在硬件上写入数据路径流。这样可确保在硬件和软件数据路径中编程了网络流,以实现冗余。
流程
应用以下配置。如果您没有显式配置
tc-policy
,则这个选项:$ sudo ovs-vsctl set Open_vSwitch . other_config:tc-policy=none
- 重启 OVS。
NIC PF 和 VF 驱动程序
Mlx5_core 是 Mellanox ConnectX-5 NIC 的 PF 和 VF 驱动程序。mlx5_core 驱动程序执行以下任务:
- 在硬件上创建路由表。
- 管理网络流管理。
-
配置以太网交换机设备驱动程序模型
switchdev
。 - 创建块设备。
流程
使用以下
devlink
命令查询 PCI 设备的模式。$ sudo devlink dev eswitch set pci/0000:03:00.0 mode switchdev $ sudo devlink dev eswitch show pci/0000:03:00.0 pci/0000:03:00.0: mode switchdev inline-mode none encap enable
NIC 固件
NIC 固件执行以下任务:
- 维护路由表和规则。
- 修复表的管道。
- 管理硬件资源。
- 创建 VF。
固件可用于驱动程序来获得最佳性能。
虽然 NIC 固件不是易失性,但在重新引导后保留,但您可以在运行时修改配置。
流程
在接口和代表端口上应用以下配置,以确保 TC 流器在端口级别推送流编程:
$ sudo ethtool -K enp3s0f0 hw-tc-offload on
请确定您更新固件。Yum
或 dnf
更新可能无法完成固件更新。如需更多信息,请参阅您的厂商文档。