GuilleSQL :: Microsoft SQL Server, SSIS, y más !!

Hyper-V: Discos Virtuales (VHDs), sus tipos, Controladoras Virtuales y Operaciones sobre los Discos


Los Discos Virtuales (Virtual Disks o Virtual Hard Disks) son una de las piezas claves de toda Máquina Virtual, tanto en Hyper-V, como en otros sistemas de virtualización (VMWare, Xen, etc.). A través de este Artículo se describen los diferentes tipos de Discos Virtuales (dinámicos, de tamaño fijo, Pass-through, y diferenciales), así como se describen las Controladoras Virtuales, y las operaciones que pueden realizarse sobre los Discos Virtuales (Compact, Convert, Expand, Merge, Reconnect). Se incluye un ejemplo práctico paso a paso de cómo crear un Disco Virtual de tamaño fijo, y otro de cómo extender un Disco Virtual existente (aumentar tamaño) con Hyper-V.

Al igual que ocurre con las Redes Virtuales de Hyper-V, los Discos Virtuales son uno de los elementos clave al trabajar con Máquinas Virtuales en Hyper-V. En consecuencia, junto a la configuración de Máquinas Virtuales Hyper-V y a la configuración de Redes Virtuales, la creación y mantenimiento de Discos Virtuales en Hyper-V, deberemos poder realizarla con soltura, y dotarnos de una base de conocimiento sólida, para agilizar nuestro trabajo y evitarnos sustos con el paso del tiempo.

Introducción a los Discos Virtuales (Virtual Disks)

Los Discos Virtuales (Virtual Disks) son ficheros con extensión VHD (Virtual Hard Disk) que ofrecen almacenamiento a las Máquinas Virtuales. Por un lado, se crea el Disco Virtual, es decir, el correspondiente fichero VHD, y por otro lado se le asigna el Disco Virtual a una Máquina Virtual, para que ésta lo reconozca como un disco local suyo, como si fuera un disco físico (virtualmente hablando, claro ;-).

Podríamos decir, que una Máquina Virtual puede montar discos de dos tipos:

  • Discos Locales, es decir, los Discos Virtuales (ya sean ficheros VHD o discos Pass-Through). Estos se explican en el presente Artículo.
  • Discos de Almacenamiento externos iSCSI (LUNs). El almacenamiento iSCSI, tiene la ventaja de que utiliza el entorno de red TCP/IP convencional (ej: Ethernet de Gigabit), de tal modo, que es posible presentar (asignar) una LUN iSCSI a una Máquina Virtual en vivo y en directo. Bueno, presentar y des-presentar también, claro.

Inicialmente, podemos distinguir dos tipos de Discos Virtuales (VHDs):

  • Discos Virtuales dinámicos (Dynamically Expanding Disks). Inicialmente tienen un tamaño muy pequeño (aun creando un disco dinámico de medio tera, el VHD correspondiente nos ocupará na-y-menos, y por supuesto, su creación será inmediata). Sin embargo, según se utilice el Disco Virtual desde una Máquina Virtual, al ir llenándolo de contenido su tamaño real se irá incrementando. El principal problema de su utilización es la Fragmentación, que puede impactar en rendimiento seriamente.
  • Discos Virtuales de tamaño fijo (Fixed-Size Disks). Al crear un disco de este tipo, se requiere disponer de espacio suficiente. Es decir, si creamos un Disco Virtual de tamaño fijo de 200GB, será necesario disponer de 200GB. Además, como en la creación del disco se creará un fichero VHD de 200GB, el proceso de creación tardará un ratito, en función del tamaño del susodicho. Ofrecen un rendimiento superior al de los discos dinámicos y evitan el problema de la Fragmentación. En cualquier caso, aun trabajando con Discos Virtuales de tamaño fijo, podemos llegar a sufrir problemas con la Fragmentación de los VHDs.

Sin embargo, existe un tercer tipo de Disco Virtual, el tipo Pass-through, un tanto especial, ya que no se basa en ficheros VHD. En el caso de los Discos Virtuales de tipo Pass-through, en vez de almacenarse la información en un fichero VHD, la información se almacena en un disco físico, partición o LUN existente en el Host (Parent Partition). Ofrece un buen rendimiento (se evita el acceso intermedio a ficheros VHD previo a la persistencia en un almacenamiento físico), aunque se pierde la posibilidad de realizar Snapshots, y en cierto modo se pierde la portabilidad (bueno, si bien es cierto que los ficheros VHD se pueden mover y copiar por doquier, la utilización de discos exteros USB o LUNs procedentes de un Almacenamiento SAN compartido, permiten que la merma de portabilidad, sea cuanto menos relativa). La creación de un Disco Virtual de tipo Pass-through no está disponible desde el asistente de creación de una nueva Máquina Virtual, por lo que deberemos realizarlo después, editando la configuración de la correspondiente Máquina Virtual.

