Approcci per il backup di Hyper-V

Hyper-V consente di eseguire il backup di macchine virtuali dal sistema operativo host, senza la necessità di eseguire software di backup personalizzati. Sono disponibili diversi approcci che gli sviluppatori possono utilizzare a seconda delle esigenze.

VSS writer di Hyper-V

Hyper-V implementa un VSS writer in tutte le versioni di Windows Server in cui è supportato Hyper-V. Questo VSS writer consente agli sviluppatori di utilizzare l'infrastruttura VSS esistente per eseguire il backup delle macchine virtuali. Tuttavia, è progettato per le operazioni di backup su scala ridotta in cui il backup viene eseguito simultaneamente in tutte le macchine virtuali di un server.

Per informazioni più dettagliate su questa architettura, vedere questa presentazione: https://channel9.msdn.com/Events/TechEd/NorthAmerica/2010/VIR322

Backup basato su WMI di Hyper-V

A partire da Windows Server 2016, è stato avviato il supporto del backup tramite l'API WMI di Hyper-V. Questo approccio utilizza comunque VSS all'interno della macchina virtuale a scopo di backup, ma non nel sistema operativo host. Al contrario, per consentire agli sviluppatori di accedere alle informazioni sul backup delle macchine virtuali in modo efficiente, si usa il rilevamento delle modifiche resilienti. Questo approccio è più scalabile rispetto all'uso di VSS nell'host, ma è disponibile solo in Windows Server 2016 e versioni successive.

Per informazioni più dettagliate su questa architettura, vedere questa presentazione: https://channel9.msdn.com/Events/TechEd/Europe/2014/CDP-B318

Un esempio su come usare queste API è anche disponibile qui: https://www.powershellgallery.com/packages/xHyper-VBackup

Metodi per la lettura di un backup basato su WMI

Quando si creano backup di macchine virtuali tramite WMI di Hyper-V, sono disponibili tre metodi per la lettura dei dati effettivi dal backup. Ognuno presenta specifici vantaggi e svantaggi.

Esportazione di WMI

Gli sviluppatori possono esportare i dati di backup tramite le interfacce WMI di Hyper-V (come illustrato nell'esempio precedente). Hyper-V compilerà le modifiche in un disco rigido virtuale e copierà il file nel percorso richiesto. Questo metodo è facile da usare, funziona per tutti gli scenari ed è utilizzabile in remoto. Tuttavia, il disco rigido virtuale generato spesso crea una grande quantità di dati da trasferire tramite la rete.

API Win32

Gli sviluppatori possono usare le API SetVirtualDiskInformation, GetVirtualDiskInformation e QueryChangesVirtualDisk nel set di API Win32 del disco rigido virtuale, come documentato qui. Si noti che per usare queste API, è comunque necessario usare WMI Hyper-V per creare punti di riferimento nelle macchine virtuali associate. Queste API Win32 consentono quindi un accesso efficiente ai dati della macchina virtuale di cui è stato eseguito il backup. Le API Win32 presentano però diverse limitazioni:

  • Sono accessibili solo in locale
  • Non supportano la lettura di dati da file di disco rigido virtuale condivisi
  • Restituiscono indirizzi dei dati relativi alla struttura interna del disco rigido virtuale

Remote Shared Virtual Disk Protocol

Infine, per gli sviluppatori che hanno l'esigenza di accedere in modo efficiente ai dati di backup da un file di disco rigido virtuale condiviso, è necessario usare Remote Shared Virtual Disk Protocol. Questo protocollo è documentato qui.