Gentoo Logo

Gentooを用いたopenMosixクラスター環境構築

目次:

1.  導入

このHOWTOについて

このHOWTOは、openMosixクラスター環境を構築するのに手助けをします。 Gentoo Linuxディストリビューションを元に構築していきます。 できるだけユーザーフレンドリーに、そしてLinux初心者にも理解できるように説明していきます。 経験豊富なユーザーは、openMosix、ディスクレスノード、ネットワークに関する入手可能な複数のHOWTOを容易に結びつけることができるかもしれません。 しかし、わたしたちは、このHOWTOによって、経験が少ないユーザーの手順が簡略化されることを望みます。

注意: もしディスクレスノードを用いて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を使って:

コード表示 1.1: パッチ済みのカーネルソースの取得

# emerge openmosix-sources

2.  カーネルの構築

カーネルについて

カーネルとは、ハードウェアとマシン上で起動される他のあらゆるソフトウェアとの間に存在するものであり、 本質的に、カーネルベースの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にコピーしてしまったので、後はシステムを再起動するだけです。

足りないオプション

もし、カーネル設定のときに項目として現れないオプションがあるなら、次のオプションを確認してみてください:

  • Code maturity level options --->
    • Prompt for development and/or incomplete code/drivers

3.  openMosixノードの設定

openMosixユーザーツールのインストール

プロセスをクラスターに移すことができるように、いくつかユーザーランドのバイナリをインストールする必要があります。 加えて、クラスターに参加したり,openMosixの全ての機能を使うためには、openMosixサーバーを起動する必要があります。 これらのバイナリを入手するには、emergeを使用して次のようにしてください:

コード表示 3.1: openMosixユーザーランドユーティリティのインストール

# emerge openmosix-user

openMosixノードの設定

/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の開始は、極めて簡単です。次のコマンドを実行することで、あなたのカーネルでopenMosixを有効にし、自動検出デーモン(入手可能なすべてのノードを追跡します)を起動します。

コード表示 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と呼ばれています:

コード表示 4.1: openmosixtestをemergeする

# emerge openmosixtest

どのようにテストを動作させればよいかは、ebuildが教えてくれるでしょう。

グラフィカル・ユーティリティ

openmosixviewを使えば、クラスターの状況や、稼動しているプロセスの概要をグラフィカルに見ることが可能です。

コード表示 4.2: openmosixviewをemergeする

# emerge openmosixview

このすばらしいアプリケーションを起動するには、openmosixviewと打ち込むだけです:

コード表示 4.3: openmosixviewの起動

# openmosixview

5.  リソース

openMosix

openMosixアドオン(ebuildも入手可能です)



印刷

ページの更新日 2003年 11月 20日

この翻訳はすでにメンテナンスされていません。

要約: このHOWTOは、gentooを使用してopenMosixクラスター環境を構築する手助けをします。

Michael Imhof
Author

Michael Andrews
Author

Sven Vermeulen
Reviewer

Xavier Neys
Reviewer

武田洋之
翻訳

Donate to support our development efforts.

Copyright 2001-2012 Gentoo Foundation, Inc. Questions, Comments? Contact us.