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.