PRIMECLUSTER導入運用手引書 4.2 (Linux版) |
目次 索引 |
第2部 導入編 | > 第6章 クラスタアプリケーションの構築 |
ISVアプリケーションや利用者アプリケーションを、userApplicationの状態遷移に連動して起動/停止するためには、Onlineスクリプト、OfflineスクリプトおよびCheckスクリプトを作成してください。
作成したスクリプトは、Cmdlineリソースに設定して、そのリソースをuserApplicationに設定します。詳細については、"Cmdlineリソースの設定"を参照してください。
Onlineスクリプトは、userApplicationがOnlineまたはStandbyに状態遷移する場合に起動されます。
Offlineスクリプトは、userApplicationがOfflineに状態遷移する場合に起動されます。
Checkスクリプトは、Online/Offlineスクリプトにより起動/停止されるリソースの状態を監視するために用いられます。
ここでは、スクリプトの例と、スクリプト作成時の注意事項を説明します。
Cmdlineリソースの設定では、OnlineスクリプトとOfflineスクリプトを、それぞれStartスクリプトとStopスクリプトとして設定します。以下に、サンプルを示します。
上記のScript.sampleはStartスクリプトとStopスクリプトを兼ねています。
次にCheckスクリプトのサンプルを示します。
以上のスクリプトは、Cmdlineリソースに次のように設定します。
Startスクリプト $FULL_PATH/Script.sample -c
Stopスクリプト $FULL_PATH/Script.sample -u
Checkスクリプト $FULL_PATH/Script.sample.check
設定方法については"Cmdlineリソースの設定"を参照してください。
Cmdlineリソースについてホットスタンバイ運用を行う場合には、次の対応が必要となります。
Online/Offline/Checkスクリプトのホットスタンバイ対応
Cmdlineリソースへの属性の設定
Online/Offline/Checkスクリプトのホットスタンバイ対応
Onlineスクリプト、OfflineスクリプトおよびCheckスクリプトをホットスタンバイ運用に対応した記述にします。 以下にホットスタンバイ運用に対応したOnline/Offlineスクリプトのサンプルを示します。
次にホットスタンバイ運用に対応したCheckスクリプトのサンプルを示します。
Cmdlineリソースへの属性の設定
CmdlineリソースのSTANDBYCAPABLE属性およびALLEXITCODES属性を有効にします。
詳細については、"Cmdlineリソースの設定"を参照してください。
Start/Stopスクリプトの終了コードにより、userApplicationの状態遷移の動作が変わります。以下に終了コードと状態遷移の動作を示します。
0: スクリプトを正常終了させる場合です。
設定されたCmdlineリソースの状態遷移が正常に処理されたとみなされて、userApplicationの状態遷移処理が継続されます。userApplicationに設定された全てのリソースが正常に処理されるとuserApplicationの状態遷移が正常動作したことになります。
0以外 :スクリプトを異常終了させる場合です。
設定されたCmdlineリソースの状態遷移に異常が発生したとみなされて、userApplicationの状態遷移処理が中断します。
Cmdlineリソースの状態は、Checkスクリプトの終了コードにより判断されます。 以下に終了コードとCmdlineリソースの状態の対応を示します。
0: Online状態を示します。
0以外: Offline状態を示します。
CmdlineリソースのALLEXITCODES属性を有効にすると、Checkスクリプトはより詳細なリソース状態を返すことができるようになります。 以下にALLEXITCODES属性が有効な場合の終了コードとCmdlineリソースの状態の対応を示します。
0: Online状態を示します。
1: Offline状態を示します。
2: Faulted状態を示します。
3: Unknown状態を示します。
4: Standby状態を示します。
詳細については"HELP"を参照してください。
指定された時間内にOnlineスクリプトまたはOfflineスクリプトの処理が完了しない場合はタイムアウトとなり、スクリプトの処理はシグナルSIGTERMにより中断され、状態遷移がエラーとなります。
デフォルト:300秒
タイムアウト値は Cmdlineリソースの「TIMEOUT」Flag値で指定可能です。
Cmdlineリソース作成時に、"Cmdline リソースの設定"の"属性の変更"を参照し、適切なタイムアウト値を設定してください。また、Cmdlineリソース使用時にタイムアウトが発生した場合には、"クラスタアプリケーションの変更"によりタイムアウト値を適切な値に変更してください。
OnlineスクリプトおよびOfflineスクリプト実行時には、次の環境変数が設定されます。
設定される環境変数を以下に示します。
環境変数 |
概要 |
---|---|
HV_APPLICATION |
リソースが属している userApplication名が設定されます。 例) app1 |
HV_AUTORECOVER |
AUTORECOVERの値が設定されます。AUTORECOVERについては、"PRIMECLUSTER RMS 導入運用手引書"の"9 付録-属性"を参照してください。 0: Noが設定されている |
HV_FORCED_REQUEST |
オペレータ操作による強制フェイルオーバであるか否かを示す値が設定されます。 0: 強制フェイルオーバではない |
HV_NODENAME |
リソース名 が設定されます。 例) Cmdline0 |
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 |
RMSにはその他にも環境変数が存在します。その他の環境変数については以下のファイルで参照できます。
ファイル名 |
内容 |
---|---|
hvenv |
クラスタ全体で定義する環境変数ファイル |
hvenv.local |
そのノード上でのみ定義する環境変数ファイル |
RMSの環境変数ファイル(hvenv, hvenv.local)の詳細については、"PRIMECLUSTER RMS導入運用手引書"の"2.9 環境変数"を参照してください。
RMSの環境変数の詳細については、"PRIMECLUSTER RMS導入運用手引書"の"10 付録-環境変数"を参照してください。
目次 索引 |