Windows 7: Boot nativo da VHD vantaggi, limitazioni e scenari d’utilizzo

Con Windows 7 (nelle versioni Ultimate ed Enterprise) e Windows 2008 Server R2 si può utilizzare una nuova feature il Boot nativo da VHD ovvero un disco rigido virtuale può essere utilizzato per avviare il sistema operativo senza necessità di un hypervisor, di una macchina virtuale o di un sistema operativo padre.

In Windows 7 e Windows 2008 Server R2 gli strumenti di gestione dei dischi (DiskPart e Diskmgmt.msc) sono in grado di creare un file VHD.

Inoltre è possibile distribuire un file di immagine (con estensione wim) di Windows 7 o Windows 2008 Server R2 nel disco rigido virtuale e copiare poi tale file con estensione vhd in altri sistemi sistemi configuranto il Boot Manager di Windows 7 o Windows 2008 Server R2  per l’avvio direttamente nel disco rigido virtuale.

Per una descrizione del procedimento si veda l’articolo Windows 7 – Supporto Nativo VHD di Mario Serra (mio ex collega in NetTeam).

Il file vhd potra inoltre essere connesso a una macchina virtuale per l’utilizzo tramite il ruolo Hyper-V in Windows Server 2008 R2.

Bisogna però fare una serie di precisazione sullo stato attuale di questa funzionalità:

  1. Il boot nativo da VHD può funzionare solo con VHD che contengono sistemi operativi Windows 7 o Windows 2008 R2 altre versioni di sistema operativo non sono supportate. La spiegazione la si trova nel seguente

When Windows boots from a VHD file, all the ‘disk I/O’ to load the kernel device drivers, start system services, and run applications is translated to I/O to the VHD file initially, and then to I/O to the NTFS volume and the physical disk. On shutdown, all outstanding write operations flush to the VHD file and underlying physical partition in the proper order before the storage stack shuts down the disk device.  Because of these enhancements to core parts of the system, native VHD boot only works for VHDs containing Windows 7 or Windows Server 2008 R2 and not earlier versions of Windows.”

  1. Sempre per la stessa ragione il boot nativo da VHD non supporta il BitLocker e l’ibernazione (la sospensione è invece supporta.
  2. Il boot nativo da VHD significa appunto che viene rilevato e supportato l’harware reale (al contrario di quello che accade in una macchina virtuale). Questo però significa perdere l’indipendenza dall’hardware, ma va detto che questa funzionalità non è da intendersi come un modo per fare implementare il VDI.

    “The VHD file with a generalized image can be copied to and used on multiple physical or virtual machines. A generalized image is required to avoid system startup issues because the hardware on the new system is different, and to avoid having multiple copies of Windows with the same machine identity (name and security identities), on the network. During the first boot of Windows from the VHD file on a different physical or virtual machine, Windows will specialize the image for the new machine, configure devices, and prepare for first use.”

  3. E’ possibile collegare fino a 512 VHD, ma non è possibile nidificare i VHD.
  4. Il Boot nativo da VHD non è supportato nelle condivisioni SMB (Server Message Block).
  5. Il file di paging viene creato esternamente al file VHD, a differenza del caso di una macchina virtuale in cui il file di paging è residente nel VHD.
  6. Sebbene il Boot nativo da VHD supporti 3 tipi di file (a dimensione fissa, a dimensiano dinamica e delle differenze) per i server di produzione di consiglia di utilizzare VHD a dimensione fissa per migliorare le prestazioni e la protezione dei dati utente. I VHD a dimensione dinamica andrebbero utilizzati solo in  ambienti non di produzione (xes ambienti di sviluppo e test). Quando si utilizzando VHD a dimensione  dinamica è buona norma archiviare applicazioni o i dati utente critici in partizioni esterne al file VHD al fine di ridurre le dimensioni del VHD e per semplificare il ripristino nel caso in cui un’immagine VHD non possa più essere utilizzata a causa di un arresto di sistema irreparabile (per esemopio un’interruzione dell’alimentazione).

Gli scenari d’utilizzo di questa funzionalità sono principalmente 3:

  1. Semplificare il deploy, la creazione e la gestione di immagini fisiche e virtuali usando tool comuni e un unico formato d’immagine. Si pensi come può essere agevolato il deploy di un gra numero di computer in azienda, ma più ancora da parte di rivenditore quindi sia a livello di client che di server e di ambienti virtuali. Ovviamente è possibile utilizzare i Servizi di distribuzione Windows (WDS) per distribuire via rete immagini VHD in computer per il Boot nativo.
  2. Possibilità di avere più istanze di Windows installate senza la necessità di dover creare partizioni separate. Si pensi al caso di computer condivisi fra più uente che usano applicazioni diverse.
  3. Possibilità di avere ambienti isolati di test utilizzando un’immagine comune di cui si può fare il deploy sia  in ambiente fisico che virtuale.

Per ulteriori approfondimenti si vedano:

[Update 01]

Ecco alcune altri punti da considerare (fonte Frequently Asked Questions- Virtual Hard Disks):

  • Non è supportato il boot da USB Flash drive (oltre al boot da share).
  • Non è possibile fare l’upgrade di un sistema operativo che ha eseguito il boot da VHD.
  • Per quanto riguarda il backup Windows non può creare un Backup set di un volume fisico che contiene un VHD se questo è monato (occorre smontarlo).
    “Windows does not support backing up a host volume (for example, C:) and the attached VHD (virtual volume D:) in the same backup set. If Example.vhd is attached and your backup includes the host volume C: and virtual volume D:, Windows will fail to create the shapshot because this is not supported. Instead, you should detach Example.vhd before backing up drive C:, and then Windows will successfully back up the host volume and any other data on the host volume (including the VHD). After backup of C: is complete, you can reattach the virtual volume D:. To restore the virtual volume D:, you need to restore the host volume C:, which includes the Example.vhd file in the backup”
  • Si può eseguire il backuo di un VHD motato ma lo snapshot deve risiedere sul volume stesso.
    “You can back up a virtual volume (that is, an attached VHD), as long as the snapshot does not include both the virtual and host volumes together. The VSS storage space contains the change information for a snapshot, and you can configure the snapshot to reside on a volume other than the source volume. However, the storage space for a virtual volume (a native boot VHD or an attached VHD) must reside on the same virtual volume. Furthermore, a virtual volume cannot be used as the target volume for the snapshot of another volume. The virtual volume can store only the shadow copies that are associated with its own snapshots.”