Tipos de almacenamiento para máquinas virtuales de Hyper-V

Los almacenamientos asignados a las máquinas virtuales se representan en estas como discos duros, los cuales pueden estar conectados a controladoras de dos tipos: IDE o SCSI.

Las máquinas virtuales de Hyper-V pueden soportar hasta 4 discos IDE y hasta 256 discos SCSI.

La asignación de un almacenamiento como de tipo IDE o de tipo SCSI no tiene ninguna relación con la naturaleza real del almacenamiento, es decir, se puede asignar un almacenamiento físico IDE como SCSI y viceversa.

Tampoco tiene ninguna consecuencia a nivel de rendimiento, es decir, el rendimiento de un disco físico SATA asignado a una máquina virtual, como IDE, es el mismo que si se lo asignamos como SCSI.

La elección de IDE o SCSI en cambio si tiene importancia a nivel de funcionalidad, ya que sólo se puede usar como volumen de arranque para el sistema operativo virtual un almacenamiento asignado como IDE en la máquina virtual.

Por otro lado si se quiere usar las nuevas capacidades de añadir y remover almacenamiento en caliente en una máquina virtual dicho almacenamiento debe haberse asignado como de tipo SCSI.

Las máquinas virtuales de Hyper-V trabajan con tres tipos principales de almacenamiento: almacenamiento pass-through, almacenamiento virtual y snapshots.

Almacenamiento pass-through

Se denomina pass-through al almacenamiento físico usado directamente desde una máquina virtual de Hyper-V, es decir, son volúmenes existentes físicamente a los cuales se conecta directamente la máquina virtual de la misma manera en que podría hacerlo cualquier otro equipo.

El almacenamiento de tipo pass-through puede usarse desde la máquina virtual tanto para almacenar datos como para alojar al propio sistema operativo virtualizado.

Entre las ventajas de usar almacenamiento pass-through para máquinas virtuales está la del mayor rendimiento, y la de mayor tamaño máximo de almacenamiento soportado. También existen escenarios muy específicos que pueden requerir el uso de almacenamiento pass-through (por ejemplo si se desea aprovechar funcionalidades especiales incluidas en los drivers del fabricante del almacenamiento).

Entre las desventajas del uso del almacenamiento pass-through está el hecho de que la máquina virtual pasa a ser dependiente de un elemento hardware individual, lo que limita por ejemplo las posibilidades de migración de la máquina virtual. Además el elemento usado como almacenamiento pass-through debe ser usado en modo exclusivo por una única máquina virtual, y se pierden funcionalidades como los snapshots, los discos duros diferenciales y las copias de seguridad basadas en VSS (Volumen Shadow Copy Service, o servicio de instantánea de volumen).

Los tipos de dispositivos físicos soportados por Hyper-V para su uso como almacenamientos pass-through son:

i) DAS (Direct Attach Storage): son unidades de almacenamiento conectadas directamente al servidor de Hyper-V; la conexión puede ser de los siguientes tipos: SATA, eSATA, PATA, SAS, SCSI, USB, Firewire.

ii) SAN (Storage Area Networks): son redes de almacenamiento; se soportan los siguientes protocolos de conexión a SAN: iSCSI, Fibre Channel, SAS. Los almacenamientos de tipo SAN se definen mediante un LUN (Logical Unit Number) mapeado al servidor. Un LUN es una referencia lógica a una división dentro de una red de almacenamiento.

Nota: con la excepción de SAN y sus protocolos de acceso específicos, Hyper-V no soporta el uso de almacenamiento en red; en concreto Hyper-V no soporta el uso de NAS (Network attached storage).

Para poder asignar un disco físico, o un LUN, como almacenamiento de tipo pass-through a una máquina virtual es necesario que dicho elemento sea reconocido por la partición primaria del servidor de Hyper-V, para lo cual debe de aparecer en su administrador de discos.

Además de ser reconocido, el volumen debe de estar marcado como offline antes de poder ser asignado a la máquina virtual, de esta manera Hyper-V garantiza que el volumen usado como almacenamiento pass-through va a ser accedido exclusivamente por la máquina virtual a la que se conecta.


Figura 1.- Opción desconectar disco en administrador de discos

Almacenamiento virtual

El almacenamiento virtual se refiere a los archivos en formato VHD, o Virtual hard disk, que esencialmente son archivos que encapsulan una imagen de un disco duro, es decir, son estructuras de información que las máquinas virtuales reconocen y gestionan como discos duros.

De hecho dentro de un archivo VHD se encontrará serializada la información de particionado del disco (MBR ó GPT), la información de arranque, la información de formateo y sistema de archivos, la información de directorio y de ficheros, y los propios ficheros.

