PRIMECLUSTER導入運用手引書 4.2 (Linux版)
目次 索引 前ページ次ページ

第2部 導入編> 第6章 クラスタアプリケーションの構築

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

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

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

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

■サンプルスクリプ

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

[Startスクリプト/Stopスクリプト]

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

[Checkスクリプト]

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

設定方法については"Cmdlineリソースの設定"を参照してください。

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

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

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

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

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

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

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

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

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

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

    詳細については、"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状態を示します。

詳細については"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が設定されている
1: Yesが設定されている

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

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

ファイル名

内容

hvenv

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

hvenv.local

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


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2006