搭建集群

0x00 安装配置过程

本着“跟着官方走准没错”的信条,下载源码按照torqueAdminGuide-6.1.1.pdf的描述一步步安装依赖和Torque主体即可。下面都是在非root用户下操作。

  • Torque主要分三个部分:Server、Schd和mom。在管理节点上只装Server和Schd即可(./configure时--disable-client --disable-mom,更多参数见P35),记得按说明加上对应的service。当然在管理节点上面也可以安装mom用作计算节点,不需要其它操作了,如下图。


    image.png
  • 针对上一条,./configure部分里说的“至少要加上……参数”(也就是下图所示)可以无视了,实际装的时候只把cgroups(后面会要求在计算节点上装这个)和hwloc装上了,但没加这俩参数,最后也能跑起来。

    image.png

  • 管理节点搞定后,用下面命令生成计算节点所需的安装脚本torque-package-clients-linux-x86_64.shtorque-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 
  • 下面的几步很关键,关系到管理节点和计算节点能否相互沟通。(之前源码装的时候采用了默认路径)
    • 在管理节点路径/var/spool/torque/server_priv/nodes(需要权限,该文件需要手动创建)写入集群中计算节点的hostname,格式如下,一行为一个节点:(注:node-name为节点的主机名hostname,详见P25)当然把管理节点写进去也没影响。
node-name[:ts] [np=] [gpus=] [properties]
  • 在所有计算节点的路径/var/spool/torque/mom_priv/config(需要权限,该文件需要手动创建)写入管理节点信息,一般写如下内容即可,让计算节点明确谁是管理节点:(多了我也不懂:()
$pbsserver 
$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  
qmgr -c 'set server 
  • 运行“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. STDIN            0  R  batch

0x02 遇到的一些坑和有用的tips

  • 遇到任何看不懂的情况和PDF没提的情况,勤看log日志,日志里的情况去搜一下基本都懂了:
    • 服务节点:/var/spool/torque/server_log/<对应日期>
    • 计算节点:/var/spool/torque/mom_log/<对应日期>
  • 把所有节点的实际hostname改成nodes、config、hosts那些文件(前文都有提及)里对应的,否则无法实现torque功能。查了半天log才发现这个问题。

你可能感兴趣的:(搭建集群)