Come migrare le VM da Hyper-V a Proxmox: una guida passo passo
Proxmox VE è un ambiente virtuale affidabile per organizzazioni di tutte le dimensioni, ma trasferire VM da un’altra soluzione di virtualizzazione a Proxmox VE può essere complicato. Nelle ultime versioni, Proxmox ha aggiunto una procedura guidata per automatizzare in parte le migrazioni da VMware ESXi a Proxmox VE. Tuttavia, la migrazione da Hyper-V a Proxmox richiede passaggi manuali. Questo post del blog mostra i passaggi dettagliati per la migrazione delle VM da Hyper-V a Proxmox e come configurare la migrazione.
Preparazione della VM Microsoft Hyper-V per la migrazione
Per preparare l’ambiente alla migrazione a Proxmox VE, è necessario innanzitutto installare i driver VirtIO sul sistema operativo guest della VM Microsoft Hyper-V che si intende migrare. I driver VirtIO sono un insieme di driver per dispositivi virtuali delle VM Proxmox che migliorano le prestazioni e l’esperienza utente, in modo simile a VMware Tools . L’installazione dei driver VirtIO prima di avviare il processo di migrazione è necessaria per evitare problemi dopo l’avvio della VM su un host Proxmox.Per installare i driver VirtIO:
- Scarica i driver VirtIO stabili più recenti o la build ISO più recente dalla risorsa ufficiale . Questa immagine ISO è necessaria anche per installare QEMU Guest Agent.
- Inserire l’immagine ISO scaricata con i driver VirtIO nell’unità CD/DVD virtuale della VM Hyper-V di origine. Il nome della nostra VM di origine in questo esempio è Win10test (Windows 10 è il sistema operativo guest). Si tratta di una VM di seconda generazione che dispone di un disco virtuale VHDX da 20 GB (dinamico, non preallocato, analogo a un disco thin provisioned ) con un sistema operativo (OS) e dati.
- Aprire Hyper-V Manager . Fare clic con il pulsante destro del mouse sulla VM che si desidera migrare da Hyper-V a Proxmox VE e, nel menu contestuale, fare clic su Impostazioni .
- Nel riquadro sinistro della finestra Impostazioni VM , fare clic sull’opzione Unità DVD . Nel riquadro destro, fare clic su File immagine , premere Sfoglia e selezionare il file immagine dei driver VirtIO. In questo esempio, il nome del file è virtio-win-0.1.240.iso
Fare clic su OK per salvare le impostazioni.
- Avvia la VM di origine e connettiti alla VM utilizzando lo strumento nativo Hyper-V VMConnect . Fai clic con il pulsante destro del mouse sulla VM e fai clic su Connetti .
- Apri Windows Explorer ( Questo PC ) nel sistema operativo guest e vai all’unità DVD in cui è stata inserita l’immagine ISO. Trova il file di installazione dei driver VirtIO per Windows nella cartella principale dell’immagine DVD. Seleziona il file di installazione in formato . msi a seconda della tua versione di Windows ( virtio-win-gt-x64.msi o virtio-win-gt-x86.msi ).
- Esegui il file eseguibile per la tua versione di Windows (64 bit o 32 bit) e segui la procedura guidata di installazione per installare i driver VirtIO.
- Installa QEMU Guest Agent . L’ubicazione del programma di installazione è nell’immagine ISO con i driver VirtIO nella directory guest-agent . Esegui il file di installazione per la tua versione di Windows (noi eseguiamo qemu-ga-x84_64.msi perché utilizziamo Windows 10 a 64 bit come sistema operativo guest).
- Verifica che l’agente guest sia in esecuzione in un sistema operativo guest della VM Hyper-V di origine utilizzando il seguente comando PowerShell:
Get-Service QEMU-GA
È inoltre possibile controllare lo stato del servizio QEMU Guest Agent nell’interfaccia utente grafica di Windows nello snap-in services.msc . Fare clic con il pulsante destro del mouse sull’icona Risorse del computer o Questo PC , fare clic su Gestisci e, nella finestra Gestione computer , vai su Servizi e applicazioni > Servizi . Controlla il servizio QEMU Guest Agent : questo servizio deve essere in esecuzione con il tipo di avvio automatico .
- Spegnere la VM di origine sull’host Hyper-V.
- Se la VM dispone di punti di controllo (snapshot), rimuoverli. La VM nel nostro esempio non ha punti di controllo.
Esportazione della VM Hyper-V
Per esportare la VM Hyper-V di origine che si desidera migrare da Hyper-V a Proxmox VE, cliccare con il tasto destro del mouse sulla VM e selezionare Esporta dal menu contestuale.
Specificare l’ubicazione in cui si desidera salvare i file della VM esportata e fare clic su Esporta .
In questo esempio, i file vengono esportati in H:Exported sull’host Hyper-V.
Trasferimento dei file della VM al server Proxmox
Copiare i dischi virtuali della VM Hyper-V esportata (VHD o VHDX ) sull’host Proxmox. I dischi virtuali si trovano nella sottodirectory Virtual Hard Disks della VM esportata, nella directory specificata per l’esportazione della VM. Utilizzando WinSCP , il client SCP e SFTP che funziona tramite SSH, è comodo copiare file da una macchina Windows a una Linux, compreso un host Proxmox.
- Creare una nuova sessione in WinSCP e accedere al proprio host Proxmox.
- Copiare i dischi virtuali VHD o VHDX della VM Hyper-V esportata sull’host Proxmox. È sufficiente trascinare i file in WinSCP.
- Controllare i dischi virtuali copiati della VM Hyper-V sull’host Proxmox per assicurarsi che il file sia coerente e non danneggiato. Aprire la console (terminale) sull’host Proxmox ed eseguire questo comando:
qemu-img check -r all /home/user1/Downloads/Win10test.vhdx
Creazione di una nuova VM in Proxmox
Crea una nuova VM in Proxmox. Puoi farlo utilizzando l’interfaccia web di Proxmox VE.
- Selezionare l’host Proxmox nel Datacenter , fare clic con il tasto destro del mouse su di esso e selezionare Crea VM dal menu contestuale. Configureremo questa nuova VM per utilizzare i dischi virtuali importati per il processo di migrazione.
- Si apre la procedura guidata di creazione della VM Proxmox.
- Generale . Inserisci il nome della VM (ad esempio Win10-migrated ). È possibile lasciare il valore predefinito dell’ID VM libero. Nel nostro caso, l’ID VM è 101.
- Sistema operativo . Selezionare Non utilizzare alcun supporto . Tipo di sistema operativo guest: Microsoft Windows ; versione: 10/2016/2019 .
- Sistema . Nella sezione Firmware , selezionare OVMF (UEFI) BIOS. In questo caso, è necessario aggiungere un disco EFI basato sul dispositivo q35 e senza un TPM virtuale (come sulla VM di origine). Lasciare VirtIO SCSI singolo come controller SCSI, come suggerito dalla procedura guidata. Abbiamo selezionato UEFI perché stiamo migrando una VM Hyper-V Gen-2.
- Dischi . Lasciare i parametri predefiniti, ma impostare la dimensione del disco virtuale su 1 GB (si tratta di un disco virtuale temporaneo utilizzato per creare una nuova VM; lo elimineremo in seguito).
- CPU, memoria, rete : selezionare i valori desiderati. È possibile impostare la stessa CPU e memoria della VM di origine.
- Una volta creata la nuova VM Proxmox, vai alle impostazioni della VM Hardware , seleziona il disco rigido virtuale temporaneo da 1 GB appena creato, Hard Disk (ide0) in questo caso, e clicca su Detach . Dopo aver scollegato il disco virtuale, il nome del disco viene modificato in Unused Disk 0 nel nostro caso.
- Eliminare il disco virtuale temporaneo da 1 GB. Selezionare Disco inutilizzato 0 e fare clic su Rimuovi .
Conversione dei file VHDX in QCOW2
Converti il disco virtuale Hyper-V (VHD o VHDX) sull’host Proxmox al formato nativo Proxmox (KVM) per utilizzare più funzioni (thin provisioning). Aprire la console (terminale) sull’host Proxmox ed eseguire il seguente comando con privilegi di root: qemu-img convert -f vhdx -O qcow2 -o preallocation=off /var/lib/vz/dump/disk.vhdx /var/lib/vz/images/VMID/disk.qcow2 Dove: -f vhdx viene utilizzato per specificare il formato di input (VHDX). -O qcow2 viene utilizzato per specificare il formato di output (QCOW2). -o preallocation=off – abilita il thin provisioning per il file del disco virtuale della destinazione (il disco occupa solo lo spazio necessario per i dati effettivi). /var/lib/vz/dump/disk.vhdx è il file VHDX di origine. /var/lib/vz/images/VMID/disk.qcow2 è l’ubicazione di destinazione (sostituire VMID con l’ID effettivo della VM in Proxmox).Nel nostro esempio, il comando esatto per convertire Hyper-V in Proxmox formato disco virtuale (da VHDX a QCOW2) è il seguente: qemu-img convert -f vhdx -O qcow2 -o preallocation=off ./Win10test.vhdx /var/lib/vz/images/101/Win10-converted.qcow2 Attendere fino a quando il disco virtuale non viene convertito. Come risultato, viene creato un nuovo file. Abbiamo convertito Win10test.vhdx in Win10-converted.qcow2
Esegui una nuova scansione dello storage Proxmox per riconoscere i nuovi dischi virtuali: qm rescan
Dopo aver rieseguito la scansione dei dischi virtuali, il disco virtuale convertito viene visualizzato nell’interfaccia web Proxmox.
Collegamento dei dischi virtuali alla VM Proxmox
Aggiungere il disco convertito con lo stato Disco inutilizzato alla VM creata in precedenza (nel nostro caso aggiungiamo Win10-converted.qcow2 alla Win10-migrated VM nel nostro caso). È possibile eseguire questa operazione nell’interfaccia web di Proxmox.
- Fare doppio clic sul disco inutilizzato ( Disco inutilizzato 0 ) per collegarlo alla VM.
- Selezionare IDE (o SATA ). Se si collega il disco virtuale importato e convertito a un controller SCSI, durante l’avvio del sistema operativo guest per questa VM verrà visualizzata la schermata blu della morte (BSOD) di Windows. Dopo l’avvio dal disco IDE o SATA, Windows installa i driver per l’hardware virtuale della VM Proxmox. Quindi, è possibile riconfigurare il disco virtuale per utilizzare il controller disco SCSI.
- Aggiungere il nuovo disco SCSI temporaneo da 1 GB creato di recente. È necessario creare un disco temporaneo collegato a un controller SCSI per installare i driver obbligatori per funzionare con i controller SCSI. Selezionare la VM creata durante la migrazione da Hyper-V a Proxmox ( Win10-migrated ), vai alla sezione Hardware , fai clic su Aggiungi e premi Disco rigido .
- Seleziona i parametri del disco virtuale come spiegato in precedenza, ma questa volta con il bus/dispositivo SCSI.
- Modifica l’ordine di avvio. Selezionare la VM, andare su Opzioni > Ordine di avvio . Fare doppio clic su Ordine di avvio oppure selezionare Ordine di avvio e fare clic su Modifica .
- Selezionare la casella di controllo appropriata per abilitare il disco virtuale che è stato convertito, importato e collegato a questa VM. Per impostazione predefinita, il nuovo disco non è selezionato nell’elenco dell’ordine di avvio.
- Spostare il disco importato e abilitato nella parte superiore dell’elenco di avvio.
- Accendere la VM e connettersi alla console della VM. Selezionare la VM creata per la migrazione da Hyper-V a Proxmox, fare clic su Avvia e quindi fare clic su Console . Il sistema operativo guest dovrebbe avviarsi ora.
- Controllare l’hardware in Gestione dispositivi del sistema operativo Windows guest. Fare clic con il pulsante destro del mouse sull’icona Risorse del computer o Questo PC , fare clic su Gestisci e selezionare Gestione periferiche . In alternativa, è possibile eseguire lo snap-in
devmgmt.mscdalla riga di comando.Dovrebbero essere visibili due unità disco: il disco virtuale convertito/importato (nel nostro caso un disco thin provisioning da 20 GB collegato al controller IDE) e il disco virtuale SCSI temporaneo da 1 GB.
Dovrebbero essere visibili un controller SATA/AHCI standard e un controller VirtIO SCSI. Una volta installato il controller SCSI sulla VM dopo l’avvio di Windows dal disco IDE o SATA, vengono installati i driver per utilizzare il controller SCSI. Questi driver consentono di avviare il sistema operativo dal disco collegato al controller SCSI. È possibile riavviare la VM per assicurarsi che tutto funzioni correttamente.
- Spegnere la VM migrata su Proxmox.
- Scollegare il disco virtuale collegato al controller IDE. Selezionare il disco virtuale nella sezione Hardware della VM migrata e fare clic su Scollega . Nel nostro esempio si tratta ora di Hard Disk (ide0) (20 GB).
- Fare doppio clic su questo disco (ora il nostro disco da 20 GB è un disco inutilizzato – Disco inutilizzato 0 ) per collegarlo.
- Collegare questo disco virtuale al controller SCSI (bus/dispositivo) e fare clic su Aggiungi .
- Il nostro disco virtuale da 20 GB è ora Disco rigido (scsi1) . Manteniamo ancora il disco SCSI temporaneo da 1 GB attivo in questa VM.
- Modifica l’ordine di avvio della VM. Andare su VM Opzioni e fare doppio clic su Ordine di avvio , come spiegato in precedenza.
- Selezionare il disco virtuale con Windows 10 che è stato recentemente collegato al controller SCSI ( Win10-converted.qcow2 in questo caso).
- Modifica l’ordine di avvio: spostare questo disco importato (da Hyper-V con Windows 10) in cima all’elenco.
- Avviare la VM. Il sistema operativo guest Windows 10 dovrebbe ora avviarsi dal disco virtuale SCSI.
- Una volta avviato il sistema operativo guest, aprire Gestione dispositivi e controllare i dischi e i controller di storage. Ora vediamo due dischi SCSI e due controller SCSI (vedere la schermata qui sotto). In questo caso, ogni disco SCSI è collegato al proprio controller SCSI. La configurazione visualizzata in Gestione dispositivi è corretta per noi in questa fase.
- Se tutto funziona correttamente, spegnere la VM.
- Avviare nuovamente la VM. Se il sistema operativo guest si avvia correttamente e tutto funziona correttamente, è possibile scollegare ed eliminare il disco virtuale SCSI temporaneo da 1 GB dalla VM Proxmox ( rm /var/lib/vz/images/101/vm-101-disk1.qcow2 ) ed eliminare il disco virtuale VHDX copiato dall’host Hyper-V di origine ( rm/home/user1/Downloads/Win10-test.vhdx ).
Garantire la protezione delle VM dopo la migrazione con NAKIVO
Dopo aver terminato la migrazione da Hyper-V a Proxmox, non dimenticare di proteggere le tue macchine virtuali nell’ambiente Proxmox utilizzando una soluzione di backup dedicata. Se le tue VM Hyper-V di origine erano protette prima della migrazione, le VM convertite non saranno protette automaticamente in Proxmox VE. NAKIVO Backup & Replication supporta la protezione delle VM in ambienti virtuali Hyper-V, Proxmox, VMware vSphere e Nutanix. La soluzione NAKIVO supporta il backup senza agente per le VM Proxmox. La configurazione è semplice: basta aggiungere gli host o i cluster Proxmox all’inventario e creare i lavori di backup. È possibile ripristinare intere VM o eseguire un ripristino granulare per ripristinare rapidamente singoli file o oggetti. Il ripristino dei dati è possibile nella posizione di origine o in posizioni personalizzate. È anche possibile eseguire un’esportazione di backup per le VM e ripristinarle in un’altra piattaforma di virtualizzazione. NAKIVO Backup & Replication supporta:
- Backup incrementali . Ridurre il consumo di spazio di archiviazione copiando solo i dati modificati dall’ultimo backup. La configurazione di backup incrementali con backup completi periodici aumenta l’affidabilità di una catena di backup.
- Backup coerenti con le applicazioni . Assicuratevi che i dati di backup siano coerenti in caso di crash e coerenti con le applicazioni. Eseguite il backup delle VM anche se ci sono applicazioni in esecuzione e ripristinate correttamente i dati quando necessario.
- Crittografia dei backup . Crittografare i backup in transito e inattivi per garantire . Configurare la crittografia lato sorgente, di rete e del repository di backup in base alle proprie esigenze.
- Immutabilità dei backup . Proteggi i backup dal ransomware utilizzando l’immutabilità. Questi dati non possono essere modificati, alterati o eliminati dal ransomware.
- Ubicazioni multiple di backup . Implementa una politica di backup flessibile e segui la regola di backup 3-2-1 . La soluzione NAKIVO supporta l’archiviazione dei backup su dischi locali, dispositivi NAS, condivisioni SMB e NFS, nastri e nel cloud, inclusi Azure BLOB, AWS S3 e altri archivi oggetti compatibili con S3.
Conclusione
Per migrare una VM Hyper-V su Proxmox, è necessario preparare la VM di origine installando i driver VirtIO, creare una nuova VM Proxmox, convertire il disco virtuale esportato e importare il disco convertito nella VM Proxmox. I dischi virtuali SCSI offrono prestazioni più elevate, ma richiedono una configurazione aggiuntiva per funzionare correttamente. È inoltre necessario avviare il sistema dal disco virtuale collegato al controller del disco virtuale IDE o SATA, aggiungere un disco SCSI temporaneo per installare i driver e quindi collegare il disco di avvio al controller SCSI. Non dimenticare di proteggere i tuoi dati utilizzando una soluzione di backup avanzata come NAKIVO Backup & Replication.