万人のためのハイパフォーマンスコンピューティング

HPC Do It Yourself Club

      HOMEE5-2600v3製品情報お役立ち情報購入案内お問い合わせ会社案内
      ムービーダウンロードドキュメント最新トピックスおもしろLinkHPCノウハウ

2015年の年末特価セールはこちら

ノマド+コピペでできる、バーチャルHPC Linuxクラスター構築

(3)ノード間で共通の設定を行う(CentOS6.3)

 前回の記事では、バーチャルマシンhpc01を作り、そこにCentOS6.3をインストールした。まだ目標を決めていなかったが、この連載では、hpc01、hpc02、hpc03、hpc04の全4台のバーチャルHPC Linuxクラスターを構築する。その際、各ノードにCentOSをインストールし、個別に設定を行うのでは、時間と手間がかかる。時間と手間を最小にするため、hpc01にノード間で共通の(ノード間で多少変更する場合もある)設定を行い、それをコピーしてhpc02を作る。その後、hpc01をNFS、NIS、Lavaのサーバーに設定し、hpc02を計算専用ノードにする。Intel Composerをインストールし、OpenMPIもインストールする。MPIとLavaを動作させ、クラスターとして機能面では十分使えることを確認する。性能面(速度やメモリー量など)は試せないので、後でリアルマシンで試す。hpc01とhpc02の2台のクラスターができたら、その2台から、汎用のクラスター構築用USBを作る。このUSBを、クラスターインストールUSB、略してCIUSBと呼ぶことにしよう。CIUSBを使い、バーチャルクラスターの残り、hpc03とhpc04を作り、バーチャルクラスターを完成させる。その後、リアルマシン2台をCIUSBでクラスターにする。リアルマシンにはQDRのInfiniBandも付属しているので、InfiniBandの設定も行い(ドライバーのインストールや、OpenMPIの作り直し)、性能面でのテストを行う。
 クラスター構築の作業は、ほとんどキーボードからの入力無しでできるようにする。キーボード入力の代わりに、この記事の指定の部分をコピーし、バーチャルマシンのターミナルへペーストすれば、各種の設定作業が実行されるようにしてある。
 バーチャルマシンでこの記事をコピーし、ターミナルにペーストするのは、バーチャルマシンをネットワークに接続し、バーチャルマシン上のFirefoxを使って行う。「そんなことをしなくても、バーチャルマシンにインストールしたCentOS6.3に、VMware toolsというものをインストールすれば、Macのブラウザでコピーを行い、バーチャルマシンのターミナルへコピーが出来るようになるし、その他にも便利な機能が追加される。従って、VMware toolsをインストールするほうがいいのでは」、という意見もあるだろう。しかし、この記事では、バーチャルマシン上ですべてを完結させる方法を採用する。

前回の記事の最後の状態から出発する。真ん中、または左上のプレイボタンを押し、サスペンド状態から復帰する。
start.png

復帰したら、Other...をクリックする。
login.png

Username:にrootを入力し、Log Inをクリックする。
login_root.png

Password:に、インストール時に設定したパスワードを入力し、Log Inをクリックする。
password.png

すると、rootでloginすることに対する警告が出るので、Do not show me this againにチェックを入れて、Closeをクリックする。
do_not_login_as_root.png

この画面になるので、
after_login.png

左上のApplicationsをクリックし、プルダウンメニューのSystem Toolsを選択し、さらなるプルダウンメニューのTerminalをクリックする。
terminal_tab.png

空白のターミナル画面が表示される。ターミナルでは、キーボードからコマンドを入力しエンターキーを押すと、コマンドが実行され、結果が表示される。この連載で必要な、ほとんどの操作は、キーボード入力の代わりに、この後表示されるFirefoxの画面の一部をコピーし、ターミナルへペーストすることにより実行されることになる。従ってキーボード入力は必要ない。しかし、現状ではネットワーク設定がなされていないので、Firefoxを立ち上げても、このblogの記事を表示することができない。ネットワーク設定だけは、キーボードから入力しなければならない。
blank_terminal.png

ネットワーク設定は、ターミナルへ dhclient eth0 とキーボードから入力し、enterキーを押すだけだ。数秒待つと、次の行が表示され、Firefoxが使えるようになる。
dhclient_eth0.png

Firefoxを表示させる前に、バーチャルマシンの解像度を上げたほうがいいかもしれない。デフォールトでは1024x768になっているので、作業がしづらいかもしれない。Macの解像度が1024x768より大きいなら、大きくしたほうがいい。バーチャルマシンの解像度を変えるには、上部にあるSystemをクリックしプルダウンメニューからPreferencesを選択し、更に出てくるプルダウンメニューからDisplayをクリックする。
display_tab.png

