计算化学公社

 找回密码 Forget password
 注册 Register
Views: 42131|回复 Reply: 45

[集群维护] CentOS下安装PBS+maui教程

  [复制链接 Copy URL]

1061

帖子

16

威望

5784

eV
积分
7165

Level 6 (一方通行)

計算化学の社畜

发表于 Post on 2020-12-22 12:05:38 | 显示全部楼层 Show all |阅读模式 Reading model
本帖最后由 冰释之川 于 2022-9-14 09:55 编辑

最近要给新集群装PBS作业管理系统,顺便把安装全流程整理一下分享给有需要的朋友。

1. 主机名修改
为了便于管理,可以重新修改一下集群每个节点的主机名。
  1. sudo vi /etc/hostname
复制代码
QQ截图20201222091846.png
  1. sudo vi /etc/hosts
复制代码

QQ截图20201222091615.png
请根据ifconfig中的信息,酌情修改主机名对应的ip地址,并且添加计算节点的ip和主机名

2. 建立ssh无密码访问 (参考https://blog.csdn.net/weixin_30536513/article/details/99944936)
假设有3个主机192.168.0.191、192.168.0.192、192.168.0.193需要实现无密码ssh互联访问。
(a)每个节点分别检查是否安装openssh (每个节点都做):如果没有安装ssh,则需要先安装,执行命令:
  1. sudo apt-get install ssh
复制代码
(b)每个节点分别生成公钥和私钥:
  1. ssh-keygen -t rsa
复制代码
以上命令执行后,进行3次回车就行,其中-t后面的参数是指使用的加密协议类型,可以是rsa或者dsa,生成的公钥文件为~/.ssh/id_rsa.pub,私钥文件是~/.ssh/id_rsa,我们用到的是公钥文件。
(c)每个节点上面分别执行公钥拷贝:
  1. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  2. chmod 700 ~/.ssh/authorized_keys
复制代码
(d)把其他节点的id_rsa.pub也就公钥添加到本节点然后分发给其他节点(即公钥合并后共享):
我是在192.168.0.192节点上面进行合并的,所以我在192.168.0.192上面依次执行命令为:
  1. ssh 192.168.0.193 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  2. ssh 192.168.0.191 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  3. scp ~/.ssh/authorized_keys 192.168.0.193:~/.ssh/authorized_keys
  4. scp ~/.ssh/authorized_keys 192.168.0.191:~/.ssh/authorized_keys
复制代码
在上面的命令中,当执行完第2条时,可以查看cat ~/.ssh/authorized_keys查看文件,文件内容已经变成了3行,就是包含了3个节点的公钥。
(e)直接ssh至各个计算节点查看是否已经不需要密码便可登录

3. 安装 Torque 软件
假设集群信息为:
主机名    ip
master    192.168.64.51   (主节点)
slave01   192.168.64.52   (计算节点)

3.1 安装master节点:
首先下载依赖环境和相关库文件:
  1. sudo yum install libxml2-devel openssl-devel gcc gcc-c++ boost-devel libtool
复制代码
解压Torque安装包:
  1. tar -zxvf torque-6.1.2.tar.gz
复制代码
设置安装配置信息:
  1. ./configure --prefix=/usr/local/torque --with-scp --with-default-server=master
复制代码
编译安装(make过程中会多次报错,因而中断之后需要继续添加参数make,比如make CFLAGS='-w -fpermissive' ;make CPPFLAGS='-w -fpermissive' ;make CXXFLAGS='-w -fpermissive',自己一个个试吧):
  1. sudo make
  2. sudo make install
  3. sudo make packages
复制代码
复制文件,设为开机启动:
  1. sudo cp contrib/init.d/{pbs_{server,sched,mom},trqauthd} /etc/init.d/
  2. for i in pbs_server pbs_sched pbs_mom trqauthd; do sudo chkconfig --add $i; sudo chkconfig $i on;done
复制代码
设置环境变量:
  1. sudo vi /etc/profile
复制代码
  1. ###Setting for torque###
  2. export PATH=/usr/local/torque/bin:$PATH
  3. export PATH=/usr/local/torque/sbin:$PATH
  4. export LD_LIBRARY_PATH=/usr/local/torque/lib:$LD_LIBRARY_PATH
  5. export PATH=/usr/local/maui/bin:$PATH
  6. export PATH=/usr/local/maui/sbin:$PATH
  7. export LD_LIBRARY_PATH=/usr/local/maui/lib:$LD_LIBRARY_PATH
复制代码
  1. source /etc/profile
复制代码

编辑/etc/ld.so.conf 加入/usr/local/lib:
  1. include ld.so.conf.d/*.conf
  2. /usr/local/lib
复制代码
  1. sudo /sbin/ldconfig /etc/ld.so.conf
复制代码

切换到root下设置Torque的管理账户:
  1. ./torque.setup yjy
复制代码
切换回用户账户,启动服务:
  1. qterm
复制代码
  1. for i in pbs_server pbs_sched pbs_mom trqauthd; do sudo service $i start;done
复制代码


添加计算节点:
创建/var/spool/torque/server_priv/nodes,写入master,并设置每个节点的cpu物理核数
  1. sudo vi /var/spool/torque/server_priv/nodes
复制代码
  1. master np=20
  2. slave01 np=20
复制代码
创建/var/spool/torque/mom_priv/config文件:
  1. sudo vi /var/spool/torque/mom_priv/config
复制代码
写入
  1. $pbsserver master
  2. $logevent 255
复制代码
重启服务:
  1. for i in pbs_server pbs_sched pbs_mom trqauthd; do sudo service $i restart;done
复制代码
测试:
  1. echo sleep 7 | qsub
  2. qstat -a -n
复制代码
创建队列的默认信息:
  1. qmgr -c 'create queue AMD'
  2. qmgr -c 'set queue AMD queue_type = execution'
  3. qmgr -c 'set queue AMD started = true'
  4. qmgr -c 'set queue AMD enabled = true'
  5. qmgr -c 'set queue AMD resources_default.nodes = 1'
  6. qmgr -c 'set server default_queue = AMD'
复制代码


3.2 安装计算节点:
将master节点下的torque目录下的torque-package*文件copy到slave01节点的torque6文件夹下:
  1. scp torque-package-{mom,clients}-linux-x86_64.sh slave01:torque6
复制代码
将master节点下的torque目录下的contrib/init.d/{pbs_mom,trqauthd}文件copy到slave01节点的/etc/init.d/下:
  1. scp contrib/init.d/{pbs_mom,trqauthd} slave01:/etc/init.d/
复制代码
进入slave01节点的torque6文件夹安装文件:
  1. ./torque-package-clients-linux-x86_64.sh --install
  2. ./torque-package-mom-linux-x86_64.sh --install
复制代码
创建/var/spool/torque/mom_priv/config文件:
  1. sudo vi /var/spool/torque/mom_priv/config
复制代码
写入
  1. $pbsserver master
  2. $logevent 255
复制代码

将pbs_mom 和 trqauthd设为开机启动:
  1. for i in pbs_mom trqauthd; do sudo chkconfig --add $i; sudo chkconfig $i on;done
复制代码
启动服务:
  1. for i in pbs_mom trqauthd; do sudo service $i start;done
复制代码
主节点与计算节点的堆栈大小设为无限制:
  1. sudo sed -i '/END INIT INFO/s//&\nulimit -s unlimited/' /etc/rc.d/init.d/pbs_mom
  2. sudo sed -i '/LimitSTACK/s/=.*/=infinity/' /usr/lib/systemd/system/pbs_mom.service
复制代码

*最后注意,提交任务时,计算节点和主节点的用户必须完全一致,包括UID和GID。

4. 主节点下安装maui插件
进入maui文件夹在root下运行下面的脚本进行安装:
  1. #!/bin/sh

  2. ./configure --prefix=/usr/local/maui --with-pbs=/usr/local/torque
  3. #sed -i '/socket\.h/s/$/\n#include \<stdbool\.h\>/' /usr/local/torque/include/pbs_ifl.h
  4. sed -i '/PBSLDFLAGS/s#= .*-ltorque.*#= -L/usr/local/torque/lib -ltorque#' Makefile
  5. #cat Makefile | grep PBSLDFLAGS
  6. make -j4
  7. make install
  8. #cat /usr/local/maui/maui.cfg | grep SERVERHOST
  9. #cat /usr/local/maui/maui.cfg | grep ADMIN1
  10. sed -i '/^MAUI_PREFIX/s/=.*/=\/usr\/local\/maui/' contrib/service-scripts/redhat.maui.d
  11. sed -i '/daemon/s/--user maui/--user root/' contrib/service-scripts/redhat.maui.d
  12. #cat contrib/service-scripts/redhat.maui.d | grep MAUI_PREFIX
  13. #cat contrib/service-scripts/redhat.maui.d | grep daemon
  14. cp contrib/service-scripts/redhat.maui.d /etc/init.d/maui.d
  15. chmod a+x /etc/init.d/maui.d
  16. chkconfig --add maui.d
  17. chkconfig maui.d on
  18. echo "/usr/local/torque/lib" > /etc/ld.so.conf.d/torque.conf
  19. echo "/usr/local/maui/lib" > /etc/ld.so.conf.d/maui.conf
  20. ldconfig
  21. chkconfig pbs_sched off
  22. cp etc/maui.sh /etc/profile.d/
复制代码



最后重启主节点,运行showq命令查看是否正常。


附上Torque + maui 安装包:

链接:https://pan.baidu.com/s/1JRMnebt5m9cA_Ps2Bbasxw
提取码:58al


*如果要重装Torque+maui的话,请停止服务及自启动,并删除以下文件:
  1. for i in pbs_server pbs_sched pbs_mom trqauthd maui.d; do sudo service $i stop;done
  2. for i in pbs_server pbs_sched pbs_mom trqauthd maui.d; do sudo chkconfig $i off;done
  3. sudo rm -r /var/spool/torque
  4. sudo rm -r /usr/local/torque
  5. sudo rm -r /usr/local/maui
复制代码

2021/07/17更新:附上PBS下快速切换至某个任务所在的工作目录的脚本(写入~/.bashrc文件中):
  1. # Enter the job directory quickly for Torque PBS
  2. function cdjob(){
  3. jobid=$(qstat -u ${USER} | tail -n +$(expr $(qstat -u ${USER} | grep -n '\-\-\-\-' | cut -d : -f 1) + 1) | awk '{print $1}' | cut -d . -f 1)

  4. if [ -z $1 ];then
  5.         echo "Usage: cdjob + jobid!"
  6. else
  7.         result=$(echo "${jobid}" | grep -Fx $1) > /dev/null
  8.         if [ -z "${result}" ];then
  9.                 echo "Warning: Please input a correct JobID!"
  10.         else
  11.                 str=$(qstat -f $1 | grep -A2 "PBS_O_WORK")
  12.                 dir=$(echo ${str#*PBS_O_WORKDIR=} | sed 's# ##g' | cut -d , -f 1)
  13.                 cd $dir
  14.                 ls
  15.         fi
  16. fi
  17. }
复制代码

*队列池设置参考:
  1. #!/usr/bin/bash

  2. # sudo vi /var/spool/torque/server_priv/nodes
  3. # node1 np=24 GPU
  4. # node2 np=24 GPU
  5. # node3 np=56 CPU
  6. # node4 np=56 CPU
  7. # mgr np=56 CPU

  8. qmgr -c 'creat queue CPU'
  9. qmgr -c 'set queue CPU resources_default.neednodes = CPU'
  10. qmgr -c 'set queue CPU queue_type = Execution'
  11. qmgr -c 'set queue CPU enabled = True'
  12. qmgr -c 'set queue CPU started = True'
  13. qmgr -c 'set queue CPU resources_default.nodes = 1'

  14. qmgr -c 'creat queue GPU'
  15. qmgr -c 'set queue GPU resources_default.neednodes = GPU'
  16. qmgr -c 'set queue GPU queue_type = Execution'
  17. qmgr -c 'set queue GPU enabled = True'
  18. qmgr -c 'set queue GPU started = True'
  19. qmgr -c 'set queue GPU resources_default.nodes = 1'

  20. # qmgr -c 'creat queue route'
  21. # qmgr -c 'set queue route queue_type = Route'
  22. # qmgr -c 'set queue route route_destinations = CPU'
  23. # qmgr -c 'set queue route route_destinations += GPU'
  24. # qmgr -c 'set queue route enabled = True'
  25. # qmgr -c 'set queue route started = True'
  26. # qmgr -c 'set queue route resources_default.nodes = 1'

  27. qmgr -c 'creat queue all'
  28. qmgr -c 'set queue all queue_type = Execution'
  29. qmgr -c 'set queue all enabled = True'
  30. qmgr -c 'set queue all started = True'
  31. qmgr -c 'set queue all resources_default.nodes = 1'

  32. qmgr -c 'set server default_queue = all'
  33. qmgr -c 'set server query_other_jobs = True'
  34. qmgr -c 'set server scheduling = True'



复制代码




评分 Rate

参与人数
Participants 23
威望 +1 eV +98 收起 理由
Reason
Bridge + 4 好物!有些权限和细节还需要自己补充
zako + 3 &lt;font style=&quot;vertical-align: inh
vantasyoscar + 4 とてもいい!
丁越 + 5 谢谢
伞阳 + 3 谢谢
snljty + 5
shadow + 4 好物!
阿锋001 + 3 好物!
w筱翊 + 2 谢谢
ezez + 5 赞!
IIIO_OIII + 5 谢谢
gog + 5
dark_cosmos + 5 GJ!
tanyazhi + 5 好物!
Y30181009 + 5 赞!
Novice + 5 谢谢分享
hit_liaols + 5
wypkdhd + 5 你太可爱
sobereva + 1
ggdh + 5 谢谢

查看全部评分 View all ratings

Stand on the shoulders of giants

312

帖子

1

威望

3108

eV
积分
3440

Level 5 (御坂)

发表于 Post on 2020-12-22 16:22:35 | 显示全部楼层 Show all
とてもいい!
不知道这个日文啥意思,总之我想表达的是牛逼的意思。

247

帖子

0

威望

1226

eV
积分
1473

Level 4 (黑子)

发表于 Post on 2020-12-22 16:36:55 | 显示全部楼层 Show all
送上32个赞

105

帖子

0

威望

1626

eV
积分
1731

Level 5 (御坂)

发表于 Post on 2020-12-22 17:20:44 | 显示全部楼层 Show all
我修了两个月pbs+maui,最后用一下午安装了slurm……从此排队再也不出问题了

1464

帖子

1

威望

2595

eV
积分
4079

Level 6 (一方通行)

喵星人

发表于 Post on 2020-12-22 21:03:59 | 显示全部楼层 Show all
在centos中安装用apt-get嘛

1853

帖子

1

威望

4104

eV
积分
5977

Level 6 (一方通行)

发表于 Post on 2020-12-22 21:57:17 | 显示全部楼层 Show all
本帖最后由 abin 于 2022-3-31 14:09 编辑

搭配以下视频食用吧。

https://www.bilibili.com/video/BV1d4411r7WF
https://www.bilibili.com/video/BV1GE41177Mm  (被恶意投诉, 该视频已经删除, 可能损害了友商的利益, 其实我都不晓得友商是哪一位?)
High-Performance Computing for You
为您专属定制的高性能计算解决方案

更多讯息,请访问:
App,  https://gitee.com/hpc4you/linux
hpc4you toolkit,  https://gitee.com/hpc4you/hpc
电邮hpc4you@163.com VX: hpc4you

187

帖子

1

威望

1833

eV
积分
2040

Level 5 (御坂)

发表于 Post on 2020-12-23 08:09:10 | 显示全部楼层 Show all
PBSpro 路过。

1061

帖子

16

威望

5784

eV
积分
7165

Level 6 (一方通行)

計算化学の社畜

 楼主 Author| 发表于 Post on 2020-12-23 08:15:51 | 显示全部楼层 Show all

现在改名叫openPBS了
Stand on the shoulders of giants

187

帖子

1

威望

1833

eV
积分
2040

Level 5 (御坂)

发表于 Post on 2020-12-23 08:17:53 | 显示全部楼层 Show all
冰释之川 发表于 2020-12-23 08:15
现在改名叫openPBS了

暴露了。

16

帖子

0

威望

369

eV
积分
385

Level 3 能力者

发表于 Post on 2021-1-10 23:04:57 | 显示全部楼层 Show all
装了PBS之后,用ROOT账户运行会提示不能使用ROOT账户提交任务。换成user账户后,提交VASP有最大内存限制,陷入了循环。

1061

帖子

16

威望

5784

eV
积分
7165

Level 6 (一方通行)

計算化学の社畜

 楼主 Author| 发表于 Post on 2021-1-11 11:01:25 | 显示全部楼层 Show all
本帖最后由 冰释之川 于 2021-1-11 11:04 编辑
zmjsce 发表于 2021-1-10 23:04
装了PBS之后,用ROOT账户运行会提示不能使用ROOT账户提交任务。换成user账户后,提交VASP有最大内存限制 ...

内存限制?  内存没限制吧。。堆栈限制?
主节点与计算节点的堆栈大小设为无限制在我的教程里提了,主节点和所有计算节点都要设置
Stand on the shoulders of giants

16

帖子

0

威望

369

eV
积分
385

Level 3 能力者

发表于 Post on 2021-1-11 23:24:40 | 显示全部楼层 Show all
冰释之川 发表于 2021-1-11 11:01
内存限制?  内存没限制吧。。堆栈限制?
主节点与计算节点的堆栈大小设为无限制在我的教程里提了,主节点 ...

抱歉我没有讲清楚内存限制,我这边是遇到了堆栈的问题,root通过ultimate命令解除了限制,但是用普通用户就没法绕过内存堆栈这个问题,我今天再试着解决一下 多谢

247

帖子

0

威望

1226

eV
积分
1473

Level 4 (黑子)

发表于 Post on 2021-1-26 12:23:47 | 显示全部楼层 Show all
本帖最后由 gog 于 2021-1-26 12:25 编辑

系统故障,重新安装系统,而后安装配置PBS+maui,发现个问题:未提交任务的话,使用showq命令报错。

(base) [az@***0 torque-6.1.2]$ which showq
/opt/maui/bin/showq
(base) [az@***0 torque-6.1.2]$ sudo chmod +x /opt/maui/bin/showq
[sudo] password for az:
(base) [***0 torque-6.1.2]$ showq
ERROR:    cannot send request to server ***0:42559 (server may not be running)
ERROR:    cannot request service (status)


1061

帖子

16

威望

5784

eV
积分
7165

Level 6 (一方通行)

計算化学の社畜

 楼主 Author| 发表于 Post on 2021-1-26 13:16:54 | 显示全部楼层 Show all
gog 发表于 2021-1-26 12:23
系统故障,重新安装系统,而后安装配置PBS+maui,发现个问题:未提交任务的话,使用showq命令报错。

(ba ...

先查看 maui服务是不是正常启动
Stand on the shoulders of giants

16

帖子

0

威望

1796

eV
积分
1812

Level 5 (御坂)

发表于 Post on 2021-3-7 20:57:46 | 显示全部楼层 Show all
老师,如果进行单机安装,可以按照博文来吗?

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2023-2-5 10:05 , Processed in 0.247303 second(s), 25 queries .

快速回复 返回顶部 返回列表 Return to list