7.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 模式在映射到 VF 的 NIC 上建立代表端口。
				
流程
- 要从一个启用了 - switchdev的 NIC 中分配一个端口,以 admin 用户身份登录,创建一个带有值为- binding-profile的- capabilities,并禁用端口安全性:- openstack port create --network private --vnic-type=direct --binding-profile '{"capabilities": ["switchdev"]}' direct_port1 --disable-port-security- $ openstack port create --network private --vnic-type=direct --binding-profile '{"capabilities": ["switchdev"]}' direct_port1 --disable-port-security- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 在创建实例时传递此端口信息。 - 您可以将代表器端口与实例 VF 接口关联,并将代表器端口连接到 OVS 网桥 - br-int,以进行一次性 OVS 数据路径处理。VF 端口代表或类似物理"补丁面板"前端的软件版本。- 有关新实例创建的更多信息,请参阅为 SR-IOV 部署实例。 
OVS
在配置了硬件卸载的环境中,传输的第一个数据包会遍历 OVS 内核路径,此数据包过程负责为实例流量传入和传出流量建立 ml2 OVS 规则。在建立了流量流时,OVS 使用流量控制(TC)流程序程序在 NIC 硬件上推送这些流。
流程
- 使用 director 在 OVS 上应用以下配置: - sudo ovs-vsctl set Open_vSwitch . other_config:hw-offload=true - $ sudo ovs-vsctl set Open_vSwitch . other_config:hw-offload=true- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 重新启动 以启用 HW Offload。
流量控制(TC)子系统
					当您启用 hw-offload 标志时,OVS 会使用 TC 数据路径。TC Flower 是一个 iproute2 工具,用于在硬件上写入数据路径流。这样可确保流在硬件和软件数据路径上编程,以实现冗余。
				
流程
- 应用以下配置:如果您没有显式配置 - tc-policy,则这是默认选项:- sudo ovs-vsctl set Open_vSwitch . other_config:tc-policy=none - $ sudo ovs-vsctl set Open_vSwitch . other_config:tc-policy=none- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 重启 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 - $ 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- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
NIC 固件
NIC 固件执行以下任务:
- 维护路由表和规则。
- 修复表的管道。
- 管理硬件资源。
- 创建 VF。
固件可与驱动程序配合使用,以获得最佳性能。
虽然 NIC 固件不是易失性,但重启后会保留下来,您可以在运行时修改配置。
流程
- 在接口和代表端口中应用以下配置,以确保 TC 流程序在端口级别推送流编程: - sudo ethtool -K enp3s0f0 hw-tc-offload on - $ sudo ethtool -K enp3s0f0 hw-tc-offload on- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
					确保您保持固件更新。Yum 或 dnf 更新可能不会完成固件更新。如需更多信息,请参阅厂商文档。