NSX Controller は、NSX Manager によって OVA 形式でデプロイされます。コントローラ クラスタを使用することで高可用性が実現します。コントローラをデプロイするには、NSX Manager、vCenter Server、および ESXi ホストに DNS と NTP が設定されている必要があります。固定 IP アドレス プールを使用して、各コントローラに IP アドレスを割り当てる必要があります。

個々のホストで NSX Controller を保持できるように、DRS の非アフィニティ ルールを実装することをお勧めします。3 台の NSX Controller をデプロイする必要があります。

コントローラの一般的な問題

NSX Controller をデプロイする際、次のような問題が発生する可能性があります。

  • NSX Controllerのデプロイが失敗する。
  • NSX Controllerがクラスタに参加できない。
  • show control-cluster status コマンドを実行すると、Connected to cluster majorityInterrupted connection to cluster majority との間を Majority status がフラップする。
  • NSX ダッシュボードに、接続ステータスに関する問題が表示される。
    • show control-cluster status コマンドは、コントローラがコントロール クラスタに参加したかどうかを表示するための推奨コマンドです。このコマンドを各コントローラで実行し、クラスタ全体のステータスを確認する必要があります。
      controller # show control-cluster status
      Type                Status                                       Since
      --------------------------------------------------------------------------------
      Join status:        Join complete                                10/17 18:16:58
      Majority status:    Connected to cluster majority                10/17 18:16:46
      Restart status:     This controller can be safely restarted      10/17 18:16:51
      Cluster ID:         af2e9dec-19b9-4530-8e68-944188584268
      Node UUID:          af2e9dec-19b9-4530-8e68-944188584268
      Role                Configured status   Active status
      --------------------------------------------------------------------------------
      api_provider        enabled             activated
      persistence_server  enabled             activated
      switch_manager      enabled             activated
      logical_manager     enabled             activated
      dht_node            enabled             activated
      注: コントローラ ノードが接続されていなくても、 join cluster コマンドまたは force join コマンドは使用しないでください。これは、クラスタにノードを参加させるために設計されたコマンドではありません。これを実行すると、クラスタが不安定な状態になる可能性があります。

      クラスタ起動ノードは、クラスタ メンバーが、起動した他のメンバーを確認するヒントにすぎません。このリストに、サービスを終了したクラスタ メンバーが含まれていても問題はありません。これはクラスタの機能には影響しません。

      すべてのクラスタ メンバーに、同じクラスタ ID が割り当てられている必要があります。そうでない場合、クラスタは破損状態になるため、VMware のテクニカル サポートに相談して修復する必要があります。

    • show control-cluster startup-nodes コマンドは、現在クラスタ内にあるすべてのノードを表示するようには設計されていません。その代わりに、別のどのコントローラ ノードがこのノードで使用されていて、コントローラ プロセスが再起動したときにクラスタへのメンバーシップを自動で起動されるかが表示されます。そのため、コマンド出力には、シャットダウンしているノード、またはクラスタから除外された一部のノードが表示される場合があります。
    • さらに、show control-cluster network ipsec status コマンドでは、ユーザーが IPsec (Internet Protocol Security) の状態を調べることができます。数分から数時間の間、コントローラ間で通信が行われない場合は、 cat /var/log/syslog | egrep "sending DPD request|IKE_SA" コマンドを実行し、ログ メッセージでトラフィックが記録されていないことを確認してください。ipsec statusall | egrep "bytes_i|bytes_o" コマンドを実行して、IPsec トンネルが 2 つ確立されていないかを確認する方法もあります。コントロール クラスタで疑われる問題を VMware のテクニカル サポート担当者に報告する際は、これらのコマンドの出力とコントローラのログを提出してください。
  • NSX Manager と NSX Controller の間の IP 接続の問題。これは、一般的に物理ネットワーク接続の問題、またはファイアウォールによる通信のブロックにより発生します。
  • コントローラのホストに使用する、vSphere のストレージなどのリソースの不足。コントローラのデプロイ中に vCenter Server のイベントおよびタスクのログを確認することで、このような問題を特定できます。

  • 適切に動作しない「問題のある」コントローラ、または [切断 (Disconnected)] 状態のアップグレード済みコントローラ。
  • ESXi ホストおよび NSX Manager の DNS が適切に設定されていない。
  • ESXi ホストと NSX Manager の NTP が同期されない。

  • 新規に接続された仮想マシンがネットワークにアクセスできない場合は、制御プレーンで問題が発生している可能性があります。コントローラのステータスを確認します。

    また、制御プレーンのステータスを確認するために、ESXi ホストで esxcli network vswitch dvs vmware vxlan network list --vds-name <name> コマンドを実行します。コントローラが切断されていることを確認します。

  • NSX Manager CLI コマンド show log manager follow を実行することで、コントローラのデプロイが失敗するその他の原因を特定できます。

