Esportazione e importazione Hyper-V: cosa, perché e come
Uno dei numerosi vantaggi della virtualizzazione è la portabilità, ovvero la possibilità di spostare facilmente le macchine virtuali (VM) selezionate da una ubicazione all’altra senza tempi di inattività o interruzioni del servizio. La portabilità all’interno di un ambiente Hyper-V è garantita dalla funzionalità di esportazione e importazione di Hyper-V, che consente di copiare e spostare facilmente una VM Hyper-V in una ubicazione di destinazione e quindi ripristinarla allo stato in cui si trovava al momento dell’esportazione.
Come funziona la funzionalità di esportazione e importazione Hyper-V? Quando si esporta una VM Hyper-V, è possibile creare una copia dei file di configurazione della VM, dei file VHD e delle istantanee della VM. Successivamente, è necessario specificare se si desidera che la copia della VM sia situata all’interno di un host Hyper-V o se si desidera spostare una VM esportata tra host Hyper-V. Infine, la VM archiviata può essere utilizzata in seguito in caso di guasto hardware o perdita di dati per ripristinare i dati della VM.
Il post del blog di oggi rileva se la funzionalità di esportazione e importazione Hyper-V può essere considerata un’alternativa efficace al backup delle VM e come si confronta con soluzioni complete di protezione dei dati.
Che cos’è l’esportazione Hyper-V?
L’esportazione Hyper-V è il processo di esportazione di una VM selezionata, inclusi i file del disco rigido virtuale, i file di configurazione della VM e i snapshot Hyper-V, in un’unica unità. Questa operazione può essere eseguita quando la VM è online o offline. Nelle versioni precedenti di Windows (prima di Windows Server 2012), era possibile esportare le macchine virtuali Hyper-V solo quando erano spente. L’esportazione Hyper-V può essere eseguita solo su richiesta.
Inoltre, in precedenza non era possibile esportare una macchina virtuale direttamente su una condivisione di rete. Nelle versioni precedenti di Windows, la VM doveva prima essere esportata in uno spazio di archiviazione locale e copiata attraverso la rete in una posizione di destinazione in cui erano archiviati i file di archivio. Con il rilascio di Windows Server 2012, questo problema è stato eliminato.
L’esportazione Hyper-V può essere utilizzata per archiviare una VM che non è più necessaria o come backup ad hoc che consente di acquisire i dati della VM in un momento specifico. Inoltre, Hyper-V Export può essere utilizzato a scopo di test. Ad esempio, è possibile creare una copia della VM di produzione ed esportarla in un ambiente non di produzione per eseguire test e risolvere problemi.
Il processo di esportazione delle VM Hyper-V viene spesso paragonato a all’acquisizione di snapshot Hyper-V e alla creazione di backup. L’esportazione delle VM non è veloce come l’acquisizione di snapshot, ma, a differenza degli snapshot Hyper-V, consente di creare una copia completa della VM esistente e di inviarla per l’archiviazione in un’altra ubicazione. Allo stesso tempo, l’esportazione Hyper-V non può essere considerata un backup completo della VM. Non applica tecniche di compressione, deduplicazione e crittografia, ampiamente utilizzate dalle soluzioni di protezione dei dati e che consentono di ridurre le esigenze di spazio di archiviazione e di utilizzare lo spazio su disco disponibile in modo più efficace.
Che cos’è Hyper-V Import?
Hyper-V Import consente di ripristinare le VM selezionate che sono state precedentemente esportate da un insieme di file di configurazione. Le VM Hyper-V possono essere importate in un host Hyper-V di origine o in uno nuovo. In precedenza, l’importazione Hyper-V doveva essere preceduta dall’esportazione Hyper-V. Tuttavia, da Windows Server 2012 R2, è ora possibile importare VM Hyper-V senza averle precedentemente esportate. Quando si esegue l’importazione Hyper-V, la VM viene registrata con l’host Hyper-V.
L’importazione Hyper-V può essere di uno dei seguenti tipi:
- Registrazione in loco. In questo caso, i file di origine non vengono modificati o spostati in alcun modo. Inoltre, l’ID univoco della VM rimane lo stesso, il che significa che la VM è già registrata con l’host Hyper-V. Se si tenta di importare la VM senza prima eliminare la VM di origine con l’ID, l’operazione non andrà a buon fine.

Questo tipo di importazione può essere utilizzato se si desidera eseguire la VM dall’ubicazione di origine o se la VM non ha funzionato correttamente ed è necessario registrarla nuovamente con l’host Hyper-V. Al termine dell’operazione di importazione, i file di esportazione diventano file di stato in esecuzione e non possono essere rimossi.
- In questo caso, i file esportati vengono copiati in una ubicazione di destinazione e l’ID univoco della VM rimane lo stesso di quando è stata esportata da Hyper-V. Pertanto, è preferibile eliminare la VM originale prima dell’inizio dell’operazione di importazione, in modo che i loro ID non entrino in conflitto. In caso contrario, si verificherà lo stesso errore sopra menzionato.
Al termine dell’operazione di importazione Hyper-V, i file esportati rimarranno intatti e potranno essere rimossi o importati nuovamente.
- Quando si ripristina una VM archiviata, è necessario scegliere il tipo di importazione Copia. In questo caso, i file della VM vengono copiati nella posizione di destinazione e alla VM viene assegnato un nuovo ID univoco, il che significa che è possibile importare più volte la VM preconfigurata nello stesso host Hyper-V.
Come esportare VM Hyper-V
È possibile esportare VM Hyper-V utilizzando Hyper-V Manager e eseguendo cmdlet PowerShell. Descriverò questi approcci in dettagli e vi guiderò attraverso ogni fase dell’esportazione delle VM Hyper-V.
Utilizzo di Hyper-V Manager
Per esportare le VM Hyper-V, è necessario avviare la procedura guidata Esporta VM:
1. Aprire Hyper-V Manager.
2. Fare clic con il pulsante destro del mouse sulla VM dall’elenco. Come potete vedere, ho scelto la VM in esecuzione.

3. Selezionate Esporta per aprire la procedura guidata Esporta VM.
4. Fate clic su Sfoglia per specificare l’ubicazione in cui esportare la VM.

5. Monitorare lo stato di avanzamento dell’operazione di esportazione Hyper-V nella colonna Stato.

6. Al termine dell’operazione, aprire la cartella per verificare che tutto sia stato esportato correttamente.

Come si può vedere dalla schermata sopra, la VM selezionata, inclusi i dischi rigidi virtuali, i file di configurazione della VM e le istantanee della VM, è stata esportata correttamente in una nuova ubicazione.
Utilizzo di PowerShell
Il metodo successivo consiste nell’eseguire i cmdlet di PowerShell, che possono aiutare ad automatizzare il processo di esportazione delle VM Hyper-V. Dopo aver creato uno script PowerShell funzionante, è possibile pianificarne l’esecuzione automatica utilizzando l’Utilità di pianificazione. In questo modo, è possibile eseguire regolarmente il backup delle VM in esecuzione, senza interruzioni del sistema o del servizio.
Per esportare le macchine virtuali Hyper-V con PowerShell, è necessario eseguire il seguente cmdlet:
Export-VM -Name DemoVM -Path 'C:Virtual Hard DisksExported VMs'
Ricordarsi di eseguire PowerShell come amministratore affinché i cmdlet funzionino come richiesto.

Dopo aver controllato la cartella di destinazione, è possibile verificare che la macchina virtuale e i file corrispondenti siano stati esportati correttamente.

Il seguente cmdlet può essere utilizzato per esportare tutte le VM disponibili nella directory principale dell’unità C (C:).
Get-VM | Export-VM -Path C:
Come importare le VM Hyper-V
Come accennato in precedenza, è possibile importare anche le VM Hyper-V che non sono state esportate in precedenza. A tal fine, è possibile utilizzare anche Hyper-V Manager o i comandi PowerShell.
Utilizzo di Hyper-V Manager
Per importare una VM Hyper-V, è necessario procedere come segue:
1. Aprire Hyper-V Manager.
2. Nella sezione Azioni, selezionare Importa VM per aprire la procedura guidata Importa VM.

3. Nella sezione Prima di iniziare, leggere le funzionalità della procedura guidata e fare clic su Avanti.

4. Nella sezione Individua cartella, seleziona la cartella che contiene la VM che desideri importare.

5. Nella sezione Seleziona VM, scegli la VM da importare.

6. Nella sezione Scegli tipo di importazione, in base alle tue esigenze specifiche, devi scegliere tra i tre tipi di importazione: Registra la VM in loco, Ripristina la VM, e Copia la VM. In questo caso, mostrerò come copiare la VM e assegnarle un nuovo ID univoco.

