Los VHD (discos virtuales o virtual hard drive) suelen transformarce en la parte "esoterica" de las maquinas virtuales, creo que es una de los conecptos menos complicados de las VM (virtual machines) pero que confunde mucho al comensar a trabajar con maquinas virtuales.
Estos dicos no son nada mas que un conjunto de archivos dentro de un directorio en equipo que esta actuando como Host, estos archivos son interpretados por el virtualizador (Virtual PC, VIrtual Server o en el nuevo Hyper-V) y tomados como disco rigidos validos para su entorno virtual.
Bien, existen varios tipos de disco ridigos virtuales posibles a configurar en el momento de la creacion de las VM,
- Fixed hard disk image
- Dynamic hard disk image
- Differencing hard disk image
Fixed hard disk image;
son aquellos discos que en momento de la cracion van a utilisar en el host, el mismo tamaño que el seteado en el momento de su cracion, por ejemplo si creamos un VHD tipo Fixed con un tamaño de 20 Gb, se creara un disco en el Host de este tamaño (20 Gb).
Un detalle a tomar en cuenta es el tamaño del "footer" el cual tendremos que sumarlo al del VHD. Otro punto a conciderar es que tipo de particion estamos utilizadon en el host, por ejemplo para un particion de tipo FAT32 no podremos tener archivos superiores a los 4 Gb.
Dynamic hard disk image;
con estos discos lo que estamos configurando en el momento de su creacion, es el tamaño maximo del mismo ya que este crecera a medida que sea utilizado.
Inicialmente, este archivo tendra el tamaño del "header" mas el "footer" solamente.
Un formato basico para este tipo de disco seria algo asi;
Copia del Footer (512 bytes)
Header (1024 bytes)
BAT (Block Allocation table)
Data Block 1
Data Block 2
Data Block n
Footer (512 bytes)
podemos notar en este esquema la importancia del Footer para el correcto funcionamiento del disco, es poreso que se mantien una copia del valor del mismo al principio, es mas antes del propio Header.
Cada vez que un bloque de informacion (Data Block) es agregado al VHD, el Footer es movido al final del mismo (si claro poreso es Footer no :) )