[클러스터] PBS(Portable Batch System) 설치하기
PBS(Portable Batch System) 설치하기
이 문서는 PBS(Portable Batch System) 을 설치하고 사용하는 방법을 설명한다.
설치에 사용된 운영체제는 RedHat 7.1이고, 이 문서에서 설치된 OpenPBS 버젼은
2.3.16이다. 소스 코드와 RPM 패키지로 설치하는 방법을 설명한다.
문서 업데이트
2002-10-16: 버그 수정, RPM 제거 방법
2002-10-17: PBS 제시작 스크립트
목차
1. 소스로 설치하기
1.1. 마스터 노드에 설치
0) 다운로드 받기
1) 압축풀기
2) 컴파일하기
3) 설치하기
4) 서버 설정
5) 서버 데몬 시작하기
6) 클라이언트 노드 접속 확인
7) 서버 데몬 제시작 시키기
8) PBS 제거하기
1.2. 클라이언트 노드에 설치
1) 압축풀기
2) 컴파일하기
3) 설치하기
4) 클라이언트 설정
5) 클라이언트 데몬 시작하기
2. RPM으로 설치
2.1. 마스터 노드에 설치
1) RPM 패키지 설치
2) 환경 변수의 추가
3) 서버 설정
4) 서버 데몬 시작하기
2.2. 클라이언트 노드에 설치
1) RPM 패키지 설치
2) 클라이언트 설정
3) 클라이언트 데몬 시작하기
4) PBS 제거하기
3. 기타
3.1. MAN 페이지 참조
3.2. PBS 데몬의 종류
3.3. 네트웍 주소와 포트
3.4. 부팅시 데몬을 자동으로 실행하기
3.5. PBS 제시작 스크립트
참고자료
——————————————————————————–
1. 소스로 설치하기 [[목차]]
1.1. 마스터 노드에 설치 [[목차]]
0) 다운로드 받기
http://www.openpbs.org에서 PBS 최신 버젼을 다운로드 받는다.
또는 KISTI Grid Testbed의 ‘소프트웨어 다운로드 디렉토리’에서
(http://gridtest.hpcnet.ne.kr/software/index.php?dir=/OpenPBS)
OpenPBS_2_3_16.tar.gz을 다운 받는다.
1) 압축풀기
$ tar zxvf OpenPBS_2_3_16.tar.gz
$ cd OpenPBS_2_3_16
2) 컴파일하기
–enable-docs 옵션이 없으면 man 문서가 설치되지 않는다.
$ ./configure –prefix=/usr/pbs –enable-docs –disable-mom
$ make
주의>>
OpenPBS 2.3.12등의 이전 버젼에서는 컴파일과정에서
“‘CLK_TCK’ undeclared” 등의 에러가 발생할 수 있으나 헤더화일 include등을
수정하면 컴파일이 가능하다.
3) 설치하기
/usr/pbs에 바이너리가 설치되고,
/usr/spool/PBS에 환경설정 및 로그화일 디렉토리 등이 설치된다.
$ su
# make install
4) 서버 설정
# cd /usr/spool/PBS
서버 이름을 지정하여 준다.
# cat server_name
sdd114.foobar.com
서버에 연결된 노드들을 명시하여 준다.
# vi server_priv/nodes
sdd105
sdd106
sdd107
:wq
참고>> nodes 화일의 형식은 다음과 같다.
node_name[:ts] [property …] [np=NUMBER]
노드 이름 다음에 ts는 timeshared를 의미한다.
np=NUMBER 는 VP(virtual processor)의 개수를 지정한다.
자세한 것은 참고자료를 참고 할 것.
소스로 설치할 경우 설정 화일이 생성되지 않으므로 만들어 준다.
# vi /usr/spool/PBS/pbs_server.conf
#
# Create queues and set their attributes.
# Create and define queue workq
#
create queue workq
set queue workq queue_type = Execution
set queue workq enabled = True
set queue workq started = True
#
# Set server attributes.
#
set server scheduling = True
set server default_queue = workq
set server log_events = 511
set server mail_from = adm
set server query_other_jobs = True
set server scheduler_iteration = 600
:wq
serverdb 화일 생성, 큐 생성 등의 초기화
# /usr/pbs/sbin/pbs_server -t create
# /usr/pbs/bin/qmgr < /usr/spool/PBS/pbs_server.conf
Max open servers: 4
# /usr/pbs/bin/qterm
5) 서버 데몬 시작하기
# /usr/pbs/sbin/pbs_server
# /usr/pbs/sbin/pbs_sched
# ps -ax | grep pbs
15038 ? S 0:00 /usr/pbs/sbin/pbs_server
15040 ? S 0:00 /usr/pbs/sbin/pbs_sched
6) 클라이언트 노드 접속 확인
# /usr/pbs/bin/pbsnodes -a
sdd105
state = free
np = 1
ntype = cluster
sdd106
state = free
np = 1
ntype = cluster
sdd107
state = free
np = 1
ntype = cluster
7) 서버 데몬 제시작 시키기
# killall pbs_server ; killall pbs_sched ; \\
/usr/pbs/sbin/pbs_server ; /usr/pbs/sbin/pbs_sched
8) PBS 제거하기
# killall pbs_sched pbs_server
# killall pbs_mom
# rm -rf /usr/spool/PBS /usr/pbs
1.2. 클라이언트 노드에 설치 [[목차]]
1) 압축풀기
$ tar zxvf OpenPBS_2_3_16.tar.gz
$ cd OpenPBS_2_3_16
2) 컴파일하기
$ ./configure –help
$ ./configure –prefix=/usr/pbs –disable-server –enable-mom \\
–set-default-server=sdd114.foobar.com
참고>> –set-default-server 옵션의 값은 server_name 화일에 저장된다.
$ make
3) 설치하기
$ su
# make install
/usr/pbs에 바이너리가 설치되고,
/usr/spool/PBS에 환경설정 및 로그화일 디렉토리 등이 설치된다.
4) 클라이언트 설정
# cd /usr/spool/PBS
# cat server_name
sdd114.foo.bar.com
# vi mom_priv/config
$clienthost sdd114.foo.bar.com
:wq
5) 클라이언트 데몬 시작하기
# /usr/pbs/sbin/pbs_mom
# ps -ax | grep pbs
17812 ? S 0:00 /usr/pbs/sbin/pbs_mom
2. RPM으로 설치 [[목차]]
www.openpbs.org에서 PBS 최신 버젼을 다운로드 받는다.
또는 KISTI Grid Testbed의 ‘소프트웨어 다운로드 디렉토리’에서
(http://gridtest.hpcnet.ne.kr/software/index.php?dir=/OpenPBS)
openpbs-2.3pl2-1.i386.rpm (마스터 노드용)
openpbs-exechost-2.3pl2-1.i386.rpm (계산 노드용)
위의 두 화일을 다운 받는다.
2.1. 마스터 노드에 설치 [[목차]]
1) RPM 패키지 설치
tcl, tk 패키지등의 의존성 문제가 있으므로 –nodeps 옵션을 주어 설치한다.
# rpm -ivh –nodeps openpbs-2.3pl2-1.i386.rpm
Preparing… ########################################### [100%]
1:openpbs ########################################### [100%]
2) 환경 변수의 추가
# vi ~/.bashrc
…
# PBS
export PATH=/usr/pbs/bin:/usr/pbs/sbin:$PATH
export PBS_SERVER_HOME=/usr/spool/PBS
export PBS_HOME=/usr/spool/PBS
…
:wq
# source ~/.bashrc
3) 서버 설정
# cd /usr/spool/PBS
# vi server_priv/nodes
sdd105
sdd106
sdd107
:wq
# vi server_name
sdd114.foo.bar.com
:wq
4) 서버 데몬 시작하기
# /usr/pbs/sbin/pbs_server
# /usr/pbs/sbin/pbs_sched
# ps -ax | grep pbs
15270 ? S 0:00 /usr/pbs/sbin/pbs_server
15274 ? S 0:00 /usr/pbs/sbin/pbs_sched
2.2. 클라이언트 노드에 설치 [[목차]]
1) RPM 패키지 설치
# rpm -qpl openpbs-exechost-2.3pl2-1.i386.rpm
/etc/rc.d/init.d/pbs
/usr/doc/openpbs-exechost-2.3pl2
…
/usr/spool/PBS
/usr/spool/PBS/aux
/usr/spool/PBS/checkpoint
/usr/spool/PBS/mom_logs
/usr/spool/PBS/mom_priv
/usr/spool/PBS/mom_priv/jobs
/usr/spool/PBS/pbs_environment
/usr/spool/PBS/server_name
/usr/spool/PBS/spool
/usr/spool/PBS/undelivered
tcl, tk 패키지등의 의존성 문제가 있으므로 –nodeps 옵션을 주어 설치한다.
# rpm -ivh –nodeps openpbs-exechost-2.3pl2-1.i386.rpm
Preparing… ########################################### [100%]
1:openpbs-exechost ########################################### [100%]
2) 클라이언트 설정
# cd /usr/spool/PBS
# vi server_name
sdd114.foo.bar.com
:wq
# vi mom_priv/config
$clienthost sdd114.foo.bar.com
:wq
3) 클라이언트 데몬 시작하기
# /usr/pbs/sbin/pbs_mom
# ps -ax | grep pbs
4178 ? S 0:00 /usr/pbs/sbin/pbs_mom
4) PBS 제거하기
RPM으로 PBS를 설치하였을 경우 PBS를 제거하려면 실행중인 프로세스를 죽이고,
패키지를 제거하면 된다.
# killall pbs_server ; killall pbs_sched ; killall pbs_mom
# ps -ax | grep pbs
# rpm -qa | grep pbs
openpbs-2.3pl2-1
openpbs-exechost-2.3pl2-1
# rpm -e openpbs
…
error: cannot remove /usr/spool/PBS – directory not empty
# rpm -e openpbs-exechost
…
error: cannot remove /usr/spool/PBS – directory not empty
# rpm -qa | grep pbs
# rm -rf /usr/spool/PBS
3. 기타 [[목차]]
3.1. MAN 페이지 참조 [[목차]]
–enable-docs 옵션을 주어 컴파일 하면 /usr/pbs/man 에 메뉴얼 페이지가 설치된다.
이것을 MANPATH에 추가 하여 두려면 다음 행을 .bashrc 에 추가해 두자.
# export MANPATH=`man –path`:/usr/pbs/man
3.2. PBS 데몬의 종류 [[목차]]
Job Server (pbs_server)
사용자로 부터 배치 작업을 받거나 생성한는 역할을 한다. 작업을 수정하거나,
시스템 정지로 인한 작업의 손실을 방지하는 역할도 한다.
Job Executor (pbs_mom)
실제로 작업을 실행시키는 역할을 한다. 모든 실행중인 작업의 mother 라는 뜻으로
mom 이라고 부른다. 작업의 출력을 서버로 전달하는 역할을 한다.
Job Scheduler (pbs_sched)
어떤 작업을 어디에서 언제 실행시킬지를 결정하는 역할을 한다. Mom 들로 부터
시스템의 자원상태를 모니터링 하기 위한 정보를 수집하며, Server로 부터 수행해야
될 작업에 대한 정보를 수집한다.
3.3. 네트웍 주소와 포트 [[목차]]
PBS의 데몬들과 명령어들은 사용할 포트 번호를 알아내기 위해서 /etc/services를
검색한다. 포트 번호는 모든 서버와 클라이언트에 동일하게 지정되어 있어야 한다.
만약 /etc/services에 포트 번호를 지정해 주지 않았을 경우에는 다음의 포트들이
사용된다.
pbs 15001/tcp # pbs server (pbs_server)
pbs_mom 15002/tcp # mom to/from server
pbs_resmom 15003/tcp # mom resource management requests
pbs_resmom 15003/udp # mom resource management requests
pbs_sched 15004/tcp # scheduler
참고>>pbs_resmom 은 이전 버전의 PBS에서 사용되던 포트번호이다. 지금은
pbs_mom 데몬으로 그 기능이 합쳐졌다.
3.4. 부팅시 데몬을 자동으로 실행하기 [[목차]]
데몬을 자동으로 실행하려면 /etc/rc.d/rc.local 화일에 데몬 실행 명령을 추가해 준다.
마스터 노드
# vi /etc/rc.d/rc.local
…
# PBS daemons (master node)
/usr/pbs/sbin/pbs_server
/usr/pbs/sbin/pbs_sched
:wq
클라이언트 노드
# vi /etc/rc.d/rc.local
# PBS daemons (client nodes)
/usr/pbs/sbin/pbs_mom
:wq
3.5. PBS 제시작 스크립트 [[목차]]
전체 클러스터의 PBS 시스템을 중지시키고, 설정화일을 복사한 후 다시 제시작
시키는 스크립트이다. rsh과 rcp가 동작하여야 한다.
$ cat pbsrestart.sh
#!/bin/sh
# stop server
killall pbs_server
killall pbs_sched
ps -ax | grep pbs_
sleep 1
# stop moms
rsh sdd105 “killall pbs_mom”
rsh sdd106 “killall pbs_mom”
rsh sdd107 “killall pbs_mom”
rsh sdd105 “ps -ax | grep pbs_”
rsh sdd106 “ps -ax | grep pbs_”
rsh sdd107 “ps -ax | grep pbs_”
sleep 1
# copy mom.conf to client nodes
# mom.conf should be under the current directory
rcp mom.conf sdd105:/usr/spool/PBS/mom_priv/config
rcp mom.conf sdd106:/usr/spool/PBS/mom_priv/config
rcp mom.conf sdd107:/usr/spool/PBS/mom_priv/config
sleep 1
# start moms
rsh sdd105 /usr/pbs/sbin/pbs_mom
rsh sdd106 /usr/pbs/sbin/pbs_mom
rsh sdd107 /usr/pbs/sbin/pbs_mom
rsh sdd105 “ps -ax | grep pbs_”
rsh sdd106 “ps -ax | grep pbs_”
rsh sdd107 “ps -ax | grep pbs_”
sleep 1
# start server
/usr/pbs/sbin/pbs_server
/usr/pbs/sbin/pbs_sched
ps -ax | grep pbs_
sleep 1
# set server attributes
# e.g.
# qmgr -c “s q workq max_running=10”
# show nodes status
pbsnodes -a | more
$
참고자료 [[목차]]
1. Portable Batch System Administrator Guide (Release 2.3)
http://www.openpbs.org/docs.html
-EOF- PBS 설치하기 [[TOP]]