El formato vhd es común a Windows Virtual PC, Microsoft Virtual PC 2007, Microsoft Virtual Server 2005 y Microsoft Hyper-V.

Nota: aunque los discos duros virtuales con formato vhd pueden ser accedidos desde cualquiera de estas soluciones de virtualización de Microsoft, y también pueden ser montados de forma nativa en sistemas operativos Windows 7 o Windows Server 2008 R2, esto no significa que un disco duro virtual, con un sistema operativo instalado, pueda ser usado para arrancar una máquina virtual desde una solución de virtualización distinta a aquella en la que fue creado. La compatibilidad es sólo de acceso a datos, no de uso de los sistemas operativos instalados en los discos duros virtuales. La compatibilidad entre sistemas operativos virtualizados con las distintas soluciones de Microsoft sólo es posible en algunos casos, y además en esos casos habitualmente no será una compatibilidad automática, sino que requerirá de un proceso de preparación previo.

Aunque el uso principal de los discos duros virtuales es servir como almacenamiento para máquinas virtuales, cada vez aparecen más entornos en los cuales esta forma de albergar información resulta útil y práctica, y así por ejemplo se está usando como formato para albergar copias de seguridad, o desde la aparición de Windows Server 2008 R2 y Windows 7, como soporte de almacenamiento para sistemas operativos no virtualizados en equipos físicos.

Puesto que son ficheros, los discos duros virtuales deben de estar almacenados a su vez en algún disco duro o almacenamiento físico real.

Limitaciones de los VHD:

- Las máquinas virtuales sólo pueden usar como almacenamiento VHDs almacenados en sistemas de archivos NTFS.

- Las máquinas virtuales sólo pueden usar como almacenamiento VHDs almacenados en carpetas que no tengan habilitadas las capacidades de encriptación EFS ni de compresión de archivos. Sí pueden ser usados en sistemas con BitLocker habilitado.

- El tamaño máximo de un VHD es de 2040 GB.

Los discos virtuales usados en Hyper-V pueden ser de tres tipos:

i) Fijos: son discos duros virtuales que desde el momento de su creación ocupan, en el almacenamiento físico que los aloja, la totalidad del tamaño con que se definen, aunque estén vacíos.

Este tipo de discos requiere más tiempo para crearse inicialmente, y están poco optimizados en los referente al consumo de espacio, sin embargo tienen la ventaja de un mayor rendimiento en lectura y escritura de contenidos, ya que todo el espacio físico que ocupan es un bloque contiguo, y por lo tanto las operaciones de lectura y escritura físicas son más rápidas que si se tuvieran que usar bloques separados.

Nota: es posible editar un disco duro virtual fijo cuando no está en uso para aumentar su tamaño, pero no para reducirlo.

ii) De expansión dinámica, o simplemente dinámicos: se trata de discos duros virtuales que físicamente van aumentando de tamaño a medida que van aumentando sus contenidos. Aunque estos discos se definen con un tamaño, y desde el sistema operativo virtual aparecen con ese tamaño, en el almacenamiento físico que los soporta sólo ocupan el espacio necesario para la información que albergan, más una cantidad extra de información en forma de metadatos.

El dato del tamaño con que se define inicialmente sólo establece el tamaño máximo que puede llegar a tener el fichero VHD en el almacenamiento físico.


Figura 2.- Discos duros virtuales dinámicos

Estos discos tienen la ventaja del uso eficiente del espacio, y la desventaja de un peor rendimiento frente a los discos duros fijos, ya que el no disponer de espacio libre reservado obliga a usar bloques separados para almacenar la nueva información, lo cual ralentiza las operaciones físicas de lectura y escritura.

Otra desventaja de este tipo de discos es que pueden quedarse repentinamente sin espacio si se llena el almacenamiento físico que los contiene. Por este motivo Microsoft recomienda no usar discos duros dinámicos en entornos de producción.

Nota: sin embargo en la versión 2008 R2 de Hyper-V se han hecho importantes avances en términos de rendimiento, y las diferencias entre discos fijos y discos dinámicos no son tan acusadas como en versiones anteriores.

iii) De diferenciación: un disco duro virtual de diferenciación, o diferencial, contiene todas las modificaciones hechas en el estado de otro disco duro virtual, denominado "padre".

De esta manera el estado actual de un VHD se representa por el conjunto del VHD padre y el VHD diferencial, que contiene todos los cambios que han producido en el estado del sistema con respecto al inicial, y que deberían haberse reflejado en el VHD padre, sino se hubiera creado el disco duro virtual diferencial.


