Infiniband 인터페이스는 IPoIB 트래픽을 라우팅하지 않습니다.

Infiniband 인터페이스는 IPoIB 트래픽을 라우팅하지 않습니다.

나는 Puppet정확히 같은 방식으로 구성한 일부 호스트 블록을 가지고 있습니다. 그들은 동일한 하드웨어(동일한 블레이드 섀시)를 갖고 있으며 완전히 동일한 방식으로 연결되어 있으며 일부 인터페이스는 다른 인터페이스와 다르게 작동합니다. 이는 Infiniband 인터페이스이므로 및 같은 명령을 사용하여 테스트할 수 있으며 ibping이는 ibsysstat유효한 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연결이 되지 않습니다. 다른 명령도 확실히 트래픽을 전달하며 show debug 출력을 추가하면 데이터가 표시됩니다 ibping. -d시계 인터페이스를 사용하면 핑이 사라지는 것을 볼 수 있지만 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

안타깝게도 이는 그다지 도움이 되지 않으며 검색에 관련 콘텐츠가 많지 않습니다.

연결된 호스트가 스위치 IP 주소를 ping할 수 있고 스위치가 연결된 IP에서 호스트를 ping할 수 있다는 점도 주목할 가치가 있습니다.

답변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) 메시지가 실패하는 반면 신뢰할 수 없는 데이터그램 메시지는 작동합니다. . 최신 커널이 이 문제를 해결할 때까지 이 드라이버를 패치하거나 이전 커널에서 부팅하여 이 문제를 해결할 수 있습니다.

관련 정보