8.9. OVS TC-flower 硬件卸载故障排除
当对使用 OVS TC-flower 硬件卸载的 Red Hat OpenStack Platform (RHOSP)环境进行故障排除时,请查看网络和接口的先决条件和配置。
先决条件
- Linux 内核 4.13 或更新版本
- OVS 2.8 或更新版本
- RHOSP 12 或更高版本
- iproute 4.12 或更新版本
- Mellanox NIC 固件,如 FW ConnectX-5 16.21.0338 或更新版本
有关支持的先决条件的更多信息,请参阅红帽知识库解决方案网络适配器 Fast Datapath 功能支持列表。
网络配置
在 HW 卸载部署中,您可以根据您的要求为网络配置选择以下场景之一:
- 您可以使用附加到绑定的相同接口集或每种类型的不同 NIC 集来在 VXLAN 和 VLAN 上基本客户虚拟机。
- 您可以使用 Linux 绑定绑定 Mellanox NIC 的两个端口。
- 您可以在 Mellanox Linux 绑定顶部的 VLAN 接口上托管租户 VXLAN 网络。
确保单个 NIC 和绑定是 ovs-bridge 的成员。
请参阅以下网络配置示例:
支持以下绑定配置:
- active-backup - mode=1
- active-active or balance-xor - mode=2
- 802.3ad (LACP) - mode=4
不支持以下绑定配置:
- xmit_hash_policy=layer3+4
接口配置
使用以下步骤验证接口配置。
流程
-
在部署过程中,使用主机网络配置工具
os-net-config
启用hw-tc-offload
。 -
每当您重启 Compute 节点时,在
sriov_config
服务上启用hw-tc-offload
。 对于附加到绑定的 NIC,将
hw-tc-offload
参数设置为on
。Example
ethtool -k ens1f0 | grep tc-offload
$ ethtool -k ens1f0 | grep tc-offload hw-tc-offload: on
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
接口模式
使用以下步骤验证接口模式。
流程
-
将 eswitch 模式设置为用于 HW 卸载的接口的
switchdev
。 -
使用主机网络配置工具
os-net-config
在部署期间启用eswitch
。 每当重新引导 Compute 节点时,在
sriov_config
服务上启用eswitch
。Example
devlink dev eswitch show pci/$(ethtool -i ens1f0 | grep bus-info \ | cut -d ':' -f 2,3,4 | awk '{$1=$1};1')
$ devlink dev eswitch show pci/$(ethtool -i ens1f0 | grep bus-info \ | cut -d ':' -f 2,3,4 | awk '{$1=$1};1')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
PF 接口的驱动程序被设置为 "mlx5e_rep"
,以显示它是 e-switch uplink 端口的代表器。这不会影响功能。
OVS 卸载状态
使用以下步骤验证 OVS 卸载状态。
在 Compute 节点中启用 OVS 中的硬件卸载。
ovs-vsctl get Open_vSwitch . other_config:hw-offload
$ ovs-vsctl get Open_vSwitch . other_config:hw-offload "true"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
VF 代表端口名称
为确保 VF 的一致性命名器端口,os-net-config
使用 udev 规则重命名 <PF-name>_<VF_id> 格式的端口。
流程
部署后,验证 VF 代表器端口是否正确被命名。
Example
cat /etc/udev/rules.d/80-persistent-os-net-config.rules
$ cat /etc/udev/rules.d/80-persistent-os-net-config.rules
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
网络流量流
HW 卸载网络流功能类似于具有特定于应用程序集成电路(ASIC)芯片的物理交换机或路由器。
您可以访问交换机或路由器的 ASIC shell,以检查路由表和进行其他调试。以下流程使用 Cumulus Linux 交换机中的 Broadcom 芯片组作为示例。替换适合您的环境的值。
流程
要获取 Broadcom 芯片表内容,请使用
bcmcmd
命令。cl-bcmcmd l2 show
$ cl-bcmcmd l2 show
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
mac=00:02:00:00:00:08 vlan=2000 GPORT=0x2 modid=0 port=2/xe1 mac=00:02:00:00:00:09 vlan=2000 GPORT=0x2 modid=0 port=2/xe1 Hit
mac=00:02:00:00:00:08 vlan=2000 GPORT=0x2 modid=0 port=2/xe1 mac=00:02:00:00:00:09 vlan=2000 GPORT=0x2 modid=0 port=2/xe1 Hit
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查流量控制(TC)层。
tc -s filter show dev p5p1_1 ingress
$ tc -s filter show dev p5p1_1 ingress
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
检查此输出中的
in_hw
标志和统计信息。词语hardware
表示硬件处理网络流量。如果使用tc-policy=none
,您可以检查此输出或 tcpdump 在硬件或软件处理数据包时进行调查。当驱动程序无法卸载数据包时,您可以在dmesg
或ovs-vswitch.log
中看到对应的日志消息。 对于 Mellanox,例如,在
dmesg
中类似复合消息的日志条目。输出示例
[13232.860484] mlx5_core 0000:3b:00.0: mlx5_cmd_check:756:(pid 131368): SET_FLOW_TABLE_ENTRY(0x936) op_mod(0x0) failed, status bad parameter(0x3), syndrome (0x6b1266)
[13232.860484] mlx5_core 0000:3b:00.0: mlx5_cmd_check:756:(pid 131368): SET_FLOW_TABLE_ENTRY(0x936) op_mod(0x0) failed, status bad parameter(0x3), syndrome (0x6b1266)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在本例中,错误代码(0x6b1266)代表以下行为:
输出示例
0x6B1266 | set_flow_table_entry: pop vlan and forward to uplink is not allowed
0x6B1266 | set_flow_table_entry: pop vlan and forward to uplink is not allowed
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
系统
使用以下步骤验证您的系统。
流程
- 确保系统上启用了 SR-IOV 和 VT-d。
-
通过在内核参数中添加
intel_iommu=on
在 Linux 中启用 IOMMU,例如使用 GRUB。