7.8. 调试硬件卸载流
如果您在 ovs-vswitch.log
文件中遇到以下信息,您可以使用以下步骤:
2020-01-31T06:22:11.257Z|00473|dpif_netlink(handler402)|ERR|failed to offload flow: Operation not supported: p6p1_5
流程
要启用卸载模块的日志记录,并获取此故障的额外日志信息,请在 Compute 节点上使用以下命令:
ovs-appctl vlog/set dpif_netlink:file:dbg # Module name changed recently (check based on the version used ovs-appctl vlog/set netdev_tc_offloads:file:dbg [OR] ovs-appctl vlog/set netdev_offload_tc:file:dbg ovs-appctl vlog/set tc:file:dbg
再次检查
ovs-vswitchd
日志,以查看与该问题相关的其他详细信息。在以下示例中,因为不支持的属性标记,卸载会失败。
2020-01-31T06:22:11.218Z|00471|dpif_netlink(handler402)|DBG|system@ovs-system: put[create] ufid:61bd016e-eb89-44fc-a17e-958bc8e45fda recirc_id(0),dp_hash(0/0),skb_priority(0/0),in_port(7),skb_mark(0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),eth(src=fa:16:3e:d2:f5:f3,dst=fa:16:3e:c4:a3:eb),eth_type(0x0800),ipv4(src=10.1.1.8/0.0.0.0,dst=10.1.1.31/0.0.0.0,proto=1/0,tos=0/0x3,ttl=64/0,frag=no),icmp(type=0/0,code=0/0), actions:set(tunnel(tun_id=0x3d,src=10.10.141.107,dst=10.10.141.124,ttl=64,tp_dst=4789,flags(df|key))),6 2020-01-31T06:22:11.253Z|00472|netdev_tc_offloads(handler402)|DBG|offloading attribute pkt_mark isn't supported 2020-01-31T06:22:11.257Z|00473|dpif_netlink(handler402)|ERR|failed to offload flow: Operation not supported: p6p1_5
调试 Mellanox NIC
Mellanox 提供了系统信息脚本,类似于 Red Hat SOS 报告。
https://github.com/Mellanox/linux-sysinfo-snapshot/blob/master/sysinfo-snapshot.py
当您运行此命令时,您可以为相关日志信息创建 zip 文件,这对于支持问题单很有用。
流程
您可以使用以下命令运行这个系统信息脚本:
# ./sysinfo-snapshot.py --asap --asap_tc --ibdiagnet --openstack
您还可以安装 Mellanox Firmware Tools(MFT)、mlxconfig、mlxlink 和 OpenFabrics Enterprise Distribution(OFED)驱动程序。
有用的 CLI 命令
使用 ethtool
实用程序收集诊断信息:
- ethtool -l <uplink representor> : 查看频道数
- ethtool -I <uplink/VFs> : Check statistics
- ethtool -i <uplink rep> : View driver information
- ethtool -g <uplink rep> : Check ring size
- ethtool -k <uplink/VFs> : View enabled 的功能
在 representor 和 PF 端口中使用 tcpdump
程序来相似检查流量流。
- 您对代表端口的链接状态所做的任何更改都会影响 VF 链接状态。
- Representor 端口统计数据显示 VF 统计数据还显示 VF 统计数据。
使用以下命令获取有用的诊断信息:
$ ovs-appctl dpctl/dump-flows -m type=offloaded $ ovs-appctl dpctl/dump-flows -m $ tc filter show dev ens1_0 ingress $ tc -s filter show dev ens1_0 ingress $ tc monitor