ページの先頭行へ戻る
PRIMECLUSTER 活用ガイド<クラスタ構築・運用時の留意点>

B.1 グローバル環境変数

グローバル環境変数は、クラスタ全体で定義する環境変数です。クラスタ内のすべてのノードで同じ設定にする必要があります。
hvenv.local コマンドファイルで環境変数を再定義することができます。

注意

グローバル環境変数(ENV)の設定は、クラスタシステムで共通な構成定義のチェックサムでも検証されます。チェックサムは BM(ベースモニタ)の起動時に各ノードで検証され、いずれかのノードでチェックサムが異なっていると、RMS の起動は失敗します。

HV_AUTOSTARTUP_IGNORE

設定値:

RMS クラスタノードのリスト。RMS クラスタノードのリスト内のノード名は、RMS 構成定義ファイルに記載された SysNode の名前であることが必要です。リストに CF 名を含めることはできません。

デフォルト :

""未設定

RMS の起動時に無視されるクラスタノードのリスト。デフォルトでは、この環境変数は設定されません。AutoStartUp 属性を設定してあり、userApplication で定義されているすべてのクラスタノードが Online を報告すると、userApplication が自動起動処理を開始します。

クラスタノードがこのリストに含まれている場合は、このノードが Online 状態を報告していなくても、自動起動処理が開始されます。

1つ以上のクラスタノードを一定期間クラスタから削除する必要があり、削除されたクラスタノードを指定する構成定義ファイルを RMS が使用し続ける場合に、この環境変数を使用します。この場合、この環境変数で使用不能なクラスタノードを指定すると、使用不能なクラスタノードが Online を報告しなくても、すべての userApplication が自動的にオンラインになります。

注意

この環境変数を使用する場合は、すべてのクラスタノード上で正しく定義し、常に最新の値に設定する必要があります。ノードをクラスタに戻すときは、この環境変数からそのノードを削除します。ノードを環境変数から削除しないと、RMS は起動処理中にこのノードを無視し、このリストで指定されているノードでアプリケーションが稼動しているかどうかをチェックしないので、データが失われる場合があります。この環境変数を使用する場合は、システム管理者がこのリストを最新の状態に保つ必要があります。


HV_AUTOSTART_WAIT

設定値: 0 - MAXINT
デフォルト :60(秒)

RMS の起動時にクラスタノードが Online を報告するまでの待ち時間を(秒数で)指定します。この時間が過ぎて、すべてのクラスタノードがオンラインにならないと、Online を報告しないクラスタノード、および userApplication を自動的に起動できない理由が、switchlog メッセージによって報告されます。

注意

この属性は警告メッセージです。AutoStartUp は、指定された時間の経過後も処理を継続します。


HV_CHECKSUM_INTERVAL

設定値: 0 - MAXINT
デフォルト : 120(秒)

各 Online ノードのチェックサムとローカルチェックサムが同じであると確認されるまで RMS BM(ベースモニタ)が待つ時間(秒数)。

この時間内にチェックサムが確認されると、ローカルノード上の RMS が通常どおり動作し続けます。一方、リモートノードのチェックサムが確認されない場合、または異なるチェックサムが確認された場合、HV_CHECKSUM_INTERVAL の今回の待機時間中に起動されたローカルモニタはシャットダウンします。

また、リモートノードのチェックサムが確認されない場合、または異なるチェックサムが確認された場合、HV_CHECKSUM_INTERVAL の今回の待機時間より前に起動されていたローカルモニタはこのリモートノードを Offline と認識します。


HV_LOH_INTERVAL

設定値: 0 - MAXINT
デフォルト : 30

userApplication が最後にOnline 状態であったノード(LOH:Last Online Host)を特定するために、タイムスタンプを比較する際の、最小時間差を指定( 秒数)を指定します。本設定はOnlinePriority 属性が設定されている場合に使用されます。
2 つのクラスタノードにおけるそれぞれの userApplication に記録された LOH タイムスタンプを比較して、その差がこの属性で指定する時間よりも小さかった場合、RMS は自動起動せず、優先順位の変更は行われません。この場合はコンソールにメッセージを送信し、オペレータ介入が必要になります。
この値を設定する場合は、そのクラスタ内部での時刻同期精度を考慮に入れる必要があります。クラスタノード間で発生しうる時間差よりも大きい値を指定してください。


HV_WAIT_CONFIG

