Migrazione e conversione di un host fisico Windows Server in una macchina virtuale Hyper-V utilizzando Veeam Agent
Veeam Backup & Replication (https://www.veeam.com/it/vm-backup-recovery-replication-software.html) è una soluzione per la protezione di ambienti basati sugli hypervisor Hyper-V e VMware ESXi. Da sempre uno dei punti di forza di Veeam è la capacità di proteggere le macchine virtuali in modalità agentless, ovvero senza installare software aggiuntivo sui server oggetto delle operazioni di backup.
Laddove però occorra effettuare il backup di server o di postazioni di lavoro non virtuali (o virtuali su piattaforme diverse da VMware o Hyper-V), è possibile utilizzare i Veeam Agent per ottenere i medesimi risultati di protezione con garanzia di recuperabilità a livello di intero sistema, volumi o singoli file.
Per maggiori informazioni sui Veeam Agent, suggerisco la lettura di questo articolo: https://www.veeam.com/it/windows-cloud-server-backup-agent.html.
In alcuni casi, inoltre, i Veeam Agent possono essere utilizzati per convertire una macchina da fisica a virtuale, ad esempio durante un processo di consolidamento dei datacenter oppure in caso di guasto o di obsolescenza dell’hardware che ospita ruoli server business-critical.
In questo articolo prendiamo in esame un caso interessante quanto frequente: il ripristino (o la migrazione) su Hyper-V di un server Windows 2008 R2 che gira su hardware il cui boot è gestito da firmware UEFI.
Per approfondimenti sullo standard UEFI: https://www.intel.com/content/www/us/en/architecture-and-technology/unified-extensible-firmware-interface/efi-specifications-general-technology.html.
Questo scenario è particolarmente insidioso in quanto Hyper-V non gradisce affatto la combinazione Windows 2008 R2 e UEFI:
- Windows 2008 R2 è supportato unicamente da macchine virtuali “Generation 1”
- Il boot in modalità UEFI è supportato unicamente da macchine virtuali “Generation 2”
Maggiori informazioni qui: https://docs.microsoft.com/en-us/windows-server/virtualization/hyper-v/plan/should-i-create-a-generation-1-or-2-virtual-machine-in-hyper-v.
Scenario
Nel nostro datacenter abbiamo un host fisico Windows Server 2008R2 SP1 su cui abbiamo installato il Veeam Agent for Windows per poterne effettuare un backup completo.
Esula dallo scopo di questo articolo descrivere le procedure (manuali o automatiche) finalizzate alla distribuzione del Veeam Agent for Windows, per le quali rimando a questa documentazione: https://helpcenter.veeam.com/docs/agentforwindows/userguide/backup_job_vbr.html?ver=30
È stato effettuato almeno un backup “image based” dell’host fisico, utilizzando come target un repository gestito da Veeam Backup and Replication. Per “image based” si intende un backup che crea una copia integrale del sistema di origine (nel nostro caso l’host fisico Windows Server 2008R2) in un unico file monolitico.
Problema
Ripristinando il backup in ambiente Hyper-V, sebbene il processo vada a buon fine, la macchina virtuale non si avvia correttamente.
Soluzione
Per ottenere una macchina virtuale Hyper-V correttamente avviabile, ne convertiremo il bootloader da GPT in MBR utilizzando i tool Windows diskpart e bcdboot.
La procedura prevede una serie di passaggi fra i quali la creazione di un file .iso chiamato Veeam Recovery Media.
Il Veeam Recovery Media è un file .iso generato dalla console di Veeam Backup & Replication a partire dal file di backup dell’host fisico ottenuto tramite Veeam Agent.
Grazie a questo file .iso avviabile è possibile effettuare un ripristino “bare-metal”, ossia partendo da nuovo hardware che sarà avviato per l’appunto dall’immagine .iso trasferita su un pendrive USB o masterizzata su supporto ottico. Ulteriori dettagli qui: https://helpcenter.veeam.com/docs/agentforwindows/userguide/recovery_media.html?ver=30.
Questi i passaggi in sintesi:
- Creare il file Veeam Recovery Media
- Creare una macchina virtuale Hyper-V di “Generation 1” con le stesse caratteristiche dell’host fisico (CPU, RAM, dimensione e numero di hard disk)
- Convertirne il bootloader in MBR
- Ripristinare la macchina fisica precedentemente sottoposta a backup tramite Veeam Agent seguendo la procedura “bare-metal”
Ecco in dettaglio come effettuare i suddetti passaggi.
Creazione del Veeam Recovery Media
Nella console di Veeam Backup and Replication, sezione Home / Backups / Disk espandere il job relativo al backup dell’host fisico da convertire in macchina virtuale e selezionare l’opzione Create Recovery Media.
Nella finestra Recovery Media, fare clic su Next.
Nella finestra Image Path, selezionare il percorso dove salvare il file .iso e fare clic su Next.
Nella finestra Ready to Apply, fare clic su Next.
Attendere il completamento dell’operazione e fare clic su Finish.
Creazione della macchina virtuale in Hyper-V
Durante la creazione della macchina virtuale, specificare la generazione:
Configurare il DVD Drive della macchina virtuale affinché utilizzi il file .iso Veeam Recovery Media creato precedentemente.
Importante: accertarsi che l’host fisico sia spento.
Avviare la macchina virtuale e connettersi alla sessione ed effettuare il boot da CD: si avrà accesso all’ambiente di ripristino Veeam.
Conversione del bootloader
Selezionare l’opzione Tools.
Selezionare l’opzione Command prompt.
Eseguire in sequenza i comandi:
1 2 3 4 5 6 7 8 9 10 |
diskpart select disk 0 clean convert mbr create partition primary size=100 select part 1 format fs=ntfs label="System reserved" quick active assign letter=S exit |
Chiudere il Command prompt.
Tornare al menu principale e selezionare l’opzione Bare Metal Recovery.
Nella finestra Backup Location selezionare l’opzione Network storage e fare clic su Next.
Nella finestra Network Storage selezionare l’opzione Veeam backup repository e fare clic su Next.
Nella finestra Backup Server specificare il nome o l’indirizzo IP del server Veeam Backup e le credenziali amministrative per eseguire un restore; poi fare clic su Next.
Nella finestra Backup selezionare il computer di cui si desidera effettuare il ripristino e fare clic su Next.
Nella finestra Restore Point selezionare il punto di ripristino più recente e fare clic su Next.
Una dialog box avverte del potenziale problema di boot. Fare clic su OK.
Nella finestra Restore Mode selezionare l’opzione Manual restore (advanced) e fare clic su Next.
Nella finestra Disk Mapping fare clic su Customize
Disk Mapping.
Nella sotto-finestra Disk Mapping fare clic con il tasto destro nella partizione Unallocated del Disk 0, selezionare Restore, poi Disk 0 ed infine (C:).
Fare clic su OK.
Fare clic su Next.
Nella finestra Summary fare clic su Restore.
Attendere il completamento dell’operazione e fare clic su Finish.
Importante: Nella dialog box che chiede l’autorizzazione ad effettuare il riavvio della macchina virtuale, fare clic su No.
Nel menù principale selezionare l’opzione Tools.
Selezionare l’opzione Command prompt.
Eseguire in sequenza i comandi:
1 2 3 |
diskpart list vol |
Verificare la presenza della partizione C.
Eseguire in sequenza i comandi:
1 2 3 |
exit bcdboot C:\Windows /s S: |
Chiudere il Command prompt.
Riavviare la macchina virtuale.
Importante: Attendere che si completino gli eventuali riavvii gestiti automaticamente dalla procedura di ripristino.
Conclusioni
In questo articolo abbiamo visto come utilizzare i Veeam Agent per effettuare il backup di un host fisico con Windows Server 2008R2 e convertirlo in una macchina virtuale Hyper-V, risolvendo le problematiche di compatibilità legate alla versione del sistema operativo e alla presenza di un firmware UEFI.