ここでは、ネットワーク引継ぎのための定義ファイルの作成、クラスタアプリケーションの構築について説明します。
ネットワーク引継ぎでは、全ノードで、Azureのネットワークデバイスを制御するための以下の定義ファイルを作成する必要があります。
/usr/opt/reliant/etc/hvazurenicconfig
参考
/usr/opt/reliant/etc/hvazurenicconfigファイルを作成する場合、/usr/opt/reliant/etc/hvazurenicconfig.templateファイルをひな形として使用できます。
# cp -p /usr/opt/reliant/etc/hvazurenicconfig.template /usr/opt/reliant/etc/hvazurenicconfig
注意
hvazurenicconfigファイルはrootユーザで作成し、パーミッションを600にしてください。
◆定義ファイルに記載する情報
TakeoverIPAddress CFName1 NICName1 CFName2 NICName2 ResourceGroup AppID TenantID CertPath
項目 | 内容 | 備考 |
---|---|---|
TakeoverIPAddress | 引継ぎIPアドレスを指定します。 (IPv4アドレスで指定します。) | ― |
CFName1 | CFノード名を指定します。 | ― |
NICName1 | CFName1の仮想マシンの、ネットワークインターフェイスの名前を指定します。 | Azureポータルで確認 |
CFName2 | CFノード名を指定します。 | ― |
NICName2 | CFName2の仮想マシンの、ネットワークインターフェイスの名前を指定します。 | Azureポータルで確認 |
ResourceGroupName | リソースグループの名前を指定します。 | Azureポータルで確認 |
AppID | サービスプリンシパルのアプリケーションIDを指定します。 | “27.3 事前設定”の手順3.でメモした値 |
TenantID | サービスプリンシパルのテナントIDを指定します。 | “27.3 事前設定”の手順3.でメモした値 |
CertPath | サービスプリンシパルの証明書のパスを指定します。 | “27.3 事前設定”の手順3.でメモした値 |
例
全ノードで、作成した /usr/opt/reliant/etc/hvazurenicconfig ファイルに、運用系と待機系の情報をそれぞれ記載します。以下は、引継ぎIPアドレスとして、172.31.0.10と172.31.0.11の2つを制御する場合の記載例です。
TakeoverIPAddress | CFName1 | NICName1 | CFName2 | NICName2 | ResourceGroupName | AppID | TenantID | CertPath |
---|---|---|---|---|---|---|---|---|
172.31.0.10 | node0 | Node0-eth1 | node1 | Node1-eth1 | MyRG | d5b7dac1-718f-448b-8e11-4a8cca6d9004 | 8ff7ddfd-fbcb-4700-ae52-6d071ac8d1b4 | /root/examplecert.pem |
172.31.0.11 | node0 | Node0-eth1 | node1 | Node1-eth1 | MyRG | d5b7dac1-718f-448b-8e11-4a8cca6d9004 | 8ff7ddfd-fbcb-4700-ae52-6d071ac8d1b4 | /root/examplecert.pem |
172.31.0.10 node0 Node0-eth1 node1 Node1-eth1 MyRG d5b7dac1-718f-448b-8e11-4a8cca6d9004 8ff7ddfd-fbcb-4700-ae52-6d071ac8d1b4 /root/examplecert.pem 172.31.0.11 node0 Node0-eth1 node1 Node1-eth1 MyRG d5b7dac1-718f-448b-8e11-4a8cca6d9004 8ff7ddfd-fbcb-4700-ae52-6d071ac8d1b4 /root/examplecert.pem
注意
半角空白区切りで記載してください。
CFName1、CFName2は、運用系と待機系のそれぞれのCFノード名を記載してください。記載順序の制約はありません。
TakeoverIPAddressはホスト名ではなく、IPv4アドレスで指定してください。
定義ファイルの記載内容は、運用系と待機系で同一にしてください。
定義ファイルの設定に誤りがある、または、記載した引継ぎIPアドレスがAzure側で既に使用中だった場合、userApplicationの起動に失敗しエラーメッセージがアプリケーションログに出力されます。メッセージの詳細については“PRIMECLUSTER 活用ガイド<メッセージ集>”を参照してください。
ネットワーク引継ぎをクラスタアプリケーションに登録する方法について説明します。
登録するリソースと用途は以下のとおりです。
登録対象 | 用途 |
---|---|
userApplicationのPreOnlineスクリプト | 運用系で仮想マシンのネットワークインターフェイスにセカンダリIPアドレスを追加します。 |
引継ぎネットワークリソース | 運用系で引継ぎIPアドレスを活性化します。 |
注意
Azure環境では、メンテナンスのため通知なく、最大30秒間仮想マシンの一時停止が行われ、リソース故障が発生する場合があります。
通知なしメンテナンス時にリソース故障を発生させないようにする場合は、以下のパラメタについて、算出したタイムアウト時間に30秒加算した値を設定してください。
userApplicationのScriptTimeout
CmdlineリソースのCheckCommandTimeouts
引継ぎネットワークリソースのTimeout
引継ぎネットワークリソースを登録するuserApplicationのPreOnlineScriptに、以下のスクリプトを登録してください。
/opt/SMAW/bin/hvazurenic
userApplicationのScriptTimeoutには以下の計算式より大きい値を設定してください。
ScriptTimeout > 引継ぎIPアドレス数 × ( 105 + リトライ間隔(2秒) ) (秒)
処理遅延などを考慮し、検証を行ったうえ、十分大きい値を設定してください。
注意
userApplicationのScriptTimeoutを変更した場合、以下のスクリプトのタイムアウト値が同じ値に変更されます。
PreOnlineScript
PostOnlineScript
PreOfflineScript
PostOfflineScript
OfflineDoneScript
FaultScript
すべてのノードで以下の手順を実施し、引継ぎIPアドレスを設定するすべてのネットワークインタフェースの物理IPアドレスを固定化してください。
以下のコマンドを実行し、引継ぎIPアドレスを設定するネットワークインタフェース(DEVICE)の、接続プロファイル名(NAME)を確認します。
# nmcli connection show
例)コマンドを実行した場合の表示結果
# nmcli connection show
NAME UUID TYPE DEVICE
ens256 9f45e94f-1726-dd68-8a33-8022f72b550f ethernet ens256
ens192 03da7500-2101-c722-2438-d0d006c28c73 ethernet ens192
cip0 c24ca981-b8d6-487f-89ba-e73c58da349d ethernet cip0
:
以下のコマンドを実行し、1.で確認した接続プロファイル名のipv4.methodの値を確認してください。
# nmcli connection show <接続プロファイル名>
ipv4.methodの値がmanual以外の場合、以下の値を記録し、3.以降の手順を実施してください。
IP4.ADDRESS,IP4.GATEWAY,IP4.DNS
ipv4.methodの値がmanualの場合は、3.以降の手順は実施不要です。
例)接続プロファイル名がens192の場合
# nmcli connection show ens192
connection.id: ens192
connection.uuid: 03da7500-2101-c722-2438-d0d006c28c73
:
ipv4.method: auto
:
GENERAL.MASTER-PATH: --
IP4.ADDRESS[1]: 172.31.0.10/24
IP4.GATEWAY: 172.31.0.1
IP4.ROUTE[1]: dst = 172.31.0.0/24, nh = 0.0.0.0, mt = 100
IP4.DNS[1]: 172.31.0.2
以下のコマンドを実行し、2.で確認したIP4.ADDRESSの値を固定値として設定してください。
# nmcli connection modify <接続プロファイル名> ipv4.addresses <IP4.ADDRESS> # nmcli connection modify <接続プロファイル名> ipv4.method manual
例)接続プロファイル名がens192、IP4.ADDRESSの値が172.31.0.10/24の場合
# nmcli connection modify ens192 ipv4.addresses 172.31.0.10/24
# nmcli connection modify ens192 ipv4.method manual
以下のコマンドを実行し、2.で確認したIP4.GATEWAY、IP4.DNSの値を設定し、接続プロファイル名をアクティベートしてください。
# nmcli connection modify <接続プロファイル名> ipv4.gateway <IP4.GATEWAY> # nmcli connection modify <接続プロファイル名> ipv4.dns <IP4.DNS> # nmcli connection up <接続プロファイル名>
例)接続プロファイル名がens192、IP4.GATEWAYの値が172.31.0.1、IP4.DNSの値が172.31.0.2の場合
# nmcli connection modify ens192 ipv4.gateway 172.31.0.1 # nmcli connection modify ens192 ipv4.dns 172.31.0.2 # nmcli connection up ens192
以下のコマンドを実行し、ipv4.addresses,ipv4.method,ipv4.gateway,ipv4.dnsの値が、3.4.で設定した通りに表示されることを確認してください。
# nmcli connection show <接続プロファイル名>
例)接続プロファイル名がens192の場合
# nmcli connection show ens192
connection.id: ens192
connection.uuid: 03da7500-2101-c722-2438-d0d006c28c73
:
ipv4.method: manual
ipv4.dns: 172.31.0.2
ipv4.dns-search: --
:
ipv4.addresses: 172.31.0.10/24
ipv4.gateway: 172.31.0.1
引継ぎネットワークリソースの設定については、“PRIMECLUSTER 導入運用手引書”の“6.7.3.6 引継ぎネットワークリソースの設定”を参照してください。
注意
引継ぎネットワークリソースの設定において以下が必要です。
引継ぎネットワークリソースのBASE、VIRTUAL属性は、VIRTUAL(初期値)を設定する。
監視先ホスト(PingHosts)の定義について
Azure環境では、仮想ネットワークのゲートウェイはPingに応答しません。このため、監視先ホスト(PingHosts)を定義し、ICMPを利用したネットワークの疎通監視は使用できません。
全ノードで以下のコマンドを実行し、定義ファイル(/usr/opt/reliant/etc/hvazurenicconfig)に記載された情報がAzureのデバイスを制御するうえで、正しく記載されているかを確認してください。
# /opt/SMAW/bin/hvazurechkconf
定義ファイルの記載内容に問題がない場合は、下記のように表示されます。
例)定義ファイルがhvazurenicconfigの場合
# /opt/SMAW/bin/hvazurechkconf
NOTICE: Check completed successfully. file=/usr/opt/reliant/etc/hvazurenicconfig
定義ファイルの記載内容に問題がある場合は、確認を必要とする設定値が出力されます。表示されたメッセージに従い対処してください。
hvazurechkconf (8) コマンドのメッセージの詳細については“PRIMECLUSTER 活用ガイド<メッセージ集>”を参照してください。