設定値: 0 - MAXINT
デフォルト : 120(秒)

RMS が hvcm -c で起動された場合に、Online ノードから構成定義ファイルを受信するまで RMS が待つ時間(秒数)。構成定義ファイルが HV_WAIT_CONFIG 秒以内に受信されなかった場合は、ローカルモニタは RELIANT_BUILD_PATH で指定された構成定義ファイルを使って実行を開始します。このファイルが存在しない場合、ローカルモニタは最小構成で実行を継続します。


RELIANT_PATH

設定値: 任意の有効なパス
デフォルト : /opt/SMAW/SMAWRrms

RMS ディレクトリ階層のルートディレクトリを指定します。通常は、利用者がデフォルト設定を変更する必要はありません。


RELIANT_SHUT_MIN_WAIT

設定値: 0-MAXINT
デフォルト
PRIMECLUSTER 4.1A20以前: 150(秒)
PRIMECLUSTER 4.1A30以降4.3A00以前: 900(秒)
PRIMECLUSTER 4.3A10以降(Solaris版): MAXINT(秒)
PRIMECLUSTER 4.3A10以降(Linux版): 900(秒)

hvshut コマンドがタイムアウトするまでの時間を秒数で指定します。

hvshut コマンドが -l、-s、-a のいずれかのオプションで実行されると、RMS は起動状態のクラスタアプリケーションのオフライン処理を行った後、RMS の停止処理を行います。

そのため、RELIANT_SHUT_MIN_WAIT には、以下を合計した時間を設定してください。

  1. クラスタアプリケーションのオフライン処理が終了するのに必要な最大時間

  2. RMS が停止するのに必要な最大時間(30 秒)

1. の値には、クラスタアプリケーションに含まれる、すべてのリソースのスクリプトタイムアウト時間の合計値を使用してください。

各リソースのスクリプトタイムアウト時間は、リソース名を引数にした hvdisp コマンドの実行により、OfflineScript 属性が空でないリソースの ScriptTimeout 属性の設定値(秒数)で確認できます。

クラスタアプリケーションが複数存在する場合は、クラスタアプリケーションごとにリソースのスクリプトタイムアウト時間を合計した値のうち、最も大きい値を使用してください。

注意

RELIANT_SHUT_MIN_WAIT の値を大きくすることにより、クラスタアプリケーションのオフライン処理の遅延やハングが発生した場合に以下のような影響があります。

  • RMS の停止や OS シャットダウンの処理に、RELIANT_SHUT_MIN_WAIT の設定値以上の時間がかかる可能性があります。

  • RMS の停止や OS シャットダウンによる、クラスタアプリケーションの自動切替えの処理に、RELIANT_SHUT_MIN_WAIT の設定値以上の時間がかかる可能性があります。

RELIANT_SHUT_MIN_WAIT の値が大きすぎる場合は、前述の 1. の値には、想定されるクラスタアプリケーションのオフライン処理がタイムアウトするケースのうち、タイムアウトまでにかかる時間が最も長いと見込まれるケースの処理時間を使用してください。

ただし、RELIANT_SHUT_MIN_WAIT の値が小さすぎると、クラスタアプリケーションのオフライン処理が終了する前に hvshut コマンドがタイムアウトする現象が頻発するおそれがあります。このため、RELIANT_SHUT_MIN_WAIT のチューニングは慎重に行ってください。

注意

hvshut コマンドがタイムアウトした場合の RMS の動作は、PRIMECLUSTER のバージョンによって以下のように異なります。

  • PRIMECLUSTER 4.1A20以前

    hvshut コマンドはタイムアウトにより異常終了しますが、RMS はクラスタアプリケーションのオフライン処理と自分自身の停止処理を続行します。

  • PRIMECLUSTER 4.1A30以降

    hvshut コマンドのタイムアウト時に RMS は異常終了します。このとき、リソースが停止せず起動したままになる場合があります。

    この状態にて、他のノードで RMS を起動し、クラスタアプリケーションを強制的に起動すると、リソースが複数ノード上で同時に起動している状態となり、リソースで共用ディスクの制御を行っている場合、データ破壊が発生するおそれがあります。このため、hvshut コマンドがタイムアウトした場合は、 RMS が異常終了したノードの OS をシャットダウン、またはノードを強制停止することで確実にリソースを停止させてから、RMSとクラスタアプリケーションを起動してください。