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.
- 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.
- 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.
- 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.
- 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.
Host-Verbindungsprobleme
- 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 Dienstjava-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.