HA mit PowerCLI steuern

HA ist ein sehr hilfreiches Cluster Feature von vSphere. Es gibt aber Situationen, da muß man es abschalten oder deaktivieren. Ein Beispiel ist die skriptgesteuerte Abschaltung eines Clusters. Hierbei werden alle VMs beendet und die ESXi Hosts abgeschaltet. Ist dann HA noch aktiv, passieren wilde Dinge. Der letzte ESXi Host versucht alle (inzwischen ausgeschalteten) VMs zu übernehmen, aber diese sind noch auf den anderen Hosts registriert. Dabei ist alles in Ordnung und geplant. Für Notabschaltungen und geplante Wartungen empfiehlt es sich daher HA ganz abzuschalten. Solange ein Admin an der GUI sitzt ist dies kein Problem. Wenn aber die Notabschaltung automatisch ausserhalb der Geschäftszeiten erfolgt, muss HA per Skript deaktiviert werden.

HA deaktivieren

Folgendes Kommando schaltet HA auf allen Clustern ab ohne Rückfrage

Get-Cluster | Set-Cluster -HAEnabled:$false -Confirm:$false

Möchte man HA nur gezielt für einen Cluster (Name MYCLUSTER entsprechend anpassen) abschalten, so ist der Befehl etwas zu modifizieren.

Get-Cluster MYCLUSTER | Set-Cluster -HAEnabled:$false -Confirm:$false

Host Monitoring abschalten

Eine Variante zur Abschaltung von HA ist die Deaktivierung des Host-Monitoring. Dabei bleiben die HA-Agenten auf den ESX Hosts installiert, werden aber inaktiv gesetzt.

Die Steuerung mittels PowerCLI ist etwas umständlicher, aber möglich. In einem Blogbeitrag von ICT-Freak.nl gibt es hierfür ein kleines Script.

Project ONYX

Ein sehr hilfreiches Tool zur Erstellung von Powershell Skripten bietet Project-Onyx. Hiermit kann man Vorgänge an der GUI aufzeichnen und erhält die entsprechenden Powershell Kommandos für die Aktion zurück.

vSphere5 – ESXi Host SSL Fingerprint

Im vCenter sah ich einen der ESXi Hosts im Status „disconnected“, jedoch alle VMs dieses Hosts waren erreichbar. Der Grund war schnell gefunden. Ich hatte vergessen, die 64 Tage Demolizenz auf die echte Lizenz umzustellen.

Administration > vCenter Settings > Licensing

HA Fehler

Nach der Umstellung versuchte ich den Host neu zu verbinden und erhielt diese Fehlermeldung.

vSphere HA Cannot be configured on this host because its SSL thumbprint has not been verified.

Etwas mit den SSL Einstellungen des Hosts schien nicht in Ordnung zu sein.

Bei allen Hosts in der Liste muss der Haken „Verified“ gesetzt sein. Danach den Host trennen (nicht entfernen!) und wieder verbinden.

Die Echtheit des Fingerprints kann direkt überprüft werden, indem man ihn mit dem SSL Fingerprint am DCUI (ESX Konsole) vergleicht.

vSphere 5.1

Ab vCenter Version 5.1 gibt es keine SSL Settings mehr in den vCenter Einstellungen.

Links

the Hyperadvisor – vSphere HA cannot be configured on the host because of its SSL

vmware KB 2006210

ESXi Prettyprint

Oftmals sind HA Fehlermeldungen des ESXi Servers nicht sehr aussagekräftig. Ein sehr nützliches Diagnosetool ist hierfür das Script PrettyPrint, welches sich auf dem ESXi Host befindet.

SSH Dienst starten

Zunächst muss man den SSH Dienst starten.

Konfiguration > Sicherheit > Sicherheitsprofil > Eigenschaften > SSH > Optionen > Start

Configuration > Security profile > Security Profile > Properies > SSH > Options > start

Danach kann man mit einem SSH Client (Putty, Secureshell) eine Verbindung zum ESXi aufbauen.

PrettyPrint

cd /opt/vmware/fdm/fdm/
./prettyPrint.sh

Das Skript kann mit vier Parametern gestartet werden

  • hostlist
  • clusterconfig
  • compatlist (vSphere 5.0)
  • vmmetadata (vSphere 5.1)

Die Ausgabe erfolgt als XML-Code, der sich aber in der Commandshell nicht sehr gut lesbar ist. Besser ist es, die Ausgabe per Pipe Befehl in eine XML-Datei umzuleiten.

./prettyPrint.sh hostlist > /tmp/hostlist.xml

Diese wird dann per SCP oder SSH abgeholt und mit einem Editor ausgewertet (z.B. Notepad++).

Parameter

hostlist

Die Ausgabe enthält Informationen aller im Cluster verfügbaren ESXi Hosts. Die Hosts sind jeweils in <host></host> Tags eingebunden.

  • hostID
  • hostName
  • sslThumbprint
  • ipAddress
  • mac
  • heartbeatDatastore
  • hostdPort
  • version
  • build

clusterconfig

Die Auflistung aller Informationen der Clustercobfig würde den Rahmen dieses Blogs sprengen. Eine besonders nützliche werde ich hier nennen.

  • dasConfig: Hier finden sich alle für HA relevanten Einstellungen des Clusters.
  • dasVmConfig: Informationen zu allen VMs mit Anzeigenamen, interner ID, HA Settings und Pfad zum VMX File.

compatlist

Liefert eine Liste aller VMs und die Hosts, zu denen diese kompatibel sind. Gilt nur für vSphere 5.0. Für vSphere 5.1 Hosts ist vmmetadata als Parameter zu wählen.

vmmetadata

Liefert eine Liste aller VMs und die Hosts, zu denen diese kompatibel sind.

  • Hosts: Nummer und ID der Hosts im Cluster
  • vms: Indexnummer und Pfad zu allen VMX Files im Cluster
  • compatMask: referenziert zu jedem VM Index die Indices der Hosts, zu denen die VM kompatibel ist

Links

 

blogged somewhere in time…

vSphere: Anzahl HA Hearbeat Datastores zu klein

Unter vSphere5 sorgt der HA Datastore Heartbeat für robustere Überwachung einzelner VMs mit HA. Was früher nur über LAN Heartbeats funktionierte, wird nun auch über den Datastore geprüft. Das sogt für geringere Fehleranfälligkeit durch z.B. Isolation bei Ausfall der LAN Verbindung. Voraussetzung für den HA Datastore Heartbeat sind minimum 2 gemeinsame Datastores (shared volumes). In Testumgebungen hat man gelegentlich aber nur ein gemeinsames Volume für VMs. Das führt zu folgender Fehlermeldung:

The number of vSphere HA heartbeat datastores for this host is 1 which is less than required 2

Letztlich eine kosmetische Sache, aber ich mag keine Fehlermeldungen, die dauerhaft sichtbar sind. Man übersieht dann leicht echte Fehler.  Man kann diese Meldung dauerhaft unterdrücken, indem man in den erweiterten Eigenschaften des HA-Clusters folgende Option eingibt:

das.ignoreInsufficientHbDatastore = true

Den Hinweis zur Lösung fand ich (wie so oft) bei Yellow-Bricks.

Die Eingabe erfolgt natürlich ohne Gleichheitszeichen.

Weiterführende Links

Mehr Info zum Thema Heartbeating bei Yellow-Bricks.