Come unire gli snapshot Hyper-V: una guida passo passo
A volte è necessario installare aggiornamenti del sistema operativo o patch di sicurezza su una delle VM. Tuttavia, il processo di aggiornamento può talvolta andare storto, causando un errore di sistema, la perdita dei dati di configurazione o la disinstallazione di determinati programmi. Microsoft Hyper-V offre la possibilità di creare snapshot Hyper-V, che consentono di salvare lo stato della VM in un determinato momento e di ripristinare il sistema allo stato precedente in caso di errore.
In questo post del blog descriveremo come unire gli snapshot Hyper-V utilizzando Hyper-V Manager o PowerShell e come possono essere utilizzati. Tuttavia, per imparare a gestire gli snapshot Hyper-V, è necessario prima comprendere la tecnologia alla base di essi.
Che cos’è uno snapshot Hyper-V?
Uno snapshot Hyper-V è una copia puntuale di una VM, che contiene tutte le informazioni necessarie per ripristinare i dati. Con l’uso degli snapshot Hyper-V, è possibile ripristinare la VM a un punto in cui lo stato della VM è stato acquisito e lo snapshot è stato creato. La tecnologia degli snapshot Hyper-V è abilitata per impostazione predefinita quando il ruolo Hyper-V è installato sul computer e viene creata la prima VM. Gli snapshot Hyper-V di una VM selezionata possono essere creati in qualsiasi stato (Off, In esecuzione, In pausa, e Salvato) e l’operazione viene in genere completata in pochi secondi.
Si noti che gli snapshot Hyper-V sono attualmente noti come punti di controllo Hyper-V, ma entrambi i termini sono ugualmente validi.
Tipi di snapshot Hyper-V
Microsoft Hyper-V offre due tipi di snapshot:
- Snapshot di produzione applicano la tecnologia di backup all’interno del sistema operativo guest per creare snapshot coerenti con i dati della VM. A tal fine, vengono utilizzati Windows Volume Shadow Copy Service (VSS) o Linux File System Freeze. Gli snapshot di produzione Hyper-V possono essere utilizzati per acquisire lo stato dell’ambiente di produzione, poiché migliorano la coerenza dei dati delle applicazioni e del sistema operativo guest. Si noti che gli snapshot di produzione Hyper-V non acquisiscono lo stato della memoria della VM, le informazioni sull’attività della CPU o la configurazione hardware.
Nelle nuove versioni del sistema operativo (Windows Server 2016 e Windows 10), i punti di controllo di produzione sono l’opzione predefinita per il tipo di punto di controllo. Tuttavia, è possibile modificarla in Hyper-V Manager o Windows PowerShell.
- Le istantanee standard catturano lo stato della VM, compresa l’attività della CPU, la memoria e la configurazione hardware in un determinato momento. Pertanto, uno snapshot Hyper-V standard consente di acquisire lo stato corrente delle applicazioni e di ripristinare la VM a uno stato o una condizione specifici in un determinato momento. Sono applicabili principalmente in scenari di sviluppo e test. La creazione di snapshot Hyper-V standard non può essere considerata una strategia di backup affidabile, poiché potrebbero causare alcuni problemi di incoerenza dei dati nelle applicazioni che non supportano VSS.
Come funzionano gli snapshot Hyper-V
Come sapete, le VM Hyper-V sono memorizzate nei dischi virtuali, che hanno il formato di file .vhd(x). Allo stesso tempo, i file di snapshot creati su tali macchine virtuali Hyper-V sono memorizzati nel formato file .avhd(x) e conservati nella stessa cartella dei file di immagine del disco rigido. Gli snapshot Hyper-V sono fondamentalmente dischi virtuali differenziali e ciascuno di essi ha una relazione padre-figlio con il corrispondente disco rigido virtuale padre. È possibile creare fino a 50 snapshot per ogni macchina virtuale. Tutte le snapshot Hyper-V sono organizzate in ordine gerarchico, costituendo così un sottotree di punti di controllo.

