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

E.2 RMSグローバル環境変数

注意

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

  • RMS環境変数のデフォルト値は、<RELIANT_PATH>/bin/hvenvで調べることができます。hvenv.local構成設定ファイルでRMS環境変数を再定義することができます。

このセクションでは、RMSグローバル環境変数について説明します。

HV_AUTOSTARTUP_IGNORE

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

RMSの起動時に無視されるクラスタノードのリスト。デフォルトでは、RMS環境変数は設定されません。AutoStartUp属性を設定してあり、ユーザアプリケーションで定義されているすべてのクラスタノードがOnlineを報告すると、ユーザアプリケーションが自動起動処理を開始します。クラスタノードがこのリストに含まれている場合は、このノードがOnline状態を報告していなくても、自動起動処理が開始されます。

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

注意

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

HV_AUTOSTART_WAIT

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

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

注意

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

HV_CHECKSUM_INTERVAL

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

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

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

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

HV_COM_PORT

設定値: 0 - 65535
デフォルト : 8000

RMSベースモニタがクラスタの全ノードと通信する場合に使用するポート。

HV_LOG_ACTION_THRESHOLD

設定値: 0 - 100
デフォルト : 98

hvlogcontrolがRMS ログファイルを消去する条件を指定します。 RELIANT_LOG_PATHが存在するファイルシステム上で、使用済み容量のパーセントがこのしきい値以上になった場合は、RELIANT_LOG_PATHのサブディレクトリはすべて削除されます。 さらに HV_LOG_ACTION がonに設定されている場合に、すべてのサブディレクトリの削除が完了すると、現在のログファイルも削除されます。 詳細については、"HV_LOG_ACTION"を参照してください。

HV_LOG_WARN_THRESHOLD

設定値: 0 - 100
デフォルト : 95

RMSログファイルの容量につき、hvlogcontrol がどの時点で警告を表示するかを指定します。 RELIANT_LOG_PATHが存在するファイルシステム上で、使用済み容量のパーセントがこのしきい値以上になった場合、hvlogcontrol がユーザに警告を発します。上記HV_LOG_ACTION_THRESHOLDも参照してください。

HV_LOH_INTERVAL

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

userApplication が最後にOnline 状態であったノード (LOH:Last Online Host) を特定するために、タイムスタンプを比較する際の、最小時間差 (秒数) を指定します。本設定はOnlinePriority 属性に1が設定されている場合に使用されます。

2つのクラスタノードにおけるそれぞれの userApplication に記録された LOH タイムスタンプを比較して、その差がこの属性で指定する時間よりも小さかった場合、RMS は自動起動せず、優先順位の変更は行われません。この場合はコンソールにメッセージを送信し、オペレータ介入が必要になります。

この値を設定する場合は、そのクラスタ内部での時刻同期精度を考慮に入れる必要があります。クラスタノード間で発生しうる時間差よりも大きい値を指定してください。

HV_USE_ELM

設定値: 0、1
デフォルト : 1

RMSベースモニタによるハートビート監視モードを指定します。

0-リモートノードとベースモニタの状態は、ネットワークを通じてUDPハートビートパケットを定期的に送信することにより検出されます。HV_CONNECT_TIMEOUTで定義した間隔内にリモートノードからのハートビートが受信されなかった場合、リカバリ期間の経過を待ってからノード停止処理を開始します。

1-ELM (Enhanced Lock Manager) とUDPハートビート方式を組み合わせて使用します。この設定は、CFがインストールされ構成設定が完了している場合にのみ有効です。ELMのロックは、ローカルノードによって取得され、ELMがリモートノードまたはベースモニタのDOWN状態を通知するまで、ローカルノードにより保存されます。リモートノードまたはベースモニタのDOWN状態が通知されたノードは直ちに停止されます。ELMがリモートノードの状態に変化があったことを通知すると、RMSは各ノードのUDPハートビートの監視を開始します。監視の方法は上記と同様ですが、リカバリタイムアウト時間はかなり長く設定されます。

ELMが起動されているかどうかにかかわらず、UDPハートビートが、ハートビートリカバリタイムアウト期間終了前に受信されなければ、リモートノードは停止されます。CFが起動されていない場合、ELMは自動的に停止され、ハートビートリカバリタイムアウトのデフォルト値が45秒に設定されます。CFが起動されている場合は、ELMがデフォルトで起動され、ハートビートリカバリタイムアウトのデフォルト値は、600秒に設定されます。これにより、リモートノードの応答が遅い場合でも、ノードの途中停止を避けることができます。

ELMの手動停止は、専門知識がある場合にのみ行ってください。CFが起動された状態でELMが停止している場合、ハートビートタイムアウトをデフォルト値の600秒で使用すると、間隔が長すぎてリモートのRMSやノードの停止が効率的に検出できません。この場合には、ローカルノードのリカバリタイムアウト値も手動で調整する必要があります。調整するには、hvcm -h <timeout> -c <config_file>コマンドでRMSを起動します。リカバリタイムアウトの設定値は、クラスタ内の全ノードで同じにする必要があります。ELMが停止されている場合の推奨グローバル値は45秒です。

RELIANT_LOG_LIFE

設定値: 任意の日数
デフォルト : 7 (日)

RMSログ情報が保持される日数を指定します。RMSを起動するたびに、RMSを最後に起動した時刻に基づく名前のディレクトリが作成されます。このディレクトリに、すべてのログファイルが入ります。すべてのRMSログファイルはこの方法で保持されます。RELIANT_LOG_PATH 配下のサブディレクトリのうち、更新日時(ctime)がこのRMS環境変数で指定した日数より前のディレクトリは、cronジョブで削除されます。

RELIANT_LOG_PATH

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

すべてのRMSログファイルとRMS Wizard Toolsログファイルが格納されるディレクトリを指定します。内部ログの格納場所は本設定値の変更に影響されません。

RELIANT_PATH

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

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

RELIANT_SHUT_MIN_WAIT

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

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

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

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

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

  2. BM(ベースモニタ) が停止するのに必要な最大時間(30秒)

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

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

ScriptTimeout属性が "timeout_value[:[offline_value][:online_value]]" 形式の場合、offline_value があれば offline_value タイムアウト値、offline_value がなければ timeout_value タイムアウト値を使用してください。

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

注意

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