Openpbs centos7集群安装配置心得
风干橘子皮-
2022年02月11日 15:36

本文参考,感谢原创: https://blog.csdn.net/weixin_45606067/article/details/109962484 https://blog.csdn.net/secyb/article/details/78697976 https://blog.csdn.net/smart9527_zc/article/details/85174102 https://blog.csdn.net/weixin_45842014/article/details/108779004 https://blog.csdn.net/zqwzlanbao/article/details/83987570 http://thisis.yorven.site/blog/index.php/2020/12/06/openpbs-install-instructions/ 版权声明:以上文章为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

此外还有openpbs的官方手册,地址: https://www.altair.com/pbs-works-documentation/

涉及到的安装包: MPICH: https://www.mpich.org/static/downloads/3.3/mpich-3.3.tar.gz Openpbs:https://github.com/openpbs/openpbs/releases/download/v19.1.3/pbspro_19.1.3.centos_7.zip

准备工作

1.安装虚拟机

这里我使用的Linux版本是centos7,其他linux操作系统比如Ubuntu、Fredora等和centos类似,但是有一些命令和文件的位置不同,比如说安装命令。下载系统镜像iso文件可以到清华镜像网站https://mirrors.tuna.tsinghua.edu.cn/

我使用的虚拟机平台是VMware Workstation Pro ,也可以使用免费的VMware Player进行安装,具体安装步骤可参考

https://blog.csdn.net/weixin_45606067/article/details/109962484

建议将虚拟机和虚拟硬盘放在同一个自己能找到的文件夹下,例如D:/centos7/,以便后续复制虚拟机。

在配置虚拟机网络时可直接查看虚拟机设置里的DHCP选项,直接勾选即可。如果DHCP是打开的, 那虚拟机应该是已经连上网的,可以在终端ping一下百度能不能连接上,或者直接打开Firefox试试。

2.创建虚拟机集群

下面表格是我在创建集群时的配置

主机IP备注master192.68.45.131主节点host1192.68.45.132子节点host2192.68.45.133子节点

搭建pbs集群时我选择了一个主节点和两个子节点,可以在vm上创建多个虚拟机来模拟集群,这里我用的是复制虚拟机。

复制虚拟机的具体步骤可以参考

复制虚拟机相关文章(https://blog.csdn.net/zqwzlanbao/article/details/83987570)

(也可以在VM里直接克隆虚拟机,克隆后需要更改的配置和上面这个文章相同。)

需要注意的是,本文上面提到将虚拟机和虚拟硬盘放在同一文件夹下,可以直接复制该文件夹再按照上面的文章进行虚拟机复制。

按照上述文章,发现不能同时打开被复制和复制后的虚拟机,原因是两台虚拟机占用了同一个虚拟硬盘。可以通过更改虚拟机的虚拟硬盘来解决这个问题。

  • 关闭虚拟机master和host1

  • 打开host1的虚拟机设置

  • 移除现有的虚拟硬盘

  • 添加新硬盘

    选择SCSI(S)

  • 选择使用现有虚拟磁盘

  • 选择后缀名没有s00x的这个vmdk文件,完成。

SSH免密登陆

网络环境配置

两个子节点的配置操作是一样的,下面的操作就以master和host1为例。由于后面有些操作不能使用root用户,建议全程用普通用户登陆,在图形界面下打开两个终端,一个su root登陆比较方便。

分别配置两台机器的hosts文件。之前虚拟机网络设置采用的是DHCP,用ifconfig命令能够查到的机器IP地址但不是固定的。通过修改ifcfg-ens33文件可以“固定”IP。(之前我一直弄不好虚拟机固定IP,导致虚拟机连不上网,索性就忽略了,直接改系统的配置文件,没想到这样既能保持联网,还能保证后面的安装进行)

在重启网络后查看IP地址有时可能会发现inet与文件中添加的IPADDR不同,但是没有影响我后面的安装,可以先不管。

分别在master和host1中编辑hosts文件。

此时两台机器应该能ping通(master ping host1)

ssh免密登陆

(1)在每个节点安装ssh服务

(2)各节点(主节点和子节点)生成私钥和公钥

(3)把各子节点的id_rsa.pub传到主节点

(4)在主节点操作认证

(5)将主节点的认证文件传回子节点

注意,ssh免密登陆是用户对用户式的,所以在操作中要保证主节点终端和子节点的终端是对应的。

建立NFS共享目录

关闭各节点防火墙和Selinux

服务端(master)

客户端(host1)

mount命令是暂时的,机器重启后失效,永久挂载可以用下面的方法:

这样设置的是在开机自动挂载,每次使用的时候需要先将服务端开启,否则客户端挂载不上共享目录,有1分35秒的尝试时间,可以在开机页面摁下Ctrl+Alt+2转到命令行下查看,能开机但是共享目录不可用。

安装配置mpich

安装编译器

解压编译

这里我将安装包放在了~/download/下

在每个节点下都安装mpich,可以将tar压缩包放在之前设置好的共享目录下。

配置环境

  • 新建配置文件 在/home/mpi_share下新建一个文件:servers,它注明每台机器有几个核。

  • 测试案例程序 在之前解压的mpich-3.3目录下的examples目录下有可执行文件cpi,我们运行它即可。

将可执行文件复制到共享目录/home/mpi_share/中,切换到共享目录下

成功结果如下: [cjx@master mpi_share]$ mpiexec -n 8 -f servers ./cpi Process 4 of 8 is on host1 Process 5 of 8 is on host1 Process 6 of 8 is on host1 Process 7 of 8 is on host1 Process 0 of 8 is on master Process 3 of 8 is on master Process 1 of 8 is on master Process 2 of 8 is on master pi is approximately 3.1415926544231247, Error is 0.0000000008333316 wall clock time = 0.001251

Openpbs安装

配置环境

这里我将压缩文件pbspro_19.1.3.centos_7.zip放在~/download/下

解压后的目录下有四个rpm安装包,根据名字即可推断其用途,这里我们只需要两个包 pbspro-server-19.1.3-0.x86_64.rpm是服务器节点(主节点)所需要安装的包 pbspro-execution-19.1.3-0.x86_64.rpm是计算节点(子节点)所需要安装的包

安装前需要配置一些环境,下面是官方手册给出的环境变量图,不过我设置半天也没整明白,下面给出我试成功的办法

在主节点上不需要设置这些环境变量

在子节点上需要在安装前先设置环境变量

安装

- 主节点

进入解压后的目录

安装后生成一个配置文件/etc/pbs.conf 用vim打开后在里面找到PBS_START_MOM,它表示当前机器是否承担计算任务,1表示承担,0表示不承担。 下面开启pbs并查看状态

在server上使用root 用户还需要输入以下命令

至此,server的配置安装完成。

- 子节点

进入解压后的目录

- 添加节点 此时主节点server还不能调用子节点进行运算,需要在主节点中添加计算节点

- 测试 在一般用户下,在master上提交任务

实际使用中,经常以脚本方式提交命令, 在脚本中用mpiexec或者mpirun运行mpich.