Hyper-V 2012 R2, Discos Virtuales

Los disco virtuales de Hyper-V son ficheros con la extensión VHD y VHDX (Virtual Hard Disk) que son utilizados como medio de almacenamiento para las maquinas virtuales, como bien dice su nombre, es un disco duro virtual. Cada marca de virtualización nombra de distinta manera sus discos virtuales. Estos VHD son ficheros que se guardan en local en la ruta por defecto o donde le indiquemos. Algo a tener en cuenta a la hora de planificar la creación de los VHD es que se puede aumentar su tamaño después de su creación pero no reducir.

A partir de la aparición de Hyper-V 2012 se introdujo un nuevo formato VHDX que nos aporta las siguientes novedades:
-Capacidad máxima de 64 TB
Protección contra la corrupción de datos en casos de fallos de alimentación eléctrica.
Mejora la alineación del disco duro virtual para funcionar correctamente con tamaños de sector grandes.

Sobre una máquina virtual podemos montar 3 tipos de discos

-Discos virtuales, ficheros VHD y VHDX
-Discos locales o particiones del propio equipo, también llamado Pass-Throught
-Discos de Almacenamiento externo iSCSI (LUNs), son discos compartidos por red por una cabima iSCSI

Vamos a ver cómo crear los distintos tipos de VHD y veremos las características de cada uno

Discos Virtuales (VHD y VHDX)
Sobre la consola de Hyper-V pinchamos en nuevo y Disco Duro

Si pinchamos en Finalizar nos creara un VHDX de tamaño fijo en la ruta por defecto de 127 GB con el nombre “Nuevo disco virtual.vhdx”. Seleccionamos Siguiente

Seleccionamos el formato que deseemos, en este caso VHDX. Siguiente

Nos deja escoger entre tres tipos de discos virtuales, a continuación vamos a hablar individualmente de cada uno

Discos Virtuales de tamaño fijo (Fixed-Size Disks)
Como bien dice su nombre, crea un VHDX de un tamaño fijo asignado, con lo cual si creamos un VHDX de 200 GB necesitaremos esos 200 GB libres en el disco donde lo vayamos a generar, ya que ocupara directamente el tamaño asignado. Dependiendo del tamaño del VHD el tiempo de creación del fichero puede llevar más o menos tiempo. La principal característica de estos discos y por ello se deben de usar en entornos de producción, es que tienen un rendimiento superior a los discos dinámicos y evitan el problema de la fragmentación.
Si seleccionamos el tamaño fijo y en Finalizar nos creara un VHDX en blanco de 127 GB en la ruta por defecto que tengamos asignada para los VHDX.

Después de seleccionar el nombre y la ruta donde los guardaremos nos encontraremos con la siguiente ventana donde podremos:
-Asignar el tamaño
-Copiar el contenido de un disco físico
-Copiar el contenido de un disco duro virtual (novedad en esta versión)

Desde PowerShell:
New-VHD -Fixed C:\VHD\fijo.vhdx -SizeBytes 1GB

Discos Virtuales de Expansión dinámica (Dynamically Expanding Disks)
Genera un fichero de extensión VHDX de un tamaño de 4 MB pero que irá aumentando proporcionalmente según vayamos ocupándolo hasta el tamaño máximo asignado. Esto nos permite usar con más eficacia el espacio en los discos físicos ya que solo usaremos el espacio utilizado en cada VHDX y no el tamaño máximo asignado al VHDX, pero tiene un problema y es la fragmentación del disco, lo cual hará que la velocidad de acceso al VHD disminuya. Solo se debe de usar en entornos de prueba. Se recomienda compactar el fichero con cierta normalidad para liberar espacio no usado del fichero. Más adelante explicamos cómo hacer esto.
Si seleccionamos el Expansión dinámica y en Finalizar nos creara un VHD en blanco de 127 GB en la ruta por defecto que tengamos asignada para los VHD.

Después de seleccionar el nombre y la ruta donde los guardaremos nos encontraremos con la siguiente ventana donde podremos:
-Asignar el tamaño
-Copiar el contenido de un disco físico
-Copiar el contenido de un disco duro virtual (novedad en esta versión)

Desde PowerShell:
New-VHD -Dynamic C:\VHD\dinamico.vhdx -SizeBytes 1GB

Discos Virtuales de Diferenciación (Differencing Disks)
Tenemos un VHDX primario (con un sistema operativo instalado creado con anterioridad, no se puede modificar) y uno o más VHDX secundarios, en los que se va a realizar los cambios. Cada VHD secundario trabajara individualmente con la base del primario. La utilidad de esto es que vamos a poder tener 1 o más maquinas virtuales con una configuración inicial y que solo se van a guardar los cambios sobre el VHDX secundario. Tenemos un SO (el VHDX principal) y guarda por ejemplo los ficheros que descarguemos o aplicaciones que instalemos sobre los VHDX secundarios.
Después de realizar los cambios que queramos en el VHDX secundario podremos crear un nuevo VHDX con la combinación del primario y el secundario, o aplicar esos cambios sobre el VHDX principal, este procedimiento se llama Mezclar (Merge), lo explicaremos más adelante.
Es muy importante recordar que una vez generado el/los discos secundarios no se modifique el disco principal o padre. Si está asignado a una máquina virtual es recomendable quitárselo.
Si seleccionamos la Opción Diferenciación no nos permite pinchar directamente en finalizar.
Seleccionamos Diferenciación y Siguiente. Introducimos el nombre del disco duro secundario (si queremos más de uno deberemos crearlo individualmente)

