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冗長化vSocket展開の前提条件を確認してください。 See Configuring HA for Azure vSockets and Deploying Azure vSockets from the Marketplace

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

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

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

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

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

  • スクリプトに vSocket 名を入力する際に、名前ルールと制限で説明されているように、名前にスペースや制限された文字が含まれていないことを確認してください。
  • デプロイメント中に名前の問題が発生した場合、次のエラーがエラーログに表示されます

    パラメータ disk.name の値が無効です。 (コード: 無効なパラメーター、対象: 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リソースと正しく関連付けられている必要があります。

  • 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にシステム割り当てロールを割り当てるべきではありません。 これを確認するには、セキュリティ > アイデンティティ > システム割り当て済みに移動し、各vSocket 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サーバーを使用していることを確認してください。 VMをシャットダウンしてDNS関連の変更を行い、その後再起動してください。

     

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件のコメント