A interface Infiniband não roteia o tráfego IPoIB

0

Tenho blocos de hosts que estou provisionando usando Puppet exatamente da mesma maneira, eles têm hardware idêntico (mesmo chassi blade) e estão definitivamente conectados de todas as formas nas quais as interfaces de alguns não estão funcionando mesmo que os outros. Estas são todas interfaces Infiniband, então eu posso testá-las com comandos como ibping e ibsysstat , o que mostra que eles têm conexões UVERBS / RDMA em funcionamento. Por exemplo:

master# ibsysstat 29
sysstat ping succeeded

onde o nó com esse LID que não está funcionando corretamente tem:

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

mas, quando eu faço apenas um simples ping para o endereço IP do IPoIB, ele não está se conectando. Outros comandos como ibping também estão definitivamente transmitindo tráfego, e os dados aparecem ao adicionar -d mostrando a saída de depuração. Eu posso ver os pings apagados quando eu assisto a interface usando tcpdump , mas nada está entrando. Enquanto isso, ao lado dela está um host com o mesmo tudo que funciona bem. Todas as tabelas de roteamento também são adequadas para mim e correspondem aos hosts que funcionam. Em um host que não funciona:

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

e em um que faz:

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

A única coisa diferente é a métrica na última rota, mas isso não importa. Também digno de nota, esses hosts funcionaram antes de serem reprovisionados. Então, estou quase certo de que não é hardware.

Estou com uma perda agora e qualquer ideia seria apreciada.

Editar: atualize com o erro dmesg

Encontrei algo na saída de dmesg para a interface em questão que existe apenas nos hosts que não funcionam. O erro

ib0: failed to modify QP to RTR: -22

infelizmente isso não é muito útil, e não há muita coisa relacionada nas pesquisas.

Talvez também digno de nota, os hosts em questão podem fazer ping no endereço IP do switch, e o switch pode fazer o ping dos hosts em seus IPs associados.

    
por geoffjay 16.08.2018 / 22:41

1 resposta

1

Este é um problema conhecido no kernel 3.10.0-862.11.1 a 3.10.0-862.11.6 (veja aqui e aqui ).

Essencialmente, se você atualizar o kernel para 862.11.1-862.11.6, um bug em drivers / infiniband / core / verbs.c onde um ponto e vírgula foi omitido faz com que todas as mensagens confiáveis conectadas (rc) falhem enquanto mensagens de datagrama não confiáveis funcionarão. Você pode corrigir esse driver ou inicializar a partir de um kernel anterior para contornar esse problema até que o kernel atualizado resolva esse problema.

    
por 27.08.2018 / 17:57