Oggi mi sono imbattuto in uno scenario particolare. Tempo addietro ho installato presso un cliente un server con Hyper-V e un paio di VM in esecuzione su di esso. Si trattava di una installazione provvisoria e le VM sarebbero poi state migrate su un nuovo hardware assieme ad alcune altre macchine virtuali. Essendo giunto il momento di eseguire la migrazione, per curiosità, ho controllato la dimensione dei file con i virtual disk (VHD) delle macchine da trasferire e mi sono reso conto che, per cause ignote, di una macchina sono presenti un file .vhd e due file .avhd, come se in passato fossero state eseguite delle snapshot. L’unico problema è che la console di Hyper-V non mostra alcuna snapshot e quindi non ho modo di consolidare i dischi in uno unico. Dramma? Forse no.
Esiste una procedura che consente di effettuare l’unione di file .avhd fino per ricostruire un unico VHD, senza utilizzare la console di gestione di Hyper-V per agire sulle snapshot.
Innanzitutto è necessario localizzare l’ultimo file differenziale .avhd della catena di snapshot, poichè il processo di merge va eseguito a ritroso a partire da questo. Il nome del file .avhd corretto è rintracciabile nel file .xml contenente la configurazione della virtual machine. Nel mio caso il file si trova in
C:\Virtual Machines\Configurations\Virtual Machines
Editando il file e ricercando la stringa “avhd” trovo subito il file corretto, dal quale iniziare la procedura di unione.
Mi posiziono quindi nel percorso contenente il file e ne modifico l’estensione da .avhd a .vhd.
Ora dalla console di management di Hyper-V seleziono la voce Modifica disco… nel pannello Azioni.
Il wizard di modifica del disco parte e mi richiede innanzitutto la posizione nel quale si trova il disco virtuale. Mi posiziono nella cartella dove risiede il file .avhd appena rinominato in .vhd.
Seleziono quindi Unisci per eseguire il merge del disco con il VHD padre che, in questo caso specifico, è a sua volta un file .avhd essendo generato da un concatenamento di snapshot.
Indico dunque al wizard che voglio eseguire il marge e salvare il contenuto direttamente nel file padre, e non generare un nuovo VHD.
Il processo si avvia.
A fine operazione posso verificare che nella cartella contenente il file .vhd originale e i due file .avhd delle snapshot ora è presente un solo file .vhd e un solo .avhd, generato dall’unione dei due file precedenti.
Sul nuovo file .avhd rieseguo il processo avviando quindi l’unione con il .vhd originario. Di seguito l’immagine dell’ultimo passaggio.
A questo punto la cartella conterrà solo un VHD, ottenuto dall’unione del .vhd originale e di tutti i dischi differenziali generati dalle snapshot.
Ora è possibile generare una nuova macchina virtuale alla quale connettere il disco così ottenuto. Riconfigurando gli indirizzi IP delle schede di rete installate sulla VM il server tornerà in produzione senza intoppi.
Articoli correlati
Hyper-V: Creazione di macchine virtuali basate su dischi differenziali
Leave a Reply