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.sh和torque-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)題。

