[ トップページ / メモ書きリスト ]

情報実験機で ClusterKNOPPIX !!


  1. 概要
  2. 準備
  3. マスタサーバ起動
  4. クライアント起動
  5. マスタサーバの OpenMosix 起動
  6. その他いろいろ
  7. 技術文書

概要

ClusterKnoppix [日本語版] を用いて, 情報実験機で負荷分散クラスタを作ってみた.

以下はその際のメモ書きである. なお, 作業の際には以下のサイトの情報を参照した.

参考資料

  1. Cluster Knoppix
  2. ClusterKnoppix でクラスタリング
  3. IBM dW : Linux : ClusterKnoppixで負荷分散クラスターを作る
  4. Knoppix hacks ― カスタマイズとシステム管理のテクニック

準備

ClusterKnoppix 日本語版のダウンロード

ライブ CD の部屋 より ClusterKnoppix 日本語版 をダウンロードする.

CD の作成

ダウンロードした 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 を挿入し, 起動する.

OpenMosix ターミナルサーバ起動

[K メニュー] → [KNOPPIX] → [Services] → [Start KNOPPIX Openmosix Terminal Server] をクリックする.

これで OpenMosix ターミナルサーバが起動する.

クライアント起動

クライアントサーバには, CD の作成 で作成した CD を ドライブに入れ, クラスタリングセグメントに Giga-bit の ネットワークインターフェースを接続して起動する.

クライアントの OpenMosix 起動

KDE バーの Mozilla のさらに右にある, ペンギンの線画みたいなのを クリックする. すると, OpenMosizViewer が起動して, 現在クラスタリング しているマシンの一覧が表示される. 少なくともクライアントマシンが その一覧に含まれていれば OK.

マスタサーバの OpenMosix 起動

マスタサーバでは, 以下のコマンドを実行する. エラーが表示される かもしれないが, それによってマスタサーバ本体の 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 上でしか動作しない. 並列化対応コンパイラでのコンパイルを行ったり, パラメタスタディ的に 同時にいくつかの計算を行なう際に重宝するかもしれない.

技術文書

OpenMosix について

ClusterKNOPPIX で用いている OpenMosix について

並列化に関して

Fujitsu Fortran の自動並列化関して


*1 残念ながら, Giga HUB なんぞという高価なものは無いので, あまり Giga bit インターフェースを使う利点は無いのだが….


Last Updated: 2005/09/18, Since: 2005/09/16 mailto: morikawa_email