PBS开源版作业调度系统配置与安装手册

来源:互联网 发布:python从入门到实践pdf 编辑:程序博客网 时间:2024/05/09 23:31

Torque

1.1.   Toque简介:
Torque为以前的免费的作业调度软件openpbs的升级,openpbs目前已经收费,torque是它的开源版。torque的作业调度系统一共包含三个模块,对应三个后台进程,分别为pbs_server,pbs_sched, 和 pbs_mom,其中pbs_server和pbs_sched在管理节点启动,pbs_mom 在计算节点启动,pbs_server在管理节点负责与计算节点中的pbs_mom通讯,从而做到对资源的管理,pbs_sched负责队列的调度策略等等。
1.2.   安装前要求:
集群rsh配通
集群要有一个nfs共享目录,用于放置torque源包。
假设管理节点为node253,IP为10.10.10.253,有20个计算节点,为node1到node20,IP从10.10.10.1到10.10.10.20。共享目录为node253的/public目录,其它节点都已经mount上node253:/public。
 
1.3.   Torque在管理节点的安装与配置
1.3.1.      Server节点上的安装
I下载安装包 torque-2.3.0.tar.gz,将torque解压到nfs的共享路径(/public/sourcecode)
II安装方法如下:
[root@node253]# cd /public/sourcecode
[root@node253]# tar -xzvf torque-2.3.0.tar.gz
[root@node253 ]# cd torque-2.3.0
[root@node253]# ./configure
[root@node253]# make
[root@node253]# make install
安装完毕,系统会将二进制文件和文档,手册等安装在/usr/local/下,而将配置文件安装在系统的/var/spool/torque目录下。
1.3.2.      Server节点上的配置
I 编译安装完源码程序后,在源码路径下有可执行程序torque.setup,该命令是用来定义服务端管理作业调度系统的用户,同时创建作业调度的数据库(new batch database), 产生初始的默认队列。
[root@node253]#./torque.setup root
 
II添加所有计算节点的节点名到 /var/spool/torque/server_priv/nodes
[root@node253]# for i in `seq 1 20`; do echo node$i np=8; done >/var/spool/torque/server_priv/nodes
注:此文件在编译完成后并不存在,所以你需要用以上命令去创建和添加内容
查看内容 [root@node253]# cat /var/spool/torque/server_priv/nodes
        node1 np=8
        node2 np=8
        …..
        node20 np=8
       np是Client节点的cpu核数,在此为8。
   III disable pbs_sched 中的help_starving_jobs 选项
   修改 /var/spool/torque/sched_priv/sched_config文件为
   help_starving_jobs      false   ALL
   IIII 配置默认属性
 [root@node253 ~]# qmgr -c 'set server submit_hosts = node253'
 [root@node253 ~]# qmgr -c 'set server query_other_jobs = True'
[root@node253 ~]# qmgr -c 'set queue batch resources_default.walltime = 1000:00:00'
[root@node253 ~]# qmgr -c 'set server scheduling=True '
  
1.3.3.      管理节点启动脚本的配置
[root@node253 ]# cp contrib/init.d/pbs_server /etc/init.d/
[root@node253 ]# vi /etc/init.d/pbs_server
PBS_DAEMON=/usr/local/sbin/pbs_server
PBS_HOME=/var/spool/torque
[root@node253 ]#cp contrib/init.d/pbs_sched /etc/init.d/
[root@node253 ]#vi /etc/init.d/pbs_sched
PBS_DAEMON=/usr/local/sbin/pbs_sched
[root@node253 ]# chkconfig --add pbs_server; chkconfig pbs_server on
[root@node253 ]# chkconfig --add pbs_sched; chkconfig pbs_sched on
1.3.4.      管理节点启动服务
[root@node253 ]# /etc/init.d/pbs_server restart
[root@node253 ]# /etc/init.d/pbs_sched restart
 
1.4.   Torque在计算节点的安装与配置
1.4.1.      在计算节点的安装
[root@node253]# for i in `seq 1 20`; do
               echo =====`rsh node$i hostname`========
rsh node$i "cd /public/sourcecode/torque-2.3.0; make install";
done    
1.4.2.      client节点上的配置
注:Torque在client节点上的配置文件都在此目录下:/var/spool/torque/
I.修改文件/var/spool/torque/server_name,增加你的Server节点名
[root@node253]# vi /var/spool/torque/server_name
node253
将修改后的server_name文件copy到所有计算节点上
[root@node253]# for((i=1;$i<=20;i=$i+1)); do
               echo =====`rsh node$i hostname`========
