ISVアプリケーションや利用者アプリケーションを、userApplicationの状態遷移に連動して起動/停止するためには、Onlineスクリプト、OfflineスクリプトおよびCheckスクリプトを作成してください。
作成したスクリプトは、Cmdlineリソースに設定して、そのリソースをuserApplicationに設定します。詳細については、“6.7.1.1 Cmdlineリソースの作成”を参照してください。
Onlineスクリプトは、userApplicationがOnlineまたはStandbyに状態遷移する場合に起動されます。
Offlineスクリプトは、userApplicationがOfflineに状態遷移する場合に起動されます。
Checkスクリプトは、Online/Offlineスクリプトにより起動/停止されるリソースの状態を監視するために用いられます。
ここでは、スクリプトの例と、スクリプト作成時の注意事項を説明します。
注意
Onlineスクリプト、Offlineスクリプト、およびCheckスクリプトでは、サーバ毎の設定 (”/etc/profile”等)である環境変数の値が受継がれることを保証していません。このため、これらのスクリプトで使用する環境変数は各スクリプトの中で定義してください。
Cmdlineリソースの設定では、OnlineスクリプトとOfflineスクリプトを、それぞれStartスクリプトとStopスクリプトとして設定します。以下に、サンプルを示します。
図6.1 Startスクリプト/Stopスクリプト
上記のScript.sampleはStartスクリプトとStopスクリプトを兼ねています。
次にCheckスクリプトのサンプルを示します。
図6.2 Checkスクリプト
以上のスクリプトは、Cmdlineリソースに次のように設定します。
Startスクリプト $FULL_PATH/Script.sample -c
Stopスクリプト $FULL_PATH/Script.sample -u
Checkスクリプト $FULL_PATH/Script.sample.check
設定方法については“6.7.1.1 Cmdlineリソースの作成”を参照してください。
●ホットスタンバイ運用の場合
Cmdlineリソースについてホットスタンバイ運用を行う場合には、次の対応が必要となります。
Online/Offline/Checkスクリプトのホットスタンバイ対応
Cmdlineリソースへの属性の設定
Online/Offline/Checkスクリプトのホットスタンバイ対応
Onlineスクリプト、OfflineスクリプトおよびCheckスクリプトをホットスタンバイ運用に対応した記述にします。 以下にホットスタンバイ運用に対応したOnline/Offlineスクリプトのサンプルを示します。
図6.3 Startスクリプト/Stopスクリプト(ホットスタンバイ運用)
次にホットスタンバイ運用に対応したCheckスクリプトのサンプルを示します。
図6.4 Checkスクリプト(ホットスタンバイ運用)
Cmdlineリソースへの属性の設定
CmdlineリソースのSTANDBYCAPABLE属性およびALLEXITCODES属性を有効にします。
詳細については、“6.7.1.1 Cmdlineリソースの作成”を参照してください。
●Start/Stopスクリプトの終了コードについて
Start/Stopスクリプトの終了コードにより、userApplicationの状態遷移の動作が変わります。以下に終了コードと状態遷移の動作を示します。
設定されたCmdlineリソースの状態遷移が正常に処理されたとみなされて、userApplicationの状態遷移処理が継続されます。userApplicationに設定された全てのリソースが正常に処理されるとuserApplicationの状態遷移が正常動作したことになります。
設定されたCmdlineリソースの状態遷移に異常が発生したとみなされて、userApplicationの状態遷移処理が中断します。
●Checkスクリプトの終了コードについて
Cmdlineリソースの状態は、Checkスクリプトの終了コードにより判断されます。 以下に終了コードとCmdlineリソースの状態の対応を示します。
CmdlineリソースのALLEXITCODES属性を有効にすると、Checkスクリプトはより詳細なリソース状態を返すことができるようになります。 以下にALLEXITCODES属性が有効な場合の終了コードとCmdlineリソースの状態の対応を示します。
詳細については“HELP”を参照してください。
●タイムアウトについて
指定された時間内にOnlineスクリプトまたはOfflineスクリプトの処理が完了しない場合はタイムアウトとなり、スクリプトの処理はシグナルSIGTERMにより中断され、状態遷移がエラーとなります。
デフォルト:300秒
タイムアウト値は Cmdlineリソースの「TIMEOUT」Flag値で指定可能です。
Cmdlineリソース作成時に、“6.7.1.1 Cmdlineリソースの作成”の“●CmdlineのFlag設定方法”で適切なタイムアウト値を設定してください。また、Cmdlineリソース使用時にタイムアウトが発生した場合には、“10.6.2 リソースやリソースで使用するインタフェースの属性変更”によりタイムアウト値を適切な値に変更してください。
OnlineスクリプトおよびOfflineスクリプト実行時には、次の環境変数が設定されます。
設定される環境変数を以下に示します。
環境変数 | 概要 |
---|---|
HV_APPLICATION | リソースが属している userApplication名が設定されます。 例) app1 |
HV_AUTORECOVER | スクリプトの呼び出しがAutoRecoverに起因するかどうかの情報が設定されます。AutoRecoverについては、“PRIMECLUSTER RMS 導入運用手引書”の“12 付録-属性”を参照してください。 |
HV_FORCED_REQUEST | オペレータ操作による強制フェイルオーバであるか否かを示す値が設定されます。 0: 強制フェイルオーバではない |
HV_NODENAME | リソース名 が設定されます。 例) ManageProgram000_Cmd_APP1、RunScriptsAlways000_Cmd_APP1 |
HV_OFFLINE_REASON | リソースが Offline状態になる理由が設定されます。 SWITCH:userApplicationの切替え要求(hvswitch)でOfflineになった |
HV_SCRIPT_TYPE | 実行されたスクリプトの種類が設定されます。 Online: Onlineスクリプト |
HV_LAST_DET_REPORT | 現在のリソースの状態が設定されます。 Online : Online状態 |
HV_INTENDED_STATE | 状態遷移完了後に予期されるリソースの状態が設定されます。 Online : Online状態 |
NODE_SCRIPTS_TIME_OUT | スクリプトのタイムアウト時間(秒)が設定されます。 例) 300 |
Check スクリプト実行時には、上記の表のうち、次の環境変数が設定されます。
HV_APPLICATION
HV_NODENAME
参照
hvenv.local の詳細については、“PRIMECLUSTER RMS 導入運用手引書”の“2.9 環境変数”を参照してください。
RMSの環境変数の詳細については、“PRIMECLUSTER RMS 導入運用手引書”の“13 付録 - 環境変数”を参照してください。