Azure HA vSocketトラブルシューティング

概要

この記事は、一般的なAzure vSocket HAデプロイメントの問題に関する洞察を提供し、それらを解決するためのトラブルシューティング手順を提供します。 このガイドは、HAスクリプトまたはマーケットプレイスを通じてHAソリューションをデプロイする際およびその後に発生する可能性のある障害を特定し対処するのを支援することを目的としています。

症状

Azure vSocket HAをデプロイする際、以下の症状が発生することがあります:

  • HAスクリプトの失敗
    • 手動デプロイメントでcreate_ha_settingsスクリプトの実行に失敗しました。
    • マーケットプレイスを通じたセカンダリvSocketデプロイメントの問題。
  • HAフォールオーバーの失敗
    • ソケットWebUIからHA APIテストが失敗しました。
    • 失敗したHAフォールオーバーにより、トラフィックがセカンダリvSocketに転送されませんでした。
  • HAステータス未準備
    • CMAはサイトのHAステータスが未準備であることを示しています

考えられる原因

HAデプロイメントの失敗の最も一般的な原因には以下が含まれます:

  • Azureでの非公開DNSの使用。
  • インターネットにアクセスできない管理インターフェース。
  • 不十分なAzureアカウント権限。
  • Azureでの制限付きセキュリティグループとルーティング設定。
  • LANインターフェースにフローティングIPアドレスを割り当てられなかった。
  • LAN接続性の問題。

問題のトラブルシューティング

重要

重要: トラブルシューティングを開始する前に、Azure HA vSocketデプロイメントのすべての前提条件を確認してください。 Azure vSocketsの高可用性 (HA) の構成 および マーケットプレイスからのAzure vSocketsのデプロイ を参照してください

HAスクリプトの失敗のデバッグ

Azure HAスクリプト(create_ha_settings)と、マーケットプレイスを介したセカンダリvSocketのデプロイメントは、Azureサブスクリプションに2つの有効なvSocketがあることを検証し、次に、HAとフェイルオーバーメカニズムを作成する役割を割り当てます。 スクリプト実行が失敗した場合、以下のトラブルシューティング手順に従ってください:

アクティビティログを確認

  • Azureでは、アクティビティログは各Azureリソース内で発生したすべてのイベントを保存します。 デプロイメントが成功しない場合、または役割の1つが割り当てられていない場合は、これらのログを確認してください。 VM または NIC へブラウズしてアクティビティログを選択してください

Azure 名前付けの制限を確認する 

  • スクリプトに vSocket 名を入力する際に、名前ルールと制限で説明されているように、名前にスペースや制限された文字が含まれていないことを確認してください。
  • 展開中に命名の問題が発生した場合、以下のエラーがエラーログに表示されます
    パラメータ disk.name の値が無効です。 (コード: InvalidParameter, 対象: disk.name)

Azure DNS 設定を確認する

  • デフォルトの Azure DNS が VNET と関連する NIC に対して設定されていることを確認してください。 デフォルトの DNS が Azure の VNET および NIC の両方に設定されていない場合、ロール作成は失敗します。
  • Azure DNS 構成が何であるかを確認するには、参照 DNS 設定問題の修正を参照してください

Azure 権限を確認する

  • HA スクリプトを成功裏に実行するために、Azureユーザーが 所有者権限を持っていることを確認してください。 リソースグループ > アクセス制御 IAM > 自分のアクセスを表示に移動し、ユーザーアカウントが所有者またはそれ以上のロールに設定されていることを確認してください。 Azure の組み込みロールを参照してください。


Azure ロールの割り当てを確認する 

  • リソースグループでリストされているアイデンティティロールが LAN NIC、LAN サブネット、および両方の vSocket VM に割り当てられていることを確認するために、Azure ロールの割り当てを確認するで提供されている手順を実行してください。

HA スクリプトを再実行する

  • 最終手段として、以前のステップを確認した後に HA スクリプト (create_ha_settings) を再実行することができます。
  • Azure トークンを更新し、最初のスクリプト完了時に作成された場合は Azure 管理アイデンティティを削除してください。

 

HA フェイルオーバー障害のトラブルシューティング

冗長化スクリプトは正常に実行されましたが、vSocket 冗長化フェイルオーバーが予想どおりに発生しない場合(例:トラフィックがセカンダリ vSocket にルーテッドされない)には、以下の手順に従ってください:

HA API テストを実行する

  • vSocket WebUIから、AzureへのAPI呼び出しが正常に行えるかどうかを検証するために、両方のvSocketからAPIテストツールを実行します。 権限やフローティングIPの割り当てに関するエラーはこちらで確認できます。