rcp /var/spool/torque/server_name node$i:/var/spool/torque
rsh node$i cat /var/spool/torque/server_name
done
 
II.创建并且修改计算节点pbs_mom的配置文件/var/spool/torque/mom_priv/config
[root@node253]# vi /var/spool/torque/mom_priv/config
$pbsserver      10.10.10.253
$clienthost      node253
#ideal processor load and max processor load
$ideal_load 8
$max_load 8
#By default, no hosts are trusted to access mom services as non-root.
$restricted *.node253
## Log event :
# 0x1ff : log all events + debug events
# 0x0ff : just all events
$logevent 0x0ff
## alarm if the script hang or take very long time to execute
$prologalarm 30
## Specifies which directories should be staged
$usecp *:/home /home
 
将修改好的/var/spool/torque/mom_priv/config文件copy到所有计算节点
[root@node253]# for((i=1;$i<=20;i=$i+1)); do
               echo =====`rsh node$i hostname`========
rcp /var/spool/torque/mom_priv/config node$i:/var/spool/torque/mom_priv
done
 
1.4.3.      计算节点的启动脚本的配置
I 修改自启动脚本
[root@node253]# cp contrib/init.d/pbs_mom /etc/init.d/
[root@node253]# vi /etc/init.d/pbs_mom
PBS_DAEMON=/usr/local/sbin/pbs_mom
PBS_HOME=/var/spool/torque
 
将自启动脚本copy到每个计算节点
[root@node253]# for((i=1;$i<=20;i=$i+1)); do
               echo =====`rsh node$i hostname`========
rcp /etc/init.d/pbs_mom node$i:/etc/init.d
done
 
删除管理节点上的pbs_mom自启动脚本
[root@node253]# rm -f /etc/init.d/pbs_mom
 
II给所有计算节点添加启动时pbs_mom的服务
[root@node253]# for((i=1;$i<=20;i=$i+1)); do
               echo =====`rsh node$i hostname`========
rsh node$i /sbin/chkconfig  --add pbs_mom
rsh node$i /sbin/chkconfig pbs_mom on
done
1.4.4 计算节点启动服务
[root@node253]# for((i=1;$i<=20;i=$i+1)); do
               echo =====`rsh node$i hostname`========
rsh node$i /etc/init.d/pbs_mom restart
done
 
1.5 Torque安装完后的验证
1.verify all queues are properly configured
[root@node253]# qstat
2.view additional server configuration
[root@node253]# qmgr -c 'p s'
3.verify all nodes are correctly reporting
[root@node253]# pbsnodes
4 submit a job
切换到普通用户test,并确认所有的节点都有用户test
[root@node253]# su - test
[test@node253]# echo sleep 200|qsub
5 check the job status
[test@node253]# qstat –an
[test@node253]# qstat -f jobid
6 delete 删除作业
 [test@node253]# qdel jobid
 如果出错作业,要强制删除作业
 [test@node253]# qdel -p jobid
 
1.5.   Torque的高级功能配置
对于Torque,除了使用默认的配置外,常常要用到创建队列,再默认情况下,所有的计算节点生成一个队列batch,但是如果方便用户的管理,往往要创建多个队列。Torque的服务和队列管理都是通过qmgr命令来实现。
队列主要可以实现以下几个功能:
1 用户的计算节点不同种类,或用户想要把计算节点划分为几类。那么通过关键字
create queue small-ib
set queue small-ib acl_host_enable = False
set queue small-ib acl_hosts = node1
set queue small-ib acl_hosts += node2
set queue small-ib acl_hosts += node3
set queue small-ib acl_hosts += node4
set queue small-ib acl_hosts += node5
其中 small-ib 为队列名,这个说明将node1到node5 5个节点添加到队列small-ib中 。
2 用户定义不同的队列有不同的优先级,不同的用户提交到不同的队列中,能保证各个用户的优先级别不同。
3 定义不同的队列有不同的优先级,不同的作业提交到不同的队列中,能保证各个作业不同的优先级。
 
配置队列和服务的属性,都要通过qmgr来完成
配置这些可以通过
[root@node253]qmgr -c 'set server submit_hosts = node253'
如果写很多配置,可以创建一个新的文件your_quque.txt,将你的配置命令写到其中,然后执行
 [root@node253] cat your_quque.txt|qmgr
原创粉丝点击