Hitachi

高信頼化システム監視機能 HAモニタ Linux(R)(x86)編


4.7.1 UAPの監視制御

HAモニタのAPIを発行できるようにUAPを修正することで,サーバの監視コマンドにUAPの監視処理を作り込むことなく,HAモニタでUAPを監視できます。

発行するAPIは,UAPの監視開始(hamon_patrolstart関数)とUAPの監視停止(hamon_patrolstop関数)の2種類です。APIについては,「10. API」を参照してください。

HAモニタは,UAPのプロセスおよび稼働報告を監視することで,UAPを監視します。UAPのプロセスと稼働報告の両方を監視するか,UAPのプロセスだけを監視するかを選択できます。監視方法は,モニタモードのプログラム対応の環境設定のpatrolオペランド,およびhamon_patrolstart関数で指定します。検出したい障害に応じて,監視方法を選択してください。

検出できる障害と監視方法の対応を,次の表に示します。

表4‒12 検出できる障害と監視方法の対応

検出できる障害

プロセスの監視

稼働報告の監視

UAPの異常終了

UAPのスローダウン

システムコールのハングアップ

×

ページイン待ち

×

スケジューリング待ち

×

(凡例)

○:検出できます。

×:検出できません。

UAPのプロセスと稼働報告の監視時の動作について,以降で説明します。

〈この項の構成〉

(1) UAPのプロセスの監視

HAモニタは,hamon_patrolstart関数の受け付け時にUAPと接続し,その接続を監視することでUAPのプロセスの存在をチェックできます。接続が切れた場合に,HAモニタはプロセスの消滅を検知し,UAP障害が発生したと判断します。HAモニタがUAPとの接続を監視する間隔は1秒です。

UAP障害を検出すると,HAモニタはプログラムの再起動コマンドを作成している場合はUAPの再起動を,作成していない場合はサーバの再起動や系切り替えなどをします。UAP障害を検出したあとのHAモニタの動作については,「(3) UAP障害を検出したあとのHAモニタの動作」を参照してください。

UAPのプロセスの監視時の動作について,次の図に示します。

図4‒39 UAPのプロセスの監視時の動作

[図データ]

UAPのプロセスの監視は,HAモニタがUAPから発行されたhamon_patrolstart関数を受け付けてから開始します。UAPから監視要求がない(hamon_patrolstart関数の発行がない)場合,HAモニタはUAP障害を検出しません。サーバ対応の環境設定のstart_timeoutオペランドを指定している場合は,モニタモードのサーバ起動時のタイムアウトとなります。

(2) UAPの稼働報告の監視

HAモニタは,UAPが発行したAPIが一定間隔でHAモニタに送信する稼働報告を監視することで,次の要因によるUAPのスローダウンなど,UAP自身が検知できない障害を検出できます。

UAPの稼働報告を監視する時間(プログラムのスローダウン監視時間)は,モニタモードのプログラム対応の環境設定の,patrolオペランドで指定します。指定したプログラムのスローダウン監視時間を超えてもUAPからの稼働報告がなかった場合,HAモニタはUAP障害が発生したと判断します。

UAP障害を検出すると,HAモニタはhamon_patrolstart関数を発行したプロセスを強制的に停止します。HAモニタはプログラムの再起動コマンドを作成している場合はUAPの再起動を,作成していない場合はサーバの再起動や系切り替えなどをします。UAP障害を検出したあとのHAモニタの動作については,「(3) UAP障害を検出したあとのHAモニタの動作」を参照してください。

なお,UAPがプロセスを生成する場合は,プログラムの再起動コマンドやサーバの停止コマンドに,生成したプロセスを停止するため処理を記述する必要があります。

UAPの稼働報告の監視時の動作について,次の図に示します。

図4‒40 UAPの稼働報告の監視時の動作

[図データ]

UAPの稼働報告の監視は,HAモニタがUAPから発行されたhamon_patrolstart関数を受け付けてから開始します。UAPから監視要求がない(hamon_patrolstart関数の発行がない)場合,HAモニタはUAP障害を検出しません。サーバ対応の環境設定のstart_timeoutオペランドを指定している場合は,モニタモードのサーバ起動時のタイムアウトとなります。

(3) UAP障害を検出したあとのHAモニタの動作

UAP障害を検出したあとのHAモニタの動作は,プログラムやサーバに設定した定義,およびサーバの状態によって異なります。

UAP障害を検出したあとのHAモニタの動作を,次の図に示します。

図4‒41 UAP障害を検出したあとのHAモニタの動作

[図データ]

注※1

モニタモードのプログラム対応の環境設定のrestartcommandオペランドで指定します。

注※2

モニタモードのプログラム対応の環境設定のexec_retryオペランドで指定します。

注※3

サーバ対応の環境設定のservexec_retryオペランド,またはswitch_errorオペランドで指定します。

注※4

サーバ対応の環境設定のservexec_retryオペランド,またはswitch_retryオペランドで指定します。

(4) 複数プロセス構成のUAPの監視

一つのUAPが複数のプロセスで構成されている場合,複数のプロセスをまとめて一つのUAP(モニタモードのプログラム対応の環境設定に定義されている一つのUAP)として監視することもできます。HAモニタは,hamon_patrolstart関数を発行した,それぞれのプロセスを監視します。監視している複数のプロセスのうち,一つ以上のプロセスで障害が発生すると,UAPが障害になったものと判断します。

なお,hamon_patrolstart関数を発行する複数のプロセスのHAMON_UAPNAME環境変数の値は,同一のプログラム名である必要があります。

複数プロセス構成のUAPで,UAPの稼働報告を監視する場合の例を,次の図に示します。

図4‒42 複数プロセス構成のUAPで,UAPの稼働報告を監視する場合の例

[図データ]