0x00 安装配置过程
本着“跟着官方走准没错”的信条,下载源码按照torqueAdminGuide-6.1.1.pdf的描述一步步安装依赖和Torque主体即可。下面都是在非root用户下操作。
-
Torque主要分三个部分:Server、Schd和mom。在管理节点上只装Server和Schd即可(./configure时--disable-client --disable-mom,更多参数见P35),记得按说明加上对应的service。当然在管理节点上面也可以安装mom用作计算节点,不需要其它操作了,如下图。
-
针对上一条,./configure部分里说的“至少要加上……参数”(也就是下图所示)可以无视了,实际装的时候只把cgroups(后面会要求在计算节点上装这个)和hwloc装上了,但没加这俩参数,最后也能跑起来。
管理节点搞定后,用下面命令生成计算节点所需的安装脚本torque-package-clients-linux-x86_64.sh和torque-package-mom-linux-x86_64.sh。
make packages
把这俩scp到所有计算节点上,执行(加参数--install)安装。然后按照说明加上对应的service,以后启动起来很方便。(见P17,还会让装croups)
torque-package-clients-linux-x86_64.sh --install
torque-package-mom-linux-x86_64.sh --install
- 接下来对服务器进行初始化。有两种方式,这里采用的是执行脚本,省心一些。
qterm
sudo ./torque.setup <non-root user name>
- 下面的几步很关键,关系到管理节点和计算节点能否相互沟通。(之前源码装的时候采用了默认路径)
- 在管理节点路径/var/spool/torque/server_priv/nodes(需要权限,该文件需要手动创建)写入集群中计算节点的hostname,格式如下,一行为一个节点:(注:node-name为节点的主机名hostname,详见P25)当然把管理节点写进去也没影响。
node-name[:ts] [np=] [gpus=] [properties]
- 在所有计算节点的路径/var/spool/torque/mom_priv/config(需要权限,该文件需要手动创建)写入管理节点信息,一般写如下内容即可,让计算节点明确谁是管理节点:(多了我也不懂:()
$pbsserver <server-hostname>
$logevent 255
-
在所有节点的/etc/hosts文件里把整个集群的ip和hostname对应关系写好,很简单不举例了。写完之后用hostname作为目标ping测试一下,能通就行。
- 最最重要的的一步,很简单也最容易被忽略:把所有节点的实际hostname改成nodes、config、hosts那些文件里对应的,否则无法实现torque功能。查了半天log才发现这个问题。
有个据称是计算节点用来沟通的daemon:trqauthd。 按照P35在所有节点上都把这个服务跑起来。
0x01 运行及测试
- 现在去确认:管理节点上运行了pbs_server、pbs_schd、trqauthd,计算节点上运行了pbs_mom、trqauthd。没有的话就restart把它们跑起来。
[example]
sudo service [service name] resart
- 都完成之后,参见P56创建一个queue(没创建时也会存在一个默认队列batch)并测试整个集群是否正常运行。
- 在这个过程中会对queue参数进行查看。想要更改的话格式如下(具体的属性选项见PDF):
[example]
qmgr -c 'set queue <queue name> <properties as it in pdf>
qmgr -c 'set server <properties as it in pdf>
- 运行“pbsnodes -a”命令后要确认各计算节点的state均为free,否则集群无法正常运作。
- 尝试PDF中的“echo "sleep 30" | qsub”进行作业提交后,由于本文前面已确认了pbs_schd服务的运行,故查看队列状态结果应如下(30秒内状态S都是R,而PDF中那时pbs_schd服务未运行,故写的是Q,要注意):
> qstat
Job id Name User Time Use S Queue
------ ----- ----------- -------- -- ----
0.<server name> STDIN <user name> 0 R batch
0x02 遇到的一些坑和有用的tips
- 遇到任何看不懂的情况和PDF没提的情况,勤看log日志,日志里的情况去搜一下基本都懂了:
- 服务节点:/var/spool/torque/server_log/<对应日期>
- 计算节点:/var/spool/torque/mom_log/<对应日期>
- 把所有节点的实际hostname改成nodes、config、hosts那些文件(前文都有提及)里对应的,否则无法实现torque功能。查了半天log才发现这个问题。