アクティビティログの確認

  • Azureでは、アクティビティログに各Azureリソース内部で発生したすべてのイベントが保存されます。 これらのログを確認して、フローティングIPがLAN NICにプッシュされなかったか、APIテストが成功しなかったかを特定してください。 NICをブラウズし、アクティビティログを選択します

フローティングIPのPING確認

  • vSocket WebUIからPingツールを使用し、LANインターフェースを選択した後、フローティングIPアドレスをPINGします。 このテストが成功しない場合、フローティングIPの割り当ての検証を続行してください

フローティングIPの割り当ての検証

  • トラフィックをマスタvSocketにルーティングするために、Azureは現在のマスタvSocketのLAN NICにフローティングIPを割り当てます。 プライマリvSocket VM LAN NIC > IP設定に移動し、フローティングIPが「セカンダリ」として存在するかを確認してください。 存在しない場合は、次のステップを続行してください。

Azureロール割り当ての検証 

  • Azure vSocketのデプロイメント中に、冗長化アイデンティティロールが作成され、Azureマネージドアイデンティティに保存されます
  • 各リソースには、1つのユーザー指定ロールのみを割り当てるべきです。 ポリシーがAzureにシステム割り当てアイデンティティを追加する場合、vSocketは除外する必要があります。
  • このロールは、vSocketに接続されている異なる仮想リソースに割り当てられます。 Azureインフラストラクチャでロールを使用するコンポーネントは次のとおりです:

    • 各vSocketのLANネットワークインターフェース(NIC)
    • LAN NICに関連付けられたLANサブネット
    • 両方のvSocket VM
  • NICのロールの割り当ては、アクセス制御 > ロール割り当ての下で確認でき、プライマリとセカンダリのLAN NICの両方に割り当てられるべきです。
  • LANサブネットのロールの割り当ては、VNET > サブネットの下で確認できます。その後、LANサブネットを選択し、ユーザーを管理 > ロールの割り当てをクリックします。
  • 各vSocket VMのために、アイデンティティロールはセキュリティ > アイデンティティ > ユーザー割り当て でチェックできます。以下のスクリーンショットをご覧ください。 システム割り当てロールはVMに割り当てるべきではありません。
  • 上記のリソースのいずれにも冗長化アイデンティティロールがインストールされていない場合、デプロイプロセスが失敗した可能性があります。 関与したリソースのいずれかにロールが欠落している場合は、再度カート冗長化スクリプトを実行できます。 または、セカンダリAzure vSocketを再デプロイすることで、欠落した冗長化アイデンティティロールがインストールされます。

管理インタフェースにDNSとインターネットのアクセス権限があるかどうかを確認します

  • 管理インタフェースがインターネットにアクセスでき、設定済みのDNSサーバーに接続できることを確認してください。
  • Azureポータルからmanagement.azure.comのDNS解決を確認してください。 冗長化APIコールはこのFQDNを使用します。

    • 仮想マシン > vSocket > コマンド実行 > RunShellScriptに移動します
    • テキストボックスにdig management.azure.comを入力します
    • 「Run」をクリックしてください
  • ポータルにDNS応答と共にdigの出力が表示されます。

  • DNS解決がない場合は、 DNS設定問題の修正をご覧ください。
  • 同じページからインターネットアクセスを確認するためにどのインターネットリソースにもアクセスしようとします。 例えば、ping -c 4 8.8.8.8 Pingが成功しない場合は、次の手順を続行してください。

ネットワークセキュリティグループがアウトバウンドトラフィックをブロックしているかどうかを確認します。

注意

注意: vSocketsに2-NIC ソリューションが実装されている場合。 WANインタフェースでこのトラブルシューティング手順を実行します。

  • 素早く確認する方法は、AzureのMGMTネットワークインタフェースに移動し、画面の左下にある「有効なセキュリティルール」をクリックします。
  • 以下のスクリーンショットでは、NSGが割り当てられていないため、アウトバウンドトラフィックはブロックされていません。

インターネットトラフィックのためのMGMTインターフェースルーティングを確認してください。

注意

注: 2-NICソリューションがvSocketに実装されている場合。 このトラブルシューティング手順はWANインターフェースで実行してください。

  • MGMTインターフェーストラフィックがAzureでサードパーティのファイアウォールを経由してルーティングされる場合、UDP/53とTCP/443のアウトバウンド接続が許可されていることを確認してください。
  • ルートテーブルは、Azureの管理インターフェースページで「有効なルート」オプションをクリックすることで確認できます。
  • 以下のスクリーンショットは、「ネクストホップ」タイプとしてインターネットを使用しているインターネットトラフィックのルートを示しており、ファイアウォールがトラフィックをブロックしていないことを示しています。

