Può accadere che dal client di gestione delle VM non siano presenti snapshot, ma in realtà la VM stà lavorando su una snapshot. In questa situazione le prestazioni della VM sono degradate ed in genere il programma utilizzato per i salvataggi restituisce errori di vario di genere, questo perchè rileva la presenza della snapshot.
Consolidiamo le snapshot quando da interfaccia grafica non è più possibile.
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1007849
Note: con VM indicheremo la Virtual Machine, quindi la macchina virtuale presente sull'host vSphere.
La Virtual Machine di questo esempio si chiama VM-server-pap-NT4. La proceduta è valida per qualsiasi sistema operativo presente sulla Virtual machine.
La procedura è stata testata su host vSphere 4.1 nel link VMware viene fatta distinzione per host vSphere 5.x.
Consiglio un salvataggio della Virtual Machine prima di qualsiasi operazione.
Come si vede dall'immagine sotto non sono presenti snapshot da consolidare.
In realtà la VM stà lavorando su un disco generato dalla snapshot.
Possiamo vedere lo stato dei dischi collegandosi all'host vSphere in SSH. Posizioniamoci nella cartella della VM
Come possiamo vedere oltre al file della VM sono presenti un file delta ed un file 0001 con estensione vmdk.
Prima di procedere accertiamoci che queste snapshot sono legate al file principale .vmdk e non siano invece snapshot da non utilizzare.
Assicuriamoci che la VM sia spenta.
vmware-cmd nomeVM.vmx getstate
Per farlo dobbiamo verificare il CID e PARENCID del disco virtuale.
Procediamo con l'individuazione del disco principale indicato nel file di configurazione della VM.
cat nomeVM.vmx | grep vmdk
Con questa informazione ci assicuriamo che il disco principale della VM è VM-server-pap-NT4.vmdk quindi gli altri file sono delle snapshot di questo file.
Verifichiamo il numero CID e parentCID quindi il legame fra il file principale e la snaphot secondaria. In caso di più snapshot il concetto rimane valido.
cat nomeVM.numSnapshoot.vmdk | grep -i "cid|parentcid|vmdk" --color
Adesso che ci siamo assicurati di lavorare con i file giusti consolidiamo i file .vmdk
creiamo una cartella “recover” questa sarà la destinazione del file consolidato prima di rendere la modifica permanente.
mkdir -p /vmfs/volumes/"nostro-datastore"/recover
vmkfstools -i nostraVM-numSnapshot.vmdk /percorso-del-datastore-di-destinazione
Esempio con più snapshot.
(Nell'esempio sopra il file da selezionare è l'ultimo, quindi -000002.vmdk)
adesso proviamo a far ripartire la nostra VM con il disco appena consolidato.
Tasto destro sulla nostra VM e scegliamo edit
rimuoviamo l'ard disk presente ,facendo attenzione di rimuoverlo solamente dall'inventario.
Adesso possiamo aggiungere nuovemente l'hard disk scegliendo il file vmdk che abbiamo ripristinato nella cartella recover.
Avviamo la VM con il nuovo disco e verifichiamo che tutto sia andato a buon fine.
Se tutto è andato a buon fine procediamo col togliere i vecchi file vmdk frammentati e mettere il disco consolidato.
Posizioniamoci nella cartella originale della VM e spostiamo i file non più necessari in una cartella temporanea.
mkdir tmp
mv *.vmdk cartella-temporanea
per copiare il disco consolidato dalla cartella recover alla cartella corretta utilizziamo ancora l'utility vmkfstool
vmksfstools -i /percorso-datastore-file-recover /destinazione-del-disco-consolidato
Adesso rimuoviamo dall'inventario la VM in questione.
Dal vSphere Client tasto destro sulla VM rimuovi dall'inventario
Adesso andiamo a rivedere la cartella della VM esplorando il datastore.
Da storage – configuration – espola datastore
facciamo tasto destro sul file vmx e selezioniamo add inventory.
Facciamo ripartire la VM , se tutto è andato a buon fine possiamo rimuovere la cartella tmp precedentemente creata.
Rimuoviamo il vecchio file hard disk .vmdk e la sua snapshot 0001...vmdk
rm -rf cartella-dei-file-temporanei
rm -rf tmp
Nota:
Può accadere, dopo queste operazioni ,che facendo una nuova snapshot riceviamo questo errore:
Maggiori specifiche le possiamo trovare nella KB Vmware.
Per risolvere è necessario spengere la V.M ed eliminare i file con estenzione ".vmsd" e ".vmsn" .
Se lo facciamo a V.M accesa viene subito creata una snapshot
Sarà necessario ripuntare allo stato precedente e successivamente fare un "delete all" delle snapshot.