Figura 3.- Discos duros virtuales diferenciales

Para que un disco duro virtual diferencial pueda ser usado en una máquina virtual, es necesario que el disco duro padre no haya sido alterado en modo alguno desde la creación del diferencial.

Es posible crear un disco duro virtual diferencial que arranque desde otro VHD diferencial, creando una segunda línea de evolución.

No es posible crear discos duros virtuales diferenciales a partir de almacenamientos pass-through.

El uso de discos duros virtuales diferenciales permite, por ejemplo, ahorrar gran cantidad de espacio y de tiempo cuando se deben crear múltiples VHD que comparten una gran cantidad de información y configuración.

Es el caso, por ejemplo, de múltiples VHD con el mismo sistema operativo y configuración base, y que sólo se van a diferenciar por algunas aplicaciones instaladas. En este caso puede resultar interesante crear un único disco duro virtual inicial con el sistema y la configuración base, y a continuación obtener a partir de él varios VHD diferenciales, en cada uno de los cuales instalaremos las aplicaciones necesarias. Los discos duros virtuales diferenciales ocuparán muy poco espacio, ya que sólo contendrán las diferencias con respecto al padre, y se crearán rápidamente.

Los discos duros diferenciales son siempre de tipo dinámico, aunque sus VHD padre pueden ser tanto fijos como dinámicos, y con tamaño máximo el del disco duro virtual padre.

No es posible cambiar el tamaño de los discos duros virtuales diferenciales, aunque si es posible reducir el espacio que ocupan y que ya no contiene información, mediante un proceso de compactación.

También es posible combinar un disco duro virtual diferencial con su disco duro padre, para obtener de nuevo un único disco virtual con el nuevo estado. Esta operación de recombinación se denomina "Merge". El VHD resultante puede sobrescribir el disco duro virtual padre, o puede ser un VHD completamente nuevo.

Otras posibilidades de conversión son:

- Convertir un VHD de tipo dinámico a uno de tipo fijo, o uno de tipo fijo a tipo dinámico.

- Compactar un VHD: reduce el tamaño que ocupa el VHD físicamente; para ello se elimina la información que ya no está presente en el disco duro virtual, pero que no ha sido físicamente borrada del fichero VHD. El tamaño con que se definió el VHD no se modifica. Esta operación sólo es aplicable a discos dinámicos o diferenciales.

- Expandir un VHD: cambia el tamaño de definición del VHD; en el caso de discos fijos redimensiona el fichero físico VHD, mientras que en del discos dinámicos simplemente se configura un nuevo tamaño máximo. No es aplicable a discos diferenciales.

Todas estas operaciones de conversión se pueden llevar a cabo desde el asistente para edición de discos duros virtuales de Hyper-V, aunque las opciones disponibles variarán según el tipo de disco que estemos editando.


Figura 4.- Opciones de conversión de discos duros virtuales

Snapshots

Los snapshots son ficheros que representan un estado concreto de una máquina virtual, incluyendo su información y su configuración. Se pueden interpretar como una foto de un sistema, que puede ser utilizada para volver a ese mismo estado en el futuro.

Hyper-V permite mantener hasta 50 snapshots activos de una misma máquina virtual, y además también permite encadenar snapshots.


Figura 5.- Opciones de gestión de snapshots en la consola de Hyper-V

La tecnología que subyace bajo los snapshots de Hyper-V es la de los discos duros virtuales diferenciales. Cuando se obtiene un snapshot de una máquina virtual automáticamente se crea un disco duro virtual de tipo diferencial con respecto al de la máquina de la que estamos obteniendo el snapshot.

Estos discos duros virtuales diferenciales se renombran con una extensión especial "avhd", lo que permite distinguirlos de los discos duros normales, además son almacenados y gestionados directamente por Hyper-V.

Los snapshots pueden ser muy útiles en entornos de pruebas o de desarrollo, pero presentan algunas limitaciones, sobre todo de cara a su uso en producción: así por ejemplo el uso de snapshots afecta al rendimiento de una máquina virtual; además hay ciertos entornos, como por ejemplo controladores de dominio, para los cuales Microsoft no garantiza el correcto funcionamiento del sistema de snapshot.

Nota: el concepto snapshot también se emplea para referirse a la tecnología específica de backups de máquinas virtuales basada en VSS; ambos tipos de snapshot son distintos, y de hecho Microsoft no recomienda el uso de los snapshots de Hyper-V como sistema de copia de seguridad, ya que hay algunas escenarios en los cuales pueden no ser eficaces.
Microsoft recomienda el uso de backups basados en snapshots de VSS.