TORQUE安装笔记:
来源:互联网 发布:历史分时图数据的下载 编辑:程序博客网 时间:2024/06/16 00:27
TORQUE安装笔记:
Torque Resource Manager是一套OpenSource的软体,主要是用来控管丛集式电脑的工作排程,虽然是免费软体但功能还算蛮完整的,可以设定不同的工作类别,分配不同的资源,还可以设定工作完成时的e-mail通知...等等,我所知道的几座丛集式电脑上都有安装这个。 会重新安装这套软体(版本2.4.17,于RHEL4上)是因为各个节点间的版本不一样,造成了一些奇奇怪怪的问题,像是什么送工作就会让伺服器服务停掉啦. ..等等的,安装步骤如下,主要其实也是参考官方说明来操作:
- 首先到官方网站上去找你要的版本2.4.x官方已于2012 Aug.31停止对此版本的支援,2.4.17为最终版本2.5.x未来只会新增小功能,官方表示这是最值得信赖的版本,推荐安装2.5.123.0.x除了拥有2.5.x的所有功能以外,新增对「非统一记忆体存取」 (Non-Uniform Memory Access, NUMA)架构的支援,此版本不向下相容,官方已于2012 Dec.31停止对此版本的支援,3.0.6为最终版本4.xx版本4以后多是针对较为庞大的运算环境(PETA flops)所设计的,有兴趣的人可以自行研究如果想要抓2.5.x以前的版本,要从Archived Versions Library找,下载后请先解压缩。
- 执行安装设定
[root@HPC TORQUE]$ ./configure --prefix=/usr/TORQUE --with-scp \
--with-server-home=/var/spool/TORQUE
checking ...(略)
Building components: server=yes mom=yes clients=yes
gui=no drmaa=no pam=no
PBS Machine type: linux
Remote copy: /usr/bin/scp -rpB
PBS home: /var/spool/TORQUE
Default server: HPC
Unix Domain sockets: yes
Tcl: disabled
Tk: disabledReady for 'make'.
--with-scp是要求它使用scp来当复制档案的工具,预设为rcp(建议使用scp)
这里的prefix是放主程式的位置,不加的话预设为/usr/local/bin、/usr/local/sbin...等位置
而with-server-home是放设定档的地方,预设值为/var/spool/torque
为了搞清楚哪些是后来装上去的我都会额外指定大写的资料夹。 - 看到Ready for 'make'之后,请下make; make install来安装。
- 若不打算以NFS共享已安装的TORQUE到运算节点上的话,可以用以下指令制作给节点用的安装档:[root@HPC TORQUE]$ make packages
Building ./torque-package-clients-linux-x86_64.sh ...
Building ./torque-package-mom-linux-x86_64.sh ...
...(略)
[root@HPC TORQUE]$ ls
torque-package-clients-linux-x86_64.sh torque-package-devel-linux-x86_64.sh
torque-package-doc-linux-x86_64.sh torque-package-mom-linux-x86_64.sh
torque-package-server-linux-x86_64.sh节点上的安装仅需torque-package-clients-linux-x86_64.sh、torque-package-mom-linux-x86_64.sh这两个档案复制过去后执行./torque-package-clients-linux-x86_64.sh --install即可完成节点上的安装,路径会跟server上使用的路径一样。
到此基本的安装就完成了,不过接下来的设定才是最重要的部分!
主机上的设定
- 环境设定:
如果不是装在预设位置的话需要先把程式路径设定在环境变数里,不这么做的话就有可能在执行时遇上pbs_server: not found之类的错误讯息,或是在呼叫相关的函式库时出现error while loading shared libraries: libtorque.so.2: cannot open shared object file: No such file or directory,请将以下设定写入你的环境设定档(我是写在/etc/profile.d/torque ,sh里面):
export PBS=/usr/TORQUE
export PBS_SERVER_HOME=/var/spool/TORQUE
export TORQUE=$PBS
export PATH=$PBS/bin:$PBS/sbin:$PATH
export MANPATH=$PBS/man:$MANPATH
export LD_LIBRARY_PATH=$PBS/lib:$LD_LIBRARY_PATH然后source一下让设定生效,再用which检查设定是否正确
[root@HPC ~]$ source /etc/profile.d/torque.sh
[root@HPC ~]$ which pbs_server
/usr/TORQUE/sbin/pbs_server之后检查一下TORQUE Server的server_name有没有设定对,这是程式帮你设定的,应该是没问题
[root@HPC ~]# cat /var/spool/TORQUE/server_name
HPC - 新增服务:
这步骤可以略过没关系,主要的目的是要让管理比较便利,能经由service指令查询运作状态:
[root@HPC torque-2.4.17]$ service pbs_server status
pbs_server: unrecognized service
[root@HPC torque-2.4.17]$ cp contrib/init.d/pbs_server /etc/init.d
[root@HPC torque-2.4.17]$ cp contrib/init.d/pbs_mom /etc/init.d
[root@HPC torque-2.4.17]$ cp contrib/init.d/pbs_sched /etc/init.d
[root@HPC torque-2.4.17]$ chkconfig --add pbs_server
[root@HPC torque-2.4.17]$ chkconfig --add pbs_mom
[root@HPC torque-2.4.17]$ chkconfig --add pbs_sched
[root@HPC torque-2.4.17]$ service pbs_server status
pbs_server is not running要注意,在这个版本里contrib/init.d/底下的script,路径都是指向预设路径,所以如果不是安装到预设路径下的人记得要先改一下 档案中PBS_DAEMON以及PBS_HOME的值。 - 将服务设定为开机启动:
开机启动的设定有两种方式,如果你是照着我上面写的做到这里的话,请用下面这个方法:
#在伺服器端,以下这两个为必要服务
[root@HPC torque-2.4.17]$ chkconfig pbs_server on
[root@HPC torque-2.4.17]$ chkconfig pbs_sched on
#如果也要把伺服器端加入运算资源中,那也要启动pbs_mom
[root@HPC torque-2.4.17]$ chkconfig pbs_mom on若你主机上的TORQUE不是自己安装的,请检察/etc/里有没有pbs.conf或是torque.conf之类的设定档,如果有的话请找找/etc/init.d下有没有叫做pbs或torque的script,很有可能是靠这个设定档来控制开机时要启动什么服务。
我手边的这台机器就是这样,设定档为/etc/torque.conf,而PBS init script就是/etc/init.d/torque(chkconfig中的服务也只有torque一个,但这个script里面就有写好关于那三个服务的操作控制,简言之,用这个script就可以控制那三个服务)。 在这种情况下请修改/etc/torque.conf:[root@HPC ~]$ cat /etc/torque.conf
PBS_EXEC=/usr/TORQUE
PBS_HOME=/var/spool/TORQUE
# 1表示启动,0则为不启动
PBS_START_SERVER=1
#同样的,如果你的主机也要加入运算资源里,那这个也要启动
PBS_START_MOM=1
PBS_START_SCHED=1
PBS_SERVER=HPC
#最后确定一下torque这个服务有设定成开机启动:
[root@HPC ~]$ chkconfig --list |grep "torque"
torque 0:off 1:off 2:on 3:on 4:on 5:on 6:off
#这样就OK了! - 初始化资料库:
使用前要先初始化TORQUE的资料库,有两个方法选一个即可
#方法一:
[root@HPC torque-2.4.17]$ pbs_server -t create
#方法二:用里面的script,后面接你要让它成为TORQUE管理者的帐号
[root@HPC torque-2.4.17]$ ./torque.setup root
initializing TORQUE (admin: root@HPC)
Max open servers: 9
Max open servers: 9初始化之后就可以依需要设定伺服器了(例如walltime等参数)
下qmgr -c "print server"可以看到现在的设定 - 伺服器设定 <br>其实资料库初始化之后大概就可以直接使用了,这边列出几个可能会用上的设定:
#让使用者可以查询别人送的工作
[root@HPC ~]$ qmgr -c "set server query_other_jobs = True"
#允许于运算节点上送工作(或者是去修改/etc/hosts.equiv这样就不需要设定这参数)
[root@HPC ~]$ qmgr -c "set server allow_node_submit = True"
#限制使用者所能送的工作数(这里queue "batch"要依你设定的queue的名称来改
#如果没有做额外设定的话预设值就是batch)
[root@HPC ~]$ qmgr -c "set queue batch max_user_queuable=20"
#更改预设的walltime(预设为一小时,以下将会把他设定为两小时,用02:00:00也可以)
[root@HPC ~]$ qmgr -c "set queue batch resources_default.walltime=7200"
#设定batch这个工作序列最多可以使用到几颗运算核心
[root@HPC ~]$ qmgr -c "set queue batch resources_max.ncpus = 30" - 设定运算节点资讯:
节点名称及可用的CPU/GPU数量等资讯都是记录在/var/spool/TORQUE/server_priv/nodes里,格式如下:
主机名 可用核心数
node2 np=12
node3 np=12
设定完后重新启动pbs_server,再用pbsnodes可以看当前运算节点的状态。 如果遇上:[root@HPC ~]$ pbsnodes
pbsnodes: Server has no node list MSG=node list is empty - check 'server_priv/nodes' file那可能是忘了编写nodes这个档案,或者是没有重新启动伺服器所致。 - 启动伺服器以及排程daemon
如果你的伺服器到现在都还没启动的话,现在可以把他启动了,靠service指令启动或是直接执行都可以[root@HPC ~]$ pbs_server
[root@HPC ~]$ pbs_sched
#确认一下伺服器的状态
[root@HPC ~]$ qmgr -c 'list server'
Server HPC
server_state = Active
scheduling = True
total_jobs = 0
....(略)
#确认一下工作列里的工作可以开始进行了
[root@HPC ~]$ gmqr -c 'list queue batch'
Queue batch
queue_type = Execution
total_jobs = 0
...(略)
enabled = True
started = TrueOK!
运算节点上的设定
用先前制作出来的package在运算节点上安装好之后,跟设定伺服器一样先依需求新增pbs_mom的服务,并把它设定为开机启动,之后就只要再新增一个config档就可以了:[root@node1 ~]$ vi /var/spool/TORQUE/mom_priv/config $pbsserver HPC
$logevent 255
#其实只有上面两行是必备的,下面这行是标明作业系统
opsys RHEL4
$usecp *:/home /home
$usecp *:/scra /scra
$usecp *:/scra2 /scra2
# 下面这行是只允许
$restricted HPC
#最后启动pbs_mom
[root@node1 ~]$ service pbs_mom start
Starting TORQUE Mom: [ OK ]
#此时执行pbsnodes,如果设定正确应该就可以看到node上线了
[root@node1 ~]$ pbsnodes
node1
state = free
np = 12
ntype = cluster
status = ......叭啦叭啦一狗票(略)这config里的usecp呢,是针对NFS档案系统设定的,举例来说我在登入节点有设定将/home、/scra、/scra2以NFS广播出去,在运算节点上也都有挂载这些资料夹,那如果我在这几个地方送工作的话,那些工作输出以及错误输出纪录档(*.o/*.e)时就没有必要透过scp来做跨机器的复制,这里的设定就是告诉TORQUE对于要送到这些地方的资料直接用一般的cp指令复制到该处即可。
测试 <br>测试时可以用随便挑个指令或是执行档来跑,要注意送工作不能用root:
[Cypresslin@HPC work]# vi TORQUEtest.sh
#!/bin/sh
#PBS -N TEST
#PBS -l nodes=HPC
echo "TORQUE TEST on " `hostname`
echo "Current working directory is " `pwd`
[root@HPC work]$ qsub TORQUEtest.sh
qsub: Bad UID for job execution MSG=root user root not allowed
[Cypresslin@HPC work]# qsub TORQUEtest.sh
1.HPC
[Cypresslin@HPC work]# qstat
Job id Name User Time Use S Queue
-------- ------ ------------ --------- - ------
1.HPC TEST Cypresslin 00:00:00 C batch
#因为指令很短,所以一瞬间就执行完毕了,并会产生输出与错误纪录
#状态栏位(S)说明如下:
# R = running
# Q = queued
# H = held
# C = completed after having run
# E = exiting after having run
[Cypresslin@HPC work]# ls
TEST.o1 TEST.e1 TORQUEtest.sh
[Cypresslin@HPC work]# cat TEST.o1
TORQUE TEST on HPC
Current working directory is /work
#看到讯息正确无误就OK啦! 稍后也可以指定不同node去测试,会出现对应的主机名称
#如果没有出错的话,纪录stderr的TEST.e1是不会有东西的
设定的备份 <br>可以看到在执行qmgr -c 'print server'或是qmgr -c 'print queue batch'时,出现的都是set server ...、set queue ...等执行命令句,所以只要把这些结果写到某个档案就可以把他们备份下来:
[root@HPC ~]$ qmgr -c 'print server' > TORQUE.server.bak
#要把备份的设定叫回来也很简单,只要:
[root@HPC ~]$ qmgr < TORQUE.server.bak如果在网路上搜寻,有时可能会看到有文章说到关于执行host $HOSTNAME时出现Host XXXX not found: 3(NXDOMAIN)这个错误讯息,从而导致TORQUE没有办法正确运作。 在我手边这台机器,执行该指令时的确会出现此错误讯息,但是排程工具仍旧能正常运作,所以我想这可能不是造成错误的主因。
参考资料: TORQUE Admin Manual
[torqueusers] a question about $usecp
- torque安装笔记
- TORQUE安装笔记:
- torque安装
- torque 安装
- Torque 的安装
- 客户端安装torque问题
- Torque安装部署方法
- Torque安装调试实验
- Torque安装说明
- Torque 的安装
- Ubuntu安装Torque教程
- torque 安装排错
- Centos7单机安装torque
- Centos7安装Torque
- torque (以前的 OpenPBS) 安装
- Centos7安装-单节点Torque
- Centos7安装-多节点Torque
- TORQUE
- iPhone4升级iOS7输入卡顿的完美解决办法
- Nginx参数配置以及Nginx+tomcat配置集群
- 最好的开源App锦集
- grub笔记
- 重写(Overriding)和重载(Overloading)区别
- TORQUE安装笔记:
- hbase基于YCSB的压力测试配置与使用
- SNS呼叫中心的一些杂感
- 关于Eclipse不能升级android SDK和ADT的解决方法
- [intellij idea]中文显示乱码问题
- 如何将Linux命令的结果作为下一个命令的参数
- 植物大战僵尸2 V1.0.2内购问题
- 编程珠玑之生成0至n-1之间的k个不同随机序列的扩展问题 --2014人人网笔试题目
- 在centos6.4下安装php的mssql驱动