NSX Controller werden von NSX Manager im OVA-Format bereitgestellt. Ein Controller-Cluster bietet die Möglichkeit einer Hochverfügbarkeit (HA, High Availability). Für die Bereitstellung von Controllern müssen NSX Manager, vCenter Server und ESXi-Hosts über ein konfiguriertes DNS und NTP verfügen. Zur Zuweisung der IP-Adresse an jeden Controller muss ein Pool von statischen IP-Adressen verwendet werden.

Es wird empfohlen, DRS-Anti-Affinitätsregeln zu implementieren, um die NSX Controller auf getrennten Hosts zu halten. Sie müssen DREI NSX Controller bereitstellen.

Allgemeine Probleme mit Controllern

Bei der Bereitstellung von NSX Controllern können folgende, typische Probleme auftreten:

  • Fehler bei der Bereitstellung von NSX Controller(n).
  • Beitritt des NSX Controller zum Cluster schlägt fehl.
  • Mit dem Befehl show control-cluster status wird das Majority status-Flapping zwischen Connected to cluster majority und Interrupted connection to cluster majority angezeigt.
  • Probleme bei der Anzeige des Verbindungsstatus auf dem NSX-Dashboard.
    • Wir empfehlen den Befehl show control-cluster status, um anzuzeigen, ob ein Controller einem Controller-Cluster beigetreten ist. Sie müssen diesen Befehl auf jedem Controller ausführen, um den allgemeinen Clusterstatus herauszufinden.
      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
      Hinweis: Wenn Sie sehen, dass ein Controller-Knoten nicht verbunden ist, verwenden Sie NICHT den Befehl join cluster oder force join. Dieser Befehl ist nicht für den Beitritt eines Knotens zum Cluster gedacht. Die Verwendung des Befehls könnte zu einem völlig unsicheren Clusterstatus führen.

      Clusterstartknoten geben den Clustermitgliedern lediglich einen Hinweis, wo gesucht werden muss, wenn die Mitglieder starten. Machen Sie sich keine Sorgen, wenn diese Liste Clustermitglieder enthält, die nicht länger genutzt werden. Die Clusterfunktionalität wird dadurch nicht beeinträchtigt.

      Alle Clustermitglieder sollten dieselbe Cluster-ID aufweisen. Wenn dies nicht der Fall ist, befindet sich der Cluster in einem fehlerhaften Status. Kümmern Sie sich in diesem Fall zusammen mit dem technischen Support von VMware um die Fehlerbehebung.

    • Der Befehl show control-cluster startup-nodes dient nicht dazu, alle aktuell im Cluster vorhandenen Knoten anzuzeigen. Stattdessen zeigt der Befehl, welche anderen Controller-Knoten von diesem Knoten genutzt werden, um die Mitgliedschaft im Cluster zu laden, wenn der Controller-Prozess erneut startet. Dementsprechend zeigt die Befehlsausgabe möglicherweise einige Knoten, die ausgeschaltet sind oder auf andere Weise vom Cluster entfernt wurden.
    • Des Weiteren können Sie mit dem Befehl show control-cluster network ipsec status den IPsec-Status (Internet Protocol Security) anzeigen. Wenn Sie bemerken, dass Controller einige Minuten oder Stunden lang nicht untereinander kommunizieren können, führen Sie den Befehl cat /var/log/syslog | egrep "sending DPD request|IKE_SA" aus, um zu prüfen, ob die Protokollnachrichten fehlenden Datenverkehr angeben. Sie können auch mit dem Befehl ipsec statusall | egrep "bytes_i|bytes_o" überprüfen, dass keine zwei IPsec-Tunnel eingerichtet wurden. Wenn Sie ein mutmaßliches Controller-Cluster-Problem an einen Mitarbeiter des technischen Supports von VMware melden, legen Sie die Ausgabe dieser Befehle sowie die Controller-Protokolle vor.
  • Probleme der IP-Konnektivität zwischen NSX Manager und den NSX Controllern. Diese werden meist durch Konnektivitätsprobleme der physischen Netzwerke verursacht oder durch Blockierung der Kommunikation aufgrund einer Firewall.
  • Unzureichende Ressourcen wie ein zu geringer verfügbarer Speicher auf vSphere zum Hosten der Controller. Solche Probleme lassen sich durch die Anzeige des vCenter-Ereignis- und Aufgabenprotokolls während der Bereitstellung der Controller ermitteln.

    Aufgabenkonsole im vSphere Web Client zeigt Probleme wegen unzureichenden Festplattenspeichers an.

  • Ein „defekter“ Controller verhält sich falsch oder aktualisierte Controller befinden sich im Status Getrennt (Disconnected).
  • DNS auf ESXi-Hosts und NSX Manager sind nicht korrekt konfiguriert.
  • NTPs auf ESXi-Hosts und NSX Manager sind nicht synchronisiert.

    Auf der Seite „Tme-Konfiguration“ wird der NTP-Client als deaktiviert und der NTP-Dienststatus als angehalten angezeigt.

  • Wenn neu verbundene VMs über keinen Netzwerkzugriff verfügen, liegt die Ursache vermutlich in einem Problem der Steuerungskomponente. Überprüfen Sie den Status des Controllers.

    Führen Sie auch den Befehl esxcli network vswitch dvs vmware vxlan network list --vds-name <name> auf ESXi-Hosts aus, um den Status der Steuerungskomponente zu prüfen. Beachten Sie, die Controller-Verbindung getrennt sein muss.

    ""

  • Mit dem CLI-Befehl show log manager follow von NSX Manager können Sie weitere Ursachen von Fehlern beim Bereitstellen von Controllern ermitteln.

    Die Controller-Bereitstellung ist fehlgeschlagen, da nicht genügend Festplattenspeicher im Datenspeicher verfügbar ist.

