センリュウのホームページへ ようこそ!
クラスタ・システム構築
あまったパソコンがあったならすぐにクラスタに挑戦!
映画『タイタニック』が、LINUXクラスタ・システムの画像処理計算で作成されたことは有名ですが、ここでは、『UNIX
USER』という雑誌の2002年5月号についてきたCD-ROMのSCore5.0.0を使って並列コンピュータシステムを作ってみました。対応しているOSはRedhat7.2です。
ここでは、CD-ROMからインストールしましたが、http://www.pccluster.org/からダウンロードもできます。
インストール上の注意点
・ネットワ−クカードは100Mのものが必要。HUBはスイッチングHUBが推奨されています。
・HDD容量=/opt/以下に500M以上必要。
・まずサーバーにするホストにRedhat7.2のインストールをしておきます。インストールは、「すべてインストール」を選択。ファイアーウォールはなし(NISを利用するため)。
ここでは、サーバーホストをlinux.kaisha.co.jp、計算ホストをscore1.kaisha.co.jp、…とします。またサーバーホストは計算ホストも兼ねるようにします。
インストール
サーバーホストにSCoreインストール用のCD-ROMを入れ、CD-ROMのディレクトリに移って # ./Install でインストール開始。
/opt/score以下にドキュメントやセットアップを行うEITなどのファイルが展開されます。
以下断らない限りサーバーホストでの操作となります。
●/etc/hostsの編集(サーバーホスト=自分と計算ホストの登録)
127.0.0.1 localhost.localdomain localhost
192.168.0.100 linux.kaisha.co.jp linux (サーバーホスト)
192.168.0.101 score1.kaisha.co.jp score1 (計算ホスト)
192.168.0.102 score2.kaisha.co.jp score2 (計算ホスト)
………………………
設定したら、再起動しておく。
●NISサーバーの起動(ファイアウォールがONになっていると起動できないので注意)
# /opt/score/bin/configNIS server score.info(NISドメイン名を適当に決めておく。)
NISサーバーがすでにある場合は、serverのところがclientとなる。
(# /opt/score/bin/configNIS stop で停止。)
サーバーホスト、計算ホストがすべてNISに登録されたか確認。 # ypcat hosts
●EIT(Easy Installation Tool)の起動
・NISのみが動いている場合 # /opt/score/bin/eit -nisonly
・NISとDNSが動いている場合 # /opt/score/bin/eit
/mnt/cdromにSCoreインストール用のCD-ROMをマウントしておく。
最初の画面はそのままNext。
@計算ホストが使っているキーボードの選択
Aネットワークの設定 自動設定されるのでだいたいはそのままでよいが一応確認。mount pointはCD-ROMの位置を指定。
Bパーティションの設定 計算ホストのディスクサイズを選ぶと自動的に割り振られる。
CNFSの設定 計算ホストにおけるNFSマウントポイントを指定できる。共有したいディレクトリがある場合設定する。
D計算ホストの登録(ここではサーバー自身も計算ホストを兼ねるようにする)
まず、自分の登録 Hosts=1 Processors=1 Prefix=linux none →Add
さらに、計算ホストが2台とすると Hosts=2 Processors=1 Prefix=score digit Start=1 Figure=1 →Add
これでhost0にlinuxが、host1、2…にscore1.score2、…が登録される。
(ProcessorsはCPU数、Prefixはホスト名=次がnoneだとそのままだが、そうでないとStartからはじまる連番がつけられる。Figureはその桁数。2だと01、02…となる。)
Eグループの作成 New→Group Creationにグループ名(ここではpccとする)を記入。次にネットワーク形式100M Ethを選択。下の欄は1個ずつ選んで右に登録していけばよいが、Allボタンでも同じ。
F起動ディスクの作成ではMS-DOSフォーマットのフロッピーを挿入し、createボタンを押す。
●計算ホストのセットアップ
Fの画面でNextを押すと、Cluster setup画面になる。
計算ホストでの操作 score1マシンにFで作成したフロッピーを入れて、フロッピーから起動する(ただしscore1マシンはFATフォーマットだとダメなので、あらかじめlinuxフォーマットしておくのが安全)。
しばらくするとサーバーホストのCluster setup画面にHost1としてscore1マシンが表示される(この時点でフロッピーの役目は終わりなので、フロッピーを抜いてscore2マシンに移ってかまわない)。このあと新しくブルーの画面がでたあと、Host1(score1)のScore Inside画面となるのでNextを押すと、サーバーからHost1(score1)へのインストールがはじまる。Congratulationsの終了画面が出て、Exitを押すとscore1が自動的に再起動する(フロッピーを抜いておく)。
●サーバーホストのセットアップ
すべての計算ホストのインストールが終わったら、EIT画面のNextを押すとこんどはSCore用のカーネルなどサーバーホストのセットアップが始まる。
Congratulation!の画面が出たらExitを押してすべて終了。
●最後に/opt/score/etc/pm-ethernet.confの編集
0 00:10:5A:6E:8E:c8 1 .kaisha.co.jp →0
00:10:5A:6E:8E:c8 linux.kaisha.co.jpと正しく修正する。
1 00:90:CC:3F:BB:A0 score1.kaisha.co.jp
………………
修正したら再起動する。
クラスタのテスト
●登録した計算ホストの確認
# scorehosts -l -g pcc (pccはグループ名)
# sceptic -v -g pcc
●クラスタ計算の実行
まずクラスタ上の使用状況を表示するmsgbの起動 # msgb -group pcc &
次に # scout -g pcc とする。
msgbウインドが一瞬赤く光り、これでターミナルはSCoreクラスタ環境下におかれる。
ここで、# scout date (scout+実行命令)とかすると、それぞれの計算ホストから答えが返ってくるのがわかる。
# exit とすると、ターミナルはSCoreクラスタ環境下から解除される。
●PM/ethernetのテスト
@etherpmctl起動の確認
各ホストで # ps aux | grep etherpmctl で調べる。起動していなかったら、# /etc/rc.d.init.d/pm_ethernet start で起動させる。
Ascore1からscore2等々に通信できるかどうかの確認。
サーバーで次のコマンドを実行。# /opt/score/sbin/rpmtest score2 -reply
つづけて別のターミナルを開いて、# /opt/score/sbin/rpmtest score1 ethernet -dest 2 -ping
このテストを終えるときは、プロセスが無限ループしているのでpmtestプロセスをkillするのを忘れないように。
B総合テスト すべてのホストが巨大なデータを他のホストに送信する。
# scout -g pcc
# /opt/score/deploy/scstest -network ethernet
これを止めるには、Ctrl+c。
デモプログラム=マンデルブロ集合の実行
@X設定の確認
念のため計算ホストからサーバーホスト上のXに表示できるようにアクセス制限をOFFにしておく。# xhost +
さらに、DISPLAY変数を設定しておく。# export DISPLAY=linux.kaisha.co.jp:0.0
Aプログラムの実行
# scout -g pcc
# scrun -nodes=3 /opt/score/demo/bin/mandel
フラクタル図形をどんどん拡大してみるのがおもしろい。
クラスタ・プログラミング例
履歴 2002/05 作成