本文に進む 日本−日本語
日本HPホーム 製品とサービス お客様サポート/ ダウンロード ソリューション ご購入の方法
≫ お問い合わせ
詳細検索オプション
日本HPホーム
Serviceguard の管理 > 第5章 HA クラスタの構成

稼働中のクラスタの管理

≫ 

テクニカル ドキュメント

PDF版
関連ドキュメント
フィードバック
ここから本文が始まります

 ≫ 目次

 ≫ 索引

この項では、クラスタの管理を定型化する方法について説明します。その他のツールや提案については、第7章 「クラスタとパッケージの管理」で説明します。

Serviceguard Manager でのクラスタの動作チェック

Serviceguard Manager を使って、構成やステータス情報を確認できます。System Management Homepage (SMH) で、[Tools] -> [Serviceguard Manager] を選択します。

Serviceguard コマンドでのクラスタの動作チェック

Serviceguard では、以下のように、コマンドを使用してクラスタを制御できます。

  • cmviewcl は、クラスタと多くの構成要素のステータスを確認するのに使います。モニターロールが割り当てられた非ルートユーザーは、クラスタノードでこのコマンドを実行することや、Serviceguard Manager でステータス情報を参照することができます。

  • Veritas Cluster File System (CFS) をサポートしているシステムでは、cfscluster status を実行すると、クラスタについての情報が表示されます。また、cfsdgadm を実行すると、クラスタのディスクグループについての情報が表示されます。

  • cmrunnode は、ノード上で Serviceguard を起動するのに使います。クラスタ範囲の管理ロールが割り当てられた非ルートユーザーは、クラスタノードまたは Serviceguard Manager からこのコマンドを実行できます。

  • cmhaltnode は、稼働中のノードを手動で停止するのに使います (このコマンドは、shutdown(1m) でも使用されます)。クラスタ範囲の管理ロールが割り当てられた非ルートユーザーは、クラスタノードまたは Serviceguard Manager からこのコマンドを実行できます。

  • cmruncl は、停止中のクラスタを手動で起動するのに使います。クラスタ範囲の管理ロールが割り当てられた非ルートユーザーは、クラスタノードまたは Serviceguard Manager からこのコマンドを実行できます。

  • cmhaltcl は、クラスタを手動で停止するのに使います。クラスタ範囲の管理ロールが割り当てられた非ルートユーザーは、クラスタノードまたは Serviceguard Manager からこのコマンドを実行できます。

これらのコマンドを使用して、以下のようにクラスタの動作をテストできます。

  1. クラスタがまだ実行されていなければ、クラスタを起動します。Serviceguard Manager では、メニューから [クラスタの実行] を選択します。コマンド行では、cmruncl -v を実行します。

    cmruncl は、デフォルトでは、ネットワークのチェックを行います。Serviceguard は、クラスタ構成のネットワーク情報をもとにして実際のネットワーク構成をチェックします。この検査が不要な場合には、代わりに cmruncl -v -w none を使って検査を行わないようにし、時間を節約することができます。

  2. クラスタが起動したら、クラスタの構成要素が正しく動作していることを確認します。それには、Serviceguard Manager を使うことも、コマンド cmviewcl -v を使うこともできます。

    すべてのノードとネットワークが期待どおりに動作していることを確認します。詳細は、第7章 「クラスタとパッケージの管理」を参照してください。

  3. 以下の手順を実行して、クラスタでのノードの切り離しや組み込みが正しく実行されることを確かめます。

    • ノードを停止します。Serviceguard Manager を使うことも、cmhaltnode コマンドを使うこともできます。

    • クラスタのメンバー構成を確認し、ノードがクラスタから切り離されたことを確かめます。Serviceguard Manager で行うことも、cmviewcl コマンドを使うこともできます。

    • ノードを起動します。Serviceguard Manager を使うことも、cmrunnode コマンドを使うこともできます。

    • ノードが再び稼働していることを確認するには、Serviceguard Manager で確認するか、cmviewcl コマンドを使います。

  4. クラスタを停止させます。Serviceguard Manager で行うことも、cmhaltcl -v -f コマンドを使うこともできます。