Podríamos decir, que no existen más tipos de Discos Virtuales. Sin embargo, hurgando podemos sacar un cuarto tipo de Disco Virtual: los Discos Diferenciales. Los Discos Diferenciales se basan en un Disco Virtual que hace las veces de Padre, resultando una opción de utilidad para la construcción de escenarios de prueba. De este modo, si tenemos que construir un entorno de laboratorio formado por diez Máquinas Virtuales Windows Server 2008, podemos preparar una única Máquina Virtual con el fichero VHD correspondiente, que hará las veces de maqueta o línea base (baseline). Seguidamente, crearíamos diez Discos Diferenciales (discos hijo) sobre el anterior disco VHD (disco padre), que sería compartido por todos. Cada uno de estos diez Discos Diferenciales será utilizado por cada una de las diez Máquinas Virtuales, y almacenarán sólo y exclusivamente las diferencias frente al disco utilizado como base (el disco padre, que se mantendrá impoluto). Utilizando Discos Dinámicos y Discos Diferenciales, es posible construir entornos de prueba con unas muy bajas necesidades de almacenamiento (la pela es la pela).

En cierto modo, un Disco Diferencial se comporta como un fichero de transacciones, que posteriormente podremos descartar o aplicar sobre el Disco Virtual VHD original, en función de nuestras necesidades. Aplicar dichas transacciones sobre el Disco Virtual VHD original, se denomina mezclar (Merge).

Así, los cambios realizados sobre un disco de diferenciación (Disco Diferencial), pueden mezclarse (fusionarse) sobre el disco Padre, o bien, también podría crearse un nuevo Disco Virtual resultado de la fusión de los discos Padre e Hijo. Los Discos Diferenciales tienen naturaleza de Discos Dinámicos, por lo que puede resultar de utilidad Compactarlos eventualmente con el objetivo de liberar el espacio no utilizado.

Los Discos de Diferenciación son la base del funcionamiento de los Snapshots en Hyper-V.

Las Controladoras Virtuales de Hyper-V (IDE y SCSI)

En una Máquina Virtual de Hyper-V, es posible configurar Controladoras Virtuales de tipo IDE y SCSI, como se describe a continuación:

  • Controladoras Virtuales IDE. Es posible utilizar hasta 2 Controladoras Virtuales IDE en cada Máquina Virtual, teniendo en cuenta, que en cada una se podrán conectar un máximo de dos dispositivos. Es importante, tener en cuenta que el disco de inicio o sistema, siembre debe montarse sobre una Controladora Virtual IDE (ojito, que con Virtual Server 2005, no existía este requisito). Otro detalle importante, es que permite acceso tanto Emulado (es decir, sin haber instalado los Integration Components es la Máquina Virtual) como Sintético (con los Integration Components instalados).
  • Controladoras Virtuales SCSI. Es posible utilizar hasta 4 Controladoras Virtuales SCSI, cada una de las cuales puede tener conectados hasta 64 dispositivos. De este modo, pueden utilizarse hasta 256 dispositivos SCSI (virtualmente hablando, claro). Sólo permite acceso Sintético, es decir, deben estar instalados los Integration Components en la Máquina Virtual (Child Partition). Un detalle importante, es que con Windows Server 2008 R2 es posible añadir y quitar Discos Virtuales en caliente sobre las Controladoras Virtuales SCSI. De este modo, si necesitamos añadir un Disco a una Máquina Virtual, y dicha Máquina Virtual está dotada de alguna Controladora SCSI con algún puerto libre, podremos crear y añadir el correspondiente disco sin pérdida del servicio. Ojo, desde la R2 y sólo con Controladoras SCSI.

Es interesante comentar, que con versiones anteriores (es decir, Virtual Server 2005), se podía conectar un mismo Disco Virtual sobre Controladoras Virtuales de tipo SCSI en dos Máquinas Virtuales diferentes, con el objetivo de reconocerlo como un Disco Compartido SCSI, y así poder formar un Cluster MSCS. Actualmente, con Hyper-V no es posible, aunque como alternativa podemos utilizar LUNs iSCSI, por ejemplo mediante Windows Storage Server 2008 y Microsoft iSCSI Target.

Operaciones a realizar sobre Discos Virtuales de Hyper-V

