Come lavorare con i file VHD e VHDX di Hyper-V: nozioni di base essenziali
&
<>Il rilascio di Windows Server 2012 è stato accolto con grande entusiasmo grazie all’introduzione di diverse funzionalità di virtualizzazione, tra cui il nuovo formato di file VHDX. VHDX è essenzialmente il successore di VHD, ma con funzionalità più avanzate. Tuttavia, è ancora possibile creare e gestire file VHD nell’ambiente Hyper-V. Vediamo quali sono le differenze tra i file Hyper-V VHD e VHDX, quali vantaggi offrono e come possono essere utilizzati.
Informazioni sui file VHD e VHDX di Hyper-V
I dischi virtuali creati nell’ambiente Hyper-V possono essere archiviati come file in formato VHD o VHDX su un disco fisico. I dischi rigidi virtuali sono un’alternativa ai dischi rigidi fisici e funzionano come dischi rigidi di una VM. I dischi virtuali possono contenere un file system nativo, partizioni di disco, settori e cartelle. Possono eseguire operazioni standard su dischi e file. Ogni VM deve avere almeno un disco rigido virtuale che può essere utilizzato come storage per i dati della VM.
Le versioni precedenti di Windows supportavano un solo formato di file per i dischi virtuali: VHD. A seguito delle crescenti esigenze tecnologiche, Windows 2012 ha introdotto il formato di file VHDX, che ha notevolmente migliorato la capacità di storage, potenziato le prestazioni su dischi a settori di grandi dimensioni e garantito livelli più elevati di protezione dei dati.
Sia i file Hyper-V VHD che VHDX possono essere di diversi tipi:
- Fisso. Lo spazio per il disco virtuale viene assegnato al momento della creazione del file VHD. Il file del disco rigido virtuale ha le stesse dimensioni del disco rigido virtuale. La sua dimensione rimane costante, indipendentemente dai dati aggiunti o eliminati.
- Espansione dinamica. Lo spazio per il disco virtuale viene assegnato su richiesta. Il disco rigido virtuale ha una quantità specificata di spazio di storage fisico che può essere potenzialmente utilizzato, ma lo spazio viene allocato quando necessario. Pertanto, la dimensione del file VHD o VHDX aumenta quando vengono aggiunti nuovi dati.
- Differenziamento. Questo tipo di disco viene utilizzato per identificare, archiviare, gestire e ripristinare le modifiche apportate a un altro disco virtuale o al disco parent.
Differenze tra i file Hyper-V VHD e VHDX
Per comprendere meglio il funzionamento dei file Hyper-V VHD e VHDX, esaminiamo le differenze tra i due formati. Questo ci consentirà di capire in che modo ciascuno di essi può migliorare le prestazioni dei dischi virtuali. La tabella seguente mette a confronto i due formati:
| VHD | VHDX |
| Il formato di file di base supportato da Windows, Citrix e Oracle | Un formato di file avanzato supportato da Windows |
| Fino a 2 TB di capacità di storage | Fino a 64 TB di capacità di storage |
| I file VHD offrono una protezione inferiore contro il danneggiamento dei dati rispetto ai file VHDX | I file VHDX forniscono una protezione affidabile contro il danneggiamento dei dati grazie al monitoraggio dei metadati |
| Non è previsto il supporto per metadati personalizzati | I metadati personalizzati sono supportati e possono essere memorizzati |
| Supportato da Windows Server 2008, 2008 R2, 2012 e 2012 R2 | Supportato da Windows 2012 e versioni successive |
| Nessun ridimensionamento in tempo reale | Ridimensionamento in tempo reale disponibile |
| Dimensione logica del settore di 512 byte | Dimensione logica del settore di 4 KB |
| Problemi con l’allineamento dei dati | Migliore allineamento dei dati |
| Il trimming non è supportato | Il trimming è supportato |
Come potete vedere, il nuovo formato di file Hyper-V VHDX include diverse funzionalità che ne hanno migliorato significativamente l’utilità. Ad esempio, il trimming consente di identificare i blocchi di dati che non vengono più utilizzati e che possono essere eliminati, migliorando l’ottimizzazione dello storage e le prestazioni complessive. Un’altra funzionalità introdotta con il nuovo formato di file Hyper-V VHDX è Shared VHDX, che consente alle VM sullo stesso cluster guest di utilizzare un file VHDX come storage condiviso. Inoltre, i file Hyper VHDX consentono di ridimensionare (ridurre o espandere) i dischi virtuali su richiesta, mentre la VM è ancora in esecuzione, il che consente di risparmiare tempo e ridurre notevolmente i costi generali. Infine, grazie al miglioramento dell’allineamento dei dati, i file Hyper-V VHDX possono migliorare notevolmente le operazioni di I/O. Al contrario, i dischi fisici con settori di grandi dimensioni sono soggetti a un calo delle prestazioni.
Sebbene VHDX sia una versione più avanzata del formato VHD, in alcuni casi è ancora preferibile utilizzare VHD. Ad esempio, i file Hyper-V VHDX non sono compatibili con le versioni precedenti di Windows Server. Pertanto, se si utilizzano ambienti virtuali con sistemi operativi guest misti e si deve spostare le VM tra host diversi, il formato di file VHD sarebbe la scelta ottimale, poiché è supportato da più sistemi operativi.
Come lavorare con i file Hyper-V VHD e VHDX in PowerShell
Ora che sapete cosa sono i file VHD e VHDX Hyper-V e quali vantaggi possono offrire, siete pronti per creare e configurare i vostri dischi rigidi virtuali. A questo scopo, potete utilizzare Hyper-V Manager o PowerShell in modalità amministratore. In questo post del blog descriviamo come gestire le operazioni sui file VHD e VHDX Hyper-V in PowerShell. Questo è l’approccio migliore, poiché PowerShell offre altre opzioni per la configurazione dei file Hyper-V VHD e VHDX. È possibile creare, convertire, unire o rimuovere dischi in modo rapido e semplice eseguendo script PowerShell.
Creare file Hyper-V VHD e VHDX
Per creare un nuovo disco rigido virtuale in formato VHD o VHDX, aprire PowerShell come amministratore ed eseguire il cmdlet New-VHD . L’esempio seguente mostra come creare un disco rigido virtuale di tipo dinamico nel percorso specificato, con una dimensione di 10 GB, una dimensione di blocco di 128 MB e una dimensione di settore logico di 4 KB. Si noti che è l’estensione del file (.vhd o .vhdx) a determinare il formato del file; in questo caso, viene creato un file VHDX.
New-VHD -Path 'C:Virtual DisksDemoDisk.vhdx' -BlockSizeBytes 128MB -LogicalSectorSize 4KB -SizeBytes 10GB -Dynamic
Il disco rigido virtuale è ora creato e le seguenti informazioni sul disco virtuale vengono visualizzate nella finestra di PowerShell.

