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

Serviceguard のアーキテクチャ

≫ 

テクニカル ドキュメント

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

 ≫ 目次

 ≫ 索引

下図に Serviceguard が使用する主なソフトウェア構成要素を示します。本章ではこれらの構成要素について詳しく説明します。

注記: Veritas CFS は、お使いのバージョンの HP-UX ではまだサポートされていない可能性があります。「Symantec 社の Veritas CFS と CVM」を参照してください。

図 3-1 Serviceguard のソフトウェア構成要素

Serviceguard のソフトウェア構成要素

Serviceguard のデーモン

Serviceguard では、以下のデーモンが使われます。

  • /usr/lbin/cmclconfd ―Serviceguard 構成デーモン

  • /usr/lbin/cmcld ―Serviceguard クラスタデーモン

  • /usr/lbin/cmfileassistd ―Serviceguard ファイル管理デーモン

  • /usr/lbin/cmlogd ―Serviceguard Syslog ログデーモン

  • /usr/lbin/cmlvmd ―Cluster Logical Volume Manager デーモン

  • /opt/cmom/lbin/cmomd ― クラスタオブジェクトマネージャ デーモン

  • /usr/lbin/cmsnmpd ― クラスタ SNMP サブエージェント (オプションで実行)

  • /usr/lbin/cmsrvassistd ―Serviceguard サービスアシスタントデーモン

  • /usr/lbin/qs ―Serviceguard クォーラムサーバーデーモン

  • /usr/lbin/cmnetd ―Serviceguard Network Manager デーモン

  • /usr/lbin/cmvxd ―Serviceguard と Veritas の間のメンバシップ調整デーモン (Veritas CFS がインストールされている場合のみ)

  • /usr/lbin/cmvxping ―Serviceguard と Veritas の間のアクティブ化デーモン (Veritas CFS がインストールされている場合のみ)

  • /usr/lbin/cmdisklockd ― ロック LUN デーモン

  • /usr/lbin/cmlockd ― ユーティリティデーモン

これらのデーモンのログは、/var/adm/syslog/syslog.log ファイルに記録されます。ただし、/opt/cmom/lbin/cmomd のログは /var/opt/cmom/cmomd.log に記録されます。クォーラムサーバーはクラスタ外で動作します。クォーラムサーバーのログは、デフォルトでは標準出力に出力されますが、この出力は /var/adm/qs/qs.log というファイルにリダイレクトすることをお勧めします。

構成デーモン: cmclconfd

このデーモンは、クラスタ内のすべてのノードから情報を集めるために、Serviceguard コマンドで使用されます。ネットワークおよびボリュームグループ情報などの構成情報を集めます。また、クラスタバイナリ構成ファイルをクラスタ内のすべてのノードに配布します。このデーモンは inetd(1M) で起動されます。/etc/inetd.conf ファイルにエントリーがあります。

Serviceguard の無効化

何らかの理由により、システム上で Serviceguard を無効にする場合は、/etc/inetd.conf 中の次のエントリーをコメントアウトします。

hacl-cfg dgram udp wait root /usr/lbin/cmclconfd cmclconfd -p
hacl-cfg stream tcp nowait root /usr/lbin/cmclconfd cmclconfd -c

次に、inetd に対し、inetd.conf を強制的に読み込ませます。

/usr/sbin/inetd -c

Serviceguard が実際に無効になったことを確認するには、次のコマンドを実行します。

cmquerycl -n nodename

nodename は、ローカルシステムの名前です。コマンドが失敗するようであれば、Serviceguard の無効化に成功しています。

注記: Serviceguard が実際に動作しているシステムでは、Serviceguard を無効にしないでください。動作しているかどうかわからない場合は、次のコマンドで確認することができます。

ps -e | grep cmclconfd

cmclconfd プロセスが動作していても、そのシステムで Serviceguard が動作しているとは限りません (cmclconfd は、同一のサブネット上にある Serviceguard クラスタからの UDP クエリーを処理しているだけかもしれません)。しかし、このプロセスが動作している場合は、Serviceguard を無効にする前に、さらに調査する必要があります。

クラスタデーモン: cmcld

このデーモンは、Serviceguard クラスタ内の他のノード上の cmcld デーモンにハートビートメッセージを送って、クラスタメンバシップを決定します。このデーモンはリアルタイム優先順位で実行し、メモリー内にロックされます。cmcld デーモンは、カーネルのハングを検出するために使用されるカーネルのセーフティタイマーを設定します。このタイマーが cmcld で定期的にリセットされないと、カーネルでシステム TOC (Transfer of Control: 制御の移行) または INIT の原因となります。 TOC または INIT が発生すると、猶予付きのシャットダウンが行われず、システムがすぐにリセットされます (本書では通常、この状況をシステムリセットと呼びます)。これが発生するのは、cmcld が大部分のクラスタメンバーと通信できなかったり、あるいは cmcld が思いがけなく終了、中止、または長時間実行できずに、タイムアウトによってカーネルのハングを示すカーネルタイマーを更新できなかったためです。セーフティタイマーの時間切れによるシステムリセットの前に、/var/adm/syslog/syslog.log およびカーネルのメッセージバッファーにメッセージが書き込まれ、システムダンプが実行されます。

セーフティタイマーの時間は、クラスタ構成パラメータ HEARTBEAT_INTERVAL NODE_TIMEOUT と、クォーラムサーバーやクラスタロックを使うかどうか、使う場合のロックの種類、スタンバイ LAN が構成されているかどうかなど、クラスタ構成の特性に依存します (詳細については、「ノードがタイムアウトしたときの動作」を参照してください。 HEARTBEAT_INTERVAL NODE_TIMEOUT の推奨値については、「クラスタ構成のパラメータ」を参照してください)。

cmcld は Serviceguard パッケージも管理し、それらの実行場所と起動時刻を決定します。

注記: Serviceguard の 2 つの中心的構成要素 (パッケージマネージャ、クラスタマネージャ) は cmcld デーモンの一部として動作します。このデーモンは、全クラスタノード上で優先順位 20 で動作します。したがって、ユーザープロセスの優先順位を 20 より低く設定することが必要です。ユーザープロセスの優先順位を 20 以上に設定した場合、Serviceguard がカーネルセーフティタイマーを更新できなくなるため、システムリセットが発生します。

ファイル管理デーモン: cmfileassistd

cmfileassistd デーモンは、cmcld で使われ、ディスクに対して読み書きする必要があるファイルを管理します。これは、入出力処理を実行する際の遅延が cmcld のタイミングに影響を及ぼさないようにするためです。

Syslog ログデーモン: cmlogd

cmlogd は、syslog にメッセージを書き込むために cmcld で使用されます。cmcld で syslog に書き込まれるメッセージは、cmlogd により書き込まれます。これは、syslog に書き込む際の遅延が cmcld のタイミングに影響を及ぼさないようにするためです。

Cluster Logical Volume Manager デーモン: cmlvmd

このデーモンは、クラスタに認識されているすべてのボリュームグループを記録します。ボリュームグループがクラスタに認識されると、クラスタノードは排他モードでのみボリュームグループをアクティブ化できます。これによって、一度に 2 つ以上のノードでボリュームグループが書き込みモードでアクティブ化されないようにします。

クラスタオブジェクトマネージャ デーモン: cmomd

このデーモンは、クラスタに関する情報をクライアントに提供します。これらの情報はクラスタオブジェクトの状態把握などに関連するツールや外部製品に渡されます。

クライアントはオブジェクトマネージャに照会を送信し、応答を受信します (この通信は、Serviceguard API を通じて間接的に行われます)。その照会はさまざまなプロバイダによってサービスされる (クラスの) カテゴリに分解されます。プロバイダは、接続されたすべてのノード上の cmclconfd デーモンなどさまざまなソースからデータを集め、そのデータを中央の統合地点に戻します。そこでは、特定の照会のニーズに合うように、収集されたデータがフィルター処理されます。

このデーモンは inetd(1M) で起動されます。/etc/inetd.conf ファイルにエントリーがあります。

このデーモンは、ご使用のシステムで稼働していない可能性があります。このデーモンは、オブジェクトマネージャのクライアントからのみ使用されます。

クラスタ SNMP エージェントデーモン: cmsnmpd

このデーモンは、SNMP Master Agent と共同で動作し、クラスタの MIB (Management Information Base) 用の計測を行います。

SNMP Master Agent と cmsnmpd は、クラスタ関連のイベントについての通知 (トラップ) を行います。たとえば、クラスタ構成の変更時や、Serviceguard パッケージの障害時に、トラップが送信されます。この情報をどこに送信するかを cmsnmpd に知らせるためには、/etc/SnmpAgent.d/snmpd.conf を編集しなければなりません。

cmsnmpd を自動起動する場合は、/etc/rc.config.d/cmsnmpagt も編集しなければなりません。cmsnmpd は、Serviceguard クラスタの起動前に起動するように構成します。

詳細は、cmsnmpd (1m) のマンページを参照してください。

サービスアシスタントデーモン: cmsrvassistd

このデーモンは、クラスタデーモン cmcld で必要なスクリプトやプロセスを起動 (fork して exec) します。このデーモンでは、2 種類の fork を実行します。

  • パッケージの実行スクリプトおよび停止スクリプトの実行

  • サービスの起動