ホスト接続の問題

次のコマンドを使用して、ホスト接続のエラーを確認します。これらのコマンドは、各コントローラ ノードで実行してください。
  • show log cloudnet/cloudnet_java-vnet-controller*.log filtered-by host_IP コマンドを使用して、異常なエラーの統計情報を確認します。
  • 以下のコマンドを使用して、論理スイッチ/ルーターのメッセージ統計情報または頻度の高いメッセージを確認します。
    • show control-cluster core stats:全体の統計情報
    • show control-cluster core stats-sample:最新の統計情報のサンプル
    • show control-cluster core connection-stats ip:接続ごとの統計情報
    • show control-cluster logical-switches stats
    • show control-cluster logical-routers stats
    • show control-cluster logical-switches stats-sample
    • show control-cluster logical-routers stats-sample
    • show control-cluster logical-switches vni-stats vni
    • show control-cluster logical-switches vni-stats-sample vni
    • show control-cluster logical-switches connection-stats ip
    • show control-cluster logical-routers connection-stats ip
  • show host hostID health-status コマンドを使用すると、準備済みクラスタにあるホストの健全性ステータスを確認できます。コントローラのトラブルシューティングでは、以下の健全性チェックがサポートされています。

    • net-config-by-vsm.xml がコントローラ リストと同期しているかどうかを確認する。
    • コントローラへのソケット接続があるかどうかを確認する。
    • VXLAN ネットワーク識別子 (VNI) が作成されていて、設定が正しいかどうかを確認する。
    • マスター コントローラへの VNI 接続を確認する(制御プレーンが有効な場合)。

インストールとデプロイの問題

  • クラスタに少なくとも 3 台のコントローラ ノードがデプロイされていることを確認します。VMware では、ネイティブの vSphere 非アフィニティ ルールを使用することで、同じ ESXi ホスト上に複数のコントローラ ノードをデプロイしないようにすることをお勧めしています。
  • すべての NSX Controller接続済みステータスが表示されていることを確認します。切断済みステータスが表示されるコントローラ ノードがある場合は、すべてのコントローラ ノードで show control-cluster status コマンドを実行して、以下の情報が一貫していることを確認します。
タイプ ステータス
Join status 参加完了
Majority status クラスタ マジョリティに接続
Cluster ID すべてのコントローラ ノードで同じ情報
  • すべてのコントローラ ノードのすべてのロールが一貫していることを確認します。
    ロール 設定されたステータス アクティブ ステータス
    api_provider 有効 アクティブ化
    persistence_server 有効 アクティブ化
    switch_manager 有効 アクティブ化
    logical_manager 有効 アクティブ化
    directory_server 有効 アクティブ化
  • vnet-controller プロセスが実行中であることを確認します。すべてのコントローラ ノードで show process コマンドを実行し、java-dir-server サービスが実行中であることを確認します。

  • クラスタ履歴を検証し、ホスト接続のフラッピング、VNI 参加の失敗、および異常なクラスタ メンバーシップの変更の兆候がないことを確認します。これを確認するには、show control-cluster history コマンドを実行します。このコマンドは、ノードが頻繁に再起動されるかどうかも示します。プロセス ID が異なる、サイズがゼロ (0) のログ ファイルが多数表示されないことを確認します。
  • VXLAN ネットワーク識別子 (VNI) が設定されていることを確認します。詳細については、『VMware VXLAN Deployment Guide』の「VXLAN 準備手順」セクションを参照してください。
  • SSL がコントローラ クラスタで有効になっていることを確認します。show log cloudnet/cloudnet_java-vnet-controller*.log filtered-by sslEnabled コマンドは、各コントローラ ノードで実行してください。