6.20.1 LANの監視に必要なファイルの設定
LANを監視して障害時に自動的に系切り替えをする場合,LANの監視設定ファイルを作成して設定する必要があります。LANの監視設定ファイルの種類を,次に示します。
-
LAN監視定義ファイル(LANインタフェース名称.conf)
監視対象ごとに設定し,LANを監視するための確認用パケット送出先のIPアドレスを指定します。
-
LAN監視スクリプト(lanpatrol.sh)
ping応答または受信パケット数を監視する方法で,LANを監視する場合に設定します。監視対象がhbondingで,hbondingのステータスだけを監視する場合には設定不要です。
これらのファイルは,サーバごとにHAモニタの環境設定用ディレクトリの下に作成します。ここでは,LANの監視設定ファイルの設定方法について説明します。
LANの監視については,「3.4.1 LANの監視および障害時の自動系切り替え」を参照してください。
- 〈この項の構成〉
(1) LAN監視定義ファイルの設定
LAN監視定義ファイルには,LANを監視するための確認用パケット送出先のIPアドレスを設定します。hbondingのステータスだけを監視する場合,LAN監視定義ファイルは空(0バイト)にします。
このファイルは監視対象ごとに,HAモニタを起動する前に設定しておく必要があります。HAモニタの稼働中に追加・変更・削除はできません。
設定するファイル名は,"LANインタフェース名称.conf"です。ファイル名の"LANインタフェース名称"の部分には,サーバ対応の環境設定のswitchbyfailオペランドの指定値と同じ値を指定します。また,先頭に"."(ピリオド)を指定すると,ファイルが無効になります。
LAN監視定義ファイルの作成規則を,次に示します。
-
1行につき,一つのIPアドレスまたはIPラベルを記述します。
IPアドレスには,監視対象のLANインタフェースと同じネットワーク上にある,常時通電されているリモートホスト(ルータなど)のIPアドレスを指定します。自ノードで使用するIPアドレスは指定できません。IPラベルを指定した場合,ホスト名の解決に時間が掛かることがあります。このため,IPアドレスを記述することをお勧めします。
-
受信パケット数を監視する場合,リモートホストのIPアドレスに加え,ペアとなるHAモニタがある系のIPアドレスを必ず記述します。
-
ファイル内にコメントは記述できません。
-
同一IPアドレス,またはIPラベルを重複して記述できません。
-
タブ,スペース,改行文字がIPアドレスまたはIPラベルの前後に指定されている場合は,タブ,スペース,改行文字を無視します。
-
指定できるIPアドレスまたはIPラベルの数は,ping応答を監視する場合は1〜1,024個,受信パケット数を監視する場合は2〜1,024個です。
LAN監視定義ファイルにIPラベルを設定する場合は,各IPアドレスとそれに対応するIPラベルを,/etc/hostsファイルに指定してください。
なお,HAモニタの環境設定用ディレクトリには,LAN監視定義ファイル以外に,拡張子が".conf"のファイルを作成しないでください。
LAN監視定義ファイルの例を,次に示します。この例では,LANインタフェース名称が"eth0",物理IPアドレスが"192.168.0.1",ネットワークが"192.168.0"です。
- ファイル名:eth0.conf
-
192.168.0.2 192.168.0.3 192.168.0.4
(2) LAN監視スクリプトの設定
ping応答または受信パケット数を監視する方法でLANを監視する場合に設定します。設定するファイル名は,"lanpatrol.sh"です。監視対象がhbondingで,hbondingのステータスだけを監視する場合には設定不要です。
このファイルは,HAモニタのサンプルファイル用ディレクトリの下に,サンプルファイルが用意されています。HAモニタ環境設定用ディレクトリの下にコピーして使用してください。サンプルファイルの内容を,次に示します。
#!/bin/sh #****************************************************************************** #* * #* Linux(x86) HA Monitor * #* This is a sample of the LAN patrol command. * #* * #* [SYNOPSIS] * #* lanpatrol.sh interface [-r] * #* [OPTIONS] * #* interface * #* The name of the LAN interface. * #* -r * #* Route monitoring method * #* [DIAGNOSTICS] * #* 0 : normal * #* 1 : abnormal * #* 2 : error * #* * #* All Rights Reserved. Copyright (C) 2011, 2018, Hitachi, Ltd. * #* * #****************************************************************************** #set -x # retry interval(seconds) for receive packet number method. or # return wait(seconds) of ping command for route monitoring method. WAIT_TIME=3 # retry counter RETRY=3 # environment variables PATH=/usr/bin:/usr/sbin:/bin export PATH : (以降省略)
- 注意事項
-
HAモニタ01-69より前のバージョンのサンプルファイルを基にLAN監視スクリプトを作成する場合,HAモニタの環境設定のlancheck_modeオペランドの指定に関係なく,受信パケット数を監視します。
サンプルファイルのバージョンの確認方法は,次のとおりです。
-
[OPTIONS]に"-r"の説明がない:01-69より前のバージョン
-
[OPTIONS]に"-r"の説明がある:01-69以降のバージョン
-
このファイルで設定するスクリプトの動作は,監視方法によって異なります。それぞれの動作を次に示します。
- ping応答を監視する場合
-
LAN監視定義ファイルに設定されたIPアドレスすべてに対して,WAIT_TIME環境変数に指定した時間(秒)を待ち時間にして,pingコマンドを並列に発行します。並列に発行したすべてのpingコマンドの戻り値を確認し,1つでも戻り値0があれば,LANは正常と判断します。一方で,戻り値0が1つもなければ,LAN 監視定義ファイルに設定されたIPアドレスすべてに対して,pingコマンドの発行をリトライします。リトライ回数はRETRY環境変数で設定できます。リトライした結果,戻り値0が1つもなければ,異常と判断します。
- 受信パケット数を監視する場合
-
-
LAN監視定義ファイルに設定されたIPアドレスに対して,pingコマンドを発行します。
-
WAIT_TIME環境変数に指定した時間(秒)を経過すると,監視対象のLANインタフェースの受信パケット数を複数回取得し,前回取得したときの結果と比較します。
比較した結果が一致していなければLANが正常であると判断し,一致していればpingコマンド発行と受信パケットを取得する処理をリトライします。リトライ回数は,RETRY環境変数に設定できます。リトライした結果,パケット数が変化しなければ異常と判断します。
-
LAN監視スクリプトのコマンドラインは,監視方法によって異なります。それぞれのコマンドラインを次に示します。
- ping応答を監視する場合
-
lanpatrol.sh△LANインタフェース名称△-r
- 受信パケット数を監視する場合
-
lanpatrol.sh△LANインタフェース名称
- (凡例)
-
△:半角スペースを示します。
サンプルファイルは,必要に応じて修正することもできます。サンプルファイルをそのまま使用する場合とサンプルファイルを修正する場合とに分けて,注意事項を以降に説明します。
(a) サンプルファイルをそのまま使用する場合
サンプルファイルをそのまま使用し,かつHAモニタの環境設定のlancheck_patrolオペランドの値をデフォルト(15)よりも小さくする場合,LAN監視スクリプトの実行時間を短くする必要があります。LAN監視スクリプトの実行時間は,次の計算式を満たすように設定します。
lancheck_patrolオペランドの指定値>LAN監視スクリプトの実行時間+2
LAN監視スクリプトの実行時間は,監視方法によって異なります。それぞれ,次の計算式で求めます。
- ping応答を監視する場合
-
WAIT_TIME変数の値×RETRY変数の値
サンプルファイルでは,LAN監視スクリプトの実行時間は,3×3=9秒となります。
- 受信パケット数を監視する場合
-
(WAIT_TIME変数の値+1)×RETRY変数の値
サンプルファイルでは,LAN監視スクリプトの実行時間は,(3+1)×3=12秒となります。
LAN監視スクリプトの実行時間を短くする場合は,WAIT_TIME変数,またはRETRY変数の値を小さくしてください。WAIT_TIME変数の最小値は0,RETRY変数の最小値は1です。
- メモ
-
受信パケット数を監視する場合,LAN監視スクリプト中で実行するpingコマンドに掛かる時間は1秒です。これにWAIT_TIME変数で指定した時間を加えた時間が,受信パケットの監視に掛かる時間となります。受信パケットの監視は,RETRY変数で指定した回数分繰り返されます。したがって,受信パケットの監視時間にRETRY変数の回数を掛けた値が,LAN監視スクリプトの実行時間になります。
(b) サンプルファイルを修正する場合
サンプルファイルを修正する場合の注意事項を,次に示します。
-
LAN監視スクリプトは,root権限で実行されます。
-
LAN監視スクリプトには,実行権限を付与してください。
-
LAN監視スクリプト内で,必要な環境変数があれば設定してください。
-
LAN監視スクリプトは,監視対象のLANの状態に応じて,次の表に示すEXITコードで終了するように作成してください。
表6‒20 LANの状態に応じて返すEXITコード 監視対象のLANの状態
EXITコード
説明
正常
0
LANを正常に使用できると判断した場合は,EXITコード0を返します。HAモニタは,LANが正常,または復旧したと判断します。
障害
1
LANを使用できないと判断した場合は,EXITコード1を返します。HAモニタは,LANに異常が発生したと判断します。サーバ対応の環境設定のswitchbyfailオペランドに該当するLANインタフェースを指定している場合,実行サーバの系切り替えをします。
監視不可
0または1以外
LANの状態が判断できない場合は,0または1以外のEXITコードを返します。HAモニタは,LANの監視ができないため,サーバ対応の環境設定のswitchbyfailオペランドに該当するLANインタフェース名称を指定していても実行サーバの系切り替えをしません。
-
HAモニタの正常終了時,およびLANの通信可否による系切り替え制御機能を使用している場合の系障害検知時には,実行中のLAN監視スクリプトにSIGTERMを送信します。