“Virtual Machine Disks consolidation is needed” ma il bottone “consolidation” non è cliccabile

Come superare l'errore “Virtual Machine Disks consolidation is needed” da linea di comando su vmware.

E’ stato un incubo! Se sei qui probabilmente hai ricevuto il messaggio di errore sulla necessità del “consolidation” del disco di una VM, ma il bottone del consolidation era “grigetto”.

Ecco cosa mi è successo: Stavo cancellando “all snapshot” di una macchina virtuale, ma l’attività stava durando troppo quindi ho deciso di “annullare” il processo

Dopo avere interrotto il processo di pulizia snapshot, ,o è apparso l’allarme:
Virtual Machine Disks consolidation is needed” 

Ok, nessun problema, avviamo il consolidation… così ho avviato il consolidation ma siccome era lento ho fatto la genialata di cancellare il processo nuovamente.

A questo punto la macchina virtuale è diventata instabile, l’allarme “Virtual Machine Disks consolidation is needed”  era sempre li e la VM non si avviava più. Il pulsante “consolidation” (lo trovate facendo tasto destro sulla VM e poi su “snapshot”) era “grigetto” (grayed out) e quindi non cliccabile.

vmware consolidate grayedout

Come eseguire la consolidation di una VM manualmente

Quello che è successo è che qualche disco stava “puntando” verso uno snapshot sbagliato (può accadere se hai monti snapshot o se qualche backup è fallito ect ect). Quindi ora dobbiamo verificare la consistenza della catena degli snapshot e successivamente eseguire la consolidation manualmente.

DISCLAIMER: con questa procedura puoi danneggiare irrimediabilmente la tua VM, è sotto la tua resposabilità tutto ciò che succede se applicando questa procedura tu perdessi tutti i tuoi dati.

Importante: questa procedura l’ho utilizzato su vmware 6.7

Ipotiziamo che la macchina virtuale si chiami “VM-OSTRICH”:

Collegati in SSH sull’hypervistor (esx) che ospita la VM-OSTRICH (guest)

Cerca il file VM-OSTRICH.vmx 

#find / -name "*.vmx" 
#cd /vmfs/path_to/VM-OSTRICH

Verifica quale disks/snapshots sta puntando:

#cat VM-OSTRICH.vmx | grep scsi*
scsi 0:0.fileName = "VM-OSTRICH.vmdk"

Oppure

scsi 0:0.fileName = "VM-OSTRICH-000002.vmdk"

VM-OSTRICH.vmdk significa che non stai puntando uno snapshot
VM-OSTRICH-00000X.vmdk significa che stai puntando uno snapshot

Verifica cosa viene puntato da ogni snapshot

# cat VM-OSTRICH-000002.vmdk | grep parentFileNameHint

Questo comando ti mostra se lo snapshot sta puntando un altro snapshot o il disco base. Se sta puntando un altro snapshot, ripeti su questo l’operazione finchè non arrivi al base disk.

Se trovi qualcosa come VM-OSTRICH-000002.vmdk che punta VM-OSTRICH-000001.vmdk che punta VM-OSTRICH.vmdk lancia il comando vmkfstools sul più alto punto della catena:

#vmkfstools -q -v10 VM-OSTRICH-000002.vmdk

Ripeti tutti i passaggi finchè il file .vmx non punta al disco vmdk, a questo punto dovresti essere in grado di applicare il “consolidate” sulla tua VM on vsphere (vmksftools va lanciato anche sul disco base come ultimo step).

Ti consigli di avere sempre un backup delle tue VM, casomai questi passaggi dovessero fallire.

Questa è la procedura che io ho trovato

Questa è la documentazione ufficiale su come trovare il file vmx