Infiniband 接口不路由 IPoIB 流量

Infiniband 接口不路由 IPoIB 流量

我有一些主机块,我Puppet以完全相同的方式进行配置,它们具有相同的硬件(相同的刀片机箱),并且肯定以所有相同的方式连接,其中某些接口的工作方式与其他接口不同。这些都是 Infiniband 接口,因此我可以使用 和 等命令来测试它们ibpingibsysstat这表明它们具有有效的 UVERBS/RDMA 连接。例如:

master# ibsysstat 29
sysstat ping succeeded

具有无法正常工作的 LID 的节点有:

node10# ibstat
CA 'mlx4_0'
    CA type: MT4099
    Number of ports: 1
    Firmware version: 2.11.1250
    Hardware version: 1
    Node GUID: 0x...
    System image GUID: 0x...
    Port 1:
        State: Active
        Physical state: LinkUp
        Rate: 40
        Base lid: 29
        LMC: 0
        SM lid: 26
        Capability mask: 0x02594868
        Port GUID: 0x...
        Link layer: InfiniBand

但是,当我只是对 IPoIB IP 地址进行简单操作时,ping它就没有连接。其他命令也肯定会传递流量,并且在添加显示调试输出ibping时会显示数据。-d当我使用 观看界面时,我可以看到 ping 消失tcpdump,但没有任何进来。同时,在它旁边的是一台主机,它的一切都工作得很好。路由表对我来说也很合适,并且匹配可以工作的主机。在不工作的主机上:

default via 10.10.0.1 dev em1 proto dhcp metric 100 
10.10.0.0/24 dev em1 proto kernel scope link src 10.10.0.110 metric 100 
10.11.0.0/24 dev ib0 proto kernel scope link src 10.11.0.110 
169.254.0.0/16 dev ib0 scope link metric 1005

并在其中之一上执行以下操作:

default via 10.10.0.1 dev em1 proto dhcp metric 100 
10.10.0.0/24 dev em1 proto kernel scope link src 10.10.0.108 metric 100 
10.11.0.0/24 dev ib0 proto kernel scope link src 10.11.0.108 
169.254.0.0/16 dev ib0 scope link metric 1004

唯一不同的是最后一条路线中的度量,但这应该不重要。另外值得注意的是,这些主机在重新配置之前可以正常工作。所以我几乎可以肯定这不是硬件。

我现在有点不知所措,任何想法将不胜感激。

编辑:更新 dmesg 错误

我在相关接口的输出中发现了一些dmesg仅存在于无法工作的主机上的内容。错误

ib0: failed to modify QP to RTR: -22

不幸的是,这不是很有帮助,并且搜索中没有太多相关的内容。

也许还值得注意的是,相关主机可以 ping 交换机 IP 地址,而交换机也可以 ping 其关联 IP 上的主机。

答案1

这是内核 3.10.0-862.11.1 到 3.10.0-862.11.6 中的一个已知问题(请参阅这里这里)。

本质上,如果将内核更新到 862.11.1-862.11.6,drivers/infiniband/core/verbs.c 中省略分号的错误会导致所有可靠连接 (rc) 消息失败,而不可靠数据报消息将工作。您可以修补此驱动程序,或从早期内核启动来解决此问题,直到更新的内核解决此问题。

相关内容