Aggiungere file VHD e VHDX Hyper-V
Con il Add-VMHardDiskDrive cmdlet, è possibile aggiungere un disco rigido virtuale a una VM specifica. Nell’esempio seguente, il disco rigido virtuale DemoDisk.vhdx nel percorso specificato viene collegato alla macchina virtuale denominata DemoVM. Al disco virtuale vengono inoltre assegnati il controller SCSI, il numero di controller 0 e la posizione del controller 1.
Add-VMHardDiskDrive -VMName DemoVM -ControllerType SCSI -ControllerNumber 0 -ControllerLocation 1 -Path 'C:Virtual DisksDemoDisk.vhdx'
Rimuovere i file VHD e VHDX di Hyper-V
Il Remove-VMHardDiskDrive comando viene utilizzato per eliminare un disco rigido virtuale da una VM. Per dimostrare come funziona questo cmdlet, ecco come eliminare il disco creato appena sopra:
Remove-VMHardDiskDrive -VMName DemoVM -ControllerType SCSI -ControllerNumber 0 -ControllerLocation 1
Utilizzando questi cmdlet, è possibile creare e eliminare facilmente dischi virtuali con i requisiti obbligatori e collegarli a VM specifiche.
Convertire file VHD e VHDX Hyper-V
Come accennato in precedenza, i file VHDX offrono una serie di vantaggi rispetto ai loro predecessori VHD. Pertanto, in molti casi, è consigliabile convertire tutti i file VHD in formato VHDX. Per upgradeare i file VHD Hyper-V a VHDX, è sufficiente eseguire il cmdlet Convert-VHD cmdlet, che consente di modificare il formato del file salvando il contenuto del disco rigido virtuale di origine. I dati del disco rigido virtuale di origine vengono copiati su un nuovo disco del formato obbligatorio. L’operazione deve essere eseguita offline; si consiglia di scollegare il disco rigido virtuale. L’esempio seguente mostra il cmdlet che consente la conversione dei file VHD Hyper-V in VHDX:
Convert-VHD -Path ‘C:New Virtual DisksFixed Disk.vhd’ -DestinationPath ‘C:New Virtual DisksFixed Disk.vhdx’
Si ricorda, tuttavia, che i file VHDX sono compatibili solo con Windows Server 2012 e versioni successive. Pertanto, potrebbe essere necessario convertire i file VHDX Hyper-V in VHD. In questo caso, è possibile utilizzare lo stesso cmdlet Convert-VHD , ma in ordine inverso. Ricordare che il disco rigido virtuale deve essere scollegato prima di eseguire l’operazione.
Convert-VHD -Path ‘C:Virtual DisksDemoDisk.vhdx’ ‘C:Virtual DisksDemoDisk.vhd’
Unire file VHD e VHDX Hyper-V
Come accennato in precedenza, i dischi di differenziazione vengono utilizzati per archiviare e ripristinare le modifiche apportate a un altro VHD o a un sistema operativo guest. Ogni disco di differenza tiene traccia e memorizza le modifiche apportate a un disco virtuale associato. In questo caso, il disco di differenza viene denominato “disco figlio” e il disco rigido virtuale viene denominato “disco padre”. Con il cmdlet Merge-VHD è possibile unire le modifiche archiviate in un disco differenziale nel disco padre o in un altro disco figlio nella catena di dischi differenziali. Si noti che questa operazione viene eseguita offline; assicurarsi che la catena di dischi sia scollegata.
Per unire il disco rigido virtuale figlio al disco rigido virtuale padre, eseguire il seguente cmdlet. Si noti che una volta completata l’operazione e trasferito il contenuto del disco figlio nel disco padre, il disco differenziale viene distrutto.
Merge-VHD -Path ‘C:Virtual StorageDifferencing.vhdx’
Nell’esempio seguente, abbiamo un disco padre, maindisk.vhdx, e un disco figlio, ChDisk1.vhdx, che a sua volta ha un figlio: ChDisk2.vhdx. Quest’ultimo disco virtuale ha a sua volta un proprio child, ChDisk3.vhdx. Insieme, questi dischi costituiscono la catena differenziale. È possibile utilizzare il seguente cmdlet per unire i dischi rigidi virtuali child nella catena di dischi.
Merge-VHD -Path ‘C:VM TestingChDisk3.vhdx’ -DestinationPath ‘C:VM TestingChDisk1.vhdx’
Attraverso questa operazione, i dati da ChDisk3.vhdx e ChDisk2.vhdx vengono uniti in ChDisk1.vhdx. Lo script PowerShell semplifica il processo di unione dei dischi rigidi virtuali; l’intera operazione può essere eseguita in un unico passaggio, indipendentemente dalle dimensioni della catena di differenziazione. Questo è un vantaggio di Powershell: con Hyper-V Manager non è possibile unire più livelli della catena di differenziazione del disco contemporaneamente. È necessario unire manualmente ogni livello della catena di dischi differenziali e questi passaggi aggiuntivi richiedono tempo e impegno.
Montare file VHD e VHDX Hyper-V
Il cmdlet Mount-VHD consente di montare uno o più dischi rigidi virtuali. L’esempio seguente mostra come montare un disco rigido virtuale con il percorso C:Virtual DisksDemoDisk.vhdx.
Mount-VHD -Path ‘C:Virtual DisksDemoDisk.vhdx’
Utilizzando gli script PowerShell, è possibile montare un disco rigido virtuale in modalità di sola lettura:
Mount-VHD -Path ‘C:Virtual DisksDemoDisk.vhdx’ -ReadOnly
Smontare i file VHD e VHDX di Hyper-V
Se si desidera smontare un disco rigido virtuale, eseguire il cmdlet Dismount-VHD in PowerShell. Nell’esempio seguente è possibile vedere come smontare il disco rigido virtuale con il percorso C:Virtual DisksDemoDisk.vhdx.
Dismount-VHD -Path ‘C:Virtual DisksDemoDisk.vhdx’
Un’altra opzione consiste nello smontare il disco rigido virtuale utilizzando il numero del disco montato, come segue:
Dismount-VHD -DiskNumber 8
Ridimensionare i file VHD e VHDX di Hyper-V
Se si desidera ridimensionare (ridurre o espandere) un disco rigido virtuale, è necessario utilizzare il cmdlet Resize-VHD cmdlet. L’esempio seguente mostra come ridimensionare un disco rigido virtuale assegnandogli una nuova dimensione specificata. In questo caso, abbiamo espanso il VHDX da 10 GB a 20 GB:
Resize-VHD -Path 'C:Virtual DisksDemoDisk.vhdx' -SizeBytes 20GB
Tuttavia, la riduzione è disponibile solo per i file VHDX. Si noti che il disco rigido virtuale non deve essere ridotto a una dimensione inferiore alla dimensione minima specificata. Per visualizzare la dimensione minima del disco rigido virtuale, eseguire il seguente cmdlet:
Get-VHD -Path 'C:Virtual Hard Disksdemovdisk.vhdx’
È possibile utilizzare il seguente comando per ridurre il file VHDX alla sua dimensione minima:
Resize-VHD -Path 'C:Virtual Hard Disksdemovdisk.vhdx’ -ToMinimumSize
Conclusione
Sia i file Hyper-V VHD che quelli VHDX svolgono un ruolo significativo negli ambienti virtuali, poiché funzionano come dischi rigidi di una macchina virtuale. Il formato di file VHD è stato utilizzato per molto tempo, ma per stare al passo con il costante progresso della tecnologia di virtualizzazione, Microsoft ha introdotto una versione più avanzata. Pertanto, il formato di file VHDX è stato rilasciato con Windows Server 2012 per migliorare le prestazioni dei dischi fisici a settori di grandi dimensioni, aumentare la capacità di storage e garantire la protezione dei dati.
Dopo aver confrontato tutte le funzioni offerte dai file Hyper-V VHD e VHDX, si può affermare con certezza che Hyper-V VHDX è un formato di file più efficiente e affidabile, creato per gestire le esigenze di prestazioni dei moderni ambienti virtuali.