Dischi virtuali a dimensione fissa: perché è lenta la creazione?
La domanda che uso come titolo mi è stata fatta da alcune persone che seguono questo blog e che hanno confrontato i tempi di creazione di un VHD a dimensione fissa con Hyper-V con la creazione di un analogo disco VMKD con VMWare ESX.
I tempi riportati per la creazione di un HD virtuale di dimensione fissa di 50GB sono circa 30 secondi con VMWare e poco meno di 5 minuti con Hyper-V a parità di altre condizioni, ma escluso il file system che è ovviamente diverso: NTFS per Hyper-V e VMFS per ESX.
A cosa è dovuta questa differenza? Alla differenza di file system?
No la differenza è dovuta al fatto che durante la creazione del disco virtuale Hyper-V esegue un’operazione che ESX NON esegue: riempie di zeri (azzera) il disco virtuale. Per altro Windows Server 2008 R2 riduce in modo significativo i tempi di creazione di VHD.
Perché questo?
Essenzialmente per motivi di sicurezza: nel caso il VHD venga creato su uno storage non “vergine” si vuole evitare che contenuti precedentemente presenti sullo storage possano essere “inseriti” e leggibile nel VHD e quindi nella VM che per definizione è untrusted (ricordo che la cancellazione di un file su un HD elimina il puntatore al punto di inizio del file, ma non cancella il contenuto dei cluster usati dal file stesso).
C’è modo di ovviare a questa procedura e scegliere quando azzerare il VHD in creazione e quando non farlo?
Con i normali strumenti di amministrazione di Hyper-V e di gestione dei VHD non è possibile ovviare a questa procedura, ma è disponibile su MSDN Code Gallery un tool a linea di comando che consente di creare di VHD anche di grandi dimensioni in pochi secondi evitando l’operazione di azzeramento.
Il tool si chiama VHDTool è liberamente scaricabile, è fornito as is (anche con il codice sorgente) ed è stato svluppato da Chris Eck.
Buona giornata a tutti
Giorgio
Technorati Tags: Microsoft,Virtualization,Hyper-V