Docker容器安裝多節(jié)點PbsPro

[TOC]

Docker容器安裝-多節(jié)點PbsPro

名稱 版本 下載
系統(tǒng) CentOS-7-x86_64-DVD-1708 點我
鏡像 pbspro/pbspro docker pull pbspro/pbspro

1 簡介:

1.1 Docker簡介

Docker 是一個開源的應(yīng)用容器引擎虐拓,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中瀑凝,然后發(fā)布到任何流行的 Linux 機器上冰蘑,也可以實現(xiàn)虛擬化贿衍。容器是完全使用沙箱機制店乐,相互之間不會有任何接口。

一個完整的Docker有以下幾個部分組成:

1.dockerClient客戶端

2.Docker Daemon守護進程

3.Docker Image鏡像

4.DockerContainer容器

Docker總架構(gòu)

docker架構(gòu)

詳情:Docker源碼分析(一):Docker架構(gòu)

1.2 PBS簡介

PBS(Portable Batch System)最初由NASA的Ames研究中心開發(fā),主要為了提供一個能滿足異構(gòu)計算網(wǎng)絡(luò)需要的軟件包,用于靈活的批處理证舟,特別是滿足高性能計算的需要,如集群系統(tǒng)窗骑、超級計算機和大規(guī)模并行系統(tǒng)女责。

PBS是功能最為齊全, 歷史最悠久, 支持最廣泛的本地集群調(diào)度器之一。PBS的主要特點有:代碼開放创译,免費獲鹊种;支持批處理、交互式作業(yè)和串行刷喜、多種并行作業(yè)残制,如MPI、PVM吱肌、HPF、MPL仰禽。

PBS的目前包括:openPBS, PBS Pro和Torque三個主要分支.

OpenPBS:是最早的PBS系統(tǒng), 目前已經(jīng)沒有太多后續(xù)開發(fā)

PBS pro:是PBS的商業(yè)版本, 功能最為豐富

Torque:是Clustering公司接過了OpenPBS, 并給與后續(xù)支持的一個開源版本

應(yīng)用PBS提交任務(wù)則會形成任務(wù)隊列氮墨,依次執(zhí)行,有效分配資源吐葵,避免資源競爭规揪。否則CPU時間片會輪流分配給各個人的任務(wù),從而影響所有人的正常作業(yè)温峭。

torque主要由三個主要部件組成:

PBS服務(wù)守護進程: pbs_server 負責(zé)接收作業(yè)提交猛铅,位于服務(wù)節(jié)點

PBS調(diào)度守護進程: pbs_sched 負責(zé)調(diào)度作業(yè),位于服務(wù)節(jié)點

PBS MOM守護進程: pbs_mom 負責(zé)監(jiān)控本機并執(zhí)行作業(yè)凤藏,位于所有計算節(jié)點

2 安裝Docker

網(wǎng)上的安裝資料很多:centos7 安裝docker

#卸載老版本的 docker 及其相關(guān)依賴
$sudo yum remove docker docker-common container-selinux docker-selinux docker-engine
#安裝 yum-utils奸忽,它提供了 yum-config-manager,可用來管理yum源
$sudo yum install -y yum-utils
#添加yum源
$sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#更新yum索引
$sudo yum makecache fast
#安裝 docker-ce
$sudo yum install docker-ce
#啟動 docker
$sudo systemctl start docker
#驗證是否安裝成功
$sudo docker info
#通過修改daemon配置文件/etc/docker/daemon.json來使用加速器
$vi /etc/docker/daemon.json
#添加
{
  "registry-mirrors": ["https://w5z91a3d.mirror.aliyuncs.com"]
}
#開放管理端口映射
$vi /lib/systemd/system/docker.service
#修改ExecStart=/usr/bin/dockerd為以下內(nèi)容 
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock -H tcp://0.0.0.0:7654
#將管理地址寫入 /etc/profile
$echo 'export DOCKER_HOST=tcp://0.0.0.0:2375' >> /etc/profile  
$source /etc/profile  
$systemctl daemon-reload && service docker restart  
#測試docker
$sudo docker run hello-world 
#若成功揖庄,顯示:
Hello from Docker!
This message shows that your installation appears to be working correctly.
#安裝OK!

Docker 安裝完成后栗菜,下載pbspro/pbspro鏡像,此鏡像中已經(jīng)安裝了pbspro

$Docker pull pbspro/pbspro
下載pbspro/pbspro鏡像

下一步蹄梢,運行此鏡像創(chuàng)建三個容器建立SSH互信疙筹。

