搭建集群

0x00 安裝配置過(guò)程

本著“跟著官方走準(zhǔn)沒(méi)錯(cuò)”的信條,下載源碼按照torqueAdminGuide-6.1.1.pdf的描述一步步安裝依賴和Torque主體即可。下面都是在非root用戶下操作。

  • Torque主要分三個(gè)部分:Server、Schd和mom。在管理節(jié)點(diǎn)上只裝Server和Schd即可(./configure時(shí)--disable-client --disable-mom,更多參數(shù)見P35),記得按說(shuō)明加上對(duì)應(yīng)的service。當(dāng)然在管理節(jié)點(diǎn)上面也可以安裝mom用作計(jì)算節(jié)點(diǎn),不需要其它操作了,如下圖。


    image.png
  • 針對(duì)上一條,./configure部分里說(shuō)的“至少要加上……參數(shù)”(也就是下圖所示)可以無(wú)視了,實(shí)際裝的時(shí)候只把cgroups(后面會(huì)要求在計(jì)算節(jié)點(diǎn)上裝這個(gè))和hwloc裝上了,但沒(méi)加這倆參數(shù),最后也能跑起來(lái)。

    image.png

  • 管理節(jié)點(diǎn)搞定后,用下面命令生成計(jì)算節(jié)點(diǎn)所需的安裝腳本torque-package-clients-linux-x86_64.shtorque-package-mom-linux-x86_64.sh

make packages

把這倆scp到所有計(jì)算節(jié)點(diǎn)上,執(zhí)行(加參數(shù)--install)安裝。然后按照說(shuō)明加上對(duì)應(yīng)的service,以后啟動(dòng)起來(lái)很方便。(見P17,還會(huì)讓裝croups)

torque-package-clients-linux-x86_64.sh --install
torque-package-mom-linux-x86_64.sh --install
  • 接下來(lái)對(duì)服務(wù)器進(jìn)行初始化。有兩種方式,這里采用的是執(zhí)行腳本,省心一些。
qterm
sudo ./torque.setup <non-root user name>
  • 下面的幾步很關(guān)鍵,關(guān)系到管理節(jié)點(diǎn)和計(jì)算節(jié)點(diǎn)能否相互溝通。(之前源碼裝的時(shí)候采用了默認(rèn)路徑)
    • 在管理節(jié)點(diǎn)路徑/var/spool/torque/server_priv/nodes(需要權(quán)限,該文件需要手動(dòng)創(chuàng)建)寫入集群中計(jì)算節(jié)點(diǎn)的hostname,格式如下,一行為一個(gè)節(jié)點(diǎn):(注:node-name為節(jié)點(diǎn)的主機(jī)名hostname,詳見P25)當(dāng)然把管理節(jié)點(diǎn)寫進(jìn)去也沒(méi)影響。
node-name[:ts] [np=] [gpus=] [properties]
  • 在所有計(jì)算節(jié)點(diǎn)的路徑/var/spool/torque/mom_priv/config(需要權(quán)限,該文件需要手動(dòng)創(chuàng)建)寫入管理節(jié)點(diǎn)信息,一般寫如下內(nèi)容即可,讓計(jì)算節(jié)點(diǎn)明確誰(shuí)是管理節(jié)點(diǎn):(多了我也不懂:()
$pbsserver <server-hostname>
$logevent 255
  • 在所有節(jié)點(diǎn)的/etc/hosts文件里把整個(gè)集群的ip和hostname對(duì)應(yīng)關(guān)系寫好,很簡(jiǎn)單不舉例了。寫完之后用hostname作為目標(biāo)ping測(cè)試一下,能通就行。

    • 最最重要的的一步,很簡(jiǎn)單也最容易被忽略:把所有節(jié)點(diǎn)的實(shí)際hostname改成nodes、config、hosts那些文件里對(duì)應(yīng)的,否則無(wú)法實(shí)現(xiàn)torque功能。查了半天log才發(fā)現(xiàn)這個(gè)問(wèn)題。
  • 有個(gè)據(jù)稱是計(jì)算節(jié)點(diǎn)用來(lái)溝通的daemon:trqauthd。 按照P35在所有節(jié)點(diǎn)上都把這個(gè)服務(wù)跑起來(lái)。

0x01 運(yùn)行及測(cè)試

  • 現(xiàn)在去確認(rèn):管理節(jié)點(diǎn)上運(yùn)行了pbs_server、pbs_schd、trqauthd,計(jì)算節(jié)點(diǎn)上運(yùn)行了pbs_mom、trqauthd。沒(méi)有的話就restart把它們跑起來(lái)。
[example]
sudo service [service name] resart
  • 都完成之后,參見P56創(chuàng)建一個(gè)queue(沒(méi)創(chuàng)建時(shí)也會(huì)存在一個(gè)默認(rèn)隊(duì)列batch)并測(cè)試整個(gè)集群是否正常運(yùn)行。
    • 在這個(gè)過(guò)程中會(huì)對(duì)queue參數(shù)進(jìn)行查看。想要更改的話格式如下(具體的屬性選項(xiàng)見PDF):
[example]
qmgr -c 'set queue <queue name> <properties as it in pdf>
qmgr -c 'set server <properties as it in pdf>
  • 運(yùn)行“pbsnodes -a”命令后要確認(rèn)各計(jì)算節(jié)點(diǎn)的state均為free,否則集群無(wú)法正常運(yùn)作。
  • 嘗試PDF中的“echo "sleep 30" | qsub”進(jìn)行作業(yè)提交后,由于本文前面已確認(rèn)了pbs_schd服務(wù)的運(yùn)行,故查看隊(duì)列狀態(tài)結(jié)果應(yīng)如下(30秒內(nèi)狀態(tài)S都是R,而PDF中那時(shí)pbs_schd服務(wù)未運(yùn)行,故寫的是Q,要注意):
> qstat
Job id          Name   User          Time Use  S  Queue 
------          -----  -----------   --------  -- ----
0.<server name> STDIN  <user name>          0  R  batch

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

  • 遇到任何看不懂的情況和PDF沒(méi)提的情況,勤看log日志,日志里的情況去搜一下基本都懂了:
    • 服務(wù)節(jié)點(diǎn):/var/spool/torque/server_log/<對(duì)應(yīng)日期>
    • 計(jì)算節(jié)點(diǎn):/var/spool/torque/mom_log/<對(duì)應(yīng)日期>
  • 把所有節(jié)點(diǎn)的實(shí)際hostname改成nodes、config、hosts那些文件(前文都有提及)里對(duì)應(yīng)的,否則無(wú)法實(shí)現(xiàn)torque功能。查了半天log才發(fā)現(xiàn)這個(gè)問(wèn)題。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容