Es posible editar un Disco Virtual, con el objetivo de realizar alguna de las siguientes cinco operaciones:

  • Compact. Permite compactar Discos Dinámicos o Discos Diferenciales, reduciendo el tamaño del fichero VHD, en la medida en que puedan liberar del mismo espacio no utilizado.
  • Convert. Permite convertir un Disco Dinámico en un Disco de Tamaño Fijo o viceversa.
  • Expand. Permite aumentar la capacidad de un Disco Dinámico o de un Disco de Tamaño Fijo. No es posible expandir un Disco Virtual asociado a una Máquina Virtual en ejecución (Running) o en estado guardado (Saved). Además, no debe expandirse un Disco Virtual asociado a una Máquina Virtual que tenga Snapshots.
  • Merge. Permite fusionar un Disco Diferencial con su disco Padre.
  • Reconnect. En el caso de utilizar Discos Diferenciales y no encontrar al Disco Padre, puede utilizarse la opción Reconnect para seleccionar la ubicación del Disco Padre.

Ejemplo Práctico: Crear un nuevo Disco Virtual de tamaño fijo

A continuación incluimos un ejemplo de creación de un nuevo Disco Virtual de tamaño fijo, detallando el proceso a seguir paso a paso, con las correspondientes pantallas capturadas.

Lo primero de todo, es abrir la herramienta administrativa Hyper-V Manager, y desde el menú contextual del Host deseado, seleccionar la opción New Hard Disk, como se muestra en la siguiente pantalla capturada.

En la pantalla de bienvenida del asistente de creación de un nuevo Disco Virtual, click Next para continuar.

Seleccionaremos el tipo de Disco Virtual que deseamos crear. Desde este asistente podemos crear discos dinámicos, de tamaño fijo y diferenciales, pero no discos Pass-through. Seleccionaremos la opción Fixed size, y click Next para continuar.

Seguidamente, deberemos especificar los datos del fichero VHD que se desea crear, esto es, el nombre y su ubicación (la ruta en el sistema de ficheros). Click Next para continuar.

Especificaremos el tamaño deseado para el nuevo Disco Virtual. Debe tenerse en cuenta, que al tratarse de un disco de tamaño fijo, se creará un fichero VHD con el tamaño que aquí especifiquemos. Lo indicamos, y click Next para continuar.

Pantalla de resumen de la información proporcionada en el asistente. Si estamos de acuerdo, click Finish para continuar.

Barrita de progreso al canto. Crear un fichero de varios gigabytes en disco, tiene un coste, que al final se representa en tiempo.

Al finalizar la anterior barra de progreso, el Disco Virtual estará creado satisfactoriamente, y podrá ser utilizado en la correspondiente Máquina Virtual.

Ejemplo Práctico: Aumentar el tamaño de un Disco Virtual existente

Este caso de ejemplo, trata una operación de mantenimiento bastante habitual: aumentar el tamaño de un Disco Virtual existente. Muchas Máquinas Virtuales, que en su momento fueron dimensionadas correctamente, con el paso del tiempo requieren satisfacer mayores necesidades de procesamiento y/o almacenamiento. En consecuencia, resulta habitual tener que ampliar el espacio en disco de una Máquina Virtual. Los pasos a seguir son los siguientes.

En cualquier caso, es importante recordar que anteriormente no se podía aumentar el tamaño de un Disco Virtual (VHD) de Virtual Server 2005 tan fácilmente, teniendo que recurrir a patrañas diversas, para cumplir nuestro objetivo. Pero como pasa el tiempo, si ahora ya podemos montar un disco VHD con DiskPart... En fin, continuamos.

Abrir la herramienta administrativa Hyper-V Manager, y en el menú contextual del Host deseado, seleccionar la opción Edit Disk, como se muestra en la siguiente pantalla capturada.

En la pantalla de bienvenida del asistente, click Next para continuar.

Seleccionar el Disco Virtual que deseamos manipular, especificando la ruta y nombre de fichero, como se muestra en la siguiente pantalla capturada. Click Next para continuar.

A continuación se presenta el menú con las posibles acciones a realizar sobre el Disco Virtual. Téngase en cuenta, que las opciones disponibles dependen del Disco Virtual que se intente editar. En nuestro caso, seleccionaremos Expand, y click Next para continuar.

Seleccionaremos el nuevo tamaño deseado para el Disco Virtual, y click Next para continuar.

Típica pantalla de resumen del asistente. La revisamos, y si todo está OK, click Finish.

Como en este ejemplo estamos aumentando el tamaño de un disco de tamaño fijo, la operación tardará un poco, mientras observamos nuestra ansiada barra de progreso de turno.

Finalizada la barra de progreso, el cambio se habrá realizado... o no !!! vaya, se me olvida un pequeño detalle, jeje ;-)