7. Nella sezione Scegli destinazione, è possibile specificare le cartelle in cui devono essere archiviati i file della VM. Sono disponibili due opzioni: importare i file della VM nelle cartelle Hyper-V predefinite o archiviare la VM in una ubicazione diversa selezionando manualmente le cartelle.

8. Nella sezione Scegli cartelle di storage, fare clic su Sfoglia per selezionare la cartella in cui saranno archiviati i dischi rigidi virtuali per questa VM.

9. Nella sezione Riepilogo è possibile esaminare le selezioni effettuate in questa procedura guidata. Fare clic su Fine se si desidera chiudere la procedura guidata e importare una VM Hyper-V.

10. I file vengono copiati nella ubicazione di destinazione.

Una volta completata l’operazione, è possibile trovare la VM importata sull’host Hyper-V selezionato utilizzando Hyper-V Manager.

Utilizzo di PowerShell
Come sapete, in un ambiente Hyper-V esistono tre tipi di importazione ed è possibile utilizzare il cmdlet Import-VM per eseguire vari tipi di importazione Hyper-V.
Per eseguire la registrazione in loco della VM selezionata, è necessario prima eliminare la VM di origine che ha lo stesso ID. A tal fine, eseguire il seguente cmdlet:
Get-VM DemoVM | Remove-VM
Successivamente, è possibile eseguire il cmdlet Import-VM per assicurarsi che la VM venga registrata in loco e che venga utilizzato l’ID univoco esistente.
Import-VM –Path 'C:Virtual Hard DisksExported VMsDemoVMVirtual Machines9C21B83D-EF80-4566-BF25-DDA50FEE2FFE.vmcx'

L’opzione successiva consiste nel ripristinare la VM. In questo caso, i file esportati verranno copiati e spostati nella nuova ubicazione e verrà utilizzato l’ID esistente. Anche questo tipo di importazione richiede l’eliminazione della VM di origine prima di avviare l’operazione di ripristino.
Import-VM -Path 'C:Virtual Hard DisksExported VMsHyper-V Server 2012Virtual Machines6E62C696-E3A1-41C3-A975-0E1CC9E67A31.vmcx' -Copy -VhdDestinationPath 'C:Program FilesImported VMsVHD Files' -VirtualMachinePath 'C:Program FilesImported VMsVM Files'
L’operazione di importazione dovrebbe essere completata in pochi secondi.

Affinché questo cmdlet funzioni, è necessario specificare chiaramente il percorso completo della ubicazione in cui è attualmente archiviato il file .vcmx di origine e il percorso completo della ubicazione in cui devono essere copiati i file .vcmx e .vhdx.
Infine, è possibile copiare la VM utilizzando il seguente cmdlet PowerShell. In questo caso, non è necessario eliminare la VM di origine, poiché verrà creato un nuovo ID univoco per la VM importata. Utilizzando questo approccio, è possibile importare questa VM più volte sullo stesso host.
Import-VM -Path 'C:Virtual Hard DisksExported VMsDemoVMVirtual Machines9C21B83D-EF80-4566-BF25-DDA50FEE2FFE.vmcx' -Copy -GenerateNewId

Conclusioni
Per esportare o importare VM Hyper-V, è possibile utilizzare Hyper-V Manager o eseguire script PowerShell. Ciascuno di questi approcci presenta vantaggi e casi d’uso specifici, pertanto è opportuno scegliere tra i due in base alle proprie esigenze individuali.
La funzione di esportazione e importazione di Hyper-V può essere utilizzata come alternativa al backup, ovvero è possibile creare una copia delle VM in esecuzione e ripristinarle in caso di danneggiamento o guasto. Tuttavia, il processo di esportazione e importazione delle VM Hyper-V richiede un notevole intervento manuale da parte dell’utente e può essere automatizzato solo utilizzando script PowerShell. Pertanto, rispetto alle soluzioni di backup complete, l’esportazione e l’importazione Hyper-V hanno funzionalità piuttosto limitate, che consentono di proteggere solo piccoli ambienti Hyper-V, oltre a richiedere molto tempo e impegno.
Se desiderate rendere il processo di protezione delle VM Hyper-V facile, veloce e sicuro, dovreste prendere in considerazione l’installazione di una soluzione avanzata di protezione dei dati. NAKIVO Backup & Replication è una soluzione affidabile e potente, che può aiutarvi a proteggere più ambienti a un prezzo molto contenuto.