Mellanox HCA de porta dupla, pode pingar se o par ib0 estiver conectado, mas não se apenas o par ib1 estiver conectado

2

Instalei 2 placas HCA ConnectX-3 de duas portas mellanox FDR (CX354A), cada uma em uma máquina separada. As máquinas estão conectadas diretamente umas às outras (configuração sem chave). Ambas as portas nas placas são conectadas de tal forma que a porta 1 é para a porta 1 e a porta 2 é para a porta 2. Cada porta é configurada da seguinte forma:

HCA1 port1:  ib0    inet addr:192.168.10.13  Bcast:192.168.10.255  Mask:255.255.255.0
          port2: ib1     inet addr:192.168.10.15  Bcast:192.168.10.255  Mask:255.255.255.0

HCA2 port1: ib0     inet addr:192.168.10.24  Bcast:192.168.10.255  Mask:255.255.255.0
         port2: ib1     inet addr:192.168.10.26  Bcast:192.168.10.255  Mask:255.255.255.0

Executando 2 comandos opensm no HCA1 como abaixo e o ibstat mostra que todas as 4 portas estão ativas e ativas.

root@HCA1# opensm -g <ib0 GUID> --daemon
root@HCA1# opensm -g <ib1 GUID> --daemon

Com o configurado acima, posso fazer ping de qualquer um dos IPs para os outros acima.

No entanto, quando eu desconectei os cabos da porta 1, o ping não funciona entre o par da porta 2 conectado. Desconectando o par da porta 2 e conectando somente o par da porta 1, o ping funciona bem mesmo para o IP da porta 2 desconectada (?) Qual poderia ser a razão para isso e como posso corrigir o problema? Por favor, mencione quais informações extras devo postar.

O que estou tentando alcançar é estabelecer um link totalmente isolado para cada par de portas e executar processos openMPI separados para testar e comparar a largura de banda de dois cabos infinibandos ao mesmo tempo. Alguém poderia aconselhar sobre como isso poderia ser feito?

Quanto ao que aprendi, acho que preciso criar uma chave de partição diferente para cada par de portas. (atualmente eles estão usando a pkey padrão 0xffff) No entanto, esta tecla padrão não pode ser alterada, uma vez que o infiniband é configurado durante a inicialização. Alguma sugestão ou conselho?

Ambas as máquinas estão rodando o CentOS 6.4 e eu instalei o Mellanox OFED 1.5.3.

Estas são as saídas do ibstat em ambas as máquinas:

[root@HCA1 Desktop]# ifconfig ib0  
ib0       Link encap:InfiniBand  HWaddr   80:00:00:48:FE:81:00:00:00:00:00:00:00:00:00:00:00:00:00:00  
          inet addr:192.168.10.13  Bcast:192.168.10.255  Mask:255.255.255.0  
          inet6 addr: fe80::202:c903:21:8f11/64 Scope:Link  
          UP BROADCAST RUNNING MULTICAST  MTU:65520  Metric:1  
          RX packets:4144160 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:4141376 errors:0 dropped:2 overruns:0 carrier:0  
          collisions:0 txqueuelen:1024  
          RX bytes:702746349 (670.1 MiB)  TX bytes:719570861 (686.2 MiB)  


[root@HCA1 Desktop]# ifconfig ib1  
ib1       Link encap:InfiniBand  HWaddr   80:00:00:49:FE:82:00:00:00:00:00:00:00:00:00:00:00:00:00:00  
          inet addr:192.168.10.15  Bcast:192.168.10.255  Mask:255.255.255.0  
          inet6 addr: fe80::202:c903:21:8f12/64 Scope:Link  
          UP BROADCAST RUNNING MULTICAST  MTU:65520  Metric:1  
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:1024  
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)  


