Opensuse 13.2 防火墙:允许 openmpi

Opensuse 13.2 防火墙:允许 openmpi

我正在尝试在两台服务器上运行简单的 openmpi 测试。

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

两台服务器都运行 OpenSuse 13.2 并且具有类似的网络接口配置:

ens2f0-互联网连接,外部防火墙区域

ens2f1-lan 连接(192.168.0.0),内部防火墙区域

ens2f2 - 绑定从属,内部防火墙区域

ens2f3 - 绑定从属,内部防火墙区域

bond0 - 绑定接口 (192.168.6.0),与 ensf1 不同的子网,内部防火墙区域

serv1.cell 和 serv2.cell 在 /etc/hosts 中定义为绑定网络中的地址(192.168.6.0)

Openmpi 是使用 zypper 从默认 repos 安装的。

如果两个防火墙都关闭 - 一切都正常,但是当其中一个运行时,就会发生奇怪的事情。

如果我关闭 serv1 上的防火墙,并在 serv2 上运行它,则 openmpi 可以在 serv1 上运行:

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

在 serv2 上不起作用:

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

如果我关闭 serv2 上的防火墙,并在 serv1 上运行它,则情况正好相反:serv2 工作正常,但 serv1 卡住。

我还尝试使用 netcat 进行了一个简单的测试:两个防火墙都打开了,netcat 在 serv1 上监听,来自 serv2 的连接和数据正常,反之亦然,因此防火墙允许通过 bond0 进行任何操作。关闭防火墙不是解决方案,那么我应该如何配置 OpenMPI(或防火墙)以使两个服务器正常工作?

答案1

最后找到了如何告诉 OpenMPI 仅使用指定的接口。在/path/to/openmpi/etc/openmpi-mca-params.conf 您应该通过添加来描述网络和接口

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

对我来说这只是

btl_tcp_if_include = bond0
oob_tcp_if_include = bond0

现在bond0仅使用OpenMPI。

相关内容