3 建立SSH互信

參考:使用ssh在Docker容器間建立互信

使用pbspro/pbspro鏡像創(chuàng)建三個容器,分別指定鏡像名稱禁炒、hostname而咆、自定義網(wǎng)絡(luò)、IP并且添加互信的hostname到/etc/hosts中幕袱,如下表:

容器名稱 容器hostname ip
pbs1 pbs1 172.18.0.3
pbs2 pbs2 172.18.0.4
pbs3 pbs3 172.18.0.5

鏡像創(chuàng)建三個容器暴备,pbs1作為主節(jié)點進行管理,pbs2和pbs3作為計算節(jié)點進行計算

$docker run -tid --name pbs1 -h pbs1 --add-host pbs1:172.18.0.3 --add-host pbs2:172.18.0.4 --add-host pbs3:172.18.0.5 --net=mynetwork --ip=172.18.0.3 pbspro/pbspro bash

$docker run -tid --name pbs2 -h pbs2 --add-host pbs1:172.18.0.3 --add-host pbs2:172.18.0.4 --add-host pbs3:172.18.0.5 --net=mynetwork --ip=172.18.0.4 pbspro/pbspro bash

$docker run -tid --name pbs3 -h pbs3 --add-host pbs1:172.18.0.3 --add-host pbs2:172.18.0.4 --add-host pbs3:172.18.0.5 --net=mynetwork --ip=172.18.0.5 pbspro/pbspro bash

查看剛剛創(chuàng)建的三個制定鏡像们豌,如下圖所示:

創(chuàng)建的三個容器

分別進入這三個容器馍驯,參考使用ssh在容器間建立互信.md進行建立ssh互信

容器間建立ssh互信

建立完畢后,在分別進行配置PbsPro

4 安裝配置PbsPro

因為下載的這個鏡像已經(jīng)安裝有了Pbspro玛痊,所以只需要配置汰瘫,如果想制作自己的PbsPro,請參考:使用RPM包安裝PBS Pro

4.1 配置管理節(jié)點

登錄管理節(jié)點pbs1擂煞,然后以root用戶運行混弥,修改/etc/pbs.conf

$vi /etc/pbs.conf
#修改PBS_SERVER和PBS_START_MOM
PBS_SERVER=pbs1
PBS_START_MOM=0

備注:如果是單機安裝pbspro,要將PBS_START_MOM改為1

修改/var/spool/pbs/mom_priv/config

$vi /var/spool/pbs/mom_priv/config
#修改clienthost為pbs1
clienthost pbs1
配置管理節(jié)點

4.2 配置計算節(jié)點

分別登錄計算節(jié)點pbs2和pbs3,然后以root用戶運行蝗拿,修改/etc/pbs.conf

$vi /etc/pbs.conf
#修改PBS_SERVER和PBS_START_MOM
PBS_SERVER=pbs1
PBS_START_MOM=1

修改/var/spool/pbs/mom_priv/config

$vi /var/spool/pbs/mom_priv/config
#修改clienthost為pbs1
clienthost pbs1
配置計算節(jié)點

4.3 啟動PBS添加計算節(jié)點

分別在pbs1和pbs2晾捏、pbs3節(jié)點上運行以下命令啟動pbs,第一次啟動會創(chuàng)建數(shù)據(jù)庫

$/etc/init.d/pbs start 
啟動PBS

備注:

$/etc/init.d/pbs start    #啟動pbs
$/etc/init.d/pbs stop     #停止pbs
$/etc/init.d/pbs restart  #重啟pbs
$/etc/init.d/pbs status   #查看pbs狀態(tài)

在管理節(jié)點添加計算機節(jié)點pbs2哀托、pbs3

$. /etc/profile.d/pbs.sh
$qmgr -c "create node pb2"
$qmgr -c "create node pb3"

查看添加的計算節(jié)點惦辛,節(jié)點的狀態(tài)顯示為free即就是計算節(jié)點添加成功

$pbsnodes -a
計算節(jié)點信息.png

4.3 測試

在管理節(jié)點pbs1創(chuàng)建用戶,進行提交作業(yè)仓手,狀態(tài)顯示R為任務(wù)正在運行胖齐,同時也需要在其他計算節(jié)點也添加相同的用戶,使其UID個GID一樣

$useradd user1
$su user1
$cd
$qsub -- /bin/sleep 10
$qstat -a
#使用tracejob JobID查看作業(yè)的進度
$tracejob 13.pbs1
提交作業(yè)
查看作業(yè)13.pbs1

備注:**pbs任務(wù)提交腳本及查看任務(wù)狀態(tài)