すると解像度などを変更できる画面が表示されるので、使っているMacに応じて、使いやすい解像度に変更する。
display_preferences.png

フルスクリーンが良ければ、最上部の「表示」プルダウンメニューからフルスクリーンにすることもできる。この辺りは、いろいろ試して見ると楽しいかもしれない。
fusion_fullscreen.png

Firefoxは上部にある丸い形状のアイコンをクリックすると起動する。
firefox.png

URLにhpcdiyc.blog.fc2.comを入力し、このblogにアクセスする。写真では、まだこの記事をアップする前の状態なので、前回の記事が表示されている。
this_blog.png

この記事を表示する。
この先のブルーの行を全てコピーする。念のためコピーのやり方を説明する。先頭文字にカーソルを動かし、クリックする。シフトキーを押しながら下向き矢印しキーを必要なだけ押して、コピーする最後の行の次の行まで移動する。するとコピーすべき行の色が反転する。その状態で、コントロールキーを押しながらcキーを押す。これで、コピーが終わる。
次にターミナルに移動する。ペーストすれば、コピーしたコマンドが実行される。ペーストはコントロールキーとシフトキーを押しながらvキーを押せばいい。これで、設定は全て終了だ。
(次回に続く)

#################################
# 変更される可能性のあるファイルをバックアップする
#
mkdir -p /root/backup
rsync -a /etc /root/backup
rsync -a /boot /root/backup
rsync -a --exclude='/root/backup/*' /root /root/backup
#################################
# /root/.bashrc の中にあるaliasを無効にする
#
ed ~/.bashrc <<.
g/^alias/s/alias/#alias/
w
q
.
#################################
# selinux を無効にする
#
ed /etc/selinux/config <<.
/=enforcing/s/enforcing/disabled/
w
q
.
#################################
# あると面倒なサービスを止める 
#
service NetworkManager stop
chkconfig NetworkManager off
service iptables stop
chkconfig iptables off
service ip6tables stop
chkconfig ip6tables off
service libvirt-guests stop
chkconfig libvirt-guests off
service libvirtd stop
chkconfig libvirtd off
#################################
# eth0 をクラスター内通信用に設定する
#
cat >/etc/sysconfig/network-scripts/ifcfg-eth0 <<.
DEVICE="eth0"
BOOTPROTO="none"
NM_CONTROLLED="no"
ONBOOT="yes"
TYPE="Ethernet"
IPADDR=192.168.1.1
PREFIX=24
.
#################################
# eth1 を外部接続用にDHCPを使うよう設定する
#
cat >/etc/sysconfig/network-scripts/ifcfg-eth1 <<.
DEVICE="eth1"
BOOTPROTO="dhcp"
NM_CONTROLLED="no"
ONBOOT="yes"
TYPE="Ethernet"
.
#################################
# /etc/hosts にhpc01とhpc02のエントリーを加える
#
cat >>/etc/hosts <<.
192.168.1.1 hpc01
192.168.1.2 hpc02
.
#################################
# /dev/sda1にROOTというラベルを付ける
#
e2label /dev/sda1 ROOT
#
# /dev/sda2にSWAPというラベルを付ける
# /dev/sda2はスワップパーティションなので、mkswapをつかう
# そのためにswapを止める
swapoff -a
mkswap -L SWAP /dev/sda2
#################################
# /boot/grub/grub.conf をUUIDからLABELに変更する
#
ed /boot/grub/grub.conf <<.
/root=UUID/s/UUID=[a-z0-9\-]*/LABEL=ROOT/
w
q
.
#################################
# /etc/fstab をUUIDからLABELの使用に変更する
#
ed /etc/fstab <<.
g/UUID=.*\//s/.*\//LABEL=ROOT \//
g/UUID=.*swap/s/UUID=[a-z0-9\-]*/LABEL=SWAP/
w
q
.
#################################
# 足りないパッケージをインストールする
#
yum install -y ypserv
yum install -y tcl-devel
#################################
# rootでのsshでのloginに、パスワードを不要にする
#
rm -rf ~/.ssh
ssh-keygen -N "" -t rsa <<.

.
cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
#################################
# 最初のsshでのloginにyesを求められないようにする
#
ed /etc/ssh/ssh_config <<%
/^Host/
a
StrictHostKeyChecking no
.
w
q
%
#################################
# hpc01をシャットダウンする
#
shutdown -h now
#################################


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Copyright (C) HPCシステムズ株式会社. All Rights Reserved.