5.13.2 【AWS】LANの状態設定ファイルの設定(1つのリージョン内または1つのVPC内で系切り替えをする構成の場合)
HAモニタでは,LANはサーバ単位に接続,切り離しをします。そのため,LANの状態設定ファイルを作成して設定する必要があります。この項では,1つのリージョン内または1つのVPC内で系切り替えをする構成での,LANの状態設定ファイルの設定方法について説明します。
LANの状態設定ファイルの種類を,次に示します。
- サーバ識別名.upファイル
-
LANを接続する場合に使用します。業務通信の切り替えに関する情報を設定します。
- サーバ識別名.downファイル
-
LANの切り離しをする場合に使用します。業務通信の切り替えに関する情報を設定します。
これらのファイルは,サーバごとにHAモニタの環境設定用ディレクトリの下に作成します。ファイル名のサーバ識別名の部分は,サーバ対応の環境設定のaliasオペランドで指定した値にしてください。
LANの状態設定ファイルには,OSのipコマンドの引数として,LANアダプタに追加・削除するエイリアスIPアドレスを指定します。OSのコマンドについては,OSのマニュアルを参照してください。
AWS用シェルスクリプト群を展開すると,AWS用のLANの状態設定ファイルのサンプルファイルが,/opt/hitachi/HAmon/lib配下に配置されます。AWS用シェルスクリプト群の展開については,「5.7 【AWS】AWS用のシェルスクリプト群の展開」を参照してください。サンプルファイルの名称は,server_aws.upおよびserver_aws.downです。
server_aws.upのファイル内容を次に示します。
#!/bin/bash
set -x
###############################################################################
# VIP_ADDRESS[0]=aa.bb.cc.dd
# VIP_RTB[0]="rtb-AAA rtb-BBB …"
# VIP_ENI[0]=eni-CCC
# VIP_LABEL[0]=lo:0
# VIP_ADDRESS[1]=ee.ff.gg.hh
# VIP_RTB[1]="rtb-DDD rtb-EEE …"
# VIP_ENI[1]=eni-FFF
# VIP_LABEL[1]=lo:1
# EIP_ADDRESS[0]=ii.jj.kk.ll
# EIP_ENI[0]=eni-GGG
# EIP_LABEL[0]=eth0:0
# EIP_ADDRESS[1]=mm.nn.oo.pp
# EIP_ENI[1]=eni-HHH
# EIP_LABEL[1]=eth1:0
# DNS_ZONEID[0]=ZIII
# DNS_NAME[0]=JJJ.com.
# DNS_TYPE[0]=A
# DNS_VALUE[0]=qq.rr.ss.tt
# DNS_TTL[0]=uu
# DNS_ZONEID[1]=ZKKK
# DNS_NAME[1]=LLL.com.
# DNS_TYPE[1]=CNAME
# DNS_VALUE[1]=MMM.com.
# DNS_TTL[1]=vv
###############################################################################
function main() {
VIP_RCD=0
if [ ${#VIP_ADDRESS[@]} -gt 0 ]
then
add_vip
rc=$?
if [ $rc -ne 0 ]
then
VIP_RCD=1
fi
fi
EIP_RCD=0
if [ ${#EIP_ADDRESS[@]} -gt 0 ]
then
add_eip
rc=$?
if [ $rc -ne 0 ]
then
EIP_RCD=2
fi
fi
DNS_RCD=0
if [ ${#DNS_NAME[@]} -gt 0 ]
then
add_dns
rc=$?
if [ $rc -ne 0 ]
then
DNS_RCD=4
fi
fi
RCD=$(($VIP_RCD|$EIP_RCD|$DNS_RCD))
return $RCD
}
###############################################################################
:(以下を編集しないこと)
server_aws.downのファイル内容を次に示します。
#!/bin/bash
set -x
###############################################################################
# VIP_ADDRESS[0]=aa.bb.cc.dd
# VIP_RTB[0]="rtb-AAA rtb-BBB …"
# VIP_ENI[0]=eni-CCC
# VIP_LABEL[0]=lo:0
# VIP_ADDRESS[1]=ee.ff.gg.hh
# VIP_RTB[1]="rtb-DDD rtb-EEE …"
# VIP_ENI[1]=eni-FFF
# VIP_LABEL[1]=lo:1
# EIP_ADDRESS[0]=ii.jj.kk.ll
# EIP_ENI[0]=eni-GGG
# EIP_LABEL[0]=eth0:0
# EIP_ADDRESS[1]=mm.nn.oo.pp
# EIP_ENI[1]=eni-HHH
# EIP_LABEL[1]=eth1:0
# DNS_ZONEID[0]=ZIII
# DNS_NAME[0]=JJJ.com.
# DNS_TYPE[0]=A
# DNS_VALUE[0]=qq.rr.ss.tt
# DNS_TTL[0]=uu
# DNS_ZONEID[1]=ZKKK
# DNS_NAME[1]=LLL.com.
# DNS_TYPE[1]=CNAME
# DNS_VALUE[1]=MMM.com.
# DNS_TTL[1]=vv
###############################################################################
function main() {
VIP_RCD=0
if [ ${#VIP_ADDRESS[@]} -gt 0 ]
then
delete_vip
rc=$?
if [ $rc -ne 0 ]
then
VIP_RCD=1
fi
fi
EIP_RCD=0
if [ ${#EIP_ADDRESS[@]} -gt 0 ]
then
delete_eip
rc=$?
if [ $rc -ne 0 ]
then
EIP_RCD=2
fi
fi
DNS_RCD=0
if [ ${#DNS_NAME[@]} -gt 0 ]
then
delete_dns
rc=$?
if [ $rc -ne 0 ]
then
DNS_RCD=4
fi
fi
RCD=$(($VIP_RCD|$EIP_RCD|$DNS_RCD))
return $RCD
}
###############################################################################
:(以下を編集しないこと)
サーバごとに,サンプルファイルを/opt/hitachi/HAmon/etc配下にコピーして,server_aws.upをサーバ識別名.upに,server_aws.downをサーバ識別名.downにリネームしてください。
サーバ識別名.up/downで設定が必要なシェル変数について説明します。
- メモ
-
ここで説明する[n]は配列の添え字です。VIP,EIP,または業務通信に使用するDNS名が1つの場合,[n]は0です。複数ある場合,1つ目の[n]は0,2つ目の[n]は1,のように,添え字が0から順に1ずつ増加するように設定してください。
サンプルファイルからコピーした状態では,シェル変数部分はコメント行となっています。コメント行を表す先頭の"#"を削除してから,設定してください。例えば,VIPが1つの場合は,次のシェル変数について,コメント"#"を削除し,シェル変数を設定します。
-
VIP_ADDRESS[0]
-
VIP_RTB[0]
-
VIP_ENI[0]
-
VIP_LABEL[0]
2つの場合は,次のシェル変数について,コメント"#"を削除し,シェル変数を設定します。
-
VIP_ADDRESS[0]
-
VIP_RTB[0]
-
VIP_ENI[0]
-
VIP_LABEL[0]
-
VIP_ADDRESS[1]
-
VIP_RTB[1]
-
VIP_ENI[1]
-
VIP_LABEL[1]
3つ目以降については,シェル変数をコピーするなどの方法で,設定してください。
-
- VIP制御によって業務通信を切り替える場合
-
"VIP_"から始まるシェル変数を次のとおりに設定してください。
-
VIP_ADDRESS[n]
業務IPアドレスとして使用するVIPを設定してください。すべての系切り替え構成内で同じ設定にしてください。
-
VIP_RTB[n]
VIP宛の通信をするインスタンスがあるサブネットに関連づけられた,ルートテーブルの固有IDを設定してください。複数設定する場合は,1つ以上の半角スペースまたはタブで区切り,全体をダブルクォーテーションで囲んで設定してください。すべての系切り替え構成内で同じ設定にしてください。
-
VIP_ENI[n]
VIP宛の通信を受信する自インスタンスに付与されているENIの固有IDを設定してください。系によって値が異なります。
-
VIP_LABEL[n]
VIPを付与するOS上のLANインタフェースを"LANインタフェース名:xxx"の形式で設定してください。すべての系切り替え構成内で同じ設定にしてください。
-
- EIP制御によって業務通信を切り替える場合
-
"EIP_"から始まるシェル変数を次のとおりに設定してください。
-
EIP_ADDRESS[n]
業務IPアドレスとして使用するEIPを設定してください。すべての系切り替え構成内で同じ設定にしてください。
-
EIP_ENI[n]
EIPと関連づけるENIの固有IDを設定してください。系によって値が異なります。
-
EIP_LABEL[n]
EIPを付与するOS上のLANインタフェースを"LANインタフェース名:xxx"の形式で設定してください。すべての系切り替え構成内で同じ設定にしてください。
-
- DNS名制御によって業務通信を切り替える場合
-
レコードの変更方法によって,LANの状態設定ファイルのシェル変数の設定方法が異なります。シェル変数の設定要否を次の表に示します。
表5‒1 LANの状態設定ファイルのシェル変数の設定要否 レコードの変更方法
シェル変数の設定要否
サーバ識別名.upファイル
サーバ識別名.downファイル
レコードを更新する方法
必要
不要※
レコードを削除したあとレコードを追加する方法
必要
必要
- 注※
-
シェル変数の設定は不要ですが,サーバ識別名.downファイルは/opt/hitachi/HAmon/etc配下に作成する必要があります。
"DNS_"から始まるシェル変数のコメントアウトを外し,次のとおりに設定してください。
-
DNS_NAME[n]
業務通信に使用するDNS名を設定してください。すべての系切り替え構成内で同じ設定にしてください。
-
DNS_ZONEID[n]
業務通信に使用するDNS名を管理対象に含む,ホストゾーンのIDを設定してください。すべての系切り替え構成内で同じ設定にしてください。
なお,ホストゾーンIDの確認方法は次のとおりです。
1. Amazon Route 53コンソール上で,「ホストゾーン」をクリックする。
2. ホストゾーンの一覧の中から,業務通信に使用するDNS名を管理対象に含むホストゾーンを選択する。
3. ホストゾーンの詳細情報から,ホストゾーンIDを確認する。
-
DNS_TYPE[n]
DNSレコードタイプ(AレコードタイプまたはCNAMEレコードタイプ)を設定してください。Aレコードタイプは,名前解決の結果であるIPv4アドレスを記録します。CNAMEレコードタイプは,名前解決を実行する別のDNS名を記録します。すべての系切り替え構成内で同じ設定にしてください。
-
DNS_VALUE[n]
DNSレコードタイプがAレコードタイプの場合はIPv4アドレス,CNAMEレコードタイプの場合はDNS名を設定してください。設定する値は系ごとに異なります。
-
DNS_TTL[n]
リゾルバがレコードをキャッシュしておく時間(秒)を設定してください。
DNS_TTLで設定された時間内は,キャッシュ内の値を使用して業務通信します。
DNS_TTLの値が大きすぎると,HAモニタが実行サーバを系切り替えしても,切り替え元の系で業務通信するおそれがあります。そのため,次の手順でDNS_TTLを決めてください。
1. DNS名制御を使用した計画系切り替えを実施し,系切り替え時間を計測※する。
2. 計測した系切り替え時間より小さい値をDNS_TTLに設定する。
注※ 系切り替え元でメッセージKAMN290-Iを出力してから,系切り替え先でメッセージKAMN311-Iを出力するまでの時間を計測します。