Gentooを用いたopenMosixクラスター環境構築
1.
導入
このHOWTOについて
このHOWTOは、openMosixクラスター環境を構築するのに手助けをします。
Gentoo Linuxディストリビューションを元に構築していきます。
できるだけユーザーフレンドリーに、そしてLinux初心者にも理解できるように説明していきます。
経験豊富なユーザーは、openMosix、ディスクレスノード、ネットワークに関する入手可能な複数のHOWTOを容易に結びつけることができるかもしれません。
しかし、わたしたちは、このHOWTOによって、経験が少ないユーザーの手順が簡略化されることを望みます。
Note:
もしディスクレスノードを用いてopenMosixクラスターを構築しようとしているなら、
openMosixサポートのカーネルをコンパイルする方法を学ぶために、後述のカーネルに関する記述を読んだほうがよいでしょう。
そして、ディスクレスHOWTOを読んだ後に実際のクラスターの導入作業を続けたほうがよいでしょう。
|
openMosixについて
openMosixは、Linuxカーネルに対するパッチで、複数のホストが一つのシステムイメージ(SSI, single, system image)であるかのように動作させることができます。
この結果、複数のホストは、一つの巨大なマルチプロセッサのホストであるかのように見えます。
これを書いている時点で、最新のopenMosixカーネルパッチのバージョンは2.4.22で、openMosixユーザーツールはバージョン0.3.4です。
openMosixに関する広範な情報はhttp://openmosix.sourceforge.netにあります。
様々なバージョンのカーネルソースでクラスターを構築するのは容易ではありませんし、
ほとんどのパッチは後方互換性が無いことがわかっています。
openMosixは、a.outやELFバイナリを起動する時、あるいは、重量プロセスをforkするときに、
明らかに重量プロセスに移行します。
p-threadのような軽量プロセスや、共有メモリを使用した重量プロセスには移行しません。
openMosixについてのより詳しい情報は、ホームページを訪れてください。
クラスターについて
クラスターは、すべてのノードで計算パワーを増加させる為に、計算資源を共有した個々のコンピュータ(ノード)から構成されます。
すべてのノードは同じアーキテクチャである必要はありませんが、その方がクラスター構築は、はるかに簡単になります。
はじめる前に
クラスターに接続したいコンピュータにGentooがインストールされていなければなりません。
さらに、openMosixカーネルソースが必要です。都合のいいことに、Gentooによってパッチが適用済みのソースがあります。
このソースを取得するには、単にemergeを使って:
Code Listing 1.1: パッチ済みのカーネルソースの取得 |
# emerge openmosix-sources
|
2.
カーネルの構築
カーネルについて
カーネルとは、ハードウェアとマシン上で起動される他のあらゆるソフトウェアとの間に存在するものであり、
本質的に、カーネルベースのOSの中心となるものです。
コンピュータが起動するとき、BIOSはハードディスクの予約されたブート領域に"指示"を見つけだし、これを実行します。
この"指示"とは、典型的には、カーネルを起動するブートローダーです。
カーネルが起動した後、カーネルによってすべてのプロセスが処理されます。
カーネルやカーネルの設定についてもっと情報が欲しい場合、カーネルHOWTOを調べてみてください。
カーネルの設定
カーネルは好きなようにカスタマイズできますが、いくつか選択しておく必要があるオプションがあります。
Important:
次のようにしてopenmosix-sourcesへのシンボリックリンク/usr/src/linuxを作る事は極めて重要です。
|
Code Listing 2.1: openmosixへのリンク/usr/src/linuxの作成 |
# cd /usr/src
# rm linux
# ln -s linux-2.4.22-openmosix linux
|
それでは、カーネルの設定をしましょう:
Code Listing 2.2: カーネル設定の編集 |
# cd /usr/src/linux
# make menuconfig
|
グレーとブルーのGUIが出てきたでしょう。これは、手作業で/usr/src/linux/.configファイルを編集するより安全なカーネル設定の方法です。
もし、現在あなたのカーネルが機能していて、現在の設定ファイルをバックアップしておきたいなら:
Code Listing 2.3: カーネル設定のバックアップ |
# cp .config .config_working
|
最上位のメニュー項目にopenMosix --->があります。
もしこれが無い場合、openMosixパッチが当てられたカーネルソースをemergeする必要があります(はじめる前にを見て下さい)。
サブメニューに進んで、次に挙げる項目が(モジュールとしてではなく)ビルトイン(訳注:カーネル組み込み)として選択されているか確認してください:
Code Listing 2.4: 設定メニュー |
openMosix --->
[*] openMosix process migration support
[ ] Support clusters with a complex network topology
[*] Stricter security on openMosix ports
(1) Level of process-identity disclosure (0-3)
[*] openMosix File-System
[ ] Poll/Select exceptions on pipes
[ ] Disable OOM Killer
[ ] Load Limit
Code maturity level options --->
[*] Prompt for development and/or incomplete code/drivers
Networking options --->
<*> Packet socket
[ ] Packet socket: mmapped IO
< > Netlink device emulation
[ ] Network packet filtering (replaces ipchains)
[ ] Socket Filtering
<*> Unix domain sockets
[*] TCP/IP networking
[*] IP: multicasting
File systems --->
[*] /proc file system support
[*] /dev file system support (EXPERIMENTAL)
[*] Automatically mount at boot
|
Note:
これらのカーネル設定オプションに完全に置き換えてしまうのではなく,
既にあるあなたのシステム特有の設定オプションに追加するようにしてください.
|
カーネルを再設定した後、カーネルを再構築します:
Code Listing 2.5: カーネルとモジュールの再コンパイル |
# make dep
# make clean bzImage modules modules_install
# cp arch/i386/boot/bzImage /boot/bzImage-openmosix
|
lilo.confあるいはgrub.conf(使用しているブートローダーによります)に新しいカーネルに対するエントリを追加し、新しいカーネルをデフォルトにします。
新しいbzImageを/bootにコピーしてしまったので、後はシステムを再起動するだけです。
足りないオプション
もし、カーネル設定のときに項目として現れないオプションがあるなら、次のオプションを確認してみてください:
- Code maturity level options --->
- Prompt for development and/or incomplete code/drivers
3.
openMosixノードの設定
openMosixユーザーツールのインストール
プロセスをクラスターに移すことができるように、いくつかユーザーランドのバイナリをインストールする必要があります。
加えて、クラスターに参加したり,openMosixの全ての機能を使うためには、openMosixサーバーを起動する必要があります。
これらのバイナリを入手するには、emergeを使用して次のようにしてください:
Code Listing 3.1: openMosixユーザーランドユーティリティのインストール |
# emerge openmosix-user
|
openMosixノードの設定
/etc/openmosix.mapファイルの編集は,現在は不要となっています。
新しいバージョンのユーザーランドユーティリティは、ネットワークのすべてのノードを自動的に検出するデーモンを備えています。
すべてのノードにアクセスを可能にする為のopenMosixファイルシステムを使用するなら(強く推奨)、/mfsディレクトリを各ノードで作成し、マウントしてください。
Code Listing 3.2: /mfsの作成 |
# mkdir /mfs
|
Code Listing 3.3: /etc/fstab内のエントリの例 |
none /mfs mfs noauto,dfsa=1 0 0
|
Note:
openMosixが正しく動作するのにすべてのノードが起動している必要はありません。
|
openMosixの開始
openMosixの開始は、極めて簡単です。次のコマンドを実行することで、あなたのカーネルでopenMosixを有効にし、自動検出デーモン(入手可能なすべてのノードを追跡します)を起動します。
Code Listing 3.4: openMosixの起動 |
# /etc/init.d/openmosix start
|
4.
openMosixユーザーランドユーティリティ
コマンドラインユーティリティ
openMosix-userは、いくつか役に立つツールをシステムにインストールします。
それらの名前は:
-
mosmon - openMosixモニター。すべてのノードの状態を見ることができます。
ノードの状態には、CPU使用率、実装メモリ、使用メモリ等が含まれます。
-
mtop - topコマンドの拡張版です。実際にどのノードでプロセスが動作しているのかを表示します。
-
mps - psコマンドの拡張版です。ノード番号も表示します。
-
mosctl whois - mosmonや他のツールがノード番号しか表示しないので、これはとても役に立ちます。
mosctl whois nodenumberとすると、そのノードのIPアドレスまたはホスト名を表示することができます。
もしあなたのクラスターが意図したように機能するか、どの程度の負荷まで動作するか試験したければ、
openmosix負荷テストが使用できるでしょう。
このパッケージは、openmosixtestと呼ばれています:
Code Listing 4.1: openmosixtestをemergeする |
# emerge openmosixtest
|
どのようにテストを動作させればよいかは、ebuildが教えてくれるでしょう。
グラフィカル・ユーティリティ
openmosixviewを使えば、クラスターの状況や、稼動しているプロセスの概要をグラフィカルに見ることが可能です。
Code Listing 4.2: openmosixviewをemergeする |
# emerge openmosixview
|
このすばらしいアプリケーションを起動するには、openmosixviewと打ち込むだけです:
Code Listing 4.3: openmosixviewの起動 |
# openmosixview
|
5.
リソース
openMosix
openMosixアドオン(ebuildも入手可能です)
The contents of this document are licensed under the Creative Commons -
Attribution / Share Alike license.
|