Da sempre una delle funzioni più utili di vmware è la possibilità di generare snapshots delle varie virtual machine. Questo ci da la possibilità di registrare lo stato di una determinata macchina prima di effetturare qualsiasi operazione “critica”, come l’installazione di un service pack, un nuovo software o la modifica di alcuni parametri di funzionamento e poter tornare indietro se qualcosa non va a buon fine.
Spesso però molti sistemisti abusano di questo strumento utilizzandolo come alternativa ai normali backup. Questo atteggiamento è molto sbagliato, dal momento che il file system VMFS viene letteralmente riempito di questi file, e le eventuali operazioni di consolidamento possono diventare problematiche. Vediamo perchè.
Come prima cosa cerchiamo di capire come funziona una snapshot. Quando ne generiamo una il disco originale diventa di sola lettura e un file delta separato viene creato per contenere tutte le modifiche che vengono apportate da quel momento in poi. Il file delta non contiene le modifiche e la storia del file system come fosse un database transazionale, semplicemente contiene i blocchi di dati aggiornati rispetto al disco originale, ma sempre all’ultima versione scritta. Se un blocco viene scritto 4 volte, la versione originale sarà presente nel disco originale e solo la 4a versione sarà presente nel delta file.
Ipotizziamo di avere un disco originale di 40 Gb e di aver creato 2 snapshots. Nel file system VMFS avremo:
Originale: 40 Gb
Snapshot 1: 10 Gb
Snapshot 2: 20 Gb
Ovviamente un delta file non sarà mai pià grande del suo disco originale. Se diamo il comando “delete-all” vmware effettua le seguenti operazioni:
1. viene creata una snapshot “helper” per registrare le modifiche che avvengono sul disco durante l’operazione di consolidamento
1. consolida la snapshot 2 nella 1 facendola aumentare fino a 30 Gb.
2. Snapshot 1 viene consolidata nel disco originale
3. La snapshot helper viene consolidata nel disco originale
4. Tutte le snapshot vengono cancellate.
Come si intuisce dalla scaletta, avremo bisogno di un determinato spazio disco per contenere le versioni consolidate e ingrandite delle snapshot oltre allo spazio per la snapshot helper; nel nostro esempio 30 e passa GB. Nel caso limite di questo esempio, dovremo avere spazio disco equivalente a 4 volte la dimensione del disco originale più un pò di spazio per l’helper (40 gb di disco iriginale, 40 gb di snapshot 1, 40 gb di snapshot 2, 40 gb per consolidare 2 in 1).
Quindi prestate molta attenzione nel dare il comando “delete-all” per non incorrere nella saturazione del file system. Ed evitate quindi di avere troppe snapshot in giro…
Ciao,
perchè dopo che la seconda si è consolidata con la 1 ed entrambe sono andate nell’originale anche l’helper entra nell’originale? Che tipo di dati porta in più?
Grazie
Ciao,
dal momento che la VM è in esecuzione, anche durante il consolidamento delle snapshot avvengono le scritture sul disco. Dato che le snapshot vengono congelate per essere consolidare serve uno spazio temporaneo (ovvero la snapshot helper) dove registrare le modifiche che intercorrono durante il consolidamento.
Riportando anche l’helper nel disco originale avremo la versione attuale del disco stesso.
Ciao,
Luca
Scusate la mia ignoranza avrei bisogno di essere sicuro di aver capito bene, il comando remove all fa in modo che tutti gli snapshot vengano scritti nel disco originale?
Lo stato del disco passa pertanto da sola lettura in r/w?
La sintassi del comando da dare sul server esx come è?
La macchina virtuale è meglio che sia in funzione o sia spenta o la cosa è indifferente?
Di nuovo grazie per tutte le eventuali risposte
Ciao
Pino
Ciao Pino,
per effettuare la cancellazione delle snapshots, è sufficiente andare nello snapshot manager di quella VM e scegliere “delete all”. Tutte le snapshots vengono scritte nel disco originale, che quindi torna ad essere utilizzato anche in scrittura.
Non ci sono particolari controindicazioni nell’effettuare questa operazione anche a VM accesa.
Ciao,
Luca.
grazie mille, ho fatto l’operazione che si è conclusa con successo.
Ciao Pino
Ciao,
nel caso in cui si sia creata una snapshot su cui si sta lavorando(c’è sopra il simbolo del play) e si desideri cancellarla perchè la modifica effettuata non ha creato problemi, basta cancellarla semplicemente e vmware unisce la snapshot alla versione base? Oppure cancellandola vmware fa tornare lo stato della VM alla versione padre della snapshot cancellata?
Grazie!
Ciao,
per cancellare la snapshot e mantenere lo status attuale, usa il comando Delete.
Per tornare a una snapshot precedente, userai il comando “Go To” che ti fa effettivamente tornare indietro nel tempo al punto in cui la snapshot è stata fatta.
Ciao.
Buongiorno, ho avuto anche io un problema di “snapshot helper” che si moltiplicavano una dietro l’altra e continuavo a cancellarle, nn solo, se effettuavo un browser del datastore trovavo 5-6 file di snapshot anche se la snapshot manager della VM risultava vuota.
Dopo aver letto l’articolo ho deciso di spegnere la VM ed effettuare un delet-all appena mi è ricomparsa una “snapshot helper”. Così facendo ho evitato che durante il consolidamento ne venisse creata un’altra e in più sono state cancellate quelli 5-6 file di shap-shot che occupavano spazio.
Ora sembra andare tutto bene, speriamo…
Buongiorno a tutti, è la prima volta che mi trovo a dover gestire una snapshot ed ho il terrore di sbagliare qualcosa in quanto si tratta di un server di posta con circa un migliaio di utenti pronti al linciaggio. Ho una sola snapshot “Consolidate Helper- 0”, mi confermate che, selezionando “Delete all” , tutti i dati attualmente in uso vengono scritti sul disco padre e che vengono cancellati tutti i file relativi attualmente presenti su storage? Se sì, meglio da server spento? Infinite grazie per il vostro aiuto. Ciao
Ciao, questo articolo ha più di tre anni e la gestione delle snapshots nel frattempo è stata migliorata molto. Dipende se stai usando ESXi pre o post le patch di VMware per cancellare le snapshots senza incrementare lo spazio occupato, come si può leggere qui:
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1003302
Se hai sufficiente spazio nel datastore, solitamente non ci sono problemi nel fare un delete di una snapshot. Spero comunque che un server che gestisce 1000 utenti di posta abbia un backup…
Ciao,
Luca.
Ciao Luca, grazie per la tempestiva risposta.
Purtroppo lo spazio su datastore non è molto, ma è possibile liberarne ancora. Il backup chiaramente è sempre presente, così come è presente una copia della vm (anche se con relativa snapshot).
Ancora grazie.
Ciao