NSX Controller 是 NSX Manager 使用 OVA 格式部署的。具有控制器集群可以提供高可用性。部署控制器要求 NSX Manager、vCenter Server 和 ESXi 主机配置了 DNS 和 NTP。必须使用静态 IP 池为每个控制器分配 IP 地址。

建议您实施 DRS 反关联性规则以使 NSX Controller 位于单独的主机上。您必须部署三个 NSX Controller

常见的控制器问题

在部署 NSX Controller 期间,可能遇到的典型问题如下所示:

  • NSX Controller 部署失败。
  • NSX Controller 无法加入集群。
  • 运行 show control-cluster status 命令将显示 Majority statusConnected to cluster majorityInterrupted connection to cluster majority 之间变化。
  • 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 clusterforce join 命令。该命令不用于将节点加入集群。如果这样做,集群可能会进入完全不确定的状态。

      集群启动节点仅仅指的是,在其中查看成员何时启动的集群成员。如果该列表包含不再使用的集群成员,请不要担心。这不会影响集群功能。

      所有集群成员应具有相同的集群 ID。否则,集群将处于损坏状态,您应该与 VMware 技术支持人员一起修复该问题。

    • show control-cluster startup-nodes 命令不用于显示集群中的所有当前节点,而是显示在控制器进程重新启动时该节点使用哪些其他控制器节点以在集群中添加成员。因此,命令输出可能显示已关闭或以其他方式从集群中删除的某些节点。
    • 此外,show control-cluster network ipsec status 命令还允许检查 Internet 协议安全 (Internet Protocol Security, IPsec) 状态。如果您发现控制器在几分钟到几小时内无法相互通信,请运行 cat /var/log/syslog | egrep "sending DPD request|IKE_SA" 命令并查看日志消息是否指示没有流量。也可以运行 ipsec statusall | egrep "bytes_i|bytes_o" 命令并确认没有建立两个 IPsec 隧道。在向 VMware 技术支持代表报告可疑的控制集群问题时,请提供这些命令的输出和控制器日志。
  • NSX Manager 和 NSX Controller 之间出现 IP 连接问题。这通常是物理网络连接问题或防火墙阻止通信造成的。
  • 在 vSphere 上没有足够的资源(如存储)以托管控制器。在控制器部署期间,可以查看 vCenter 事件和任务日志以发现这些问题。

    vSphere Web Client 中的任务控制台显示有关磁盘空间不足的问题。

  • “恶意”控制器出现异常或升级的控制器处于已断开连接 (Disconnected)状态。
  • 未正确配置 ESXi 主机和 NSX Manager 上的 DNS。
  • ESXi 主机和 NSX Manager 上的 NTP 不同步。

    “时间配置”页面将“NTP 客户端”显示为“已禁用”,将“NTP 服务状态”显示为“已停止”。

  • 在新连接的虚拟机无法访问网络时,这可能是控制平面问题造成的。检查控制器状态。

    还要尝试在 ESXi 主机上运行 esxcli network vswitch dvs vmware vxlan network list --vds-name <name> 命令以检查控制平面状态。请注意,控制器连接中断。

    ""

  • 运行 show log manager follow NSX Manager CLI 命令可以找出无法部署控制器的任何其他原因。

    由于数据存储上的磁盘空间不足,控制器部署失败。

主机连接问题

可以使用以下命令检查主机连接错误。请在每个控制器节点上运行这些命令。
  • 使用 show log cloudnet/cloudnet_java-vnet-controller*.log filtered-by host_IP 命令检查任何异常错误统计信息。
  • 使用以下命令验证逻辑交换机/路由器消息统计信息或高消息速率:
    • show control-cluster core stats: overall stats
    • show control-cluster core stats-sample: latest stats samples
    • show control-cluster core connection-stats ip: per connection stats
    • 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 网络标识符 (VXLAN Network Identifier, VNI) 以及配置是否正确。
    • 检查 VNI 是否连接到主控制器(如果启用了控制平面)。

安装和部署问题

  • 验证是否在集群中部署了至少三个控制器节点。VMware 建议使用本机 vSphere 反关联性规则,以避免在同一 ESXi 主机上部署多个控制器节点。
  • 验证所有 NSX Controller 是否显示 Connected 状态。如果任何控制器节点显示 Disconnected 状态,请在所有控制器节点上运行 show control-cluster status 命令以确保以下信息是一致的:
类型 状态
Join status Join complete
Majority status Connected to cluster majority
Cluster ID 在所有控制器节点上具有相同的信息
  • 确保所有角色在所有控制器节点上是一致的:
    角色 配置状态 活动状态
    api_provider enabled activated
    persistence_server enabled activated
    switch_manager enabled activated
    logical_manager enabled activated
    directory_server enabled activated
  • 验证 vnet-controller 进程是否正在运行。在所有控制器节点上运行 show process 命令并确保 java-dir-server 服务正在运行。

  • 验证集群历史记录,并确保没有迹象表明主机连接发生变化,VNI 加入失败或集群成员资格发生异常变化。要验证这种情况,请运行 show control-cluster history 命令。这些命令还会显示节点是否频繁重新启动。确认没有很多具有零 (0) 大小和不同进程 ID 的日志文件。
  • 验证是否配置了 VXLAN 网络标识符 (VXLAN Network Identifier, VNI)。有关详细信息,请参阅《VMware VXLAN Deployment Guide》的 VXLAN 准备步骤部分。
  • 验证是否在控制器集群上启用了 SSL。请在每个控制器节点上运行 show log cloudnet/cloudnet_java-vnet-controller*.log filtered-by sslEnabled 命令。