共计 3754 个字符,预计需要花费 10 分钟才能阅读完成。
1. 配置防火墙
正确配置防火墙的过滤规则,否则会造成 NFS 文件系统的挂载失败,NIS 账户认证的失败,mpirun 远程任务实例投放的失败。一般情况下,计算集群是在内部局域网中使用,所以可以不用太顾及安全问题,直接关闭掉所有节点服务器的防火墙即可。
相关命令如下:
service iptables stop #或者
/etc/init.d/iptables stop #以上这两种方法,即时生效但重启后复原
#或者
chkconfig iptables on #重启后永久生效
2. 配置集群局域网 ip 与主机名的映射
为了方便,可能需要将节点主机名改为 node1、node2、node3……的统一形式,修改主机名的命令是:
hostname node1 #将主机名修改成了 node1,但机器重启后会失效
永久修改的方法是修改 /etc/sysconfig/network 文件中的 hostname 一行:
HOSTNAME=node1
修改每个节点中的文件 /etc/hosts,将集群中各个节点主机名与 ip 的对应关系写进去。
3. 配置 NFS 共享文件系统
分布式并行计算一般要求各个节点服务器的应用软件环境和工作目录环境要保持一致,如果在每个节点上都要配置一遍,会特别麻烦。所以采用 NFS 共享文件系统,将应用软件和工作目录都部署在公共目录,就能能很好的解决这一困难。只需部署一次,所有的节点服务器就都能访问。
首先在所有的节点安装 nfs 套件,采用命令:
yum install nfs
然后,选在一台硬盘存储较大的节点服务器, 例如 node0,将其作为 NFS server 进行配置。具体做法是,先配置 /etc/exports 文件,在这个文件中写入:
/tmp node*(rw,no_root_squash) #将允许主机名为 node*(* 代表通配符) 的服务器以 rw 形式挂载 tmp 目录。
然后在 NFS server 节点上执行如下命令:
exportfs –ar #每次修改 /etc/exports 文件后都要执行一下这个命令。
service nfs start #启动 nfs 服务
其它的节点服务器,作为 NFS client 进行配置,需要执行如下命令:
service nfs start #启动 nfs 服务
mount –t nfs node0:/share /share #强 nfs server(即 node0)的 /share 目录挂载到本地的 /share 目录
通过修改 /etc/fstab 文件可以实现开机自动挂载,在此文件中填入一行:
192.168.44.130:/share /share nfs defaults 0 0
其它一下相关命令:
showmount -e 192.168.0.30 #在客户端使用此命令检查 NFS SERVER 上 export 出来的目录
showmount –a #一般在 NFS SERVER 上用,显示已经 mount 上本机 nfs 目录的 client 机器
chkconfig –level 35 nfs on #配置开机自动启动 nfs 服务
4. 配置 NIS 服务
分布式并行计算要求各个节点服务器上的账户信息环境要一直,如果在每台节点服务器上都配置一遍用户信息,工作量太大且重复。这个问题可以通过配置一台 NIS 服务器来解决,所有主机都可以到 NIS 服务器上查找用户信息进行账户认证。NIS(Network information service)又叫 YP(Yellow Pages,电话簿的意思)。
首先在所有的计算节点上安装 NIS 相关套件,命令如下:
yum install yp*
yum install xinetd
在所有的节点上修改 /etc/xinetd.d/time,使 disable=no,然后执行如下命令:
service xinetd restart #启动 xinetd 服务
nisdomainname cluster #设置 NIS 域的名字,在这设成了 cluster
在所有的节点上修改 /etc/sysconfig/network 文件,加入一行:
NISDOMAIN=cluster
选择一台节点服务器,例如 node0,作为 NIS server 进行配置,配置 /etc/ypserv.conf 文件,添加三行:
127.0.0.0/255.255.255.0 : * : * : none
192.168.0.0/255.255.255.0 : * : * : none
* : * : * : deny
其中 192.168.0.0 代表网段,要根据具体网络配置填写。
然后创建账户数据库,执行命令:
/usr/lib64/yp/ypinit –m #添加用户时,只需要在 NIS 服务端增加,然后执行 /usr/lib64/yp/ypinit –m 更新一下数据库即可
创建数据库,之后要启动服务 ypserv 和 yppasswdd:
service ypserv start
service yppasswdd start
chkconfig –level 35 ypserv on #开机启动服务
chkconfig –level 35 yppasswdd on #开机启动服务
其他计算节点服务器作为 NIS client 进行配置,首先配置 /etc/yp.conf 添加两行:
nisdomain cluster #设置 NIS 域的名字,在这设成了 cluster
ypserver node0 #设置 NIS server 的主机名,在这设成了 node0
配置 /etc/passwd 添加 1 行:
+:::::: #注意冒号的数量
配置 /etc/nsswitch.conf,添加如下 4 行:
passwd: files nis nisplus
shadow: files nis nisplus
group: files nis nisplus
hosts: files nis dns
最后执行命令:
service ypbind restart #启动服务
chkconfig –level 35 ypbind on #开机自动启动 ypbind 的方法
5. 配置 ssh 无密码登陆
在家目录没有配置在共享文件系统中的情况下,若要主机 B 无密码登陆主机 A,则要配置主机 A,在主机 A 用户家目录中建立.ssh 目录,cd 进去之后上执行如下:
ssh-keygen -t rsa #然后一直回车键,按照默认将生成的密钥保存在.ssh/id_rsa 文件中。
cp id_rsa.pub authorized_keys #这步完成后,正常情况下就可以无密码登录本机了。
scp authorized_keys test@B:/homename/.ssh #把刚刚产生的 authorized_keys 文件拷一份到主机 B 上.
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chmod 600 authorized_keys 进入主机 B 的.ssh 目录,改变 authorized_keys 文件的许可权限
按照以上步骤,只能让 B 无密码访问 A, 所以为了让集群内每个节点都能相互无密码访问,就需要把没两台节点配对相互按照上面步骤配置,工作量特别大。
如果家目录配置在了共享文件系统中,则要简单的多,执行执行以下命令,即可让集群内每个节点都能相互无密码访问
?
1
2
3
4 ssh-keygen -t rsa
cp id_rsa.pub authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
另外在 /etc/ssh/ssh_config 文件中添加 StrictHostKeyChecking no,这样在第一次 ssh 登陆时,系统不会再提示是否将主机加入到 known hosts 中。
6. 安装并配置 openmpi
安装 openmpi 的一版配置如下,如果使用 intel 的编译器,需要先安装 intel 编译器,然后执行命令:
./configure CC=icc CXX=icc FC=ifort –prefix=/opt/openmpi/ –enable-static –enable-mpi-cxx ps:一定要新建一个目录作为安装目录
如果使用系统自带默认编译器,则执行如下命令:
./configure –prefix=/opt/openmpi/ –enable-static –enable-mpi-cxx ps:一定要新建一个目录作为安装目录
最后编译 openmpi,命令如下:
make all install
7. 安装配置负载均衡系统(可选)
如果想增加作业调度功能,则还需要安装 lsf 等软件,这些软件的配置较为负载,而且一般小型集群没有必要使用,所以这里不再赘述。
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-06/132374.htm