ClusterKnoppix [日本語版] を用いて, 情報実験機で負荷分散クラスタを作ってみた.
以下はその際のメモ書きである. なお, 作業の際には以下のサイトの情報を参照した.
ライブ CD の部屋 より ClusterKnoppix 日本語版 をダウンロードする.
ダウンロードした ISO ファイルを CD に焼く. 焼く数はクラスタマシンの 数だけ.
1 CD Linux な ClusterKnoppix を使うので, とりあえずその時 使ってない 3n+1, 3n+2 マシンを 2, 3 台ほど用意しておく.
ただしネットワークの構成を少々変更する必要がある. 以下では, 1 台のマスタサーバが DHCP サーバおよび NAT サーバとなり, 残りのクライアントマシンはそのネットワークセグメント内に おかれる. 普段は 3n+1, 3n+2 は並列におかれているが, それらのうちの一台をサーバと決め, 8 号館プライベート LAN と直接 アクセスするのはそのマシンだけにする. 残りのマシンは, サーバを 介してのみ外部と通信できる環境にする.
その際, マスタサーバは 2 つのネットワークインターフェースを 持っていることが推奨される. なぜなら, 一方でクラスタリングセグメント を構成するため, 外部のネットワークと接続するにはどうしても もう1つネットワークインターフェースが必要となるためである.
2005 年現在, 幸いにして 3n+1, 3n+2 には以前から引き継がれる Tulip (100Base-T) のネットワークインターフェースに加え, オンボードの e1000 (Giga bit) のネットワークインターフェースが 装備されている. クラスタリングを効率的に行うため, クラスタリング セグメントには e1000 のネットワークカードを, もう一方を 外部のネットワークと通信するのに利用する *1.
なお, 以下ではオンボードの e1000 のデバイスが eth0, もう一方が eth1 であるとして話を進める.
マスタサーバにCD の作成 で作成した CD を挿入し, 起動する.
[K メニュー] → [KNOPPIX] → [Services] → [Start KNOPPIX Openmosix Terminal Server] をクリックする.
これで OpenMosix ターミナルサーバが起動する.
クライアントサーバには, CD の作成 で作成した CD を ドライブに入れ, クラスタリングセグメントに Giga-bit の ネットワークインターフェースを接続して起動する.
KDE バーの Mozilla のさらに右にある, ペンギンの線画みたいなのを クリックする. すると, OpenMosizViewer が起動して, 現在クラスタリング しているマシンの一覧が表示される. 少なくともクライアントマシンが その一覧に含まれていれば OK.
マスタサーバでは, 以下のコマンドを実行する. エラーが表示される かもしれないが, それによってマスタサーバ本体の OpenMosix も 起動する. クライアントと同じように, OpenMosix のアイコンを クリックして一覧をチェックする.
# /etc/init.d/openmosix start
以上でクラスタの作成は終了である.
参考資料 (3), (4) にクラスタリングを確認するための 簡単なプログラムが掲載されているので, それを試してみよう. OpenMosixView でクラスタリングの状況が確認できるだろう.
OpenMosix ターミナルサーバ起動 によって, eth0 の接続は 確立されるが, 一方で起動時には接続が確立されていた eth1 の 接続はダウンしてしまっている.
外部とも接続するためには /etc/network/interface に以下の 2 行を 加え, /etc/init.d/networking restart コマンドを実行する.
auto eth1 iface eth1 inet dhcp
既に OpenMosix によるクラスタリングが行われているセグメント内で, クライアント起動 を行うことで, クライアントが追加可能である.
普通にクライアントを停止すればよい. しかし, その際にどの程度 クラスタリングが不安定になるのかは未調査.
KNOPPIX は OS やユーザが作成した情報など, メモリに一時的に格納するため, 再起動の際にそれらの変更は自身が作ったデータなどは全て消去されてしまう. もしも継続的にこのクラスタリングシステムを利用するのであれば, マスタサーバに接続されたディスクにそれらの情報を格納しておくなり, モバイルな HDD などに持ち歩き, 利用の際に USB で接続するなどの 方法が考えられるだろう.
クラスタリングされているといっても, 作成されたバイナリが並列化に 対応していない限りは実際は 1 つの CPU 上でしか動作しない. 並列化対応コンパイラでのコンパイルを行ったり, パラメタスタディ的に 同時にいくつかの計算を行なう際に重宝するかもしれない.
ClusterKNOPPIX で用いている OpenMosix について
Fujitsu Fortran の自動並列化関して
*1 残念ながら, Giga HUB なんぞという高価なものは無いので, あまり
Giga bit インターフェースを使う利点は無いのだが….
Last Updated: 2005/09/18, Since: 2005/09/16 | mailto: |