クラスタのテストについては、第8章 「クラスタのトラブルシューティング」でも説明しています。また 付録 A 「Serviceguard のコマンド」には、Serviceguard の全コマンドの一覧があります。Serviceguard の管理コマンドの一覧は、Serviceguard Manager のヘルプを参照してください。

LVM ボリュームグループの自動アクティブ化の禁止

/etc/lvmrc ファイルを使用して、パッケージで使用される LVM ボリュームグループのブート時の自動アクティブ化を禁止しておくことは、非常に重要です。自動アクティブ化を禁止する 1 つの方法として、全ノード上の /etc/lvmrc ファイルを編集し、AUTO_VG_ACTIVATE 0 に設定し、クラスタ外のボリュームグループをすべて custom_vg_activation 関数に定義しておきます。パッケージが使用するボリュームグループは制御スクリプトによってアクティブ化/非アクティブ化されるので、このファイルのどこにも記述されていないことを確かめます。

注記: ルートボリュームグループに関しては、以下に示す特別な留意事項があります。
  • ルートボリュームグループが MirrorDisk/UX を使ってミラー化されている場合は、custom_vg_activation 関数に追加し、ミラーの古いエクステントが再同期化されるようにします。

  • ミラー化されていない場合は、ルートボリュームグループは、ブート時に /etc/lvmrc ファイルの使用前に自動的にアクティブ化されるため、custom_vg_activation 関数に定義しておく必要はありません。

自動起動機能のセットアップ

自動起動とは、各ノードが個別にクラスタに結合するプロセスです。Serviceguard には、起動プロセスを制御する起動スクリプトがあります。クラスタの起動では、クラスタの自動起動を使うことをお勧めします。システム管理者が操作する必要はありません。

以下の 3 つの場合があります。

  • クラスタはどのノードでも稼働しておらず、すべてのクラスタノードが到達可能で、すべてのノードが起動しようとしている場合。この場合は、構成された全ノードからなるクラスタの形成を試みます。

  • クラスタが少なくとも 1 台のノードですでに稼働している場合。この場合は、ノードはそのクラスタへの結合を試みます。

  • どちらでもない場合。すなわち、クラスタがどのノードでも動作しておらず、到達不可能なノードや起動しようとしていないノードがある場合。この場合は、ノードは AUTO_START_TIMEOUT の間起動を試みます。その間に上記の条件のいずれも満たされないときには、起動に失敗します。

クラスタを自動起動する場合は、クラスタ内の各ノード上で /etc/rc.config.d/cmcluster ファイルの AUTOSTART_CMCLD フラグを 1 に設定します。設定されたノードは、ブート時にクラスタに自動的に結合されます。

/etc/rc.config.d/cmcluster ファイルの例を示します。

#************************  CMCLUSTER  ************************
# Highly Available Cluster configuration
#
# @(#)  $Revision:  72.2  $
#
#  AUTOSTART_CMCLD:    If set to 1, the node will attempt to
#                       join it's CM cluster automatically when
#                       the system boots.
#                       If set to 0, the node will not attempt
#                       to join it's CM cluster.
#
AUTOSTART_CMCLD=1
注記: /sbin/init.d/cmcluster ファイルは、Serviceguard がディレクトリ /etc/cmcluster/rc (HP-UX の場合) と ${SGCONF}/rc (Linux の場合) に格納しているファイルを呼び出します。これらのディレクトリは Serviceguard 専用です。このディレクトリでファイルの移動、削除、変更、追加は行わないでください。

システムメッセージの変更

システムのログインメッセージに以下のような内容を追加すると便利です。

This system is a node in a high availability cluster.
Halting this system may cause applications and services to
start up on another node in the cluster.

またログインメッセージには、全クラスタノードの一覧やクラスタに固有の情報を追加するのもよいでしょう。

/etc/issue ファイルと /etc/motd ファイルをカスタマイズすると、このようなクラスタ情報をメッセージに追加できます。

