Hitachi

高信頼化システム監視機能 HAモニタ パブリッククラウド編


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を出力するまでの時間を計測します。