Condividire...

Condividere ha il suo costo, ma alla fine finisce per arricchire tutti


Sharing has its cost, but at the end leads everyone to a better knowledge

martedì 15 marzo 2011

Gli Snapshot in ambito Microsoft Windows Hyper-V

Una delle cose che affascina molto nei progetti di virtualizzazione è la possibilità di creare delle fotografie (snapshot) delle macchine virtuali.
Questa funzionalità, apparentemente semplice, nasconde non poche insidie e viene spesso fraintesa.
 Da questo nasce l'idea di questo articolo il cui obiettivo è di fare maggiore chiarezza sull'argomento.
Se vi annoiano i discorsi troppo tecnici e vi interessa solo il succo potete saltare direttamente alle conclusioni nel paragrafo finale: Avvertenze sugli snapshot.


Introduzione Terminologica

VHD
Un Disco Fisso Virtuale è un file fornisce spazio disco ad una macchina virtuale (e non solo).
All'interno della macchina virtuale è visto e trattato come un normale disco fisico.

Disco Differenziale
Un disco differenziale virtuale è un un disco fisso virtuale associato ad un altro disco fisso virtuale in una realazione di titpo padre-figlio.
Il disco differenziale (figlio) memorizza tutte le modifiche fatte sul disco padre, consentendone quindi il salvataggio senza che alcuna modifica sia effettivamente eseguita sul disco padre. In altre parole, utilizzando i dischi differenziali, ci assicuriamo che le modifiche siano riportate sul disco differenziale e non sul disco vhd originale.
Successivamente è possibile, se lo desideriamo, unire il disco differenziale con il disco padre al fine di avere un solo VHD contenente tutte le modifiche.


Gli Snapshot

Gli Snapshot sono una funzionalità dell' Hyper-V di Windows Server 2008  R2 che ci consente di creare una versione ad un determinato momento della nostra macchina virtuale.
Il vantaggio dal punto di vista amministrativo e che ci consentono di create gerarchie di modifiche e di poter tornare facilmente indietro.
Gli snapshot non apportano alcuna modifica allo stato delle macchine virtuali cui fanno riferimento.

Come Funzionano

Hyper-V segue i seguenti passi per la creazione di uno snapshot:
  1. Mette in pausa la maccina virtuale
  2. Crea un disco differenziale per ogni vhd configurato sulla macchina virtuale
  3. Fa una copia del file di configurazione della macchina virtuale
  4. Fa ripartire la macchina virtuale
  5. Se la macchina era in esecuzione viene salvato il contenuto della memoria sui nuovi dischi differenziali
Tutte queste operazioni si svolgono in maniera trasparente per gli utenti che non dovrebbero riscontrare alcun rallentamento o indisponibilità della macchina virtuale. In pratica la macchina durante la sua fase di pausa trattiene in memoria tutte le modifiche effettuate, per salvarle nel passo 5.



I file degli snapshot

Uno snapshot consiste di diversi file che vengono memorizzati in una directory degli snapshot associata alla macchina virtuale.
Nel dettaglio avremmo:
  • Un file di configurazione della macchina virtuale (.xml)
  • Dischi differenziali dello snapshot (.avhd)
Nel caso in cui la macchina virtuale al momento dello snapshot era attiva o salvata:
  • File di salvataggio di stato della macchina virtuale (.vsv)
  • Contenuto della memoria (.bin)
Non operate mai direttamente sui file degli snapshot! ( a meno che non sappiate esattamente cosa state facendo)

Azioni possibili sugli snapshot

Tramite lo snap-in di gestione di Hyper-V, ed in buona parte anche tramite SCVMM (System Center Virtual Machine Manager) che li chiama però Checkpoint, è possibile eseguire le seguenti azioni relaitve agli snapshot delle macchine virtuali:
  1. Creare uno nuovo
  2. Rinominare
  3. Applicare (SCVMM:Ripristinare) uno snapshot, ossia riportare la macchina virtuale allo stato dello snapshot.
  4. Cancellare uno snapshot: se lo snapshot non è quello corrente viene semplicemente cancellato, se invece è quello attivo tutte le modifiche verranno riportate (merge) sul VHD originale al momento dello spegnimento della macchina virtuale. Attenzione questa operazione può portare via parecchio tempo in fase di riavvio!
Gestione tramite Hyper-V


Gestione tramite SCVMM


Avvertenze sugli snapshot

A questo punto possediamo elementi sufficienti per trarre alcune importantissime conclusioni:

  1. Evitate di usare gli Snapshot in ambienti di produzione. Si potrebbero avere seri problemi con servizi ed applicazioni sensibili ai tempi di risposta, tipo l'autenticazione di Active Directory, o che usano meccanismi di replica tipo Exchange ed SQL Server.
  2. Gli snapshot possono consumare molto velocemente lo spazio disco, soprattuto se abbiamo più snapshot della stessa macchina virtuale.
  3. Fate attenzione alle conseguenze della cancellazione degli snapshot. 
  4. Non considerate assolutamente gli snapshot un'alternativa al backup.
L'utilizzo degli snapshot che la Microsoft consiglia è per ambienti di test o di formazione.