Questo sito utilizza cookie per raccogliere informazioni sull'utilizzo. Cliccando su questo banner o navigando il sito, acconsenti all'uso dei cookie. Leggi la nostra cookie policy.OK

Come funzionano gli snapshot di VMware

pittogramma Zerouno

Virtualizzazione

Come funzionano gli snapshot di VMware

12 Giu 2014

di redazione TechTarget

Gli snapshot fotografano in un determinato istante lo stato di una macchina virtuale. Risultano utile per gli aggiornamenti, i test e le applicazioni di patch su programmi e server. Ecco come funzionano e guida agli vmware snapshot.

Uno snapshot del disco è una copia del file del disco della macchina virtuale ad un certo punto nel tempo. Esso preserva il file system del disco e la memoria di sistema della vostra macchina virtuale, consentendovi di ritornare allo snapshot nel caso qualcosa vada storto.

Gli snapshot Vmware possono essere veri e propri salvavita quando si sta aggiornanando o applicando patch su applicazioni e server. Questo articolo copre tutto ciò che dovete sapere sull’uso degli snapshot con VMware, includendo cosa sono, come funzionano e tecniche avanzate.

Spazio disco usato per lo snapshot e tasso di crescita
Se create più di uno snapshot della vostra macchina virtuale (VM), allora otterrete molteplici punti di ripristino (restore) disponibili su cui ritornare.

Quando create uno snapshot, ciò che era normalmente scrivibile diventa di sola lettura (read-only) da quel punto in poi. Utilizzando la tecnologia in-file delta, vengono creati nuovi file contenenti tutti i cambiamenti (delta) ai file del disco della macchina virtuale originaria (VMDK – Virtual Machine Disk).

La dimensione di un file snapshot non può mai superare quella del file del disco originario. Ogni volta che un blocco del disco viene modificato, lo snapshot è creato nel file delta e aggiornato quando le modifiche sono eseguite.

Se avete cambiato ogni singolo blocco del disco sul vostro server dopo lo ‘scatto’ di uno snapshot, il vostro snapshot sarebbe ancora della stessa dimensione del file del disco originario. Ma occorre considerare un po’ di spazio disco aggiuntivo di ‘overhead’ che contiene le informazioni utilizzate per gestire gli snapshot. Lo spazio disco massimo di overhead varia, in base alle dimensione dei blocchi VMFS (Virtual Machine Files System).

Lo spazio disco di overhead richiesto può causare il fallimento della creazione dello snapshot se il disco virtuale di una VM è vicino alla dimensione massima VMDK per un volume VMFS. Se un disco virtuale della VM fosse di 512 GB su un volume VMFS con una dimensione dei blocchi di 2 MB, ad esempio, la dimensione massima dello snapshot sarebbe 516 GB (512 GB + 4 GB), che supererebbe la dimensione massima VMDK di 512 GB per il volume VMFS causando il fallimento della creazione dello snapshot.

Quindi se pianificate di usare gli snapshot, dovreste creare VM con una dimensione del disco virtuale che è minore della dimensione massima VMDK di una quantità pari al massimo overhead (nell’esempio, 512 GB – 4 GB = 508 GB). I file degli snapshot saranno inizialmente piccoli (16 MB), ma cresceranno via via che le scritture vengono eseguite sui file disco della VM.

Gli Snapshot crescono con incrementi di 16 MB per aiutare a ridurre i conflitti di prenotazione SCSI. Quando arrivano richieste di modifica di un blocco sul disco originale, esso è invece modificato nel file delta. Se blocco del disco precedentemente modificato in un file delta è modificato ancora, esso non incrementerà la dimensione del file delta perché esso semplicemente aggiorna il blocco esistente nel file delta.

Il tasso di crescita di uno snapshot sarà determinato da quanta attività di scrittura del disco si verifica sul vostro server. Server che ospitano applicazioni con intensa scrittura del disco, come SQL o Exchange, vedranno i file degli snapshot crescere rapidamente. D’altra parte, nei server con contenuto per lo più statico e meno scritture del disco, come i Web server e gli application server, tali file cresceranno a un tasso molto più lento. Quando create molteplici snapshot, nuovi file delta sono creati e i file delta precedenti diventano di sola lettura. Con numerosi snapshot, ogni file delta può potenzialmente crescere tanto quanto il file disco originario.

 

Differenti tipi di file snapshot
File *-delta.vmdk: questo è il file differenziale creato quando ‘scattate’ uno snapshot di una VM. Esso è anche conosciuto come file redo-log. Il file delta è una bitmap dei cambiamenti al VMDK base, quindi esso non può mai crescere di più del VMDK base stesso (eccetto che per lo spazio di overhead dello snapshot). Un file delta sarà creato per ogni snapshot che create per una VM.

Un file delta aggiuntivo di aiuto sarà anche creato per conservare tutte le modifiche del disco, quando uno snapshot è cancellato o ripristinato. Questi file sono automaticamente eliminati quando lo snapshot è cancellato o ripristinato nello snapshot manager.

