1CD-SGE 管理ホストの構築

 
 
 

Linux 環境の構築

開発用マシンスペック

 
  • VMWare 仮想マシン
    • HDD: IDE接続
    • メモリ: 256MB
 
 

FC6 のインストール

 
  • とりあえず 「エディタ」と「ベース」 "だけ" チェックしてインストール。
  • ネットワークは DHCP 接続に。
 
 

設定を始める前に

 
  • 一度、「シャットダウン」→「起動」をやっておく。
    • 起動時にネットワーク設定ツール(?)が起動したら EXIT 。
    • 次に起動するときは出ないハズ。
 
 

iptables の停止 〜 SELinux の無効化 〜 SSH の設定 〜 デフォルト文字コード

 
  • とりあえず iptables を停止。自動起動も無効化。
# /etc/init.d/iptables stop
# chkconfig iptables off
# chkconfig --list iptables
iptables        0:off   1:off   2:off   3:off   4:off   5:off   6:off
  • SELinux の無効化
    • /etc/sysconfig/selinux の SELINUX の値を次のように変更する。
    • ネットワークを再起動
SELINUX=disabled
/etc/init.d/network restart
  • SSH の設定を一応いじっておく。
    • /etc/ssh/sshd_config
Port 22
Protocol 2,1
/etc/init.d/sshd restart
  • デフォルト文字コードを変更。言語も英語に。
    • /etc/sysconfig/i18n を編集。
LANG="en_US.eucJP"
SYSFONT="none"
  • SELinux の無効化にはサーバの再起動が必要な模様。
    • 有無を言わさずに再起動。
      • reboot を使うと起動時の DHCP 接続に失敗する(?)ので halt。
# halt
 
 

必要となるパッケージのインストール

 
  • あとあと必要となるパッケージ群をまとめてインストールしておく。
    • SGE
      • /usr/bin/strings 「binutils」
      • コンパイル環境 「gcc」「gcc-c++」「compat-gcc-34-g77」
      • Webサーバ 「httpd」「php」
      • ファイル共有 「samba」
    • Make One Linux
      • 「squashfs-tools」
      • 「patch」
      • 「mkisofs」
 
# yum -y install  binutils  gcc  gcc-c++  compat-gcc-34-g77  httpd  php samba samba-client
# yum -y install  squashfs-tools  patch  mkisofs
 
 

SGE 環境の構築

SGE 環境の準備

 
  • SGE管理ユーザ sgeadmin の作成
# useradd -u 600 sgeadmin
# passwd sgeadmin
  • SGE_ROOT ディレクトリの作成
# mkdir /home/sgeadmin/sge
# chown sgeadmin:sgeadmin /home/sgeadmin/sge
  • /etc/services を編集
sge_qmaster	536/tcp		# SGE
sge_execd		537/tcp		# SGE
  • /etc/hosts.deny の編集
ALL:ALL
  • /etc/hosts.allow の編集
ALL:ALL
 
 

