计算化学公社

 找回密码 Forget password
 注册 Register
Views: 63523|回复 Reply: 46
打印 Print 上一主题 Last thread 下一主题 Next thread

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

  [复制链接 Copy URL]

1102

帖子

18

威望

6643

eV
积分
8105

Level 6 (一方通行)

計算化学の社畜

本帖最后由 冰释之川 于 2022-9-14 09:55 编辑

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

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

  1. sudo vi /etc/hosts
复制代码


请根据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 26
威望 +1 eV +113 收起 理由
Reason
洛兰希尔 + 5 好物!
咸鱼狗子 + 5 好物!
pzl + 5 精品内容
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

查看全部评分 View all ratings

Stand on the shoulders of giants

45

帖子

0

威望

359

eV
积分
404

Level 3 能力者

47#
发表于 Post on 2023-12-23 19:21:52 | 只看该作者 Only view this author
请问老师,我安装好之后qsub提交脚本的时候出现qsub: submit error (Job exceeds queue resource limits MSG=cannot locate feasible nodes (nodes file is empty, all systems are busy, or no nodes have the requested feature)) 不知道是什么问题?

45

帖子

0

威望

359

eV
积分
404

Level 3 能力者

46#
发表于 Post on 2022-8-7 15:48:21 | 只看该作者 Only view this author
abin 发表于 2022-8-7 15:36
当然可以安装,
看你技能了。

多谢老师,我再摸索摸索,之前就是遇到了我一开始提到的那个问题,不能yum下载安装turque的环境

2301

帖子

1

威望

5473

eV
积分
7794

Level 6 (一方通行)

45#
发表于 Post on 2022-8-7 15:36:20 | 只看该作者 Only view this author
RES 发表于 2022-8-7 14:46
再次感谢您,我再次确认了一下版本,cat  /etc/redhat-release 出来的结果是Red Hat Enterprise Linux Se ...

当然可以安装,
看你技能了。

估计要捣鼓一段时间的。

RHEL6, 7, 8, 9及其兼容系统,都没有问题。

看你动手能力了。
High-Performance Computing for You
为您专属定制的高性能计算解决方案

更多讯息,请访问:
https://labitc.top
http://tophpc.top:8080
电邮: ask@hpc4you.top

45

帖子

0

威望

359

eV
积分
404

Level 3 能力者

44#
发表于 Post on 2022-8-7 14:46:00 | 只看该作者 Only view this author
本帖最后由 RES 于 2022-8-7 14:53 编辑
abin 发表于 2022-8-7 13:50
花钱,或者花时间,都差不多吧。

建议先更换系统到RHEL 7 或者RHEL8 兼容系统。

再次感谢您,我再次确认了一下版本,cat  /etc/redhat-release 出来的结果是Red Hat Enterprise Linux Server release 6.4 (Santiago)不知道这个版本可以满足装PBS的要求吗?
我之前是cat /proc/version 出来的结果是:Linux version 2.6.32-358.el6.x86_64 (mockbuild@x86-022.build.eng.bos.redhat.com) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC) ) #1 SMP Tue Jan 29 11:47:41 EST 2013
感觉这服务器好几年没人维护的,换系统怕这电脑给我搞没了

2301

帖子

1

威望

5473

eV
积分
7794

Level 6 (一方通行)

43#
发表于 Post on 2022-8-7 13:50:10 | 只看该作者 Only view this author
RES 发表于 2022-8-7 12:34
多谢,我是单机安装,花钱的有点划不来

花钱,或者花时间,都差不多吧。

建议先更换系统到RHEL 7 或者RHEL8 兼容系统。
然后,仔细阅读英文原版手册。
大概一两个小时能搞定。

或者B站,hpc4you 有一个实况视频,
Torque 安装的。这个很早了。

我现在改用slurm ,因为多机器会很方便。

High-Performance Computing for You
为您专属定制的高性能计算解决方案

更多讯息,请访问:
https://labitc.top
http://tophpc.top:8080
电邮: ask@hpc4you.top

2301

帖子

1

威望

5473

eV
积分
7794

Level 6 (一方通行)

42#
发表于 Post on 2022-8-7 13:46:03 | 只看该作者 Only view this author
RES 发表于 2022-8-7 11:05
老师,我在按照您的帖子内容尝试安装PBS时,发现不能yum自动安装,发现是yum的版本太低,费了半天重新装了y ...

我仔细观看了下,
如果你说的系统版本是RHEL 4.x,
建议你换系统吧。

你能找到的方案基本没法用。

RHEL4.x,大概15年前的东西了。

升级yum,也是勇士呀。
High-Performance Computing for You
为您专属定制的高性能计算解决方案

