Opensuse 13.2 firewall: permitir openmpi

2

Estou tentando executar o teste openmpi simples em dois servidores.

 mpirun --report-bindings --host serv1.cell,serv2.cell  -np 2 hostname

Ambos os servidores executam o OpenSuse 13.2 e têm configuração de interface de rede semelhante:

ens2f0 - conexão com a internet, zona de firewall externa

ens2f1 - conexão lan (192.168.0.0), zona de firewall interna

ens2f2 - escravo de ligação, zona de firewall interna

ens2f3 - escravo de ligação, zona de firewall interno

bond0 - interface de ligação (192.168.6.0), sub-rede diferente de ensf1, zona de firewall interna

serv1.cell e serv2.cell são definidos em / etc / hosts como endereços na rede de ligação (192.168.6.0)

O Openmpi foi instalado a partir de repositórios padrão usando o zypper.

Se ambos os firewalls estiverem desligados - tudo está bem, mas quando um deles está rodando, coisas estranhas acontecem.

Se eu desligar o firewall no serv1 e executá-lo no serv2, o openmpi funcionará no serv1:

serv1.cell:~ # mpirun --report-bindings --host serv1.cell,serv2.cell  -np 2 hostname
serv2.cell
serv1.cell

E não funciona no serv2:

serv2.cell:~ # mpirun --report-bindings --host serv1.cell,serv2.cell  -np 2 hostname

Se eu desligar o firewall no serv2 e executá-lo no serv1, ocorre o inverso: o serv2 funciona bem, mas o serv1 stucks.

Eu também tentei um teste simples usando o netcat: o firewall está ativado, o netcat escuta no serv1, a conexão e os dados do serv2 estão ok, e vice-versa, então os firewalls permitem qualquer coisa que seja bond0. Não é uma solução para desativar firewalls, então como eu devo configurar o OpenMPI (ou firewall) para fazer os dois servidores funcionarem corretamente?

    
por Дмитрий Пузырьков 20.01.2016 / 19:36

1 resposta

1

Finalmente, descobri como dizer ao OpenMPI para usar somente interfaces especificadas. No /path/to/openmpi/etc/openmpi-mca-params.conf você deve descrever as redes e interfaces adicionando

btl_tcp_if_include = ifacename,0.0.0.0/24**
oob_tcp_if_include = ifacename,0.0.0.0/24**

que no meu caso é apenas

btl_tcp_if_include = bond0
oob_tcp_if_include = bond0

Agora o OpenMPI usa apenas bond0 .

    
por 17.03.2016 / 20:43