ページの先頭行へ戻る
PRIMECLUSTER 導入運用手引書 4.3

6.6 Online/Offlineスクリプトの設定

ISVアプリケーションや利用者アプリケーションを、userApplicationの状態遷移に連動して起動/停止するためには、Onlineスクリプト、OfflineスクリプトおよびCheckスクリプトを作成してください。

作成したスクリプトは、Cmdlineリソースに設定して、そのリソースをuserApplicationに設定します。詳細については、“6.7.1.1 Cmdlineリソースの作成”を参照してください。

ここでは、スクリプトの例と、スクリプト作成時の注意事項を説明します。

■サンプルスクリプト

Cmdlineリソースの設定では、OnlineスクリプトとOfflineスクリプトを、それぞれStartスクリプトとStopスクリプトとして設定します。以下に、サンプルを示します。

図6.1 Startスクリプト/Stopスクリプト

上記のScript.sampleはStartスクリプトとStopスクリプトを兼ねています。
次にCheckスクリプトのサンプルを示します。

図6.2 Checkスクリプト

以上のスクリプトは、Cmdlineリソースに次のように設定します。

設定方法については“6.7.1.1 Cmdlineリソースの作成”を参照してください。

■スクリプト作成時の注意事項

●ホットスタンバイ運用の場合

Cmdlineリソースについてホットスタンバイ運用を行う場合には、次の対応が必要となります。

  1. Online/Offline/Checkスクリプトのホットスタンバイ対応

    Onlineスクリプト、OfflineスクリプトおよびCheckスクリプトをホットスタンバイ運用に対応した記述にします。 以下にホットスタンバイ運用に対応したOnline/Offlineスクリプトのサンプルを示します。

    図6.3 Startスクリプト/Stopスクリプト(ホットスタンバイ運用)

    次にホットスタンバイ運用に対応したCheckスクリプトのサンプルを示します。

    図6.4 Checkスクリプト(ホットスタンバイ運用)

  2. Cmdlineリソースへの属性の設定

    CmdlineリソースのSTANDBYCAPABLE属性およびALLEXITCODES属性を有効にします。

    詳細については、“6.7.1.1 Cmdlineリソースの作成”を参照してください。

●Start/Stopスクリプトの終了コードについて

Start/Stopスクリプトの終了コードにより、userApplicationの状態遷移の動作が変わります。以下に終了コードと状態遷移の動作を示します。

0: スクリプトを正常終了させる場合です。

設定されたCmdlineリソースの状態遷移が正常に処理されたとみなされて、userApplicationの状態遷移処理が継続されます。userApplicationに設定された全てのリソースが正常に処理されるとuserApplicationの状態遷移が正常動作したことになります。

0以外 :スクリプトを異常終了させる場合です。

設定されたCmdlineリソースの状態遷移に異常が発生したとみなされて、userApplicationの状態遷移処理が中断します。

Checkスクリプトの終了コードについて

Cmdlineリソースの状態は、Checkスクリプトの終了コードにより判断されます。 以下に終了コードとCmdlineリソースの状態の対応を示します。

0: Online状態を示します。
0以外: Offline状態を示します。

CmdlineリソースのALLEXITCODES属性を有効にすると、Checkスクリプトはより詳細なリソース状態を返すことができるようになります。 以下にALLEXITCODES属性が有効な場合の終了コードとCmdlineリソースの状態の対応を示します。

0: Online状態を示します。
1: Offline状態を示します。
2: Faulted状態を示します。
3: Unknown状態を示します。
4: Standby状態を示します。
5: Onlinewarning状態を示します。
6: Offlinefaulted状態を示します。

詳細については“HELP”を参照してください。

●タイムアウトについて

指定された時間内にOnlineスクリプトまたはOfflineスクリプトの処理が完了しない場合はタイムアウトとなり、スクリプトの処理はシグナルSIGTERMにより中断され、状態遷移がエラーとなります。

デフォルト:300秒

タイムアウト値は Cmdlineリソースの「TIMEOUT」Flag値で指定可能です。

Cmdlineリソース作成時に、“6.7.1.1 Cmdlineリソースの作成”の“●CmdlineのFlag設定方法”で適切なタイムアウト値を設定してください。また、Cmdlineリソース使用時にタイムアウトが発生した場合には、“8.1.3 リソースの変更”によりタイムアウト値を適切な値に変更してください。

●環境変数

OnlineスクリプトおよびOfflineスクリプト実行時には、次の環境変数が設定されます。

設定される環境変数を以下に示します。

環境変数

概要

HV_APPLICATION

リソースが属している userApplication名が設定されます。

例) app1

HV_AUTORECOVER

スクリプトの呼び出しがAutoRecoverに起因するかどうかの情報が設定されます。AutoRecoverについては、“PRIMECLUSTER RMS 導入運用手引書”の“11 付録-属性”を参照してください。
0: AutoRecoverに起因しない
1: AutoRecoverに起因する

HV_FORCED_REQUEST

オペレータ操作による強制フェイルオーバであるか否かを示す値が設定されます。

0: 強制フェイルオーバではない
1: 強制フェイルオーバである

HV_NODENAME

リソース名 が設定されます。

例) Cmdline0

HV_OFFLINE_REASON

リソースが Offline状態になる理由が設定されます。

SWITCH:userApplicationの切替え要求(hvswitch)でOfflineになった
STOP:userApplicationの停止要求(hvutil -f)でOfflineになった
FAULT:リソース故障でOfflineになった
DEACT:userApplicationの非活性要求(hvutil -d)でOfflineになった
SHUT:RMSの停止要求(hvshut)でOfflineになった

HV_SCRIPT_TYPE

実行されたスクリプトの種類が設定されます。

Online: Onlineスクリプト
Offline: Offlineスクリプト

HV_LAST_DET_REPORT

現在のリソースの状態が設定されます。

Online : Online状態
Offline : Offline状態
Standby : Standby状態
Faulted : Faulted状態
Warning : Warning状態

HV_INTENDED_STATE

状態遷移完了後に予期されるリソースの状態が設定されます。

Online : Online状態
Offline : Offline状態
Standby : Standby状態
Faulted : Faulted状態
Warning : Warning状態

NODE_SCRIPTS_TIME_OUT

スクリプトのタイムアウト時間(秒)が設定されます。

例) 300

Check スクリプト実行時には、上記の表のうち、次の環境変数が設定されます。

RMSにはその他にも環境変数が存在します。その他の環境変数については以下のファイルで参照できます。

ファイル名

内容

hvenv

クラスタ全体で定義する環境変数ファイル

hvenv.local

そのノード上でのみ定義する環境変数ファイル

参照

  • RMSの環境変数ファイル(hvenv, hvenv.local)の詳細については、“PRIMECLUSTER RMS導入運用手引書”の“2.9 環境変数”を参照してください。

  • RMSの環境変数の詳細については、“PRIMECLUSTER RMS導入運用手引書”の“12 付録-環境変数”を参照してください。