美文网首页
搭建集群

搭建集群

作者: BlinKer | 来源:发表于2017-09-15 21:31 被阅读0次

    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 <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才发现这个问题。

    相关文章

      网友评论

          本文标题:搭建集群

          本文链接:https://www.haomeiwen.com/subject/hurjsxtx.html