![Opensuse 13.2 防火墙:允许 openmpi](https://linux22.com/image/675258/Opensuse%2013.2%20%E9%98%B2%E7%81%AB%E5%A2%99%EF%BC%9A%E5%85%81%E8%AE%B8%20openmpi.png)
我正在尝试在两台服务器上运行简单的 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。