#B  只用于任務(wù)向量嗽冒,表示任務(wù)向量已經(jīng)開始執(zhí)行 
#E  任務(wù)在運行后退出 
#H  任務(wù)被服務(wù)器或用戶或者管理員阻塞 
#Q  任務(wù)正在排隊中呀伙,等待被調(diào)度運行 
#R  任務(wù)正在運行 
#S  任務(wù)被服務(wù)器掛起,由于一個更高優(yōu)先級的任務(wù)需要當(dāng)前任務(wù)的資源 
#T  任務(wù)被轉(zhuǎn)移到其它執(zhí)行節(jié)點了 
#U  由于服務(wù)器繁忙添坊,任務(wù)被掛起 
#W  任務(wù)在等待它所請求的執(zhí)行時間的到來(qsub -a) 
#X  只用于子任務(wù)剿另,表示子任務(wù)完成

5 PBS命令

5.1 qsub 命令

qsub 命令:用于提交作業(yè)腳本

#命令格式:
$qsub -a date_time [-C directive_prefix]
      -e path -j join -l resource_list
      -M user_list -o path -q destination
      -S path_list-v variable_list
      -W additional_attributes

參數(shù)說明:因為所采用的選項一般放在pbs 腳本中提交,所以具體見PBS 腳本選項贬蛙。

例:# qsub aaa.pbs 提交某作業(yè)雨女,系統(tǒng)將產(chǎn)生一個作業(yè)號

5.2 qstat 命令

qstat 命令:用于查詢作業(yè)狀態(tài)信息

#命令格式:
$qatat -f-i-s -Q-B

參數(shù)說明:

參數(shù) 作用
-f jobid 列出指定作業(yè)的信息
-a 列出系統(tǒng)所有作業(yè)
-i 列出不在運行的作業(yè)
-n 列出分配給此作業(yè)的結(jié)點
-s 列出隊列管理員與scheduler 所提供的建議
-R 列出磁盤預(yù)留信息
-Q 操作符是destination id,指明請求的是隊列狀態(tài)
-q 列出隊列狀態(tài)阳准,并以alternative 形式顯示
-au userid 列出指定用戶的所有作業(yè)
-B 列出PBS Server 信息
-r 列出所有正在運行的作業(yè)
-Qf queue 列出指定隊列的信息
-u 若操作符為作業(yè)號戚篙,則列出其狀態(tài)。

例:# qstat -f 211 查詢作業(yè)號為211 的作業(yè)的具體信息溺职。

5.3 qdel 命令

qdel 命令:用于刪除已提交的作業(yè)

#命令格式:
$qdel [-W 間隔時間] 作業(yè)號

例:# qdel -W 15 211 #15秒后刪除作業(yè)號為211 的作業(yè)

5.4 qmgr 命令—用于隊列管理

qmgr 命令—用于隊列管理

qmgr -c "create queue batch queue_type=execution"

qmgr -c "set queue batch started=true"

qmgr -c "set queue batch enabled=true"

qmgr -c "set queue batch resources_default.nodes=1"

qmgr -c "set queue batch resources_default.walltime=3600"

qmgr -c "set server default_queue=batch"

5.5 基本腳本寫法和選項

當(dāng)多個用戶使用同一個計算資源時岔擂,每個用戶用PBS腳本提交自己的任務(wù),由PBS對這些任務(wù)進行管理和資源的分配浪耘。下面是一個簡單的PBS腳本:

#!/bin/bash
#PBS -l nodes=20
#PBS -N snaphu
#PBS -j oe
#PBS -l walltime=24:00:00
#PBS -l cput=1:00:00
#PBS -q dque
$cd $PBS_O_WORKDIR
$cat PBS_NODEFILE PBS_NODEFILE> NODEFILE
$mpirun -np ./mpitest

將這個腳本保存成submit然后qsub submit就將這個mpitest的任務(wù)提交給了系統(tǒng)乱灵。腳本中#PBS為腳本選項,用于設(shè)置一些參數(shù)七冲。

#PBS -l 表示資源列表痛倚,用于設(shè)定特定任務(wù)所需的一些參數(shù)。這里的nodes表示并行環(huán)境下可以使用的節(jié)點數(shù)澜躺,而walltime表示任務(wù)最大時限蝉稳,而cput表示cpu時間的最大時限,運行時間和cpu使用時間超過對應(yīng)的時限掘鄙,任務(wù)就會以超時退出耘戚。這三個參數(shù)不是PBS腳本參數(shù),而是并行環(huán)境所需的參數(shù)操漠。

