クラスタソフトウェアが正しく設定されていることを確認するには、 /usr/sbinディレクトリにある以下のようなツールを使用します。
共有パーティションをチェックして、それらがアクセス可能になっていることを確認します。
-vオプションを付けて/usr/sbin/shutilユーティリティを呼び出し、共有パーティションがアクセスできるかどうかをテストします。 詳細については、項2.11.1を参照してください。
電源スイッチの動作をテストします。
クラスタハードウェア構成で電源スイッチを使用している場合は、 各メンバでclufenceコマンドを実行して、 他方のメンバの電源を遠隔で入/切できることを確認します。 クラスタソフトウェアを実行しているときにはこのコマンドを実行しないでください。 詳細については、項2.11.2を参照してください。
すべてのメンバが同じバージョンのソフトウェアを実行していることを確認します。
各メンバでrpm -q clumanagerコマンド及びrpm -q redhat-config-clusterコマンドを呼び出して、インストールされているクラスタソフトウェアのRPMのリビジョンを表示します。
ここでは、クラスタユーティリティの詳細について説明します。
共有パーティションは、すべてのメンバ上の同じ物理デバイスを参照する必要があります。 -vオプションを付けて/usr/sbin/shutilコマンドを呼び出し、 共有パーティションをテストしてアクセス可能になっていることを確認します。
コマンドが成功したら、すべてのメンバで/usr/sbin/shutil -p /cluster/header コマンドを実行して、共有パーティションのヘッダデータ構造の概要を表示します。 その出力がメンバで異なる場合は、共有パーティションがすべてのメンバ上で同じデバイスを ポイントしていません。rawデバイスが存在し、/etc/sysconfig/rawdevicesファイルに正しく指定されていることを確認してください。詳細については、項1.4.4.3を 参照してください。
以下の例では、/usr/sbin/shutil -p /cluster/headerコマンドを用いて、 クラスタメンバのclu1.example.comと clu2.example.comで共有パーティションが同じ物理デバイスを参照していることを示しています。
/cluster/header is 140 bytes long SharedStateHeader { ss_magic = 0x39119fcd ss_timestamp = 0x000000003ecbc215 (14:14:45 May 21 2003) ss_updateHost = clu1.example.com |
/usr/sbin/shutil -p /cluster/headerコマンドからの出力のすべてのフィールドは、すべてのクラスタメンバで実行する際に同じでなければなりません。 出力がすべてのメンバ上で同じではない場合には、次を実行します。
各メンバで/etc/sysconfig/rawdevicesファイルをチェックして、プライマリおよびバックアップ共有パーティションのrawキャラクタデバイスとブロックデバイスが正確に指定されていることを確認します。同じでない場合は、ファイルを修正して、誤りを正します。 それから、クラスタ設定ツールを再度実行します。 詳細については、項2.5を参照してください。
各メンバ上で共有パーティションのrawデバイスを作成していることを確認します。 詳細については、項1.4.4.3を参照してください。
各メンバでバスの設定を確定するには、dmesg |lessを実行して システムがSCSIサブシステムを調べた箇所をシステムのスタートアップメッセージで調べます。 すべてのメンバが同じ共有ストレージデバイスを認識、同じ名前で割り当てていることを確認します。
メンバが共有パーティションにファイルシステムをマウントしようとしていないことを確認します。たとえば、/etc/fstabファイルに実際のデバイス(例: /dev/sdb1)が含まれていないことを確認します。
これらの手順を実行したら、-pオプションを付けて /usr/sbin/shutilユーティリティを再度実行します。
クラスタハードウェア構成でネットワーク接続またはシリアル接続の電源スイッチを使用している場合は、クラスタソフトウェアをインストールし、clufenceコマンドを実行して電源スイッチをテストします。各メンバでコマンドを実行し、他のメンバの電源を遠隔から入/切できることを確認します。 テストが成功すれば、クラスタを起動できます。
clufenceコマンドは、クラスタソフトウェアが実行されていない場合にのみ電源スイッチを正確にテストできます。これは、シリアル接続のスイッチでは、一度に1つのプログラムだけが、メンバに電源スイッチを接続しているシリアルポートにアクセスできるためです。clufenceコマンドを実行すると、クラスタソフトウェアの状態がチェックされます。クラスタソフトウェアが実行中の場合、クラスタソフトウェアの終了を求めるメッセージが表示されてコマンドが終了します。
clufenceコマンドラインのオプションを以下に示します。
-d — デバッグをオンにします
-f — メンバをフェンス(電源オフに)します
-u — メンバをアンフェンス(電源オンに)します
-r — メンバを再起動(電源オン/オフ)します
-s — メンバを制御するすべてのスイッチの状態を確認します
電源スイッチをテストする際、接続されている電源スイッチに各クラスタメンバが正常に通信できることをまず確認します。 以下のclufenceコマンドの出力では、 クラスタメンバがその電源スイッチと通信できることを示しています。
[27734] info: STONITH: rps10 at /dev/ttyS0, port 0 controls clumember1.example.com [27734] info: STONITH: rps10 at /dev/ttyS0, port 1 controls clumember2.example.com |
clufenceの出力にエラーがある場合、 次を確認します。
シリアル接続の電源スイッチの場合
シリアルポート接続のリモート電源スイッチ用のデバイス特殊ファイル (例: /dev/ttyS0)が、 クラスタ設定ファイルで正しく指定されていることを確認します。 クラスタ設定ツールで、パワーコントローラダイアログボックスを表示して、シリアルポートの値を確認します。 必要であれば、minicomなどのターミナルエミュレーションパッケージ を使用してクラスタメンバがシリアルポートにアクセスできるか確認します。
クラスタプログラム以外(たとえば、gettyプログラム)がリモート電源スイッチ接続でシリアルポートを使用していないことを確認します。lsofコマンドを使用してこれを確認できます。
リモート電源スイッチへのケーブル接続が正しいことを確認します。正しいタイプのケーブル(たとえば、RPS-10電源スイッチにはヌルモデムケーブルを使用する必要があります)を使用していることと、すべてのコネクタが確実に接続されていることを確認します。
電源スイッチ上の物理dipスイッチまたはロータリースイッチが正しくセットされていることを確認します。
ネットワークベースの電源スイッチの場合
ネットワークベースの電源スイッチへのネットワーク接続が機能することを確認します。ほとんどのスイッチには、接続状態を示すリンクライトがあります。
ネットワーク電源スイッチをpingできるはずです。pingできない場合は、そのネットワークパラメータ用にスイッチが適切に設定されていない可能性があります。
正しいパスワードとログイン名(スイッチタイプによって異なる)がクラスタ設定ファイルで指定されていることを確認します(クラスタ設定ツールの実行、 パワーコントローラダイアログボックスで指定されたプロパティの表示 により確立される)。 便利な診断方法としては、クラスタ構成で指定されているのと同じパラメータを使って、 ネットワークスイッチにTelnet接続できるかを確認することです。
スイッチとの通信の確認が終了したら、他のクラスタメンバの電源を入/切してみます。 これを実行する前に、他方のクラスタメンバが重要な機能(アクティブなクライアントへの クラスタサービスの提供など)を実行していないことを確認することをおすすめします。 clufence -f clumember2.example.com コマンドを実行すると、シャットダウンの前に以下のような出力が表示され、 動作をフェンスします(つまり、アンフェンスされるまで システムは電源スイッチからの電力供給を受けないということです)。
[7397] info: STONITH: rps10 at /dev/ttyS0, port 0 controls clumember1.example.com [7397] info: STONITH: rps10 at /dev/ttyS0, port 1 controls clumember2.example.com [7397] notice: STONITH: clumember2.example.com has been fenced! |