Routing

Infiniband 介面不路由 IPoIB 流量

  • August 27, 2018

我有我正在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 上的主機。

這是核心 3.10.0-862.11.1 到 3.10.0-862.11.6 中的一個已知問題(參見此處此處)。

本質上,如果您將核心更新到 862.11.1-862.11.6,drivers/infiniband/core/verbs.c 中的一個錯誤會導致所有可靠連接 (rc) 消息失敗,而數據報消息不可靠將工作。您可以修補此驅動程序,或從較早的核心啟動以解決此問題,直到更新的核心解決此問題。

引用自:https://unix.stackexchange.com/questions/463067