#PBS -N 表示任務(wù)名稱收津。

#PBS -j 表示系統(tǒng)輸出,如果是oe,則標準錯誤輸出(stderr)和標準輸出(stdout)合并為stdout撞秋,如果是eo长捧,則合并為stderr,如果沒有設(shè)定或設(shè)定為n吻贿,則stderr和stdout分開串结。

#PBS -q 表示當(dāng)前任務(wù)選用的隊列。在并行環(huán)境下舅列,一個系統(tǒng)中往往有多個隊列肌割,任務(wù)提交后,將在所選的隊列中排除等候剧蹂。系統(tǒng)中有哪些隊列可以用qstat -q查看声功。

PBS腳本文件由腳本選項和運行腳本兩部分組成烦却。

  1. PBS作業(yè)腳本選項 (若無-C選項宠叼,則每項前面加‘#PBS’)

  2. 運行腳本同LINUX下一般的運行腳本文件格式如下:

? mpirun –np 進程數(shù) ./可執(zhí)行程序名

6 可能出現(xiàn)的問題

1 防火墻

出于簡單,可以關(guān)閉防火墻

$systemctl stop firewalld.service #停止firewall
$systemctl disable firewalld.service #禁止firewall開機啟動

2 下載源

更換 CentOS 7 的下載源為阿里云

$yum install -y wget
#備份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
#下載新的CentOS-Base.repo 到/etc/yum.repos.d/
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#清除YUM緩存
yum clean all
#重建數(shù)據(jù)庫
rpm --rebuilddb
#生成緩存
$yum makecache

3 IPv4 forwarding is disabled

若出現(xiàn)WARNING IPv4 forwarding is disabled. Networking will not work

#解決辦法:
$vi /usr/lib/sysctl.d/00-system.conf
#添加如下代碼:
net.ipv4.ip_forward=1
#重啟network服務(wù)
$systemctl restart network
#查看是否修改成功
$sysctl net.ipv4.ip_forward
#如果返回為net.ipv4.ip_forward = 1則表示成功了

4 yum 安裝時錯誤 Errno 14 Couldn't resolve host

修改一下 /etc/resolv.conf其爵,添加一個nameserver 8.8.8.8完成

$vi  /etc/resolv.conf
nameserver 8.8.8.8

7 總結(jié)

待續(xù)冒冬。。摩渺。

參考資料

1 :Using Docker to Instantiate PBS

2:使用RPM包安裝PBS Pro

3:How to install PBS Pro using the configure script

4:如何在Rocks HPC集群里安裝PBS Pro開源版

5:PBS服務(wù)開啟操作流程

6:使用ssh在Docker容器間建立互信

7:Docker容器安裝單節(jié)點PbsPro

8:Centos7安裝-多節(jié)點PbsPro


? 2017/11/16-Boy

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末简烤,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子摇幻,更是在濱河造成了極大的恐慌横侦,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绰姻,死亡現(xiàn)場離奇詭異枉侧,居然都是意外死亡,警方通過查閱死者的電腦和手機狂芋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門榨馁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人帜矾,你說我怎么就攤上這事翼虫。” “怎么了屡萤?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵珍剑,是天一觀的道長。 經(jīng)常有香客問我死陆,道長次慢,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮迫像,結(jié)果婚禮上劈愚,老公的妹妹穿的比我還像新娘。我一直安慰自己闻妓,他們只是感情好菌羽,可當(dāng)我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著由缆,像睡著了一般注祖。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上均唉,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天是晨,我揣著相機與錄音,去河邊找鬼舔箭。 笑死罩缴,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的层扶。 我是一名探鬼主播箫章,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼镜会!你這毒婦竟也來了檬寂?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤戳表,失蹤者是張志新(化名)和其女友劉穎桶至,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體匾旭,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡镣屹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了季率。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片野瘦。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖飒泻,靈堂內(nèi)的尸體忽然破棺而出鞭光,到底是詐尸還是另有隱情,我是刑警寧澤泞遗,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布惰许,位于F島的核電站,受9級特大地震影響史辙,放射性物質(zhì)發(fā)生泄漏汹买。R本人自食惡果不足惜佩伤,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望晦毙。 院中可真熱鬧生巡,春花似錦、人聲如沸见妒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽须揣。三九已至盐股,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間耻卡,已是汗流浹背疯汁。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留卵酪,地道東北人幌蚊。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像凛澎,于是被迫代替她去往敵國和親霹肝。 傳聞我的和親對象是個殘疾皇子估蹄,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容