Host-Verbindungsprobleme

Mit den folgenden Befehlen können Sie Host-Verbindungsprobleme erkennen. Führen Sie diese Befehle auf jedem Controller-Knoten durch.
  • Prüfen Sie mit dem Befehl show log cloudnet/cloudnet_java-vnet-controller*.log filtered-by host_IP, ob abnormale Fehlerstatistiken vorliegen.
  • Überprüfen Sie mit den folgenden Befehlen die Nachrichtenstatistiken des logischen Switches/Routers oder die hohe Nachrichtenrate:
    • show control-cluster core stats: allgemeine Statistiken
    • show control-cluster core stats-sample: neueste Statistiken (Auszüge)
    • show control-cluster core connection-stats ip: Statistiken je Verbindung
    • 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
  • Mit dem Befehl show host hostID health-status können Sie den Systemzustand von Hosts in Ihren vorbereiteten Clustern überprüfen. Für die Controller-Fehlerbehebung werden folgende Systemzustandsprüfungen unterstützt:

    • Überprüfung, ob die net-config-by-vsm.xml mit der Controller-Liste synchronisiert ist.
    • Überprüfung, ob eine Socket-Verbindung zum Controller besteht.
    • Überprüfung, ob die VXLAN-Netzwerkkennung (VNI) erstellt wurde und die Konfiguration korrekt ist.
    • Überprüfung, ob die VNI eine Verbindung zu den Master-Controllern herstellt (falls die Kontrollebene aktiviert ist).

Installations- und Bereitstellungsprobleme

  • Stellen Sie sicher, dass mindestens drei Controller-Knoten in einem Cluster bereitgestellt werden. VMware empfiehlt, mit Hilfe der nativen Anti-Affinitätsregeln von vSphere die Bereitstellung von mehr als einem Controller-Knoten auf demselben ESXi-Host zu verhindern.
  • Überprüfen Sie, dass alle NSX Controllers den Status Connected aufweisen. Wenn einer der Controller-Knoten den Status Disconnected aufweist, stellen Sie sicher, dass die nachfolgenden Informationen konsistent sind. Führen Sie dazu den Befehl show control-cluster status auf allen Controller-Knoten aus:
Typ Status
Join status (Beitrittsstatus) Join complete (Beitritt abgeschlossen)
Majority status (Mehrheitsstatus) Connected to cluster majority (Mit Clustermehrheit verbunden)
Cluster-ID Dieselben Informationen auf allen Controller-Knoten
  • Stellen Sie sicher, dass alle Rollen auf allen Controller-Knoten konsistent sind:
    Rolle Konfigurierter Status Aktiver Status
    api_provider aktiviert aktiviert
    persistence_server aktiviert aktiviert
    switch_manager aktiviert aktiviert
    logical_manager aktiviert aktiviert
    directory_server aktiviert aktiviert
  • Überprüfen Sie, ob der vnet-controller-Vorgang ausgeführt wird. Führen Sie den Befehl show process auf allen Controller-Knoten durch, um sicherzustellen, dass der Dienst java-dir-server ausgeführt wird.

  • Überprüfen Sie den Clusterverlauf, und stellen Sie sicher, dass es keine Anzeichen für Host-Verbindungs-Flapping, VNI-Beitrittsfehler und abnormale Änderungen bei den Clustermitgliedschaften gibt. Um dies zu überprüfen, führen Sie den Befehl show control-cluster history aus. Dieser Befehl zeigt auch an, ob der Knoten häufig neu gestartet wird. Stellen Sie sicher, dass es nur wenige Protokolldateien mit einer Dateigröße von null (0) und mit unterschiedlichen Prozess-IDs gibt.
  • Überprüfen Sie, ob die VXLAN-Netzwerk-ID (VNI) konfiguriert ist. Weitere Informationen finden Sie im Abschnitt Schritte zur VXLAN-Vorbereitung im VMware VXLAN Deployment Guide.
  • Überprüfen Sie, ob auf dem Controller-Cluster SSL aktiviert ist. Führen Sie den Befehl show log cloudnet/cloudnet_java-vnet-controller*.log filtered-by sslEnabled auf jedem Controller-Knoten durch.