CentOS下torque叢集配置(一)-torque安裝與配置
一、Centos7系統的安裝及設定
1、給兩臺電腦安裝CentOS7.0,光碟啟動路徑修改為:/dev/cdrom
修改主機名稱
# hostnamectl set-hostname <host-name>
.2、設定ip地址
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
新增下列屬性值
IPADDR=”192.168.0.134”
NETMASK=”255.255.255.0”
BROADCAST=”192.168.0.255”
GATEWAY=”192.168.0.1”
3、設定/etc/hosts
設定各臺伺服器的hosts檔案都為相同的配置
192.168.0.134 master
192.168.0.135 de2
192.168.0.136 de2
4、進行ssh無密碼訪問設定
4.1、單項設定伺服器
A訪問B無需密碼
a.首先在A中執行 #ssh-keygen -t rsa 連按3下進行無密碼設定;執行上面一步,會在~/.ssh目錄下生成兩個檔案id_rsa和id_rsa.pub, 其中id_rsa是私鑰,儲存在本機;id_rsa.pub是公鑰,是要上傳到遠端伺服器的。
b.上傳公鑰到需要無密碼登陸的遠端伺服器B上並改名為authorized_keys:
遠端伺服器B上如果沒有.ssh目錄的話,先手動建立:
[[email protected] ~]# mkdir .ssh
[[email protected] ~]# chmod 755 .ssh
c.然後從伺服器A上傳公鑰檔案到遠端伺服器B:
然後使用#ssh slave 測試,無需密碼轉到伺服器B成功。
4.2多臺伺服器相互無密碼訪問
按照上面的思想,可以將每臺伺服器上執行一次#ssh-keygen–t rsa 然後將它的公鑰複製到需要免密碼訪問本臺伺服器的機器上,即執行上面的c步驟
多臺電腦ssh無密碼訪問
1.安裝ssh. sudo apt-get install ssh. 安裝完成後會在~目錄(當前使用者主目錄,即這裡的/home/xuhui)下產生一個隱藏資料夾.ssh(ls -a 可以檢視隱藏檔案)。如果沒有這個檔案,自己新建即可(mkdir .ssh).
2.進入.ssh目錄下面,在每臺機器上執行:ssh-keygen -t rsa 之後一路回車,產生金鑰;
3。完成第二步後會產生兩個檔案:
id-rsa #私鑰
id-rsa.pub #公鑰
4.在第一臺機器的目錄.ssh下執行命令,cat id-rsa.pub >> authorized_keys;此後.ssh下面會出現authorized_keys檔案。
5.然後將第一臺機器的.ssh目錄下面的authorized_keys檔案拷貝到第二臺計算機的.ssh目錄下,如:scp authorized_keys [email protected]:~/.ssh/
6.再轉到第二臺機器的.ssh目錄下,會發現剛剛傳輸過來的檔案-authorized_keys,然後執行命令,將第二臺計算機的公鑰也加進來,如:cat id-rsa.pub >> authorized_keys.
7.將第二臺計算機新生成的authorized_keys傳輸第三臺計算機,將第三臺計算機的公鑰-id-rsa.pub新增到從第二臺計算機傳過來的authorized_keys裡面。
8.依次類推,直至叢集中的最後一臺計算機。
9.在叢集的最後一臺計算機執行完新增後,生成的authorized_keys檔案就包含叢集中所有計算機的公鑰,如果以後還有機器加進到叢集中來,可以直接新增到檔案-authorized_keys。最後,將最後生成的authorized_keys複製到叢集中的每一臺計算機的.ssh目錄下,覆蓋掉之前的authorized_keys。
10.完沉第九步後,就可以在叢集中任意一臺計算機上,免密碼ssh登入到其他計算了。
二、torque安裝與配置
(一)Master主伺服器配置
torque連結http://wpfilebase.s3.amazonaws.com/torque/torque-4.1.2.tar.gz(正常)
http://www.adaptivecomputing.com/download/torque/torque-4.2.7.tar.gz(下載出錯)
http://adaptive.wpengine.com/resources/downloads/torque/torque-2.5.12.tar.gz
下載網址:http://www.adaptivecomputing.com/support/download-center/torque-download/
注:以上鍊接在centos上無法下載,但是windows系統可以進去下載!!!
2015/1/24-http://wpfilebase.s3.amazonaws.com/torque/torque-4.2.5.tar.gz(狀態可為free,但作業一直處於Q狀態)
2015/1/25-http://wpfilebase.s3.amazonaws.com/torque/torque-4.2.8.tar.gz(子節點都是down,後來發現,應該是centos7防火牆問題,沒關閉成功)
2015/1/26-http://adaptive.wpengine.com/resources/downloads/torque/torque-2.5.12.tar.gz到了./torque.setup root出錯
2015/1/27-http://adaptive.wpengine.com/resources/downloads/torque/torque-4.1.7.tar.gz(正常,但是子節點不能工作)
2015/1/28-http://adaptive.wpengine.com/resources/downloads/torque/torque-2.3.0.tar.gz make安裝有錯
2015/1/29-http://adaptive.wpengine.com/resources/downloads/torque/torque-4.2.9.tar.gz 親測,安裝配置一切正常
最後使用版本:torque-4.2.9.tra.gz
注:在centos7可以通過http://wpfilebase.s3.amazonaws.com/torque/torque-4.2.9.tar.gz下載,只要更改後面的版本號即可,但是5.0以上的名稱有所變化,尚未找到下載連結,只能通過windows下載下來,然後上傳到伺服器上進行安裝
1、下載torque,版本可選,選擇合適的下載目錄,輸入下列命令
# wget –c http://wpfilebase.s3.amazonaws.com/torque/torque-4.2.9.tar.gz
說明:保證Master伺服器的主機名稱為master,且網路連通
2、在root使用者下,解壓檔案
# tar -zxvf torque-4.2.9.tar.gz
3、cd torque-4.2.1
4、master 配置
# yum install libxml2-devel openssl-devel gcc gcc-c++ boost-devel libtool-y
# ./configure --prefix=/usr/local/torque-4.2.9 \
# --with-scp--with-default-server=master && make && make packages&& make install
#cp contrib/init.d/{pbs_{server,sched,mom},trqauthd} /etc/init.d/
# for i in pbs_server pbs_sched pbs_mom trqauthd; do chkconfig --add $i; chkconfig $ion; done
5、在torque的解壓路徑執行./torque.setup devin時執行下面兩句,設定環境變數
TORQUE=/usr/local/torque-4.2.9
echo "TORQUE=$TORQUE" >>/etc/profile
echo "export PATH=\$PATH:$TORQUE/bin:$TORQUE/sbin" >>/etc/profile
source/etc/profile
./torque.setuproot
6、啟動pbs_server、pbs_sched、pbs_mom、trqauthd幾個服務
# qterm –t quick
# for i in pbs_server pbs_sched pbs_mom trqauthd; do service $i start; done
說明:Torque主要是由三個主要部件組成
pbs_server PBS服務守護程序,負責接收作業提交,位於服務節點上
pbs_sched PBS排程守護程序,負責排程作業,位於服務節點上
pbs_mom PBS MOM守護程序, 負責監控本機並執行作業,位於所有計算節點上
7、排程節點:
建立/var/spool/torque/server_priv/nodes檔案並寫入如下內容
master
注:此處可以設定每個節點的cpu個數
8、計算節點:
建立/var/spool/torque/mom_priv/config檔案並寫入如下內容
$pbsserver master
$logevent 255
9、啟動torque,檢視torque啟動狀態
# ps -e | grep pbs
# for i in pbs_server pbs_sched pbs_mom trqauthd; do service $i restart; done
檢視節點
# qnodes #或者是pbsnodes –a
狀態為free則正常
10、測試:
傳建一個使用者devin,切換到該使用者上,然後提交一個任務,重複提交多次,然後回到root使用者,檢測
#adduser devin
# passwd devin #設定密碼
# su devin
# vi hello.sh
# qsub hello.sh #提交多次
# su root
# qstat –a –n #檢視作業分配和狀態
(二)Slave計算節點配置
1、設定ip,配置master和node的hosts,在/etc/hosts中
192.168.0.139 master
192.168.0.140 node1
2、設定master和node1之間ssh無密碼訪問
或者是
Master:
# ssh-keygen -r rsa
# ssh-copy-id -i ~/.ssh/id_rsa.pub master
# ssh-copy-id -i ~/.ssh/id_rsa.pub node
Node:
# ssh-keygen -r rsa
# ssh-copy-id -i ~/.ssh/id_rsa.pub master
# ssh-copy-id -i ~/.ssh/id_rsa.pub node
3、在master執行下面程式碼,將下面檔案拷貝到node節點中,前提node節點有torque4目錄
# scp torque-package-{mom,clients}-linux-x86_64.sh node1:torque4
# scp contrib/init.d/{pbs_mom,trqauthd} node1:/etc/init.d/
4、node節點安裝拷貝過來的兩個檔案
# ./torque-package-clients-linux-x86_64.sh --install
# ./torque-package-mom-linux-x86_64.sh --install
5、配置環境
建立/var/spool/torque/mom_priv/config檔案並寫入如下內容
$pbsserver master
$logevent 225
6、將計算節點加入到服務節點中
編輯/var/spool/torque/server_priv/nodes檔案並寫入如下內容
node1
7、啟動pbs_mom
#for i in pbs_mom trqauthd; do service $i start; done
叢集搭建完畢:在叢集中新增節點compute-98g-1新增步驟
master:
>> vi/etc/hosts 新增計算節點ip和名稱
10.10.12.10compute-98g-1
>> scp/etc/hosts [email protected] compute-98g-1:/etc/hosts 複製檔案到計算節點覆蓋hosts
>> vi/var/spool/torque/server_priv/nodes 新增計算節點到nodes:compute-98g-1
>> ssh compute-98g-1
compute-98g-1:
>> serviceiptables stop 關閉防火牆
>> servicepbs_mom restart 啟動pbs_mom
>> service trqauthdrestart 啟動trqauthd
>> ssh master
master 執行:
>> qterm –tquick
>> servicepbs_mom restart
>> servicepbs_server restart
>> qnodes 過會兒可以看到節點都是free狀態
2015.01.30-11:16 提問:提交任務能否分配任務?目測應該是不能,還需要配置非root使用者的ssh
2015.01.30-12:00 經測試,如果沒有設定非root使用者的ssh,則報錯
設定非root使用者ssh
說明:compute-98g-1下有devin使用者,在devin目錄下執行ssh-keygen–t rsa
[[email protected] ~]#scp .ssh/authorized_keys [email protected]:/home/devin/authorized_keys
[[email protected] ~]#ssh compute-98-1
[[email protected]~]# cd .ssh
[[email protected]]# cat id_rsa.pub >> authorized_keys
[[email protected] .ssh]# scp authorized_keys [email protected]:/home/devin/authorized_keys
更高階級:Grid Engine
三、配置過程遇到的問題
1.torque 4.0 安裝
(1)是在qnodes檢視節點的時候,報告trqauthd沒執行之類的。
首先把trqauthd從安裝目錄裡面找到,拷貝到etc/init.d下邊
在etc/profile裡面增加一行
/etc/init.d/trqauthd restart
(2)qnodes發現節點的狀態是down,檢視server 日誌發現說不認識hosts裡面的當前主機
後來,在主機後面增加了域名,OK了。 注意關閉防火牆
(3)若此時執行#qnodes找不到節點,
則執行:#qterm –t quick
然後重啟pbs_server服務:#service pbs_server restart
(4) 如果出現:
[email protected]:~/Downloads/torque-4.2.9$ ./torque.setup root
./torque.setup: 1: ./torque.setup: trqauthd: not found
trqauthd failed to start!!! exiting setup 錯誤,那麼請檢查第三步並重新整理source /etc/profile。
(5)設定環境變數並重新整理 (重新整理環境變數需要注意時效性,如果root或sudoer退出終端,在沒有重啟機器的前提下,那麼還是要重新整理下的,不然可能會提示木有trqauthd之類的錯誤)
sudo vi /etc/profile
新增
#Torque
export PATH=/usr/local/torque/bin:/usr/local/torque/sbin:$PATH
重新整理環境變數source /etc/profile
2.節點qnodes後一直是down
一定要記住:關閉防火牆,重啟也需要關閉防火牆
由於centos7關閉防火牆方式變化,需要配置一下,然後關閉
CentOS7的防火牆修改
CentOS 7 預設使用firewalld來管理iptables規則,由於防火牆規則變動的情況很少,動不動態變得無所謂了。但是習慣是魔鬼,跟之前不一樣,總是感覺不太習慣。
systemctl disablefirewalld
yum remove firewalld -y
使用下面的辦法來恢復原來的習慣,同時解決iptables開機啟動的問題。
yum installiptables-services -y
systemctl enable iptables
這樣的話,iptables服務會開機啟動,自動從/etc/sysconfig/iptables檔案匯入規則。
為了讓/etc/init.d/iptablessave 這條命令生效,需要這麼做
cp/usr/libexec/iptables/iptables.init /etc/init.d/iptables
/etc/init.d/iptables save
而chkconfig iptables 命令會自動重定向到sytemctl enableiptables
3.計算節點無法執行任務:unable to runjob,MOM rejected/rc=-1
解決:SSH 配置非root使用者的即可
配置普通使用者的ssh
# su devin
# cd
# ssh-keygen -t dsa
# cd .ssh
# cat id_pub.dsa >>authorized_keys
# chmod 600 authorized_keys
然後ssh相互切換一次,在.ssh目錄下生成kown_hosts檔案就ok了
4.報錯:"Post job file processing error;job 15.masteron host node1/0".
確定非root使用者ssh能夠切換
5.Network is unreachable intcp_connect_sockaddr
qterm –t quick 關閉pbs_server服務
service pbs_momrestart
service pbs_serverrestart
service pbs_schedrestart
service pbs_trqauthdrestart
6.pbs_mom:LOG_ERROR::rm_requestunkonwn command 5
沒有返回到master機器,檢查ssh是否配置好。見問題3!
7.子節點執行qnodes命令,報錯
qnodes:cannot connect toserver master,error=15137,(could not connect totrqauthd)
解決:service trqauthd restart 開啟trqauthd即可.
前提:在/etc/profile檔案新增torque環境變數PATH=”……”
8.pbs_mom pbs_server pbs_schedtrqauthd服務開機啟動
將服務設定為開機啟動:
#在伺服器端,以下這兩個為必要服務
[root@HPC torque-2.4.17]$ chkconfig pbs_server on
[[email protected] torque-2.4.17]$ chkconfig pbs_sched on
#如果也要把伺服器端加入運算資源中,那也要啟動pbs_mom
[[email protected] torque-2.4.17]$chkconfig pbs_mom on
9.linux掛載訪問windows的共享目錄
mount -t cifs -o username=administrator,password=12345 //12.12.64.171/voice /opt/test
四、Maui安裝及配置(可選)
torque預設情況下使用pbs_sched管理,但對於使用者許可權的設定,可以使用Maui輔助
Maui的安裝
下載連結:http://www.adaptivecomputing.com/download/mauischeduler/maui-3.3.1.tar.gz
http://www.adaptivecomputing.com/download/
(一)服務節點上安裝 Maui
[email protected]# tarzxvf maui-3.2.6p20-snap.1182974819.tar.gz
[email protected]# cd maui-3.2.6p20
[email protected]#./configure –prefix=/usr/local/maui-3.2.6p20 -–with-pbs=/usr/local/torque-4.2.9
修改maui-3.3.1/src/moab
[[email protected] moab]$ vi MPBSI.c
< extern int get_svrport(const char *,char *,int);
< extern int openrm(char*,int);
---改成
> extern unsigned int get_svrport(char *,char*,unsignedint);
> extern int openrm(char *,unsignedint);
然後
[email protected]# make
[email protected]# make install
(二)服務節點上配置 Maui
修改 /usr/local/maui/maui.cfg,主要為下面幾項:
SERVERHOSTkd50
# primary admin must be first in list
ADMIN1 root
# Resource Manager Definition
RMCFG[KD50] [email protected]@RMTYPE[0] PBS
啟動maui
/usr/local/maui/sbin/maui
相關命令
# tracejob 125 #追蹤job的執行狀態
# pbs_server –t quick //建立一個queue
# qmgr –c “p s” //顯示佇列資訊
例:# qdel -W 15 211 15秒後刪除作業號為211的作業
更多的關於Torque和Maui的使用,請參考《資源管理軟體 TORQUE 與安裝、設定》一文。
Torque官方網站說明文件:
http://www.clusterresources.com/products/torque/docs/ Maui
官方網站說明文件:
http://www.clusterresources.com/products/maui/docs/mauiadmin.shtml
Maui安裝結束……
===================================================================================
五、Torque+Maui作業排程系統介紹
從使用者角度看,集群系統就好像一臺伺服器或者PC。很多使用者可以同時使用這個系統。但是當太多的使用者使用集群系統時,系統性能會變得很差。資源管理就是管理使用者提交的作業,合理給各個作業分配資源從而確保充分利用集群系統計算能力並儘可能快的得到運算結果。簡單的說,叢集資源由實現如下幾個部分:
資源管理器:為了確保分配給作業合適的資源,叢集資源管理需要維護一個。這個
資料庫記 錄了集群系統中各種資源的屬性和狀態、所有使用者提交的請求和正在執行的作業。策略管理器根據這些資料和指定的排程策略生成優先順序列表。資源管理器根據這優先順序列表排程作業。資源管理器還應該具有資源預留能力。這樣不僅可以保留強大的資源給需要的作業,而且可以預留一定的冗餘資源以應付叢集中的結點失效和突發的計算。
作業排程策略管理器:策略管理器根據資源管理器得到各個結點上的資源狀況和系
統的作業資訊生成一個優先順序列表。這個列表告訴資源管理器何時在哪些結點上執行哪個作業。策略管理器不僅要提供一個複雜的引數集合去定義計算環境和作業,而且要為這個定義提供簡捷靈活的表達方式以允許實現策略驅動的資源排程。
在IBM HPC Platform中我們採用了Torque+Maui的資源管理和作業排程系統;其中Torque作為叢集資源管理器,而Maui則是作為排程策略管理器。
PBS(Portable Batch System)最初由NASA的Ames研究中心開發,主要為了提供一個能滿足異構計算網路需要的軟體包,用於靈活的批處理,特別是滿足高效能運算的需要,如集群系統、超級計算機和大規模並行系統。PBS的主要特點有:程式碼開放,免費獲取;支援批處理、互動式作業和序列、多種並行作業,如MPI、 PVM、HPF、MPL;PBS是功能最為齊全, 歷史最悠久, 支援最廣泛的本地叢集排程器之一。PBS的目前包括openPBS, PBS Pro和Torque三個主要分支. 其中OpenPBS是最早的PBS系統, 目前已經沒有太多後續開發, PBS pro是PBS的商業版本, 功能最為豐富. Torque是Clustering公司接過了OpenPBS, 並給與後續支援的一個開源版本。
應用PBS提交任務則會形成任務佇列,依次執行,有效分配資源,避免資源競爭。否則CPU時間片會輪流分配給各個人的任務,從而影響所有人的正常作業。
Maui叢集排程器 是Moab叢集套件前身,是一個開放原始碼的叢集和超級計算機作業排程器(scheduler)。 PBS是一個用於作業分配的排程器 (scheduler),其主要任務是分配批作業計算任務到現有的計算資源上。 以下版本的PBS系統目前可用: OpenPBS:沒有技術支援的原始開源版本; PBSPro(PBS專業版):由Altair Engineering發行和支援的商業版本; Torque:衍 生的OpenPBS,由Cluster Resources Inc.發展,支援和維護
Maui 是一個高階的作業排程器。它採用積極的排程策略優化資源的利用和減少作業的響應時間。Maui的資源和負載管理允許高階的引數配置:作業優先順序(Job Priority)、排程和分配(Scheduling and Allocation)、公平性和公平共享(Fairness and Fairshare)和預留策略(Reservation Policy)。Maui的機制允許資源和服務的直接傳遞、策略解除(Policy Exemption)和指定特徵的受限訪問。Maui採用高階的資源預留架構可以保證精確控制資源何時、何地、被誰、怎樣使用。Maui的預留架構完全支援非入侵式的元排程。 Maui的設計得益於世界最大的高效能運算中心的經驗。Maui本身也提供測試工具和模擬器用於估計和調節系統性能。
Maui 需要資源管理器與其配合使用。我們可以把Maui想象為PBS中的一個插入部件。
