ここでは、ネットワーク引継ぎのための定義ファイルの作成、クラスタアプリケーションの構築について説明します。
ネットワーク引継ぎでは、全ノードで、Azureのネットワークデバイスを制御するための以下の定義ファイルを作成する必要があります。
/usr/opt/reliant/etc/hvazureconfig
参考
/usr/opt/reliant/etc/hvazureconfigファイルを作成する場合、/usr/opt/reliant/etc/hvazureconfig.templateファイルをひな形として使用できます。
# cp -p /usr/opt/reliant/etc/hvazureconfig.template /usr/opt/reliant/etc/hvazureconfig
注意
hvazureconfigファイルはrootユーザで作成し、パーミッションを600にしてください。
仮想ルータのルーティング経路を更新するために、Azureが管理するデバイスのID情報が必要になります。
定義ファイル(/usr/opt/reliant/etc/hvazureconfig)に記載するAzureのID情報は、Azureポータルより確認してください。
◆定義ファイルに記載する情報
KeyName Mode CFNameX ResourceID RouteTableID TakeoverIPAddress VirtualMachineIPAddress AppID TenantID CertPath
項目 | 内容 | 備考 |
---|---|---|
KeyName | アルファベット(大文字小文字)と数字で構成された16文字以内のIDを記載します。大文字小文字は別のKeyNameとして取り扱います。 このキー名は、Cmdlineリソースの設定時に登録するスクリプト単位で定義します。ペアとなる運用系と待機系は同じKeyNameを指定し、その他は重複しないようにKeyNameを定義してください。後述のCmdlineリソースの設定でスクリプトを登録する際に引数として指定します。 | ― |
Mode | ROUTE 、または、routeの文字列を指定します。 | ― |
CFNameX | CFノード名を指定します。 | ― |
ResourceID | クラスタホストが動作しているAzureの仮想マシンIDを指定します。 | Azureポータルで確認 |
RouteTableID | ルートテーブルのIDを指定します。 | Azureポータルで確認 |
TakeoverIPAddress | 引継ぎIPアドレス(VNet内のIPv4アドレスを指定します。指定したIPアドレスは、自動で他の用途に割り当てられないようにしてください。) | ― |
VirtualMachineIPAddress | 仮想マシンのIPアドレス(IPv4アドレスで指定します。) | Azureポータルで確認 |
AppID | サービスプリンシパルのアプリケーションIDを指定します。 | “27.3 事前設定”の手順3.でメモした値 |
TenantID | サービスプリンシパルのテナントIDを指定します。 | “27.3 事前設定”の手順3.でメモした値 |
CertPath | サービスプリンシパルの証明書のパスを指定します。 | “27.3 事前設定”の手順3.でメモした値 |
例
全ノードで、作成した /usr/opt/reliant/etc/hvazureconfig ファイルに、運用系と待機系の情報をそれぞれ記載します。
node1、node2の各項目が下記の場合
KeyName | CFNameX | ResourceID | RouteTableID |
---|---|---|---|
CmdR01 | node1 | /subscriptions/1e234d12-39b8-49db-881a-35aa03b402b9/resourceGroups/pcl/providers/Microsoft.Compute/virtualMachines/node1 | /subscriptions/1e234d12-39b8-49db-881a-35aa03b402b9/resourceGroups/pcl/providers/Microsoft.Network/routeTables/routetable1 |
node2 | /subscriptions/1e234d12-39b8-49db-881a-35aa03b402b9/resourceGroups/pcl/providers/Microsoft.Compute/virtualMachines/node2 |
以下は、1つの引継ぎIPアドレス(172.30.2.10)を制御する場合の記載例です。
CFNameX | TakeoverIPAddress | VirtualMachineIPAddress | AppID | TenantID | CertPath |
---|---|---|---|---|---|
node1 | 172.30.2.10 | 172.30.0.10 | d5b7dac1-718f-448b-8e11-4a8cca6d9004 | 8ff7ddfd-fbcb-4700-ae52-6d071ac8d1b4 | /root/examplecert.pem |
node2 | 172.30.1.10 |
CmdR01 ROUTE node1 /subscriptions/1e234d12-39b8-49db-881a-35aa03b402b9/resourceGroups/pcl/providers/Microsoft.Compute/virtualMachines/node1 /subscriptions/1e234d12-39b8-49db-881a-35aa03b402b9/resourceGroups/pcl/providers/Microsoft.Network/routeTables/routetable1 172.30.2.10 172.30.0.10 d5b7dac1-718f-448b-8e11-4a8cca6d9004 8ff7ddfd-fbcb-4700-ae52-6d071ac8d1b4 /root/examplecert.pem CmdR01 ROUTE node2 /subscriptions/1e234d12-39b8-49db-881a-35aa03b402b9/resourceGroups/pcl/providers/Microsoft.Compute/virtualMachines/node2 /subscriptions/1e234d12-39b8-49db-881a-35aa03b402b9/resourceGroups/pcl/providers/Microsoft.Network/routeTables/routetable1 172.30.2.10 172.30.1.10 d5b7dac1-718f-448b-8e11-4a8cca6d9004 8ff7ddfd-fbcb-4700-ae52-6d071ac8d1b4 /root/examplecert.pem
相互待機構成など、複数の制御をする場合は、KeyNameを分け、同様の内容で追記します。
それぞれのKeyNameのnode1、node2の各項目が下記の場合
KeyName | CFNameX | ResourceID | RouteTableID |
---|---|---|---|
CmdR01 | node1 | /subscriptions/1e234d12-39b8-49db-881a-35aa03b402b9/resourceGroups/pcl/providers/Microsoft.Compute/virtualMachines/node1 | /subscriptions/1e234d12-39b8-49db-881a-35aa03b402b9/resourceGroups/pcl/providers/Microsoft.Network/routeTables/routetable1 |
node2 | /subscriptions/1e234d12-39b8-49db-881a-35aa03b402b9/resourceGroups/pcl/providers/Microsoft.Compute/virtualMachines/node2 | ||
CmdR02 | node1 | /subscriptions/1e234d12-39b8-49db-881a-35aa03b402b9/resourceGroups/pcl/providers/Microsoft.Compute/virtualMachines/node1 | |
node2 | /subscriptions/1e234d12-39b8-49db-881a-35aa03b402b9/resourceGroups/pcl/providers/Microsoft.Compute/virtualMachines/node2 |
以下は、引継ぎIPアドレスとして、172.30.2.10と172.30.3.10の2つを制御する場合の記載例です。
記載例の他に、同じサブネットのIPアドレスを、異なるKeyNameで使用する構成をとることも可能です。
KeyName | CFNameX | Takeover | VirtualMachine | AppID | TenantID | CertPath |
---|---|---|---|---|---|---|
CmdR01 | node1 | 172.30.2.10 | 172.30.0.10 | d5b7dac1-718f-448b-8e11-4a8cca6d9004 | 8ff7ddfd-fbcb-4700-ae52-6d071ac8d1b4 | /root/examplecert.pem |
node2 | 172.30.1.10 | |||||
CmdR02 | node1 | 172.30.3.10 | 172.30.0.10 | |||
node2 | 172.30.1.10 |
CmdR01 ROUTE node1 /subscriptions/1e234d12-39b8-49db-881a-35aa03b402b9/resourceGroups/pcl/providers/Microsoft.Compute/virtualMachines/node1 /subscriptions/1e234d12-39b8-49db-881a-35aa03b402b9/resourceGroups/pcl/providers/Microsoft.Network/routeTables/routetable1 172.30.2.10 172.30.0.10 d5b7dac1-718f-448b-8e11-4a8cca6d9004 8ff7ddfd-fbcb-4700-ae52-6d071ac8d1b4 /root/examplecert.pem CmdR01 ROUTE node2 /subscriptions/1e234d12-39b8-49db-881a-35aa03b402b9/resourceGroups/pcl/providers/Microsoft.Compute/virtualMachines/node2 /subscriptions/1e234d12-39b8-49db-881a-35aa03b402b9/resourceGroups/pcl/providers/Microsoft.Network/routeTables/routetable1 172.30.2.10 172.30.1.10 d5b7dac1-718f-448b-8e11-4a8cca6d9004 8ff7ddfd-fbcb-4700-ae52-6d071ac8d1b4 /root/examplecert.pem CmdR02 ROUTE node1 /subscriptions/1e234d12-39b8-49db-881a-35aa03b402b9/resourceGroups/pcl/providers/Microsoft.Compute/virtualMachines/node1 /subscriptions/1e234d12-39b8-49db-881a-35aa03b402b9/resourceGroups/pcl/providers/Microsoft.Network/routeTables/routetable1 172.30.3.10 172.30.0.10 d5b7dac1-718f-448b-8e11-4a8cca6d9004 8ff7ddfd-fbcb-4700-ae52-6d071ac8d1b4 /root/examplecert.pem CmdR02 ROUTE node2 /subscriptions/1e234d12-39b8-49db-881a-35aa03b402b9/resourceGroups/pcl/providers/Microsoft.Compute/virtualMachines/node2 /subscriptions/1e234d12-39b8-49db-881a-35aa03b402b9/resourceGroups/pcl/providers/Microsoft.Network/routeTables/routetable1 172.30.3.10 172.30.1.10 d5b7dac1-718f-448b-8e11-4a8cca6d9004 8ff7ddfd-fbcb-4700-ae52-6d071ac8d1b4 /root/examplecert.pem
注意
空白区切りで、ノードごとに1行で記載してください。
ResourceIDは、運用系と待機系のそれぞれのID情報を記載してください。
TakeoverIPAddressおよびVirtualMachineIPAddressは、ホスト名ではなく、IPv4アドレスで指定してください。
設定に誤りがある場合、ルーティングの経路情報を正しく更新できず、リソース故障になります。
全ノードで以下のコマンドを実行し、定義ファイル(/usr/opt/reliant/etc/hvazureconfig)に記載された情報がAzureのデバイスを制御するうえで、正しく記載されているかを確認してください。
# /opt/SMAW/bin/hvazurechkconf
定義ファイルの記載内容に問題がない場合は、下記のように表示されます。
例)定義ファイルがhvazureconfigの場合
# /opt/SMAW/bin/hvazurechkconf NOTICE: Check completed successfully. file=/usr/opt/reliant/etc/hvazureconfig
定義ファイルの記載内容に問題がある場合は、確認を必要とする設定値が出力されます。表示されたメッセージに従い対処してください。
hvazurechkconf (8) コマンドのメッセージの詳細については“PRIMECLUSTER 活用ガイド<メッセージ集>”を参照してください。
ネットワーク引継ぎをクラスタアプリケーションに登録する方法について説明します。
登録するリソースと用途は以下のとおりです。
登録するリソース | 用途 |
---|---|
Cmdlineリソース | 運用系で仮想ルータのルーティング経路を更新します。 |
引継ぎネットワークリソース | 運用系で引継ぎIPアドレスを活性化します。 |
Cmdlineリソースの設定方法についての詳細は、“PRIMECLUSTER 導入運用手引書”の“6.7.3 リソースの設定” のCmdlineリソースの設定方法を参照し、“表27.1 Cmdlineリソースの作成とOnline/Offline/Checkスクリプトの設定” の設定値を設定してください。
パラメタ名 | 設定値 |
---|---|
StartCommands[0] | 以下を設定します。 /opt/SMAW/bin/hvazureipalias -c KeyName
|
StopCommands[0] | 以下を設定します。 /opt/SMAW/bin/hvazureipalias -u KeyName
|
CheckCommands[0] | 以下を設定します。 /opt/SMAW/bin/hvazureipalias -m KeyName
|
CheckCommandTimeouts[0] | CheckCommands[0]に指定したコマンドがハングアップした場合にPRIMECLUSTERが異常と判断するまでの時間を指定します。 TIMEOUT属性(初期値300秒)と同じ値を設定してください。 |
Flags[0] | AUTORECOVER属性(初期値は有効)とTIMEOUT属性の設定は任意です。 その他の属性は、デフォルトの設定としてください。 設定例: Flags[0]=XAT300 (AUTORECOVER属性 有効) Flags[0]=XT300 (AUTORECOVER属性 無効) |
引継ぎネットワークリソースの設定については、“PRIMECLUSTER 導入運用手引書”の“6.7.3.6 引継ぎネットワークリソースの設定”を参照してください。
本設定の事前設定の監視先ホストの定義およびクラスタの設定ファイルへの定義は、以下のようにしてください。
監視先ホストの定義
Azure環境では、仮想ネットワークのゲートウェイはPingに応答しません。
このため、ICMPを利用したネットワークの疎通監視は使用できません。
クラスタの設定ファイルへの定義
クラスタの設定ファイル /usr/opt/reliant/etc/hvipalias は、以下の規則で記述してください。
CFName takeover interface netmask
CFName :引継ぎIPアドレスを使用するノードのCFノード名
takeover :引継ぎIPアドレスのホスト名
interface :引継ぎIPアドレスを活性化するネットワークインタフェース名
netmask :引継ぎIPアドレスのネットマスク(0xffffffff)
注意
引継ぎネットワークリソースの設定において以下が必要です。
クライアントがVNet外にある場合、引き継ぐIPアドレスは、VNetのCIDR範囲内のネットワークにする。
クラスタの設定ファイルに記述するネットマスクは、必ず 0xffffffff にする。
引継ぎネットワークリソースのBASE、VIRTUAL属性は、VIRTUAL(初期値)を設定する。
引継ぎ IP アドレスを活性化するネットワークインタフェースのプライマリIPアドレスは、静的な IPv4 アドレスにする。
Azure ネットワークインタフェースの IP アドレスの変更手順については、Azureの公式ドキュメントを参照してください。
例
VNetのCIDR範囲が172.30.0.0/17の場合
/etc/hosts
172.30.2.10 takeoverip # 引継ぎIP
/usr/opt/reliant/etc/hvipalias
node1 takeoverip eth1 0xffffffff node2 takeoverip eth1 0xffffffff