Tuttavia, il problema è che i file .avhd(x) tendono ad accumularsi e occupare molto spazio su disco, influenzando di conseguenza le prestazioni della VM. Se si desidera rimuovere i file .avhd(x) non necessari, è necessario eliminare le snapshot Hyper-V. Questa opzione non implica l’effettiva eliminazione delle istantanee. È sufficiente unire le istantanee Hyper-V e i dati in esse contenuti in un disco padre o in un altro disco virtuale. Si sconsiglia di eliminare le istantanee Hyper-V direttamente dal computer. Dopo aver unito le istantanee Hyper-V, tutti i file .avhd(x) verranno eliminati dal disco. In questo modo, è possibile creare spazio aggiuntivo sull’host Hyper-V.
Come unire i snapshot Hyper-V
In uno dei nostri precedenti post sul blog, abbiamo spiegato come gestire i snapshot Hyper-V (creare, applicare, rinominare, abilitare/disabilitare, ecc.). Tuttavia, il post di oggi funge da guida per unire manualmente gli snapshot Hyper-V.
Per unire gli snapshot Hyper-V, è necessario utilizzare Hyper-V Manager o PowerShell. Entrambi questi approcci saranno descritti di seguito.
Utilizzo di Hyper-V Manager
Prima di iniziare a descrivere come unire gli snapshot Hyper-V, è necessario determinare quali snapshot verranno uniti. Gli snapshot Hyper-V devono essere uniti in un ordine specifico: da child al parent. Pertanto, è importante stabilire la struttura dell’albero dei punti di controllo stabilendo l’ordine della loro creazione: da quello più recente a quello più vecchio.
Come accennato in precedenza, ogni snapshot ha una relazione padre-figlio con un altro snapshot creato prima di esso. Tutti insieme possono essere rappresentati sotto forma di una catena. Ad esempio, sono stati creati 3 snapshot per 1 disco rigido virtuale. Il disco virtuale principale su cui è in esecuzione la VM funge da padre del primo punto di controllo, questo punto di controllo funge da padre del secondo punto di controllo e il secondo punto di controllo funge da padre del terzo punto di controllo.
Per stabilire la struttura del punto di controllo, procedere come segue:
- Aprire Hyper-V Manager.
- Nel riquadro centrale, selezionare la VM di cui si desidera unire gli snapshot.
- Nella sezione Azioni a destra, fare clic su Ispeziona disco.

- Selezionare il file .avhd(x) e fare clic su OK.

- Avanti, dovrebbe essere visualizzata una panoramica generale delle proprietà del disco rigido virtuale, inclusi nome, ubicazione e nome del parent. Determinare il file padre del file .avhd(x) selezionato.
- Ripetere i passaggi 3-5 per ogni file .avhd(x) e identificare il loro ordine di unione.

Dopodiché, è possibile avviare il processo di unione delle istantanee Hyper-V. Si noti che la VM deve essere spenta per evitare problemi durante l’operazione di unione.
Per unire gli snapshot Hyper-V, procedere come segue:
- Aprire Hyper-V Manager.
- Selezionare la VM desiderata.
- Fare clic su Modifica disco. Si aprirà la procedura guidata Modifica disco rigido virtuale. Fare clic su Avanti.
- Fare clic su Sfoglia per selezionare il file .avhdx più recente. Fare clic su Avanti.

- Selezionare Unisci per unire le modifiche memorizzate in un disco di differenziazione nel disco parent o in un altro disco. Fare clic su Avanti.

- Selezionare Al disco rigido virtuale padre e fare clic su Termina.

- Per completare il processo di unione delle istantanee Hyper-V, ripetere i passaggi da 1 a 5 per ogni file .avhd(x), fino a quando tutte le modifiche sono state unite nel disco padre originale.
- Il passaggio finale consiste nel riavviare la VM per adottare le modifiche implementate.
Utilizzo di PowerShell
Prima di poter iniziare a unire gli snapshot Hyper-V, assicurarsi che sul computer sia abilitato il cmdlet Merge-VHD. In caso contrario, sullo schermo verrà visualizzato il seguente errore:
The term 'Merge-VHD' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
Per risolvere il problema, apri PowerShell come amministratore ed esegui il seguente comando:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-Management-PowerShell
Se tutto è corretto, dovresti vedere quanto segue:

Ora sei pronto per eseguire il cmdlet Merge-VHD. Tieni presente che questa operazione viene eseguita offline.
Per unire gli snapshot Hyper-V, esegui questo cmdlet:
Merge-VHD Path = '' DestinationPath = ''
In questo caso, i dati di diversi dischi secondari, da quello più recente, possono essere uniti nel disco parent più vecchio. Sullo schermo vedrai quanto segue:

Al termine dell’operazione, spegni la VM guest e riavvia il sistema. A differenza di Hyper-V Manager, che richiede di unire separatamente ogni livello della catena di dischi, PowerShell consente di eseguire un’operazione così complessa con un solo comando.
Perché utilizzare gli snapshot Hyper-V
Gli snapshot Hyper-V consentono di salvare lo stato della VM prima di applicare modifiche alla configurazione, installare nuovo software, eseguire aggiornamenti del sistema operativo, aggiornare patch di sicurezza, ecc. Se si sta per eseguire un’operazione che potrebbe modificare l’infrastruttura virtuale o che presenta un alto rischio di fallimento, creare in anticipo uno snapshot Hyper-V della VM. Fungerà da rete di sicurezza nel caso in cui qualcosa vada storto e sia necessario ripristinare il sistema allo stato precedente.
Tuttavia, gli snapshot Hyper-V offrono i migliori risultati quando vengono utilizzati in ambienti di sviluppo e test. Non sono un’alternativa di backup efficace e affidabile e non ne consigliamo l’uso in ambienti di produzione. Considera invece l’utilizzo di una soluzione di backup di Hyper-V completa, che include diverse opzioni di protezione dei dati e può farti risparmiare tempo, denaro e fatica rispetto alla manutenzione tradizionale dell’infrastruttura.