Im Zuge der Aktualisierung der VMware vSphere ESXi-Hosts bei uns im Büro stellte ich fest, dass unsere VCSA nicht migrationsfähig war. Der letzte Host blieb bei “Entering maintenance mode” stehen, da die VCSA nicht migriert werden konnte.
Der Versuch, die VCSA manuell zu migrieren schlug fehl, da der entsprechende Befehl ausgegraut war.
Das kann verschiedene Ursachen haben. In unserem Fall war die Migrationsfähigkeit in der VCSA-Datenbank unterdrückt. Dies lässt sich folgendermassen eruieren:
Zu Beginn benötigen wir die moref id der virtuellen Maschine. Diese lässt sich entweder über die PowerShell/PowerCLI eruieren:
(Get-VM 's-001-0001.int.iteres.com').extensiondata.Moref.Value
Oder über den HTML5-Client. Ist die virtuelle Maschine geöffnet, steht die moref id irgendwo in der Adresszeile. Sie beginnt mit ‘vm-‘. Beispiel:
https://s-001-0001.int.iteres.com/ui/?locale=en_us#?extensionId=vsphere.core.inventory.serverObjectViewsExtension&objectId=urn:vmomi:VirtualMachine:vm-142:12345678-9abc-def1-2345-67890abcdef1&navigator=vsphere.core.viTree.hostsAndClustersView
Die moref id meiner virtuellen Maschine ist also vm-142.
Nun kann man sich per ssh auf die VCSA verbinden und die Shell öffnen:
kurtor@l-000-0045:~$ ssh root@s-001-0001.int.iteres.com VMware vCenter Server Appliance 6.7.0.20000 Type: vCenter Server with an embedded Platform Services Controller root@s-001-0001's password: Connected to service * List APIs: "help api list" * List Plugins: "help pi list" * Launch BASH: "shell" Command> shell Shell access is granted to root root@s-001-0001 [ ~ ]#
Nun kann der vmware-vpxd-Dienst gestoppt werden und auf die Datenbank zugegriffen werden:
root@s-001-0001 [ ~ ]# service vmware-vpxd stop root@s-001-0001 [ ~ ]# /opt/vmware/vpostgres/current/bin/psql -d VCDB -U postgres psql.bin (9.6.9 (VMware Postgres 9.6.9.0-8615968 release)) Type "help" for help. VCDB=#
Es ist wichtig, den vmware-vpxd-Dienst zu stoppen, bevor die Datenbank manipuliert wird! Es wäre nun interessant, herauszufinden, was vMotion unterdrückt:
VCDB=# SELECT * FROM VPX_DISABLED_METHODS WHERE ENTITY_MO_ID_VAL = 'vm-142'; entity_mo_id_val | method_name | source_id_val | reason_id_val ------------------+-----------------------------+---------------+------------------------------- vm-142 | vim.VirtualMachine.relocate | vm-142 | Prevent vMotion during backup (1 row)
Aha! vMotion wird während des (VCSA-?)Backups unterdrückt. Ich bin mir sicher, dass zur Zeit kein Backup läuft, daher entfernte ich die Sperre:
VCDB=# DELETE FROM VPX_DISABLED_METHODS WHERE ENTITY_MO_ID_VAL = 'vm-142'; DELETE 1 VCDB=# \q
Nun kann die VCSA verlassen werden. Ich empfehle, die VCSA über das appliance management (https://s-001-0001.int.iteres.com:5480) neu zu starten und nicht einfach den vmware-vpxd-Dienst wieder zu starten – das gab in der Vergangenheit Probleme.
Nach dem Neustart sind wieder alle glücklich:
VMware kennt hierzu auch einen hervorragenden KB-Artikel.
Noch ein paar Worte für Tante Google: vcsa migrate greyed out
Ich höre gerade: Lunatica – The Spell