File *.vmsd: questo file è utilizzato per memorizzare metadati e informazioni sugli snapshot. Questo file è in formato testo e conterrà informazioni come il nome dello snapshot, lo unique identifier (UID), il nome file del disco, e quant’altro. Esso è inizialmente un file di 0 byte, fino a quando create il vostro primo snapshot di una VM. Da quel punto esso popolerà il file e continuerà ad aggiornarlo ogni volta che sono creati nuovi snapshot. Questo file non si pulisce completamente dopo che gli snapshot sono generati. Una volta che cancellate uno snapshot, esso incrementerà ancora l’ultimo UID dello snapshot per il prossimo snapshot.

 

File *.vmsn: questo è il file di stato dello snapshot, che memorizza l’esatto stato di funzionamento di una macchina virtuale al momento in cui scattate quello snapshot. Questo file sarà piccolo o grande a seconda che scegliate di preservare la memoria della VM come parte dello snapshot. Se scegliete di conservare la memoria della VM, allora questo file sarà di pochi megabyte più grande della memoria RAM massima allocata  per la VM. Questo file è simile al file di stato sospeso (.vmss) di VMware. Un file .vmsn sarà creato per ciascuno snapshot ‘catturato’ sulla VM; questi file sono automaticamente cancellati quando lo snapshot è rimosso.

 

Creare snapshot
Potete creare snapshot attraverso lo Snapshot Manager nel client vSphere o utilizzando l’utilità a linea di comando vmware-cmd direttamente sulla Service Console ESX o attraverso la CLI vSphere. Con questo comando, una VM può essere accesa o spenta. Essa può anche essere sospesa quando si sta creando uno snapshot. Se la VM è spenta non avrete l’opzione per eseguire uno snapshot della memoria della macchina virtuale.

Gli snapshot possono essere gestiti usando il client vSphere collegandolo direttamente a un server ESX o al vCenter Server. Se invece scegliete di usare l’interfaccia con linea di comando (CLI – command line interface), la sintassi per creare snapshot è vmware-cmd createsnapshot , cioè vmware-cmd myvm1.vmx createsnapshot snap1 ‘before upgrade’ 1 1.

Le opzioni per la quiescenza e la memoria sono 1 per sì o 0 per no. Scegliendo 1 si metterà in quiescenza le operazioni di scrittura del file system, prima di catturare lo snapshot. Scegliendo 1 per la memoria si creerà uno snapshot dello stato di memoria della VM. Se create molteplici snapshot, lo snapshot precedente diventa di sola lettura una volta che quello nuovo viene generato.


Cancellare o ripristinare gli snapshot
Quando cancellate tutti gli snapshot generati per una VM, tutti i file delta creati sono reincorporati nel file del disco VMDK originale per la VM e poi cancellati. Se scegliete di cancellare solo un singolo snapshot, allora soltanto quello snapshot è incorporato nel suo snapshot ‘genitore’ (parent snapshot).

Se scegliete di ripristinare uno snapshot, gli attuali stati del disco e della memoria vengono abbandonati e la VM è riportata allo stato ripristinato. Qualunque snapshot ripristinate poi diventa un nuovo snapshot genitore. Lo snapshot genitore, tuttavia, non sempre è lo snapshot catturato più di recente. Se ripristinate a uno snapshot più vecchio, esso poi diventa il genitore dello stato attuale della macchina virtuale. Lo snapshot genitore è sempre contrassegnato dall’etichetta sottostante ‘You are here’ nello Snapshot Manager.

Potete cancellare o ripristinare snapshot utilizzando il vSphere Client o l’utilità a linea di comando vmware-cmd. Lo Snapshot Manager nel vSphere Client offre più flessibilità ed è più facile da usare della CLI vSphere. Una distinzione importante fra l’opzione ‘Ripristina uno Snapshot’ (Revert to Snapshot) nel vSphere Client e Snapshot Manager, è che ripristinare semplicemente vi riporta all’ultimo snapshot catturato, mentre Snapshot Manager vi dà la flessibilità di scegliere di ripristinare uno specifico snapshot. Questo è chiamato ‘Vai a’ (Go To) in Snapshot Manager.

Se usate vmware-cmd, la sintassi è vmware-cmd removesnapshots, che rimuove tutti gli snapshot, o vmware-cmd revertsnapshot, che ripristina la VM al genitore dello stato ‘You are here’. Questo genitore potrebbe non essere necessariamente l’ultimo snapshot che è stato catturato. Se dovete rimuovere o ripristinare  specifici snapshot dovete invece usare il vSphere Client.

Se ripristinate uno snapshot che non include lo stato della memoria, il server si spegnerà e una volta che lo riaccenderete esso utilizzerà lo snapshot precedente. Se il vostro snapshot non contiene lo stato della memoria, la VM si fermerà brevemente, e poi ritornerà ai precedenti stati di memoria e disco dello snapshot.

redazione TechTarget