July 2017  |  01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

スポンサーサイト

一定期間更新がないため広告を表示しています

CentOS 6でバッチシステムといえばTORQUE(OpenPBS)

バッチシステムとしてOpenPBSから派生したTORQUEがEPEL(Extra Packages for Enterprise Linux)ディストリビューションに用意されている。一般的に、OSにEPELリポジトリを追加登録し、必要なパッケージをインストールすると利用可能になるので便利である。
現在、EPELに用意されているTORQUEのバージョンは、4.2.10 で、インストールすれば、TORQUEの設定から始めることができる。
http://docs.adaptivecomputing.com/torque/4-2-10/Content/topics/1-installConfig/initializeConfigOnServer.htm

 

改訂履歴

  • 2016-11-24 (追加) ホスト名登録、munge実行手順、ノードの追加等
  • 2016-12-10 (訂正) タイトル CentOS 7 -> CentOS 6、ノードダウンでジョブが走らなくなっていた

 
 

ここでは、バッチシステムのバッチキューサーバと計算ノードを同一のホスト上にインストールしてみる。
 

  • TORQUEのインストール

EPELリポジトリのパッケージをインストールする。CentOS 7では、標準ディストリビューションにEPELリポジトリのパッケージが用意されているので、次のコマンドでインストールできる。

# yum install epel-release


TORQUEのサーバ、スケジューラ、ノードサーバ(MOM: Machine Oriented Mini-server)、クライアントプログラムなどをインストールする。torque をインストールすると、torque-libs, munge, munge-libs が依存パッケージとしてインストールされる(その他、ベースディストリビューションから tcl hwloc-libs)MUNGE (MUNGE Uid 'N' Gid Emporium) は、HPCクラスタのために開発された認証サービスで、EPELTORQUEでも使っている。

# yum install torque torque-server torque-scheduler torque-mom torque-client

インストールが終わると、/etc/service ファイルにTORQUEが使用するサービスポートが追加される(サービス名は、pbs*)。

pbs        15001/tcp
pbs        15001/udp
pbs_mon        15002/tcp
pbs_mon        15002/udp
pbs_resmom        15003/tcp
pbs_resmom        15003/udp
pbs_sched        15004/tcp
pbs_sched        15004/udp

また、TORQUEのサービス実行領域が、/var/lib/torque/ ディレクトリ下に作成される。
TORQUEの主なサービスであるサーバ、スケジューラ、ノードサーバの構成用のディレクトリとログディレクトリへのシンボリックリンク、および、共通の作業エリアが含まれる。実際の構成ファイルは、/etc/torque/ ディレクトリ下に作成される。
 

  • TORQUEの設定
    1. サーバ名の設定

まず、サーバのホスト名を引数なしのhostname コマンドで確認する。
ホスト名が/etc/hosts ファイルに登録されていることを確認する(DNSを使う場合は解決できることを確認する)か、なければ設定を追加する。

# grep dura847 /etc/hosts

127.0.0.1       dura847

※ホスト名を変更する場合は、/etc/sysconfig/network に HOSTNAME=dura847 の設定をし、ホスト名を変更する。

# hostname dura847

サーバ名を /etc/torque/server_name (/var/lib/torque/server_name) に設定する。

# echo "dura847" >/var/lib/torque/server_name

 

  • 認証サービスの設定

管理ツールからサーバの設定を行うためにMUNGEサービスの設定を行う。まず、キーを生成する。

# dd if=/dev/random bs=1 count=1024 >/etc/munge/munge.key

※マシンによって、このキーの生成には数十分かかる。

MUNGEキーのオーナーとパーミッションの設定を行い、MUNGEサービス(munged)を起動し、

# chown munge /etc/munge/munge.key
# chmod 400 /etc/munge/munge.key
# /etc/init.d/munge start
Starting MUNGE: munged                                     [  OK  ]

生成したキーのチェックを行う。

# munge -n | unmunge

STATUS:           Success (0)
ENCODE_HOST:      localhost (127.0.0.1)
ENCODE_TIME:      2016-11-24 22:01:24 (1479992484)
DECODE_TIME:      2016-11-24 22:01:24 (1479992484)
TTL:              300
CIPHER:           aes128 (4)
MAC:              sha1 (3)
ZIP:              none (0)
UID:              root (0)
GID:              root (0)
LENGTH:           0