単一ノードクラスタの管理

Serviceguard クラスタに必要なノード数は、保護の対象となるアプリケーションの処理能力がどの程度求められるかにより異なります。場合によっては、Serviceguard のネットワーク障害保護機能を利用するために、単一ノードで運用することも考えられます。

単一ノードクラスタでは、クラスタ内に他のノードがないため、クラスタロックは必要ありません。cmquerycl コマンドからの出力では、ノードが 1 つしかない場合には、クラスタロック情報のエリアが省略されます。

ネットワークには冗長性を持たせる必要がありますが、ハートビートを送信する相手のノードがないため、ハートビート LAN を指定する必要はありません。ASCII 形式のクラスタ構成ファイルでは、Serviceguard でモニターする LAN をすべて指定します。すでに IP アドレスのある LAN については、HEARTBEAT_IP キーワードではなく、STATIONARY_IP キーワードを付けて IP アドレスを指定します。予備の LAN については、LAN デバイス名を指定する NETWORK_INTERFACE キーワードだけが必要です。

単一ノードによる運用

単一ノードによる運用は、単一ノードクラスタや、1 つを除いてすべてのノードがダウンしたりシャットダウンされたマルチノードクラスタで行われます。このとき、稼働しているノード上ではアプリケーションが実行されている可能性があります。Serviceguard のデーモン cmcld がアクティブである限り、後で他のノードをクラスタに再結合させることは可能です。

単一ノードでの運用中に、Serviceguard デーモンが異常終了した場合は、ノードは稼働したまま、アプリケーションも実行中のままとなります。これは、マルチノードクラスタで Serviceguard デーモンがアクティブでなくなった場合とは異なります。マルチノードクラスタでは、ノードはシステムリセットにより停止し、パッケージは引き継ぎノードに切り替えられます。

単一ノードでの運用中に Serviceguard デーモンが異常終了した場合には、ノードを停止する必要はありません。アプリケーションはまだ実行されており、パッケージ切り替えに対応できるノードがないためです。

ただし、Serviceguard を再起動することは避けてください。ノード上でまだ実行されているアプリケーションと同じアプリケーションをそのノードが起動しようとした場合に、データの一部が破壊される可能性があるためです。クラスタを再起動する代わりに、適切な時期を選んでノードをシャットダウンし、その後ノードをリブートしてください。これによりアプリケーションがシャットダウンされるため、Serviceguard はリブート後にクラスタを問題なく再起動できるようになります。

クラスタ構成の削除

ルートでのログインが可能な場合は、Serviceguard Manager またはコマンド行を使って、全クラスタノードからクラスタ構成を削除できます。cmdeleteconf コマンドを実行すると、削除を確認するプロンプトが表示されますが、-f オプションを指定して実行すると確認プロンプトは表示されません。構成を削除できるのは、クラスタが停止している間だけです。構成を削除すると、クラスタ内の全ノードからバイナリ構成ファイルが削除され、削除以前にクラスタに認識されていたボリュームグループはすべて認識されなくなります。

注記: cmdeleteconf コマンドは、クラスタバイナリファイル /etc/cmcluster/cmclconfig だけを削除します。/etc/cmcluster ディレクトリからその他のファイルは一切削除しません。

クラスタ構成はクラスタが停止中でなければ削除できませんが、cmdeleteconf コマンドは、クラスタ内の全ノードの電源が入っていてノードにアクセスできる状態で実行します。ノードの電源が入っていない場合は、電源を入れてブートしてください。アクセスできないノードがあれば、その一覧と以下のメッセージが表示されます。

It is recommended that you do not proceed with the 
configuration operation unless you are sure these nodes are 
permanently unavailable.Do you want to continue?

メッセージに対して Yes を選択すると、構成が削除されます。その後、アクセスできなかったノードにアクセスできるようになったら、そのノード上で cmdeleteconf コマンドを実行して構成ファイルを削除してください。

印刷用画面へ
プライバシー 本サイト利用時の合意事項
© 1995-2007 Hewlett-Packard Development Company, L.P.