PBS是功能最为齐全,历史最悠久,支持最广泛的本地集群调度器之一。 PBS的目前包括openPBS,PBS Pro和Torque三个主要分支。 其中OpenPBS是最早的PBS系统,目前已经没有太多后续开发,PBS pro是PBS的商业版本,功能最为丰富。Torque是Clustering公司接过了OpenPBS,并给与后续支持的一个开源版本,下面就Torque4.0版本的安装和配置进行介绍。
一、系统:CentOS7
二、下载Torque
打开网页进行下载相应版本:http://www.adaptivecomputing.com/resources/downloads/torque/
三、Torque 安装
1.下载或拷贝torque-4.0.0.tar.gz 到 torque目录中
2.解压torque-4.0.0.tar.gz
[qium@centos torque]$tar -zxvf torque-4.0.0.tar.gz
3.进入torque-4.0.0
[qium@centos torque]$cd torque-4.0.0
4.切换到root用户
[qium#centos torque-4.0.0]$ su
[root@centos torque-4.0.0]$
5.检查环境与配置makefile
[root@centos torque-4.0.0]$./configure #后面可不加安装目录,默认为/var/spool/torque
6.运行make
[root@centos torque-4.0.0]$make
7.运行make install
[root@centos torque-4.0.0]$make install #按默认安装时,pbs_server pbs_sched pbs_mom trqauthd 会在/usr/local/sbin/下,不需要加入环境变量中。如果指定安装目录,则需要加入环境变量,方法是修改/etc/profile.d/torque.sh (root) 或 /home/qium/.bash_profile 中的PATH即可。
8.多节点管理工具生成。如当前节点为主节点(管理节点),则其它节点为“副”节点,主节点需管理这些“副”节点,方便节点之间数据传输
[root@centos torque-4.0.0]$make packages
9.安装torque-package-clients-linux-x86_64.sh和torque-package-mom-linux-x86_64.sh
[root@centos torque-4.0.0]$./torque-package-clients-linux-x86_64.sh --install
[root@centos torque-4.0.0]$./torque-package-mom-linux-x86_64.sh --install
至此,torque已安装完成。接下来要配置torque环境。
四、Torque 配置
1.配置用户权限
[root@centos torque-4.0.0]$./torque.setup.sh qium (qium 普通用户名)
2.开机启动torque服务
[root@centos ~]$vi /etc/rc.local
加入以下内容:
trqauthd
pbs_server
pbs_sched
pbs_mom
[root@centos ~]$chmod +x rc.local
重启后便可以了开机启动
3.添加计算节点("副"节点),修改/var/spool/torque/server_priv/nodes文件、/var/spool/torque/mom_priv/config文件和/etc/hosts文件
[root@centos ~]$vi /var/spool/torque/server_priv/nodes
添加以下内容:
centos np=8 (主节点)
node1 np=12
node2 np=12
... ...
[root@centos ~]$vi /var/spool/torque/mom_priv/config
添加以下内容:
pbsserver centos (主节点或管理节点)
logevent 255
[root@centos ~]$vi /etc/hosts
添加以下内容:
12.0.0.1 centos
12.0.0.2 node1
12.0.0.3 node2
... ...
保存
计算节点安装torque,(提前拷贝torque-package-clients-linux-x86_64.sh和torque-package-mom-linux-x86_64.sh到node1)进入第一台计算节点,现以node1为例:
[roo@centos ~]$ ssh 12.0.0.2
[root@node1 ~]$ ./torque-package-clients-linux-x86_64.sh --install
[root@node1 ~]$ ./torque-package-mom-linux-x86_64.sh --install
至此,管理节点(也是计算节点)和计算节点已经配置好,重启即可。
4.管理节点上Torque 列队的配置(可以不配置,默认为batch列队)
方法一:使用qmgr
[root@centos ~]$qmgr
Qmgr:create queue qium #创建列队
Qmgr:set queue qium queue_type=execution
Qmgr: set queue qium enabled = True
Qmgr: set queue qium started = True #这三个必须参数
Qmgr: set queue qium max_queuable=20 #可选,最大列队数量
Qmgr: set queue qium max_running=20 #可选,列队最大运行数量
Qmgr: set queue qium max_user_queuable=20 #可选,一个用户最大列队数量
Qmgr: set queue qium max_user_run=10 #可选,一个用户最大运行数量
Qmgr: set queue qium resources_default.walltime = 240:00:00 #可选,一个作业从开始到计算完成最大时间
Qmgr: set queue qium resources_default.nodes=1 #可选,默认使用节点数
Qmgr: set server operators += qium #可选,添加用户
Qmgr: set server managers += qium #可选,添加管理者
Qmgr:set server scheduling = true #可选
Qmgr:set server keep_completed = 300 #可选,一个作业计算完成后,保持C状态的时间,秒为单位
Qmgr:set server mom_job_sync = true #可选
Qmgr:exit
[root@centos ~]$qmgr -c 'p s' #查看所有列队
方法二:
[root@centos ~]$cd /var/spool/torque/server_priv/queues
[root@centos ~]$cp batch qium
[root@centos ~]$vi qium #修改参数
将方法一中的参数拷贝到qium文件中,即可
[root@centos ~]reboot
重启后,torque安装与配置完成!
五、提交作业
1.编写qsub.sh文件
[qium@centos ~]$ vi qusb.sh #提交作业脚本
在qusb.sh中写入:
#PBS -N test
#PBS -l nodes=1:ppn=2
#PBS -q batch
#PBS -V
echo Working directory is $PBS_O_WORKDIR
cd $PBS_O_WORKDIR
echo Running on host `hostname`
echo Time is `date`
echo Directory is `pwd`
echo This jobs runs on the following processors:
echo `cat $PBS_NODEFILE`
NPROCS=`wc -l < $PBS_NODEFILE`
echo This job has allocated $NPROCS nodes
#mpirun -np 2
python test.py
2.编写test.py
[qium@centos ~]$ vi test.py
在t.py中写入:
#!/usr/bin/python
import time
time.sleep(5)
print('t')
3.提交作业
[qium@centos ~]$ qsub qsub.sh
注意:qsub.sh文件的编写及参数意义可以参考:https://blog.csdn.net/qium2014/article/details/50052699
六、列队id归零
经常提交作业,作业id号会一直增加,有没有办法将id重置为0呢?答案是肯定的。下面就如何将id重置为0进行介绍。Torque使用的数据库是用可扩展标记语言(xml), 所有属性是用一对标签来引用。我们的目的就是修改某些属性就可以重置为0。
在修改时,请先kill掉pbs相关进程
[root@centos ~]$ ps -e | grep pbs #查看进程
[root@centos ~]$ killall pbs_mom
[root@centos ~]$ killall pbs_sched
[root@centos ~]$ killall pbs_server
[root@centos ~]$ killall trqauthd
1. 修改serverdb文件
方法一:在安装时,备份下serverdb,下次直接拷贝。
[roo@centos ~]$ cd /var/spool/torque/server_priv
[roo@centos ~]$ cp serverdb serverdb_orig #安装后,马上拷贝
当id号很大时,可将serverdb_orig 拷贝成serverdb
[roo@centos ~]$ cp serverdb_orig serverdb
方法二:在安装进,没有备份serverdb,直接修改serverdb文件。
[root@centos ~]$ cd /var/spool/torque/server_priv
[root@centos ~]$vi serverdb
将以下属性修改:
<numjobs>100</numjobs> ===> <numjobs>0</numjobs>
<nextjobid>101</nextjobid> ===> <nextjobid>0</nextjobid>
<total_jobs>101</total_jobs> ===> <total_jobs>0</total_jobs>
<next_job_number》101</next_job_number> ===> <next_job_number>0</next_job_number>
如:
<server_db>
<numjobs>0</numjobs> #当前作业id
<numque>1</numque> #列队表1:batch 2:qium
<nextjobid>0</nextjobid> #下一次作业id
<savetime>1584164219</savetime>
<attributes>
<server_state>0</server_state>
<scheduling>1</scheduling>
<total_jobs>0</total_jobs>
<state_count>Transit:0 Queued:0 Held:0 Waiting:0 Running:0 Exiting:0 Complete:0 </state_count>
<acl_hosts>centos</acl_hosts>
<managers>qium@centos</managers>
<operators>qium@centos</operators>
<default_queue>batch</default_queue>
<log_events>511</log_events>
<mail_from>adm</mail_from>
<scheduler_iteration>600</scheduler_iteration>
<node_check_rate>150</node_check_rate>
<tcp_timeout>300</tcp_timeout>
<job_stat_rate>45</job_stat_rate>
<poll_jobs>1</poll_jobs>
<mom_job_sync>1</mom_job_sync>
<pbs_version>4.0.0</pbs_version>
<keep_completed>60</keep_completed> #作业完成后,保持C状态的时间 60秒
<next_job_number>0</next_job_number> #下一作业id
</attributes>
</server_db>
方法三:写个脚本,定时重置。(如:1.sh、1.pl、1.py都可以,再启用crontab去定时运行)
2.清空spool目录内的文件
[root@centos ~]$ cd /var/spool/torque/spool
[root@centos ~]$ rm ./* #你也可以备份到其它目录中,总之该目录中没有文件
3.重启pbs服务
[root@centos ~]$trqauthd
[root@centos ~]$pbs_server
[root@centos ~]$pbs_sched
[root@centos ~]$pbs_mom
现在提交作业,你会发现作业的ID是从0开始了!!!!
七、可能报错
如报出下面的错误:
PBS_Server: LOG_ERROR::svr_recov_xml, No server tag found in the database file???
PBS_Server: LOG_ERROR::recov_svr_attr, Unable to read server database
pbs_server: failed to get server attributes
可以用下面方法解决:
[root@centos ~]$ cd /var/spool/torque/server_priv
[root@centos ~]$ vi serverdb
在最后加下面两行
</attributes>
</server_db>
[root@centos ~]$trqauthd
[root@centos ~]$pbs_server
[root@centos ~]$pbs_sched
[root@centos ~]$pbs_mom
重新启动pbs服务,就可解决!!!!