PRIMECLUSTER 活用ガイド <クラスタ構築・運用時の留意点> (Solaris(TM)オペレーティングシステム/Linux版) |
目次
索引
![]() ![]() |
第1部 設計・構築編 | > 第3章 Cmdline リソース設定時の注意点 | > 3.2 スクリプト作成時の注意事項 |
ホットスタンバイ運用以外の Start スクリプト、Stop スクリプトの例を以下に示します。
下記のスクリプト $FULL_PATH/script.sample は、以下の動作と設定を想定した例です。
[設定]
Start スクリプト $FULL_PATH/Script.sample -c
Stop スクリプト $FULL_PATH/Script.sample -u
[属性]
STANDBYCAPABLE: No
AUTORECOVER: No
CLUSTEREXCLUSIVE: Yes
NULLDETECTOR: No
MONITORONLY: No(Solaris では指定できず)
[動作]
表3.2. にしたがい、待機系/運用系での動作を共通とした場合の例です。Start スクリプトと記載してある箇所は待機系と運用系で同じ処理が実行されます。同様に、Stop スクリプトと記載してある場所も同じ処理が実行されます。
上記以外の動作を想定する場合は、環境変数/属性を参照の上、適宜変更してください。
設定方法については、OS ごとに異なります。それぞれの "PRIMECLUSTER 導入運用手引書" を参照してください。
また、以下のサンプル $FULL_PATH/Script は、ホットスタンバイ運用に対応した下記の動作と設定を想定した例です。
[設定]
Start スクリプト $FULL_PATH/Script.sample -c
Stop スクリプト $FULL_PATH/Script.sample -u
[属性]
STANDBYCAPABLE: Yes
AUTORECOVER: No
CLUSTEREXCLUSIVE: Yes
ALLEXITCODES: Yes
NULLDETECTOR: No
MONITORONLY: No(Solaris では指定できず)
[動作]
表 3.3. にしたがい、Start スクリプトは、Offline 状態から Stanby 状態への遷移と Offline 状態から Online 状態への遷移を区別する場合の例です。
また、Stop スクリプトは、Standby 状態から Offline 状態への遷移と、Online 状態から Offline 状態への遷移を区別する例です。
上記以外の動作を想定する場合は、環境変数/属性を参照の上、適宜変更してください。
Start スクリプトおよび Stop スクリプト実行時には、次の環境変数が設定されます。スクリプト内でこれらの環境変数を参照することができます。
設定される環境変数を表 3.4 に示します。
環境変数 |
概要 |
---|---|
HV_APPLICATION |
リソースが属している userApplication 名が設定されます。 例) app1 |
HV_AUTORECOVER |
AUTORECOVER の値が設定されます。 0: No が設定されている AUTORECOVER については、"表3.1 Cmdlineリソースの属性" を参照してください。 |
HV_FORCED_REQUEST |
オペレータ操作による強制フェイルオーバであるか否かを示す値が設定されます。 0: 強制フェイルオーバではない |
HV_NODENAME |
リソース名 が設定されます。 例) Cmdline0 |
HV_OFFLINE_REASON |
リソースが Offline 状態になる理由が設定されます。 SWITCH:userApplication の切替え要求(hvswitch)で Offline になった |
HV_SCRIPT_TYPE |
実行されたスクリプトの種類が設定されます。 Online: Start スクリプト |
HV_LAST_DET_REPORT |
現在のリソースの状態が設定されます。 Online : Online 状態 |
HV_INTENDED_STATE |
状態遷移完了後に予期されるリソースの状態が設定されます。 Online : Online 状態 |
NODE_SCRIPTS_TIME_OUT |
スクリプトのタイムアウト時間(秒)が設定されます。 例) 300 |
RMS にはその他にも環境変数が存在します。その他の環境変数については以下のファイルで参照できます。
ファイル名 |
内容 |
---|---|
hvenv |
クラスタ全体で定義する環境変数ファイル |
hvenv.local |
そのノード上でのみ定義する環境変数ファイル |
hvenv.local ファイルはデフォルトでは存在しません。ノード上でのみ環境変数を定義する場合は、hvenv.local ファイルを作成してください。
RMS の環境変数ファイル(hvenv, hvenv.local)の詳細については、"PRIMECLUSTER RMS 導入運用手引書"を参照してください。
RMS の環境変数の詳細については、"付録 B RMS 環境変数一覧"を参照してください。
Start/Stop スクリプトの終了コードにより、userApplication の状態遷移の動作が変わります。以下に終了コードと状態遷移の動作を示します。
0 : スクリプトを正常終了させる場合です。
設定された Cmdline リソースの状態遷移が正常に処理されたとみなされて、userApplication の状態遷移処理が継続されます。userApplication に設定されたすべてのリソースが正常に処理されると userApplication の状態遷移が正常動作したことになります。
0 以外 :スクリプトを異常終了させる場合です。
設定された Cmdline リソースの状態遷移に異常が発生したとみなされて、userApplication の状態遷移処理が中断します。
NULLDETECTOR フラグを設定した Cmdline リソースを含む userApplication を Online にしようとすると、すでに userApplication が Online であっても NULLDETECTOR フラグを設定した Cmdline リソースのみ、Online スクリプトが必ず実行される仕様になっています。
二重起動による Online 処理の失敗を避けるには、Online スクリプトを改造することで対応できます。
具体的には、以下の処理を追加します。
対象プログラムを起動する前に、すでに対象プログラムが動作中でないかを Online スクリプト内でチェックする。
すでに対象プログラムが動作中の場合は、直ちに Online スクリプトを正常終了させる。
指定された時間内に Start スクリプトまたは Stop スクリプトの処理が完了しない場合はタイムアウトとなり、スクリプトの処理はシグナル SIGTERM により中断され、状態遷移がエラーとなります。
タイムアウト値は Cmdline リソースの TIMEOUT 属性で指定可能です。デフォルトでは 300 秒に設定されています。
Cmdline リソース作成時に、各スクリプトの処理にかかる最大時間を見積もり、その時間に余裕を持たせた値を設定してください。また、Cmdline リソース使用時にタイムアウトが発生した場合(タイムアウトが発生すると (DET, 5)、(DET, 6) 、(DET, 24)のいずれかのメッセージが出力されます)には、使用する OS ごとに以下のような手順でタイムアウト値を適切な値に変更してください。
Solaris:
userApplication Configuration Wizard の [userApplication や Resource の変更]を選択し、Cmdline リソースの Flag 設定画面で変更します。
詳しい操作については、"PRIMECLUSTER 導入運用手引書(Solaris オペレーティングシステム版)" を参照してください。
Linux:
RMS Wizard のメインメニューから "Application-Edit" を選択し、Cmdline リソースの Flag の内容を変更してください。
詳しい説明については、"PRIMECLUSTER 導入運用手引書(Linux 版)" または "PRIMECLUSTER 導入運用手引書(Linux( Itanium) 版)" を参照してください。
各スクリプトの処理時間は利用者設定属性の ScriptTimeout 値より短くなければなりません。
スクリプトの処理時間が ScriptTimeout 値を超えると、PRIMECLUSTER はリソース異常と判断し、起動処理・停止処理を中断します。
目次
索引
![]() ![]() |