テストを行う。

# remunge

2016-11-24 22:01:39 Spawning 1 thread for encoding
2016-11-24 22:01:39 Processing credentials for 1 second
2016-11-24 22:01:40 Processed 5776 credentials in 1.000s (5773 creds/sec)

問題がなければ、自動起動の設定をする。

# chkconfig --add /etc/init.d/munge
# chkconfig /etc/init.d/munge on
# chkconfig munge --list

munge           0:off   1:off   2:on    3:on    4:on    5:on    6:off

  • バッチサーバの初期化とキューの設定

バッチサーバ(pbs_server)DBの初期化を行なう。

# pbs_server -t create
 
You have selected to start pbs_server in create mode.
If the server database exists it will be overwritten.
do you wish to continue y/(n)?y

管理コマンド(qmgr)でアクセスできることを確認する。

# qmgr
Max open servers: 9

Qmgr: q

trqauthd を起動する。

 

管理コマンドからバッチキューの設定を行う。

# qmgr
Max open servers: 9

Qmgr: print server
#
# Set server attributes.
#
set server acl_hosts = dura847
set server log_events = 511
set server mail_from = adm
set server scheduler_iteration = 600
set server node_check_rate = 150
set server tcp_timeout = 300
set server job_stat_rate = 45
set server poll_jobs = True
set server mom_job_sync = True
set server moab_array_compatible = True
set server nppcu = 1

Qmgr: creae queue batch
Qmgr: set queue batch queue_type = Execution
Qmgr: set queue batch resources_default.nodes = 1
Qmgr: set queue batch resources_default.walltime = 01:00:00
Qmgr: set queue batch enabled = True
Qmgr: set queue batch started = True
Qmgr:
Qmgr: set server scheduling = True
Qmgr: set server acl_hosts = dura847
Qmgr: set server default_queue = batch
Qmgr: set server log_events = 511
Qmgr: set server mail_from = adm
Qmgr: set server scheduler_iteration = 600
Qmgr: set server node_check_rate = 150
Qmgr: set server tcp_timeout = 6
Qmgr: set server allow_node_submit = True
Qmgr: set server next_job_number = 6
Qmgr: quit

設定後の、キューの設定状況を確認するには管理コマンドの “print server”を実行する(“p s”で省略することも可能)。コマンドラインで –c オプションに指定することができる。

$ qmgr -c "p s"


初期化モードで実行しているpbs_server を一旦停止する。

# killall pbs_server

  • TORQUEの実行

TORQUEの各サーバをOSのサービスとして登録する(trqauthd も必要)。

# chkconfig --add /etc/init.d/pbs_server
# chkconfig --add /etc/init.d/pbs_sched
# chkconfig --add /etc/init.d/pbs_mom
# chkconfig --add /etc/init.d/trqauthd

TORQUEの各サービスを起動する。

# service pbs_mom start
# service pbs_sched start
# service pbs_server start
# service trqauthd start

各サービスを自動起動設定にする。

# chkconfig pbs_server on
# chkconfig pbs_sched on
# chkconfig pbs_mom on
# chkconfig rqauthd on

ノードを追加する。

# qmgr -c "create node dura847"

追加したノードが利用可能になったことを確認する。

# pbsnodes -a
dura847
     state = down,offline
     np = 1
     ntype = cluster
     mom_service_port = 15002
     mom_manager_port = 15003

 

よく見ると、ノードはダウンしたまま。

※以前、ジョブを依頼して実行できてたはずが、アップデートや再構成をしているうちに計算ノードが認識できず、ジョブが走らなくなっていた。

 

参照サイト:

https://github.com/dun/munge/wiki/Installation-Guide
http://www.cr.ie.u-ryukyu.ac.jp/~game/pukiwiki/index.php?Torque
https://wiki.archlinux.org/index.php/TORQUE
https://code.google.com/p/pdsh/
https://en.wikipedia.org/wiki/DRMAA#DRMAA_applications

スポンサーサイト

comments

   

trackback

pagetop