Hitachi

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


6.12.5 ユーザコマンドの作成方法

ここでは,ユーザコマンドの作成方法について説明します。作成したユーザコマンドは,HAモニタの環境設定のusrcommandオペランドに設定してください。

ユーザコマンドは,系で一つ作成します。ユーザコマンドの作成には,C言語やシェル言語などを使用できます。

ユーザコマンド発行時には,HAモニタは,状態が変化したサーバやHAモニタの情報を引数としてユーザコマンドに渡します。そのため一つのファイル内で,HAモニタから渡される引数を使用してサーバの状態変化やHAモニタの状態変化の条件分けをして,各状態変化時にユーザが実行したい処理を記述します。なお,ユーザコマンドはHAモニタの起動コマンド(monstartコマンド)を実行したユーザの実行権限および環境変数を引き継ぎます。必要に応じて,ユーザコマンドの中で動作環境を設定してください。

サーバの状態変化を契機にユーザコマンドを発行する場合,次の点を考慮します。

サーバ種別やサーバ識別名は,ユーザコマンド実行時にHAモニタから引数として渡されます。HAモニタから渡される引数については,「6.12.3 ユーザコマンドの発行形式(サーバの状態変化時)」を参照してください。

重要

ユーザコマンドはHAモニタの処理中に発行されるため,ユーザコマンド内で無限ループなどが発生した場合は,HAモニタの処理を保証できません。ユーザコマンドは,無限ループなどが発生しないように注意して作成してください。ユーザコマンドが無限ループすると,サーバが起動または停止処理中のままになるおそれがあります。

ユーザコマンド内に記述できるコマンド
  • HAモニタのコマンドを,ユーザコマンドから実行できます。

    ただし,HAモニタの開始・終了時(-m start-m end)に発行されるユーザコマンドからは実行できません。

  • 実行サーバと待機サーバ間で,情報を引き継ぐためのコマンドがあります。

    サーバ引き継ぎ情報設定・表示コマンド(moninfoコマンド)を使用すると,任意の情報を実行サーバから待機サーバに引き継げます。また,引き継ぐ情報を参照できます。

これらのコマンドについては,「9. コマンド」を参照してください。

ユーザコマンドの戻り値判定

HAモニタでは,ユーザコマンドの実行結果をチェックしません。HAモニタは,ユーザコマンドの実行結果に関係なく動作します。

ただし,ユーザコマンドの実行結果を判定して,サーバの起動や系切り替えを中止する機能もあります。サーバの起動開始時(-s start)および系切り替え開始時(-w start-a start-h start)に実行されるユーザコマンドについては,サーバ対応の環境設定のuoc_neckオペランドを使用することによって,ユーザコマンドの実行結果(終了コード)が0以外の場合,サーバの起動または系切り替えを中止できます。

HAモニタの処理とユーザコマンドの処理との同期・非同期

HAモニタの処理とユーザコマンドの処理は同期を取って行われます。ただし,次の場合はHAモニタの処理終了とユーザコマンドの終了とが非同期になります。

  • 実行サーバの起動処理終了時(-k online -s end

  • 実行サーバ障害による系切り替え処理終了時(-k standby -a end

  • 計画系切り替えによる系切り替え処理終了時(-k standby -w end

  • 系障害による系切り替え処理終了時(-h end

  • 実行サーバ障害で実行サーバの再起動を待つ場合(-r

  • 実行サーバ障害で再起動限界を検出した場合(-n

  • 系切り替え時の起動リトライオーバを検出した(-t

共有リソースを制御するためのユーザコマンド作成

共有リソースを制御するためのユーザコマンド作成時には,次の点を考慮してください。

  • 実行サーバが起動する前に,共有リソースに接続する。

    実行サーバが共有リソースを使えるようにするため,起動前に共有リソースに接続します。

  • 系間で排他制御が必要なリソースは,実行サーバが停止したあとに切り離す。

    両方の系から同時に接続しないようにするため,実行サーバが停止したあとに切り離します。

  • 必要に応じて,実行サーバから待機サーバに共有リソースの情報を引き継ぐ。

    実行サーバから待機サーバに共有リソースの情報を引き継ぐには,サーバ引き継ぎ情報設定・表示コマンド(moninfoコマンド)を使用できます。