サービスの場合、cmcld がサービスプロセスを監視し、サービスの再試行回数に応じて、cmsrvassistd を使用してサービスを再起動するか、パッケージを停止し、そのパッケージを使用可能な代替ノードに移動します。

クォーラムサーバーデーモン: qs

クォーラムサーバーは、クラスタ再編成時に、タイブレークを行い、クォーラムを確立するための方法の 1 つです。これ以外の方法としては、クラスタロックを使う方法があります。「スプリットブレインの問題を回避するクラスタ定足数」および「クラスタロック」を参照してください。

クォーラムサーバーはクラスタの外部のシステムで動作し、Serviceguard からではなく、システム管理者が起動します。通常は、/etc/inittab から respawn オプション付きで起動されるため、異常終了したり抹消された場合は、自動的に再起動されます。クラスタのすべてのメンバーが、クォーラムサーバーへの接続を確立し、保持します。クォーラムサーバーが停止すると、Serviceguard ノードはこの事実を検出し、定期的にクォーラムサーバーへ再接続しようとします。クォーラムサーバーが停止している間にクラスタの再編成が発生し、タイブレークが必要になると、再編成は失敗し、すべてのノードは停止 (システムリセット) します。そのため、クォーラムサーバーをできるだけ早く再起動することが重要です。

Network Manager デーモン: cmnetd

このデーモンは、クラスタのネットワークの状態を監視し、ローカル LAN のフェイルオーバーを実行します。またこのデーモンは、IPv4 アドレスと IPv6 アドレスの両方で、再配置可能パッケージ IP の追加と削除を行います。

ロック LUN デーモン: cmdisklockd

ロック LUN が使われる場合、cmdisklockd はクラスタ内の各ノード上で実行されます。起動は、ノードがクラスタに結合したときに、cmcld によって行われます。

クラスタの各メンバーは、cmdisklockd デーモンへの接続をローカルに行い維持します。cmdisklockd デーモンが終了した場合は、cmcld によって再起動され、ノードはデーモンに再接続します。cmdisklockd のダウン中にクラスタの再構成が行われ、タイブレークが必要なクラスタが分断された場合は、再構成は失敗します。

ユーティリティデーモン: cmlockd

cmcld が実行されている各ノード上で実行されます (ただし現在、HP-UX システム上の Serviceguard では実際には使っていません)。

CFS コンポーネント

HP Serviceguard Storage Management Suite には、現行バージョンの HP-UX のいくつかで Veritas Cluster File System とのインタフェースを持つ追加コンポーネントが用意されています (「Symantec 社の Veritas CFS と CVM」を参照してください)。HP Serviceguard Storage Management Suite のドキュメントは http://docs.hp.com に掲載されています。

Veritas CFS コンポーネントは、クラスタ内のノード間を接続しているイーサーネットネットワーク上で直接動作します。単一点障害を避けるためには、冗長なネットワークが必要です。

Veritas CFS コンポーネントには、以下のものがあります。

  • GAB (Group Membership Services/Atomic Broadcast) - Serviceguard Storage Management Suite バンドルに含まれる Veritas Cluster Volume Manager (CVM) 4.1 以降、または Veritas Cluster File System (CFS) を展開すると、Serviceguard によって /etc/gabtab ファイルが自動的に構成されて管理されます。

    GAB は、CVM と CFS のためのメンバシップ機能とメッセージング機能を備えています。GAB のメンバシップ機能には、クラスタファイルシステムを順番に起動したりシャットダウンする機能があります。

  • LLT (Low Latency Transport) - Serviceguard Storage Management Suite バンドルに含まれる Veritas CVM または CFS を展開すると、Serviceguard によって LLT ファイル /etc/llthosts/etc/llttab が自動的に構成されて管理されます。

    LLT は、カーネル間通信機能を持ち、CFS のネットワーク通信を監視します。

  • vxfend - Serviceguard Storage Management Suite に含まれる Veritas CFS を展開すると、I/O フェンスデーモン vxfend も同時に展開されます。vxfend は、Veritas Cluster File System に対して、クォーラムのような働きをします。vxfend は、Serviceguard によって制御されてクォーラムメカニズムの同期をとります。

  • cmvxd - このデーモンは、Serviceguard と Veritas の間に位置し、Serviceguard と Veritas Clustered File System 製品間のメンバシップ情報を調整します (Veritas CFS がインストールされている場合のみ)。

  • cmvxping - このデーモンは、Serviceguard と Veritas の間に位置し、Veritas Clustered File System 製品の特定のサブシステムをアクティブ化します (Veritas CFS がインストールされている場合のみ)。

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