この文章では、Microsoft Azureクラウド内のサイトで高可用性(HA)を提供するために、2つのvSocketを持つサイトをどのように構成するかを説明します。
Azureサイト内のvSocketの冗長性を提供するために、同じAzure仮想ネットワーク(VNet)内に2つのvSocketを配置して、高可用性構成で動作するように設定します。 vSockets はアクティブ/パッシブモードで動作し、LANリンクは vSockets 間の生存確認メッセージを送信するために使用されます。
Azure HA 構成ではフローティングIPアドレスが使用され、これはアクティブな vSocket の LAN インターフェイスにバインドされます。 フェイルオーバーが発生すると、フローティングIPはセカンダリvSocketLANインタフェースに移動します。 ルートテーブルは、Cato Cloudに送信されるトラフィックの次のホップとしてこのフローティングIPを使用します。
Azure HAは複数の可用性ゾーンをサポートします。 また、使用することで、両方のvSocketがAzureの異なる障害および更新ドメインにデプロイされることを確認することができます。
以下のネットワーク図は、AzureサイトのサンプルHA vSocket設定を示しています。
プライマリとセカンダリのvSocketは同じVNetにあります。 LANインタフェースは10.102.2.10(プライマリ)および10.102.2.11(セカンダリ)です。 フローティングIPは10.102.2.200で、LANルートテーブルの次のホップとして構成されています。
このネットワークの標準のトラフィックの流れは次の通りです:
-
VM1はインターネットにトラフィックを送信します。
-
LAN ルーティングテーブルによると、トラフィックの次のホップは10.102.2.200で、これはプライマリvSocketのLANインターフェースのセカンダリIPアドレスとして設定されます。
-
プライマリvSocketはアクティブで、トラフィックをWANインターフェース経由でインターネットに送信します。
これは、プライマリアクティブvSocketがAzureサイト内のセカンダリスタンバイにフェイルオーバーする場合のワークフローです。 以下の図は、フェイルオーバーを説明しており、番号は以下の手順のアイテムに対応しています:
-
通常の操作では、プライマリvSocketはアクティブな役割を持ち、セカンダリvSocketはスタンバイの役割を持ちます。
-
フローティングIP(LANインタフェース上のセカンダリIPアドレス)はプライマリvSocketにアタッチされています(アイテム1a)。
-
LANルートテーブルのプレフィックスはフローティングIPを次のホップとして使用します(アイテム1b)。
-
-
プライマリ(アクティブ)vSocketがダウンします(アイテム2)。
-
セカンダリ(スタンバイ)vSocketは、プライマリvSocketからのキープアライブパケットの受信を停止します(アイテム2a)。
-
-
セカンダリvSocketが各vSocketのLANインタフェースに次の変更を加えるためにAzure APIゲートウェイにAPIコールを発行します:
-
プライマリvSocketのLANインタフェースからフローティングIP(セカンダリアドレス)を削除します(アイテム3a)。
-
セカンダリvSocketのLANインタフェースのセカンダリアドレスとしてフローティングIPを追加します(アイテム3b)。
-
-
セカンダリvSocketは現在アクティブなvSocketであり、双方向でサイトにトラフィックを流します(アイテム4)。
-
プライマリvSocketが回復すると、アクティブな役割を再開し、セカンダリvSocketは待機状態に戻ります。 (プライマリvSocketは、フローティングIPをLANインターフェイスのセカンダリIPアドレスとして戻すためにAPIコールを発行します。)
注意
注意: Azureインフラストラクチャに関連する理由により、ネットワークインタフェースの構成更新には最大120秒かかることがあり、HAフェイルオーバーに遅延を引き起こす可能性があります。
-
Azureの高可用性は、ソケットバージョン11.0以上を使用しているvSocketsをサポートしています
-
CatoリポジトリからAzure HA設定スクリプトをダウンロードし、SASを使用してAzure vSocket VHDイメージをコピーを参照してください
-
両方のvSocketは同じAzure VMインスタンスタイプである必要があります(例えば、D2s v4)
-
Azure vSocketは、パブリックDNSサーバーへのアクセスが必要です。 VNetがプライベートDNSサーバーのみを使用するように構成されていないことを確認してください
注: VNETで使用される vSocketのDNSを変更した後、vSocket VMを再起動する必要があります。 -
VNetとvSocket VM用に別々のリソースグループを使用している場合、ストレージコンテナブロブがVMおよびVHDイメージと同じリソースグループにあることを確認してください
-
各vSocketには次のリソースへのアウトバウンド接続が必要です:
-
VirtualNetwork - DNSおよびHTTPプロトコル
-
Azureリソースマネージャ - HTTPS
-
管理インタフェースには、パブリックDNSサーバー(構成された場合、UDP/53)およびmanagement.azure.com(TCP/443)へのインターネットアクセスが必要です
-
このセクションでは、vSocket HAを構成するための管理者のための正しいCatoおよびAzure権限について説明します。 正しい権限がない場合、Cato HAスクリプトはvSocket間でHA構成を作成できません。
アプリケーションとデータをAzureデータセンターの障害から保護するため、HA構成スクリプトの一部として各VMを異なるAzureアベイラビリティゾーンに割り当てることができます。 HAスクリプトを実行する前にアベイラビリティゾーンを作成してください。
異なるアベイラビリティセットを使用している異なるアベイラビリティゾーンにVMを割り当てることはできません。
注意
注意: Azureはアベイラビリティゾーン(およびその他のゾーン冗長構成)に対して標準SKUパブリックIPアドレスのみをサポートしています。 vSocket冗長化構成をデプロイする前に、IPアドレスに対して適切なSKUを構成したことを確認してください
次のネットワーク図は、Azureサイトの異なるアベイラビリティゾーンを持つサンプルのHA vSockets構成を示しています。
-
v14.0より前のソケットバージョンでは、プライマリvSocket LAN IPがBGPピアリングに使用されます これはセカンダリvSocketへのフェイルオーバーに耐えません。
-
v14.0からは、vSocket冗長化構成では、フローティングIPがBGPピアリングに使用されます 隣接するBGPルーターでフローティングIPを定義していることを確認してください。
Azureインフラストラクチャに関連する理由により、ネットワークインターフェースの構成更新には最大120秒かかり、冗長化フェイルオーバーで遅延が発生する可能性があります
-
-
既存の構成の場合、仮想マシンを可用性ゾーンに割り当てるには、新しい仮想マシンを作成し、vSockets を再展開する必要があります(詳しくは、マーケットプレイスからAzure vSocketをデプロイするをご覧ください)
Azureの仮想マシン(VMs)上でvSocketをデプロイし、サイトのプライマリおよびセカンダリvSocketとします。
Azure HAの構成では、フェイルオーバー中にAPI呼び出しがあり、スタンバイvSocketのLANインターフェースに自動的にフローティングIPが追加され、LANインターフェースに設定された設定が削除されます(LAN NSGを含む)。 vSocketのLANインターフェース上にフローティングIPを手動で設定しないでください。 Cato HA スクリプトは、フローティング IP をプライマリ vSocket LAN インターフェイスに割り当て、次に vSockets を再起動します(以下のステップ 7 と 8 を参照してください)。
これは、vSocket HA構成をデプロイするプロセスの高レベルワークフローです。
-
新しいサイトの場合、Cato管理画面で新しいサイトを作成し、プライマリvSocketをデプロイするためにCato Azure vSocketスクリプトを実行します。 (既存のサイトの場合は、このステップをスキップします。)
-
サイトを作成すると、Cato管理画面がそのサイトにユニークなシリアル番号(S/N)を割り当てます。 シリアル番号をテキストファイルにコピー&ペーストすることをお勧めします。
-
プライマリvSocketがバージョン11.0以上のソケットバージョンで動作していることを確認してください。
-
Cato管理画面で、セカンダリvSocketをサイトに追加します。
-
Cato Azure vSocketスクリプトでセカンダリvSocketをデプロイします。 両方のvSocketsは同じVNet内にある必要があります。
セカンダリvSocketの作成に必要な仮想リソースは、WAN、LAN、MGMTサブネット用の新しいネットワークインターフェースのみです。
-
プライマリとセカンダリのvSocketsの両方がCatoクラウドに接続されていることを確認してください。
-
Cato HAスクリプトを実行して、vSocketsにHA構成を適用します。
-
プライマリとセカンダリのvSocketsを再起動します。
-
Azureのルートテーブルを更新して、次のホップとしてフローティングIPを使用します。
-
vSocketsのHAステータスを確認し、ソケットWebUIからAPIテストを実行します。
注意
注意: サイトのIP設定を構成する際、Azureによって予約されたIPアドレスを使用しないようにしてください。 サブネットCIDRブロックでは、最初の4つのIPアドレスと最後のIPアドレスを使用することはできません。
Azure予約済みIPアドレスについての詳細は、Azureドキュメンテーションをご覧ください。
プライマリvSocketをVMにデプロイするために、以下のステップを完了します。 既存のAzureサイトのために、プライマリvSocketをバージョン11.0以上にアップグレードします。 vSocketを可用性セットに割り当てたい場合は、以下を参照してください vSocket VMを可用性セットに割り当てる(任意)。
次に、以下に続いて AzureサイトにセカンダリvSocketを追加する。
新しいサイトにプライマリ vSocket を配備するには:
-
Cato 管理アプリケーションに新しい Azure サイトを追加します。
-
VM にプライマリ vSocket をインストールします。
-
両方の vSocket VM に同じリソースグループを使用することを忘れないでください。
-
必要に応じて、vSocket VM の可用性セットを作成します。
AzureでのvSocketのインストールについて詳しくは、マーケットプレイスからAzure vSocketをデプロイするをご覧ください。
-
vSocket スクリプト (create_vm_from_vhd.sh) は、vSocket を可用性セットに割り当てることを可能にします。 このオプションは、vSocket HA 構成で主に使用され、両方の vSocket が異なる障害ドメインと更新ドメインに割り当てられていることを確認したい場合に使用されます。 CatovSocket スクリプトを実行する前に可用性セットを作成する必要があります。
注意
注意:
-
Azure は、VM の作成後に VM を可用性セットに割り当てることを許可していません
-
異なる可用性ゾーンを使用している VM に可用性セットを割り当てることはできません
新しい可用性セットを作成し、以下のように設定を構成します:
-
それを VM と同じリソースグループに割り当てます
-
障害ドメイン と 更新ドメイン を 2 に設定します
以下のスクリーンショットは vSocket 可用性セットの例を示しています:
Cato管理アプリケーションがプライマリvSocketがバージョン11.0以上にアップグレードされたことを検出した後、セカンダリソケットの追加オプションがネットワーク > サイト > サイト構成 > ソケットページに表示されます。
セカンダリvSocketをサイトに追加すると、以下の設定を入力するポップアップウィンドウが開きます:
-
LANのインタフェースIP - セカンダリvSocketのLANインタフェース用のIPアドレス
-
LANのフローティングIP - Azure HA構成に使用されるフローティングIP用のIPアドレス
Cato管理アプリケーションは、セカンダリvSocketの管理IPアドレスとしてLANインタフェースIPアドレスを使用します。 このLANインタフェースは、HAのキープアライブパケットにも使用されます。
サイトにセカンダリvSocketを追加した後、Cato管理アプリケーションは以下を行います:
-
新しいvSocketのためにvSocketのシリアル番号を生成します(このシリアル番号は、VMにvSocketをインストールするためにCatoスクリプトを実行する際に使用されます)
-
そのサイトのために高可用性の設定セクションを有効にします
-
ネットワークセクションのネイティブ範囲を変更し、ローカルIPをフローティングIPで置き換えます
冗長化サイトのネットワークセグメントについての詳細は、下記を参照してください Cato管理アプリケーションにおけるAzure高可用性ネットワークセグメントの概要。
冗長化用のAzureサイトを構成するには:
-
ナビゲーションメニューからネットワーク > サイトを選択し、Azureサイトを選択します。
-
ナビゲーションメニューから、サイト設定 > ソケットを選択します。
-
セカンダリソケットの追加をクリックします。 セカンダリvSocket追加(高可用性)ウィンドウが開きます。
-
LAN IP設定を構成します:
-
LANのインタフェースIPを入力します。 この値はMGMT IPとして、およびキープアライブパケット用に使用されます。
-
LANのフローティングIPを入力します。
-
-
適用をクリックします。 フローティングIPの設定が構成され、ソケット > 高可用性設定セクションにコピーされます。
-
保存をクリックしてください。
-
セカンダリ vSocketのシリアル番号(S/N)をコピーして保存してください。
VMにセカンダリvSocketをインストールする際、このS/Nを使用してください。
プライマリvSocketと同じAzure VNetにセカンダリvSocketを作成し、配置してください。
-
サイトの全ての仮想リソースが同じAzureリソースグループにあることを確認してください。
-
組織の要件に基づいて、VNETを1つのリソースグループに割り当て、他の仮想リソースを異なるリソースグループに割り当てることができます。
-
必要に応じて、vSocket VMの可用性セットを作成してください。
-
-
プライマリとセカンダリのvSocketには同じサブネットを使用してください。
-
各サブネットの新しい仮想インターフェースを作成してください。
-
プライマリとセカンダリの両方のvSocketがCato Cloudに接続されていることを確認してください。
-
Cato Azure vSocketスクリプトを実行してください:
-
セカンダリvSocketのリソースを選択してください。
-
Cato管理アプリケーションで生成されたAzure内のセカンダリvSocketのシリアル番号を使用してください。
-
AzureでのvSocketインストールについて詳しくは、マーケットプレイスからAzure vSocketをデプロイするをご覧ください。
Cato HAスクリプト(create_ha_settings.sh)を使用すると、VNETを1つのリソースグループに割り当て、他の仮想リソース(NIC、vSocket、ストレージコンテナ、ルートテーブルなど)に異なるリソースグループを使用できます。 Cato HAスクリプトを実行する際、VNETリソースグループとVMリソースグループの割り当てを求める別の質問があります。
VNETとVMに同じリソースグループを使用している場合は、Cato HAスクリプトの両方のオプションで同じリソースグループを選択することを確認してください。
注意
注意: VHDイメージがVMリソースグループ内のストレージコンテナのブロブに格納されていることを確認してください。
セカンダリvSocketをVNetに展開すると、両方のvSocketがマスターの役割を持ちます(スプリットブレイン)。 HA設定をvSocketに適用するために、Cato HAスクリプトcreate_ha_settings.shを実行します。 Cato HAスクリプト付きファイルのダウンロードに関する詳細は、SocketおよびvSocketイメージファイルをご覧ください(この記事を表示するにはサインインが必要です)。
Cato HA スクリプトはマネージドアイデンティティを作成し、後で割り当てられ、VM(HA のメンバー両方)に対して貢献者の役割を持たせます。 さらに、Cato HAスクリプトは、HAグループの各メンバーのために2つのカスタムスクリプトを作成します。これらのスクリプトは、フェイルオーバー時にVMが必要とするすべての情報を含む設定ファイルを作成します。 これには、NICのsubscription_id名、VMの位置情報などが含まれます。
注意
重要: Cato 冗長化スクリプトを実行する前に:
-
プライマリおよびセカンダリのvSocketは、Cato Cloudへの接続性を持っていなければなりません
-
正しいAzure管理者権限を持っていることを確認し、上記を参照してください 高可用性を設定するための管理者権限の設定
Cato 冗長化スクリプトを実行するには:
-
高可用性セクションで、プライマリおよびセカンダリのvSocketがCato Cloudへの接続性を持っていることを確認します:
-
各vSocketのCato Cloudへの接続状態が接続済みと表示されます
-
下記を参照してください、Cato管理アプリケーションでの高可用性ステータスの表示
-
-
HA設定をvSocketに適用するために、Cato HAスクリプトcreate_ha_settings.shを実行します。
-
プライマリおよびセカンダリのvSocketとともにVMを再起動します。
-
次のホップとしてフローティングIPを使用するために、Azureで関連するルートテーブルエントリを更新します。
HAスクリプトを正常に実行した後、vSocketがHA機能に正しく構成されていることを確認してください:
-
高可用性セクションでHAステータスを確認します
-
ソケットWebUIから、フローティングIPにpingを実行し、HA API呼び出しをテストします
HA構成の展開に関連する問題のヘルプについては、Azure HA展開のトラブルシューティングを参照してください。
サイトの高可用性セクションは、vSocketのHAステータスを表示します。 セカンダリvSocketを展開した後、それは自動的にサイトに接続されます。
サイトの高可用性ステータスを確認するには:
-
Cato管理アプリケーションのナビゲーションメニューから、ネットワーク > サイトをクリックします。
-
ナビゲーションメニューから、サイト監視 > ネットワークアナリティクスをクリックします。
-
ページの上部から、以下の項目のステータスを確認してください。
-
状態は接続済み
-
HAステータスは準備完了
-
マスターはプライマリ
-
ソケットはvSocket Azure
-
HAとフェイルオーバーの動作について詳細を知りたい場合は、ソケット高可用性(HA):背景とフェイルオーバー条件を参照してください。
vSocketの冗長化機能をテストするために、ソケットWebUIのネットワークツールを使用できます。 フローティングIPに対してHA構成の正しい設定を確認するためにpingを実行できます。 高可用性セクションにはLANフローティングIPが表示されます。 プライマリとセカンダリのvSocket両方に対してテストを実行する必要があります。
vSocketはAzure APIプロキシへのAPI呼び出しを実行して、冗長化スクリプトによってロールとアイデンティティ設定が正しく構成されたことを確認します。 また、vSocketがAPIプロキシと正常に通信できることを確認します。
Socket WebUIの使用方法の詳細については、Socket WebUIへのアクセスを参照してください。
Azure HA構成をテストするには:
-
ナビゲーションメニューから、サイト設定 > ソケットを選択します。
-
プライマリvSocketのためのアクションドロップダウンメニューから、ソケットWebUIを選択します。
ソケットWebUIが新しいタブで開きます。
-
ツールタブをクリックします。
-
ネットワークツールセクションで、Pingタブをクリックします。
-
フローティングIPにPingを送信します:
-
経由地で、LAN1を選択します。
-
ホスト名/IPアドレスに、フローティングIPを入力します。
-
実行をクリックします。 ウィンドウには、pingが成功したか失敗したかが表示されます。
-
-
ネットワークツールセクションで、APIテストツールタブをクリックします。
-
テストを実行をクリックします。 ウィンドウには、HA APIテストが成功したか失敗したかが示されます。
-
セカンダリvSocketのために、ステップ2-7を繰り返します。
Azure APIテストが失敗した場合、エラーメッセージが表示され、問題を診断するのに役立ちます。
|
APIテストエラーメッセージ |
提案されたトラブルシューティング手順 |
|---|---|
|
Azure APIテストに失敗しました - APIプロキシに認証できません。 Azureアクセス制御(IAM)設定が正しいことを確認してください。 |
Azure管理者は仮想リソースに変更を加える十分な権限を持っていません。 上記を参照してください、冗長化を設定するための管理者権限の設定。 |
|
Azure API テスト失敗。 vSocket VM インスタンス上の NIC 設定が正しいことを確認してください。 |
|
このセクションでは、ネットワーク セクションを使用して Azure HA サイトのネットワーク セグメントを管理する方法について説明します。
Cato 管理アプリケーションにセカンダリ vSocket を追加すると、ネットワーク セクション内のネットワーク セグメントが自動的に更新され、フローティング IP の設定が含まれます。 フローティングIPは、サイトのネイティブ範囲のローカルIPアドレスを置き換えます。
このセクションでは、Azure サイトの冗長化を管理する方法について説明します:
-
各vSocketの冗長ステータスを表示する
-
サイトのフローティングIPを変更する
-
vSocketの管理IPアドレスを変更する
-
サイトの冗長化を無効化する、そしてセカンダリvSocketを削除する
サイトのネットワーク > サイト > ソケットページには、プライマリとセカンダリのvSocketのHAステータスが表示されます。
|
アイテム |
説明 |
|---|---|
|
HAステータス |
サイトの高可用性ステータス(準備完了 または 未準備)、全てのHAステータスインジケータがOKの場合のみ準備完了を表示 |
|
接続済み (ステータスインジケータ) |
ステータス |
|
キープアライブ (ステータスインジケータ) |
ステータス |
|
同一バージョン (ステータスインジケータ) |
ステータス |
Azure で vSocket の IP アドレス設定を変更する場合は、Cato 管理アプリケーションで同じ設定を更新する必要があります。 これらは構成できる設定です:
-
ネイティブ範囲サブネット - サイトの ネットワーク セクションを使用します
-
フローティングIP - サイトのネットワークまたは高可用性セクションを使用します (新しい値は自動的に他のセクションに更新されます)。
-
管理 IP - サイトの 高可用性 セクションを使用します
ネイティブ範囲サブネットを変更するには、ネットワーク セクションを使用します。
AzureサイトからセカンダリvSocketを削除し、そのサイトの冗長化を無効にすることができます。 Cato管理画面からセカンダリvSocketを削除すると、展開済みのvSocketはCato Cloudに接続できなくなります。 サイトの設定はシングルvSocketの構成に復元されます:
-
高可用性セクションが無効化され、ページには表示されなくなります。
-
ネットワークセクションでは、ローカルIPがフローティングIPに置き換わります
注意
注意: ソケットの割り当て解除のアクションは元に戻せません。 セカンダリvSocketのシリアル番号は無効になります。
セカンダリvSocketを再度追加する場合は、新しいシリアル番号を使用してVMに新しいvSocketをインストールする必要があります。
イベントページは、アカウント内のすべてのHA接続イベントを表示します。
Socket冗長化とvSocket冗長化では、イベント項目とイベントは同じです。 これらは冗長化イベントです:
|
項目 |
説明 |
|---|---|
|
ソケットの役割 |
イベントがプライマリまたはセカンダリvSocketによって生成されたかどうかを示します |
|
イベントサブタイプ - ソケット フェイルオーバー |
フェイルオーバープロセスがサイトで開始されます |
フェイルオーバープロセスの一部として生成されるイベントの詳細については、Socket冗長化障害切替イベントを参照してください。
0件のコメント
サインインしてコメントを残してください。