更多讯息,请访问:
https://labitc.top
http://tophpc.top:8080
电邮: ask@hpc4you.top

45

帖子

0

威望

359

eV
积分
404

Level 3 能力者

41#
发表于 Post on 2022-8-7 12:34:52 | 只看该作者 Only view this author
abin 发表于 2022-8-7 12:15
要不你看看这个?
gitee.com/hpc4you/hpc

多谢,我是单机安装,花钱的有点划不来

2301

帖子

1

威望

5473

eV
积分
7794

Level 6 (一方通行)

40#
发表于 Post on 2022-8-7 12:15:46 | 只看该作者 Only view this author
RES 发表于 2022-8-7 11:05
老师,我在按照您的帖子内容尝试安装PBS时,发现不能yum自动安装,发现是yum的版本太低,费了半天重新装了y ...

要不你看看这个?
gitee.com/hpc4you/hpc

hpc4you toolkit solo
如果是单机的话,啥操作都不用。
会自动安装slurm调度器。

High-Performance Computing for You
为您专属定制的高性能计算解决方案

更多讯息,请访问:
https://labitc.top
http://tophpc.top:8080
电邮: ask@hpc4you.top

45

帖子

0

威望

359

eV
积分
404

Level 3 能力者

39#
发表于 Post on 2022-8-7 11:05:26 | 只看该作者 Only view this author
本帖最后由 RES 于 2022-8-7 12:35 编辑

老师,我在按照您的帖子内容尝试安装PBS时,发现不能yum自动安装,发现是yum的版本太低,费了半天重新装了yum再次装PBS,但是yum lib的时候还是报错了(有一堆这样的报错),Linux的系统貌似是Redhat4.4.4,是不是系统太老了(因为这个装yum的时候都找了半天的方法)C:\Users\WUxianghuang\Desktop\屏幕截图 2022-08-07 110021.jpg

屏幕截图 2022-08-07 110021.jpg (228.63 KB, 下载次数 Times of downloads: 94)

屏幕截图 2022-08-07 110021.jpg

432

帖子

11

威望

3422

eV
积分
4074

Level 6 (一方通行)

38#
发表于 Post on 2022-5-6 08:23:54 | 只看该作者 Only view this author
本帖最后由 丁越 于 2022-5-6 08:25 编辑
gog 发表于 2022-5-5 20:32
使用centos 9 stream,还不如用fedora最新版

习惯用CentOS了,除了WSL上用过Ubuntu,其他的linux系统还没用过。确实CentOS 9 stream装软件的时候挺折腾的。
自由发挥,野蛮生长

328

帖子

0

威望

1916

eV
积分
2244

Level 5 (御坂)

37#
发表于 Post on 2022-5-5 20:32:28 | 只看该作者 Only view this author
丁越 发表于 2022-3-1 22:40
我今天安装了CentOS 9 stream,安装队列的时候碰到的问题和你一样,你输入systemctl status pbs_sched.se ...

使用centos 9 stream,还不如用fedora最新版

89

帖子

1

威望

1262

eV
积分
1371

Level 4 (黑子)

36#
发表于 Post on 2022-5-5 19:19:58 | 只看该作者 Only view this author
本帖最后由 luzujia 于 2022-5-5 19:27 编辑

收获很大

432

帖子

11

威望

3422

eV
积分
4074

Level 6 (一方通行)

35#
发表于 Post on 2022-3-1 22:40:00 | 只看该作者 Only view this author
djjj148 发表于 2021-6-9 20:28
请教一下:我用虚拟机模拟了master和slave01两个节点(每个节点给两个物理核心),安装上了PBS,且
测试通过 ...

我今天安装了CentOS 9 stream,安装队列的时候碰到的问题和你一样,你输入systemctl status pbs_sched.service 看看是不是下面有这个"/etc/rc.d/init.d/pbs_sched: line 9: /etc/rc.d/init.d/functions: No such file or directory",即在/etc/rc.d/init.d下没有function这个文件,没有的话加上

functions

18 KB, 下载次数 Times of downloads: 3

自由发挥,野蛮生长

31

帖子

0

威望

72

eV
积分
103

Level 2 能力者

34#
发表于 Post on 2021-12-16 17:18:30 | 只看该作者 Only view this author
冰释之川 发表于 2021-11-29 13:20
编译安装(make过程中会多次报错,因而中断之后需要继续添加参数make,比如make CFLAGS='-w -fpermissive' ...

比较新的linux版本(如debian11/centos8/centos stream9等)此法行不通,需要更改源码

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

GMT+8, 2024-11-23 18:55 , Processed in 0.194811 second(s), 26 queries , Gzip On.

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