ルーティングテーブルの次ホップを確認中

  • LANルーティングテーブルがフローティングIPを指していることを確認してください。 必要に応じてネクストホップIPアドレスを変更してください。

HAステータスが準備完了でないときのトラブルシューティング

CMAがHAステータスを準備未完了と示し、両方のvSocketが接続中の場合、両方のvSocketがマスターロールを取る(スプリットブレインシナリオ)。 二つの関連する問題がある可能性があります:

  • 両方のvSocketが異なるファームウェアバージョンを実行している
  • HAキープアライブメッセージがセカンダリvSocketに届かない

各vSocketのHAステータスを確認するため、両vSocketのWebUIページを確認することをお勧めします。 プライマリおよびセカンダリvSocketがマスターロールにある場合、スプリットブレインシナリオが発生します。 WebUIはメインモニタリングページのトップに現在のロールを表示します。

ファームウェアバージョンの確認

互換バージョンクライテリアを満たすためには、両vSocketが同じメジャーバージョンを実行している必要があります。例:v17.xx.yyまたはv18.xx.yy。vSocketは最初に展開された後、初回のアップグレードを実行します。 vSocketのいずれかがアップグレードに失敗した場合、この問題はトラブルシューティングが必要です。 この問題を報告するためにサポートチケットを提出してください。

HAキープアライブの確認

キープアライブパケットはAzure vSocketのためにポートUDP/20480を使用し、マスターvSocketからスタンバイvSocketにのみ送信されます。 スプリットブレイン状態は、両方のvSocketがマスターロールを持つ場合に発生します。これは、HAキープアライブメッセージがセカンダリvSocketに届かないようなvSocket間のLAN接続性の問題によって起こる可能性があります。 

LAN接続性を確認するために以下のチェックを実行してください:

  • ネットワークセキュリティグループがポートUDP/20480をブロックしているかどうかを確認してください。 NSGルールを速やかに確認する方法は、Azure内の各LANネットワークインタフェースにアクセスし、画面左下の"エフェクティブセキュリティルール"をクリックすることです。
  • 両方のLANインタフェースが同じLANサブネットに関連付けられていることを確認してください。
  • 両方のvSocketのWebUIからパケットキャプチャを実行し、プライマリによって送信されたキープアライブがセカンダリvSocketによって受信されているか確認してください。

発見された問題の解決

Azureトークンの更新

  • もしAzure Cloud Shellを使用してHAスクリプトをデプロイする場合は、新しいセッションを開き、再認証してください。 これはAPIクエリ用のトークンを更新します。

DNS構成の問題を修正

  • Azure DNS設定を修正し、デフォルトの値に設定するには、仮想ネットワーク > DNSサーバー と ネットワークインタフェース > DNSサーバー に移動し、デフォルトオプションまたは公開DNSサーバーを使用していることを確認してください。 DNS関連の変更を行うためにVMをシャットダウンし、その後再起動してください。

Azure vSocketの登録解除と再デプロイ

  • 上記のすべてのトラブルシューティング手順を実行した後も、HAスクリプトまたはHAフェイルオーバーが失敗し続ける場合は、1つまたは両方のvSocketの登録を解除して再デプロイすることが可能です。 高可用性vSocketサイトの再デプロイを参照してください。
  • ガイドラインに従い、vSocketを再デプロイする前に、仮想マシン、ネットワークインタフェース、関連する公開IP、および管理されたアイデンティティを削除することが重要です。
  • プライマリvSocketインスタンスのみを再デプロイする場合は、専用のHAスクリプト(create_ha_settings)を実行して、HAのために両方のvSocketインスタンスをバインドする必要があります。

 

Catoサポートへのケース提起を行う

上記のトラブルシューティング手順の結果を添えて、サポートチケットを提出してください。 チケットに以下の情報を含めてください:

  • 問題のクリアな説明と任意のエラーメッセージ。
  • management.azure.comのDNSテスト結果
  • APIテスト結果。
  • 割り当てられたフローティングIPと設定済み識別役割のスクリーンショット。
  • 発見された任意のエラーを含むAzureアクティビティログのスクリーンショット。

 

この記事は役に立ちましたか?

3人中2人がこの記事が役に立ったと言っています

0件のコメント