Si bien es cierto que llegados a este punto, el Disco Virtual editado tendrá el nuevo tamaño deseado, existe un pequeño detalle: el Disco Virtual editado tendrá las particiones con su tamaño original, de tal modo que la ampliación de tamaño vendrá en forma de espacio sin asignar a ninguna partición del disco. Llegados a este punto, tenemos dos opciones:

  • Crear una nueva partición en el nuevo espacio libre disponible. Habitualmente, NO será la opción preferida, pero es posible que en algún caso pueda resultar de interés.
  • Extender alguna de las particiones existentes en el disco, para aumentar su tamaño. Esto suele ser lo habitual. Para ello, suele utilizarse la utilidad diskpart.exe, (list volume -> select volume n -> extend). La situación se complica cuando la partición que se desea extender es la partición del Sistema. En este caso, mi tendencia es utilizar alguna utilidad comercial como Acronis Partition Expert (creo que el Partition Magic también lo he utilizado alguna vez), y listo.



Miembros de
Miembros de GITCA (Global IT Community Association)

Menu de Usuario
  Iniciar Sesión
  Registrarse
  Restablecer Contraseña
  Ventajas de Registrarse

Acerca de
  Contigo desde Oct 2007
  771 usuarios registrados
  86146 pageloads/mes
  Ranking Alexa 498160

Social Networks
Sigue a Portal GuilleSQL en Linkedin !!
Sigue a Portal GuilleSQL en Twitter !!



Archivo

Marzo de 2019 (1)
Octubre de 2018 (1)
Julio de 2018 (1)
Junio de 2018 (4)
Mayo de 2018 (5)
Abril de 2018 (3)
Marzo de 2018 (2)
Febrero de 2018 (7)
Enero de 2018 (1)
Diciembre de 2017 (15)
Noviembre de 2017 (7)
Junio de 2017 (3)
Mayo de 2017 (1)
Marzo de 2017 (3)
Enero de 2017 (4)
Junio de 2016 (1)
Mayo de 2016 (2)
Abril de 2016 (2)
Septiembre de 2015 (2)
Agosto de 2015 (2)
Junio de 2015 (10)
Mayo de 2015 (4)
Abril de 2015 (8)
Marzo de 2015 (11)
Octubre de 2014 (3)
Septiembre de 2014 (7)
Agosto de 2014 (5)
Julio de 2014 (2)
Mayo de 2014 (4)
Abril de 2014 (4)
Marzo de 2014 (4)
Febrero de 2014 (1)
Enero de 2014 (5)
Diciembre de 2013 (8)
Noviembre de 2013 (2)
Octubre de 2013 (7)
Septiembre de 2013 (6)
Agosto de 2013 (1)
Julio de 2013 (6)
Junio de 2013 (11)
Mayo de 2013 (7)
Abril de 2013 (6)
Febrero de 2013 (5)
Enero de 2013 (7)
Diciembre de 2012 (12)
Noviembre de 2012 (13)
Octubre de 2012 (5)
Septiembre de 2012 (3)
Agosto de 2012 (6)
Julio de 2012 (4)
Junio de 2012 (1)
Mayo de 2012 (2)
Abril de 2012 (7)
Marzo de 2012 (16)
Febrero de 2012 (9)
Enero de 2012 (5)
Diciembre de 2011 (10)
Noviembre de 2011 (10)
Octubre de 2011 (4)
Septiembre de 2011 (5)
Agosto de 2011 (2)
Julio de 2011 (2)
Junio de 2011 (4)
Mayo de 2011 (2)
Abril de 2011 (6)
Marzo de 2011 (4)
Febrero de 2011 (10)
Enero de 2011 (5)
Diciembre de 2010 (6)
Noviembre de 2010 (4)
Octubre de 2010 (8)
Septiembre de 2010 (4)
Agosto de 2010 (1)
Julio de 2010 (3)
Mayo de 2010 (5)
Abril de 2010 (6)
Marzo de 2010 (8)
Febrero de 2010 (3)
Enero de 2010 (1)
Diciembre de 2009 (9)
Noviembre de 2009 (14)
Octubre de 2009 (2)
Septiembre de 2009 (8)
Agosto de 2009 (2)
Julio de 2009 (10)
Junio de 2009 (9)
Mayo de 2009 (10)
Abril de 2009 (9)
Marzo de 2009 (3)
Febrero de 2009 (2)
Enero de 2009 (3)
Noviembre de 2008 (2)
Octubre de 2008 (2)
Septiembre de 2008 (2)
Agosto de 2008 (5)
Julio de 2008 (5)
Junio de 2008 (1)
Mayo de 2008 (3)
Abril de 2008 (2)
Marzo de 2008 (2)
Febrero de 2008 (2)
Enero de 2008 (5)
Noviembre de 2007 (2)
Octubre de 2007 (2)






Copyright © 2007 GuilleSQL, todos los derechos reservados.