このHOWTOは、openMosixクラスター環境を構築するのに手助けをします。 Gentoo Linuxディストリビューションを元に構築していきます。 できるだけユーザーフレンドリーに、そしてLinux初心者にも理解できるように説明していきます。 経験豊富なユーザーは、openMosix、ディスクレスノード、ネットワークに関する入手可能な複数のHOWTOを容易に結びつけることができるかもしれません。 しかし、わたしたちは、このHOWTOによって、経験が少ないユーザーの手順が簡略化されることを望みます。
注意: もしディスクレスノードを用いてopenMosixクラスターを構築しようとしているなら、 openMosixサポートのカーネルをコンパイルする方法を学ぶために、後述のカーネルに関する記述を読んだほうがよいでしょう。 そして、ディスクレスHOWTOを読んだ後に実際のクラスターの導入作業を続けたほうがよいでしょう。 |
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を使って:
コード表示 1.1: パッチ済みのカーネルソースの取得 |
# emerge openmosix-sources
|
カーネルとは、ハードウェアとマシン上で起動される他のあらゆるソフトウェアとの間に存在するものであり、 本質的に、カーネルベースのOSの中心となるものです。 コンピュータが起動するとき、BIOSはハードディスクの予約されたブート領域に"指示"を見つけだし、これを実行します。 この"指示"とは、典型的には、カーネルを起動するブートローダーです。 カーネルが起動した後、カーネルによってすべてのプロセスが処理されます。
カーネルやカーネルの設定についてもっと情報が欲しい場合、カーネルHOWTOを調べてみてください。
カーネルは好きなようにカスタマイズできますが、いくつか選択しておく必要があるオプションがあります。
重要: 次のようにしてopenmosix-sourcesへのシンボリックリンク/usr/src/linuxを作る事は極めて重要です。 |
コード表示 2.1: openmosixへのリンク/usr/src/linuxの作成 |
# cd /usr/src # rm linux # ln -s linux-2.4.22-openmosix linux |
それでは、カーネルの設定をしましょう:
コード表示 2.2: カーネル設定の編集 |
# cd /usr/src/linux # make menuconfig |
グレーとブルーのGUIが出てきたでしょう。これは、手作業で/usr/src/linux/.configファイルを編集するより安全なカーネル設定の方法です。 もし、現在あなたのカーネルが機能していて、現在の設定ファイルをバックアップしておきたいなら:
コード表示 2.3: カーネル設定のバックアップ |
# cp .config .config_working
|
最上位のメニュー項目にopenMosix --->があります。 もしこれが無い場合、openMosixパッチが当てられたカーネルソースをemergeする必要があります(はじめる前にを見て下さい)。 サブメニューに進んで、次に挙げる項目が(モジュールとしてではなく)ビルトイン(訳注:カーネル組み込み)として選択されているか確認してください:
コード表示 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
|
注意: これらのカーネル設定オプションに完全に置き換えてしまうのではなく, 既にあるあなたのシステム特有の設定オプションに追加するようにしてください. |
カーネルを再設定した後、カーネルを再構築します:
コード表示 2.5: カーネルとモジュールの再コンパイル |
# make dep # make clean bzImage modules modules_install (コピーする前に/bootがマウントされていることを確認してください) # cp arch/i386/boot/bzImage /boot/bzImage-openmosix |
lilo.confあるいはgrub.conf(使用しているブートローダーによります)に新しいカーネルに対するエントリを追加し、新しいカーネルをデフォルトにします。 新しいbzImageを/bootにコピーしてしまったので、後はシステムを再起動するだけです。
もし、カーネル設定のときに項目として現れないオプションがあるなら、次のオプションを確認してみてください:
プロセスをクラスターに移すことができるように、いくつかユーザーランドのバイナリをインストールする必要があります。 加えて、クラスターに参加したり,openMosixの全ての機能を使うためには、openMosixサーバーを起動する必要があります。 これらのバイナリを入手するには、emergeを使用して次のようにしてください:
コード表示 3.1: openMosixユーザーランドユーティリティのインストール |
# emerge openmosix-user
|
/etc/openmosix.mapファイルの編集は,現在は不要となっています。 新しいバージョンのユーザーランドユーティリティは、ネットワークのすべてのノードを自動的に検出するデーモンを備えています。
すべてのノードにアクセスを可能にする為のopenMosixファイルシステムを使用するなら(強く推奨)、/mfsディレクトリを各ノードで作成し、マウントしてください。
コード表示 3.2: /mfsの作成 |
# mkdir /mfs
|
コード表示 3.3: /etc/fstab内のエントリの例 |
none /mfs mfs noauto,dfsa=1 0 0 |
注意: openMosixが正しく動作するのにすべてのノードが起動している必要はありません。 |
openMosixの開始は、極めて簡単です。次のコマンドを実行することで、あなたのカーネルでopenMosixを有効にし、自動検出デーモン(入手可能なすべてのノードを追跡します)を起動します。
コード表示 3.4: openMosixの起動 |
# /etc/init.d/openmosix start
|
openMosix-userは、いくつか役に立つツールをシステムにインストールします。 それらの名前は:
もしあなたのクラスターが意図したように機能するか、どの程度の負荷まで動作するか試験したければ、 openmosix負荷テストが使用できるでしょう。 このパッケージは、openmosixtestと呼ばれています:
コード表示 4.1: openmosixtestをemergeする |
# emerge openmosixtest
|
どのようにテストを動作させればよいかは、ebuildが教えてくれるでしょう。
openmosixviewを使えば、クラスターの状況や、稼動しているプロセスの概要をグラフィカルに見ることが可能です。
コード表示 4.2: openmosixviewをemergeする |
# emerge openmosixview
|
このすばらしいアプリケーションを起動するには、openmosixviewと打ち込むだけです:
コード表示 4.3: openmosixviewの起動 |
# openmosixview
|
このドキュメントの内容は Creative Commons - Attribution / Share Alikeライセンスです。