Seleccionamos el disco duro Primario o Padre del que vamos a partir

Nos muestra el resumen, Finalizar

Abrimos la configuración de la maquina virtual de la que hemos usado el VHDX principal o creamos una maquina virtual nueva y seleccionamos el VHDX secundario que hemos creado. Podremos crear tantas maquinas virtuales nuevas como VHDX de diferenciación. En este ejemplo como solo hemos usado un disco de diferenciación, usaremos la propia máquina del principal.

Vamos al disco de la maquina y examinamos para seleccionar el secundario y Aceptamos

Ahora arrancaremos la maquina virtual y funcionara desde el VHDX secundario. Veremos que es igual que el primario (Windows 8.1) pero la diferencia es que guarda los cambios en el secundario.

Desde PowerShell:
New-VHD -Differencing C:\VHD\Diferenciacion2.vhdx -ParentPath ‘C:\Users\Public\Documents\Hyper-V\Virtual hard disks\Win8.1-1.vhdx’

Con esto ya hemos visto todas las opciones del menú Nuevo Disco duro… de la consola Hyper-V. Pero como ya hemos comentado existe otra opción de almacenamiento.

Usar un disco iSCSI o físico en una máquina virtual (Pass throught)
Esta opción nos permite usar un disco físico, partición o LUN existente en el Host. El disco o partición debe de estar en línea y sin formato. De esta manera evitamos usar ficheros VHDX con lo que aumenta el rendimiento, pero no nos permite usar Puntos de Control (CheckPoints) y de cierta manera se pierde portabilidad. Los ficheros VHDX permiten ser copiados y movidos con mucha facilidad. Para conectarlo deberemos de agregar un disco duro o cambiar uno y seleccionar disco duro físico.

Operaciones sobre Discos Virtuales VHD
Podemos realizar varias operaciones sobre los VHD si pinchamos con el botón derecho sobre el Host que deseemos

Editar disco
Dependiendo del tipo de VHD que seleccionemos y sus características nos ofrecerá unas opciones u otras:
-Compactarlo (Compact), permite compactar discos Dinámicos y Diferenciales, de esta manera liberaremos espacio no utilizado
-Convertirlo (Convert), permite convertir discos entre formato VHD y VHDX (hay que tener en cuenta las características de cada uno) y a su vez entre dinámicos y fijos.
-Expandirlo (Expand), permite aumentar la capacidad de un disco dinámico o fijo. Una de las nuevas novedades es que podemos expandir el disco en caliente, esta novedad nos permite variar el tamaño del disco sin que apaguemos la máquina con lo que a la hora de administrar las mismas nos permitirá realizar este tipo de acciones mucho más rápido y sencillo. Hay que tener en cuenta que no debe tener Puntos de Control (CheckPoints). Después de expandirlo deberemos de crear una nueva partición o expandir la actual sobre la maquina virtual, ya que el tamaño expandido nos aparecerá como no asignado.

-Combinar (Merge), podremos combinar entre un disco de diferenciación y su VHD principal. Existe varias opciones, Combinarlos sobre el VHD primario o generar un VHD nuevo dinámico o fijo. Los discos no deben de estar en uso.
-Reconectar (Reconnect), nos permite reasignar el VHD primario de un diferencial si no lo encuentra, esto solo ocurre si el VHD principal ha sido movido, renombrado o eliminado.

Inspeccionar discos
Nos muestra información del VHD que seleccionemos. En este ejemplo podemos ver que el Formato es VHDX, que es de Diferenciación, el tamaño actual de la diferenciación y cual es el Primario o Padre.

Montar un VHD en un host (Mounting a virtual hard disk on the host)
Windows Server nos permite montar en una unidad (como si se tratase de un USB), simplemente tendremos que hacer doble-click sobre el VHD/VHDX y se le asignara automáticamente una letra de unidad. Para desmontar/expulsar el VHD solo tendremos que pinchar con el botón derecho sobre la unidad y expulsar.

También podremos hacerlo por PowerShell:
Para montarlo:
Mount-VHD –Path C:\Hyper-V\VHDs\VM01.vhdx –ReadOnly

Y desmontarlo:
Mount-VHD –Path C:\Hyper-V\VHDs\VM01.vhdx -ReadOnly

8 pensamientos en “Hyper-V 2012 R2, Discos Virtuales

  1. Excelente artículo, me despejó muchas dudas que tenía a la hora de implementar una máquina virtual, en lo referente a qué tipo de disco usar. Gracias por tan buen trabajo.

  2. Buenos días,
    Una pregunta, cree un disco ISCSI dinamico de 30 GB, no me da la opción de expandir ya que necesito aumentarlo a 100GB para un CLuster SQL, han tenido que realizar esta actividad en algún momento?

    Gracias.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *