Hyper-V Replica
Recentemente ho sostituito dei server da diversi clienti e con Hyper-V la migrazione delle VM dal vecchio al nuovo server è un’operazione che può essere eseguita a caldo senza tempi di fermo.
La Replica può sfruttare due tipi di autenticazione:
- Kerberos
- HTTPS certificates
Nel nostro esempio useremo la seconda in quanto il primo tipo di autenticazione può essere usata solo nel caso che l’host Hyper-V sia unito al dominio.
La macchina sorgente (SRV-HYP01) ha Windows Server 2012 R2:
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image.png?resize=748%2C97&ssl=1)
Mentre la macchina di destinazione (SRV-HYP02) ha Windows Server 2019:
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-3.png?resize=618%2C97&ssl=1)
Il primo passaggio è quello di creare due certificati per i due host, possiamo eseguire questa operazione su uno dei due server, nel caso specifico mi posizione sulla macchina più recente e tramite Powershell eseguo questi comandi:
New-SelfSignedCertificate -DnsName "srv-hyp01" -CertStoreLocation "cert:\LocalMachine\My" -TestRoot New-SelfSignedCertificate -DnsName "srv-hyp02" -CertStoreLocation "cert:\LocalMachine\My" -TestRoot
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-5.png?resize=914%2C390&ssl=1)
Come risultato verranno generati tre certificati, uno per ogni server con la proprietà Enhanced Usage Key set to Client and Server authentication e una CA di test chiamata CertReq Test Root
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-6.png?resize=621%2C71&ssl=1)
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-7.png?resize=612%2C51&ssl=1)
Se apriamo uno dei due certificati notiamo però che non sono riconosciuti come validi:
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-8.png?resize=405%2C515&ssl=1)
Questo perchè il certificato della CA non si trova nella cartella Trusted Root Certification Authorities, se lo spostiamo in questo percorso e riapriamo il certificato notiamo che ora è considerato valido:
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-9.png?resize=405%2C515&ssl=1)
Ora che i certificati sono considerati validi dobbiamo esportare il certificato del server srv-hyp01 e della CA:
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-10.png?resize=604%2C300&ssl=1)
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-11.png?resize=535%2C523&ssl=1)
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-12.png?resize=535%2C523&ssl=1)
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-13.png?resize=535%2C523&ssl=1)
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-14.png?resize=535%2C523&ssl=1)
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-15.png?resize=535%2C523&ssl=1)
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-16.png?resize=535%2C523&ssl=1)
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-17.png?resize=179%2C133&ssl=1)
Ora il certificato della CA:
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-18.png?resize=535%2C523&ssl=1)
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-19.png?resize=535%2C523&ssl=1)
Copiamo i due certificati nel server srv-hyp01:
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-20.png?resize=606%2C101&ssl=1)
Spostiamoci sul server srv-hyp01 e installiamo il certificato della CA con il tasto destro sul certificato e scegliamo l’opzione Install Certificate:
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-21.png?resize=549%2C528&ssl=1)
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-22.png?resize=549%2C528&ssl=1)
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-23.png?resize=549%2C528&ssl=1)
Allo stesso modo importiamo il certificato dell’host:
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-24.png?resize=549%2C528&ssl=1)
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-25.png?resize=549%2C528&ssl=1)
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-26.png?resize=549%2C528&ssl=1)
Una volta terminato il processo di importazione possiamo verificare che il certificato host è al suo posto:
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-27.png?resize=925%2C84&ssl=1)
Così come il certificato della CA:
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-28.png?resize=1012%2C146&ssl=1)
A questo punto dobbiamo disabilitare la revoca dei certificati su entrambi gli host tramite il comando:
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\Replication" /v DisableCertRevocationCheck /d 1 /t REG_DWORD /f
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-29.png?resize=914%2C119&ssl=1)
Ora che abbiamo sistemato tutti i prerequisiti per la replica è ora di iniziare a configurare Hyper-V, iniziamo dal server di destinazione configurandolo per ricevere le repliche. Apriamo la console di gestione di Hyper-V e clicchiamo su Hyper-V Settings…, spostiamoci nel tab Replica Configuration e impostiamo i parametri come riportato nell’immagine:
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-30.png?resize=722%2C687&ssl=1)
Clicchiamo su Select Certificate… e selezioniamo il certificato che ci viene proposto relativo al server stesso:
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-31.png?resize=456%2C317&ssl=1)
Clicchiamo su Ok per terminare la configurazione, un warning ci avvertirà di configurare il firewall per accettare le connessioni sulla porta 443 nel caso fosse abilitato:
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-32.png?resize=352%2C215&ssl=1)
La configurazione del server di destinazione è terminata ora non ci resta che spostarci sul server sorgente e abilitare la replica per ogni singola VM.
Apriamo la console di gestione di Hyper-V, clicchiamo con il tasto destro del mouse su una VM e scegliamo Enable Replication…:
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-34.png?resize=565%2C602&ssl=1)
Clicchiamo Next nella finestra del Wizard:
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-35.png?resize=718%2C540&ssl=1)
Inseriamo il nome del server di destinazione che nel nostro caso è srv-hyp02:
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-36.png?resize=758%2C540&ssl=1)
E clicchiamo su Next. Se la connessione con l’host di destinazione è avvenuta correttamente dovremmo vedere la schermata seguente dove dobbiamo scegliere il certificato:
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-37.png?resize=718%2C540&ssl=1)
Nella schermata successiva possiamo scegliere quali dischi VHD replicare:
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-38.png?resize=718%2C540&ssl=1)
Scegliamo la frequenza di replica:
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-39.png?resize=718%2C540&ssl=1)
Nella prossima finestra possiamo scegliere s conservare solo l’ultimo punto di ripristino oppure aggiungere altri punti di ripristino orari, massimo 24 e se avvalerci o meno delle Shadow Copy per creare delle copie Application aware:
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-40.png?resize=718%2C540&ssl=1)
A questo punto dobbiamo scegliere come inviare la copia iniziale, nel caso di due host Hyper-V siano in Lan possiamo tranquillamente inviarla via rete, nel caso invece fossero in Lan differente e la VM fosse corposa possiamo anche usare un dispositivo esterno da spedire. Oltre questo possiamo anche impostare l’inizio della replica:
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-41.png?resize=717%2C539&ssl=1)
Se tutti i parametri sono corretti possiamo cliccare Finish nella schermata successiva per dar inizio alla replica:
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-42.png?resize=718%2C540&ssl=1)
Se tutto è andato a buon fine un messaggio ci informerà che la configurazione è terminata e la replica può iniziare:
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-43.png?resize=366%2C246&ssl=1)
Nella console del server di destinazione possiamo seguire lo stato di avanzamento della replica inziale:
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-44.png?resize=696%2C19&ssl=1)
Lo stesso nel server di destinazione:
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-45.png?resize=881%2C103&ssl=1)
Dopo qualche tempo possiamo visualizzare le statistiche:
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-46.png?resize=680%2C626&ssl=1)
Nel server di destinazione la VM sarà sempre spenta e aggiornata secondo la frequenza che abbiamo scelto nella configurazione della replica stessa:
![](https://i0.wp.com/sistarelli.com/wp-content/uploads/2021/11/image-47.png?resize=865%2C90&ssl=1)