Una delle funzionalità di semplice da utilizzare e contestualmente più utile di Hyper-V è sicuramente quella di poter effettuare snapshot a caldo di macchine virtuali. Le snapshot possono essere utilizzate prima dell’installazione di una service pack, di un hotfix, di un aggiornamento applicativo e in sostanza di qualsiasi modifica significativa al server. Una volta effettuata una snapshot sarà possibile “applicarla” al server modificato qualora le operazioni di aggiornamento e/o modifica abbiano creato un problema o comunque non siano andate a buon fine.
Quello però che non viene sufficientemente spiegato e chiarito a dovere è che nel preciso momento in cui create una snapshot tutti i dati che prima venivano scritti in tempo reale all’interno del (o dei) file VHD che compongono la macchina virtuale d’ora in avanti saranno salvati nei file AVHD (uno per ogni VHD).
I file AVHD vengono creati di default all’interno della cartella nascosta C:\ProgramData\Microsoft\Windows\Hyper-V\GUID della macchina virtuale.
Di per se questo comportamento è perfettamente coerente con la funzionalità delle snapshot, poiché se non venisse creato il file AVHD non si potrebbe effettuare un roll-back delle modifiche apportate tornando al VHD originale.
Il problema consiste nel fatto che se effettuiamo il backup dei soli file VHD, in presenza di snapshot ci troveremmo a salvare solo i dati precedenti alla data di creazione della prima snapshot. Inoltre se voleste spostare i file VHD in una nuova directory dovreste spostare anche i file AVHD oppure effettuare il merge dei file AVHD con i file VHD.
Per effettuare il merge è sufficiente, a macchina virtuale accesa, cancellare la snapshot e poi effettuare lo shutdown del guest: a quel punto Hyper-V effettuerà il merge in automatico. Tenete in considerazione che il processo di merge potrebbe durare anche diverse ore, a seconda del quantitativo di dati.
