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.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才發現這個問題。