NFS サーバの設定

 
  • /etc/exports を編集。
    「(」 の直前にスペースを空けないこと
/home/sgeadmin/sge *(rw,no_root_squash,sync)
/tmp *(rw,no_root_squash,sync)
  • /etc/exports の設定を有効にする。
# exportfs -a
  • NFS を起動、および自動起動の設定
# /etc/init.d/nfs start
# chkconfig nfs on
 
 

DNS キャッシュサーバ(DNSmasq)のインストールと設定

 
# wget http://okkun-lab.rd.fukuoka-u.ac.jp/wiki/up/SGE/DNSmasq/dnsmasq-2.33-1.rh9.rf.i386.rpm
  • インストール
# rpm -ihv dnsmasq-2.33-1.rh9.rf.i386.rpm
  • /etc/hosts を編集
    • SGE をインストールするためのダミー設定。
    • 実際のホスト情報(実行ホストリスト)は自動化ツールで記述する。
    • 後ほどの作業を楽にするため、イリヤの情報を記述しておく。
127.0.0.1			localhost.localdomain localhost
172.16.0.45		okkun-lab.rd.fukuoka-u.ac.jp okkun-lab
現在のIP			sge000.1cd-network sge000

192.168.0.1		sge001.1cd-network sge001
192.168.0.1		sge002.1cd-network sge002
……
192.168.0.1		sge999.1cd-network sge999
  • 編集用ツールは こちら
    • 使い方↓
# chmod 755 ./create-hosts-dummy.sh
# ./create-hosts-dummy.sh  [現在のIPアドレス]
  • /etc/resolv.conf を編集
    • こちらもまた、SGE インストール用のダミー設定。
search 1cd-network
nameserver 現在のIP
  • dnsmasq の仮起動
    • 自動起動は設定しない
# /etc/init.d/dnsmasq start
  • hostname が DHCP から与えられたものになっているので、これを変更しておく。
# hostname sge000.1cd-network
 
 

SGE(管理ホスト)のインストール

 
# su - sgeadmin
$ cd /home/sgeadmin/sge
$ wget http://okkun-lab.rd.fukuoka-u.ac.jp/wiki/up/SGE/SGE/sge-6.0u8-common.tar.tar
$ wget http://okkun-lab.rd.fukuoka-u.ac.jp/wiki/up/SGE/SGE/sge-6.0u8-bin-lx24-x86.tar.tar
 
  • パッケージを SGE_ROOT (/home/sgeadmin/sge) に展開する。
    • 展開は必ず sgeadmin ですること。
$ tar zxvf sge-6.0u8-common.tar.tar
$ tar zxvf sge-6.0u8-bin-lx24-x86.tar.tar
  • 自動インストールを開始。
    • かならず root で実行すること。
# cd /home/sgeadmin/sge/
# wget http://okkun-lab.rd.fukuoka-u.ac.jp/wiki/up/SGE/SGE_inst/admin_install.conf
# ./inst_sge -m -auto /home/sgeadmin/sge/admin_install.conf
 
  • 環境設定スクリプトの実行
    • sgeadmin で。
# su - sgeadmin
$ . /home/sgeadmin/sge/default/common/settings.sh
  • ログイン時に環境設定スクリプトを実行するように設定。
    • /home/sgeadmin/.bash_profile の末尾に追記。
. /home/sgeadmin/sge/default/common/settings.sh
 
  • /etc/hosts のダミー設定を利用して SGE 実行ホストを登録する。
    • 必ず sgeadmin で実行すること。
# su - sgeadmin
$ qconf -ah sge001.1cd-network
$ qconf -ah sge002.1cd-network
……
  • いちいち手打ちは面倒なの人のための自動スクリプトは こちら
# su - sgeadmin
$ wget http://okkun-lab.rd.fukuoka-u.ac.jp/wiki/up/SGE/1CD_SGE/linux_setup/qconf-entry.sh
$ chmod 755 qconf-entry.sh
$ ./qconf-entry.sh
 
 

mpich のインストール

 
# su - sgeadmin
$ wget http://okkun-lab.rd.fukuoka-u.ac.jp/wiki/up/SGE/mpich/mpich.tar.gz
$ tar zxvf mpich.tar.gz
  • とりあえず sgeadmin で configure する。
    • 実行ホストでのインストールを省くため、NFSで共有している SGE_ROOT ディレクトリ内にインストールするよう設定。
$ cd mpich-1.2.7p1/
$  ./configure -prefix=/home/sgeadmin/sge/share/mpich
$ make
  • root でインストール
# su -
# cd /home/sgeadmin/mpich-1.2.7p1/
# make install
  • PATH の設定
    • /etc/profile.d/mpich.sh を新たに作成。
#!/bin/sh
export PATH=/home/sgeadmin/sge/share/mpich/bin:$PATH 
  • パーミッションを設定
# chmod 755 /etc/profile.d/mpich.sh
  • SGE 並列環境の設定
    • sgeadmin で並列環境設定のテンプレートのコピーして編集。
      • slots: 最大計算台数
# su - sgeadmin
$ cp /home/sgeadmin/sge/mpi/mpich.template /home/sgeadmin/
$ vi /home/sgeadmin/mpich.template
pe_name          mpich
slots            1000
user_lists       NONE
xuser_lists      NONE
start_proc_args  /home/sgeadmin/sge/mpi/startmpi.sh -catch_rsh $pe_hostfile
stop_proc_args   /home/sgeadmin/sge/mpi/stopmpi.sh
allocation_rule  $round_robin
control_slaves   TRUE
job_is_first_task FALSE
urgency_slots     min
  • 先ほど編集した設定ファイルを用いて、並列計算環境を設定。
$ qconf -Ap mpich.template
sgeadmin@cap-sge00.rd.fukuoka-u.ac.jp added "mpich" to parallel environment list
  • 設定確認。
    • mpich が追加されたことを確認する。
$ qconf -spl
mpich
  • クラスタキューを設定する。(クラスタキュー ≒ 実行ホストのグループ)
    • vi が起動するので、pe_list に mpich を追加、shell を /bin/bash に設定。
$ qconf -mq all.q
pe_list               make mpich
shell                 /bin/bash
 
 

姫野ベンチマークの準備

 
  • 姫野ベンチマーク用のディレクトリ作成
    • "sgeadmin" で作成。以下同様。
# su - sgeadmin
$ mkdir -p /home/sgeadmin/sge/himeno/src
$ mkdir -p /home/sgeadmin/sge/himeno/result/output
$ mkdir -p /home/sgeadmin/sge/himeno/result/error
$ wget http://okkun-lab.rd.fukuoka-u.ac.jp/wiki/up/SGE/himeno/f77_xp_mpi.zip
  • 圧縮ファイルを展開し、その中身をディレクトリへ移動。
$ unzip f77_xp_mpi.zip
$ mv f77_xp_mpi/* /home/sgeadmin/sge/himeno/src/
  • 設定スクリプトのパーミッション変更。
$ chmod 755 /home/sgeadmin/sge/himeno/src/paramset.sh
 
 

1CD-SGE スクリプト(手島 作)のインストール

 
 
  • ダウンロード、解凍、コンパイル、インストール。
# wget http://okkun-lab.rd.fukuoka-u.ac.jp/wiki/up/SGE/1CD_SGE/1cd-tools/1cd-admin-tools-src.tar.gz
# tar zxvf 1cd-admin-tools-src.tar.gz
# cd 1cd-admin-tools-src
# ./make
 
  • 参考: ジョブ投入用シェルスクリプトのテンプレート
    • /home/sgeadmin/sge/himeno/src/himenoBMT.sh.template にインストールされる
      • <<<WORK_HOST_NUM>>> : 最大実行ホスト数
      • -o 標準出力先ディレクトリ
      • -e エラー出力先ディレクトリ
#!/bin/sh
# set SGE argument
#$ -N himenoBMT_Job
#$ -pe mpich <<<WORK_HOST_NUM>>>
#$ -o $SGE_ROOT/himeno/result/output
#$ -e $SGE_ROOT/himeno/result/error
# set $TMPDIR path
export PATH=$TMPDIR:$PATH
# execute MPICH Binary
$SGE_ROOT/share/mpich/bin/mpirun -np $NSLOTS -machinefile $TMPDIR/machines \
$SGE_ROOT/himeno/src/himenoBMT
 
 

Samba の設定

 
  • /etc/samba/smb.conf を編集
#=======================================
# グローバル環境設定
#=======================================
[global]
        #================================
        # 共通設定
        #================================
        dos charset = CP932
        unix charset = EUCJP-MS
        display charset = EUCJP-MS
        log level = 1
        log file = /var/log/samba/smbd.log
        max log size = 50
        socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
        encrypt passwords = Yes
        update encrypted = Yes
        #================================
        # サーバ固有の設定
        #================================
        workgroup = EDEN
        server string = 1CD-Linux with Samba
        security = USER
        password level = 16
        username level = 16
        smb passwd file = /etc/samba/smbpasswd
        username map = /etc/samba/smbusers
        create mode = 0644

#=======================================
# 共有ディレクトリ
#=======================================
[SGE_ROOT]
        path = /home/sgeadmin/sge
        comment = 1CD-Linux SGE_ROOT
        writable = Yes
        browseable = Yes
        valid users = root sgeadmin
  • Samba ユーザの追加
    • root を Samba ユーザに追加する。
smbpasswd -a root
smbpasswd -a sgeadmin
  • 続けて Samba アクセス用のパスワードを聞かれるので入力する。
    このパスワードは Linux にログインする際のパスワードとは異なってよい。
    (ここでは同じパスワードにしておく)
New SMB password:
Retype new SMB password:
  • ちなみに登録されたユーザとパスワードは /etc/samba/smbpasswd に登録される。
    Samba ユーザを登録したついでに sambusers の設定を削除しておく。
# cat /dev/null > /etc/samba/smbusers
  • Samba の起動 〜 設定
    • とりあえず Samba を起動する。
# /etc/rc.d/init.d/smb start

さらに起動時に Samba が立ち上がるように設定する。

# chkconfig smb on