[root@HCA2 Desktop]# ifconfig ib0  
ib0       Link encap:InfiniBand  HWaddr   80:00:00:48:FE:81:00:00:00:00:00:00:00:00:00:00:00:00:00:00  
          inet addr:192.168.10.24  Bcast:192.168.10.255  Mask:255.255.255.0  
          inet6 addr: fe80::202:c903:21:8f51/64 Scope:Link  
          UP BROADCAST RUNNING MULTICAST  MTU:65520  Metric:1  
          RX packets:4141382 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:4144161 errors:0 dropped:2 overruns:0 carrier:0  
          collisions:0 txqueuelen:1024  
          RX bytes:703005597 (670.4 MiB)  TX bytes:719323129 (685.9 MiB)  


[root@HCA2 Desktop]# ifconfig ib1  
ib1       Link encap:InfiniBand  HWaddr   80:00:00:49:FE:82:00:00:00:00:00:00:00:00:00:00:00:00:00:00  
          inet addr:192.168.10.26  Bcast:192.168.10.255  Mask:255.255.255.0  
          inet6 addr: fe80::202:c903:21:8f52/64 Scope:Link  
          UP BROADCAST RUNNING MULTICAST  MTU:65520  Metric:1  
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:1024  
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)  

Os módulos carregados são os seguintes:

[root@HCA1 Desktop]# /etc/init.d/openibd status

  HCA driver loaded

Configured IPoIB devices:
ib0 ib1

Currently active IPoIB devices:
ib0
ib1

The following OFED modules are loaded:

  rdma_ucm  
  rdma_cm  
  ib_addr  
  ib_ipoib  
  mlx4_core  
  mlx4_ib  
  mlx4_en  
  ib_mthca  
  ib_uverbs  
  ib_umad  
  ib_ucm  
  ib_sa  
  ib_cm  
  ib_mad  
  ib_core  
  iw_cxgb3  
  iw_nes  
    
por FC Yit 13.06.2013 / 10:04

2 respostas

1

Ok, eu não estou totalmente familiarizado com a configuração no CentOS, mas o que eu acho que está acontecendo é isso. Essa ou ambas as cópias do opensm estão trabalhando no link ib0, mas não em outras. ib0 sendo o padrão para o OpenSM.

Pelo que entendi, você precisará de duas cópias do opensm sendo executadas nesta configuração específica, pois sem um switch que ligue todos os HCAs, é essencialmente duas malhas e você precisa executar o gerenciador de sub-redes em ambas as malhas. Você escolheu corretamente, mas não os executa corretamente (especificamente a segunda instância).

Ping parece funcionar quando ambos estão conectados porque o Linux está passando o ping para a segunda interface e respondendo por ambos os IPs. Tudo o que está funcionando em ib0 (Pair1).

No ubuntu que eu estou acostumado há um arquivo de configuração / etc / default / opensm.

Parece que é diferente no CentOS. O formato desse arquivo no Ubuntu é usado para executar o opensm com as portas certas, porque você precisa de um gerenciador de sub-rede opensm em cada porta.

Basicamente, o que você quer fazer não é executar

opensm -g --daemon

duas vezes, mas em vez disso

/usr/sbin/ibstat -p

Qual será a saída como:

0x001a4bffff0c34e5
0x001a4bffff0c34e6

Em seguida, execute

opensm -g 0x001a4bffff0c34e5 --daemon 
opensm -g 0x001a4bffff0c34e6 --daemon 

No Ubuntu, o script de inicialização realmente automatiza esse processo para ports = ALL (lido em / etc / default / opensm) onde ALL é uma palavra-chave capturada pelo script init.

Existe provavelmente um script de inicialização para o opensm no CentOS. Nesse meio tempo, os comandos acima podem ser usados ou você pode escrever seu próprio script de inicialização.

ATUALIZAÇÃO: Eu não tenho certeza se isso fará diferença ou não, mas eu também tenho os dois módulos seguintes carregados que você não faz.

ib_ipath
ib_qib

Você também exibiu seu HCA com o firmware mais recente? Isso é realmente muito importante. Não assuma que eles têm o que há de mais recente fora da fábrica.

    
por 13.06.2013 / 10:53
0

Como posso ver, duas sub-redes físicas diferentes são configuradas com o mesmo endereço de sub-rede 192.168.10.0. Acho que você deve atribuir diferentes endereços de sub-rede para resolver esse problema.

    
por 23.10.2013 / 17:58