Mit Einführung von vSphere 7.0 Update 1 erschienen in vSphere-Clustern erstmals die vSphere Cluster Services VMs (vCLS). Damit wurden Cluster Funktionen wie z.B. Distributed Resource Scheduler (DRS) und andere erstmals unabhängig von der Verfügbarkeit der vCenter Server Appliance (VCSA). Letztere stellt im Cluster immer noch einen Single-Point-of-Failure dar. Durch Auslagerung der DRS Funktion in die redundanten vCLS Maschinen wurde ein höheres Maß an Resilienz erreicht.
Retreat Mode
Der vSphere-Administrator hat nur wenig Einfluss auf die Bereitstellung dieser VMs. Gelegentlich ist es jedoch notwendig, diese VMs von einem Datastore zu entfernen wenn dieser beispielsweise in den Wartungsmodus versetzt werden soll. Dafür gibt es eine Prozedur, um den Cluster in den sogenannten Retreat-Mode zu setzen. Dabei werden temporäre erweiterte Einstellungen gesetzt, die zur Löschung der vCLS VMs durch den Cluster führen.
Laut Prozedur von VMware muss für die Aktivierung des Retreat Modes die Domain ID ermittelt werden. Die Domain ID ist der numerische Wert zwischen ‘domain-c’ und dem folgenden Doppelpunkt. Im Beispiel aus meinem Labor ist es der Wert 8, aber die Zahl kann durchaus auch vierstellig sein.
Die Domain ID muss dann in den Advanced Settings des vCenters übergeben werden.
config.vcls.clusters.domain-c8.enabled = false
Admin Fehler beim Retreat Mode
Nach Aktivierung des Retreat-Modes auf einem vSAN-Cluster hatten Administratoren sämtliche Privilegien auf alle Objekte im vSphere-Client verloren.
Eine Überprüfung der Dienste zeigte, dass der vCenter Server Daemon (vpxd) nicht gestartet war.
Was war passiert?
Im beobachteten Fall wurde anstatt der Domain ID auch noch ein Doppelpunkt aus der URL kopiert.
config.vcls.clusters.:domain-c8.enabled = false
Dies führte zu folgenden Effekten:
- Center Server Daemon vmware-vpxd beendet
- Keine Objekte im vSphere-Client sichtbar
- vCenter Server Daemon vmware-vpxd nicht mehr startbar.
Was nun?
Zur Lösung des Problems müssen wir auf die Shell der VCSA und die Konfiguration des vpxd bereinigen.
cd /etc/vmware-vpx
cat vpxd.cfg
Wenn im Cluster der Retreat Mode aktiviert wurde, dann wird in der vpxd.cfg ein Abschnitt vcls (hier rot) erzeugt.
Im Bild oben steht unser fehlerhafter Abschnitt mit der falschen Domain ID.
Mit Hilfe des vi Editors löscht man nun alle Zeilen inklusive der vcls-Tags. Dies geht am einfachsten im Command-Mode des vi. Dazu den Cursor an die zu löschende Zeile setzen und ‘dd‘ eintippen. Dies löscht die gesamte Zeile. Danach die vpxd.cfg zurückschreiben und vi verlassen mit dem :wq Kommando (write and quit).
:wq
Die veränderte vpxd.cfg Datei wird reaktiviert durch starten des Dienstes vmware-vpxd.
service-control --start vmware-vpxd
Sobald der vcls-Abschnitt in der vpxd.cfg gelöscht wurde, verschwindet auch die erweiterte Einstellung config.vcls.clusters im vSphere-Client. Wir befinden uns wieder im Urzustand, als sei der Retreat-Mode noch nie aktiviert gewesen.
Abschlussbemerkungen
Es muss angefügt werden, dass die Advanced Parameter für den Retreat Mode im Grunde sehr robust sind. Es bereitete mir einige Schwierigkeiten, den Fehler im Labor zu reproduzieren. Die meisten falschen Parameter wurden schlicht ignoriert.
falsche Domain ID | ignoriert |
UID anstatt Domain ID | ignoriert |
Forward Slash am Ende der UID | ignoriert |
Domain ID plus UID | ignoriert |
Doppelpunkt vor domain-c | vpxd crash ggfs stark verzögert oder erst bei Neustart |