Almacenamiento

En esta sección se describe cómo el hardware de almacenamiento físico se asigna a máquinas virtuales (VM) y los objetos de software utilizados por la API de administración para realizar tareas relacionadas con el almacenamiento. Las secciones detalladas sobre cada uno de los tipos de almacenamiento admitidos incluyen la siguiente información:

  • Procedimientos para crear almacenamiento de información para máquinas virtuales mediante la CLI, con opciones de configuración de dispositivos específicas de tipo
  • Generación de instantáneas con fines de backup
  • Mejores prácticas para administrar el almacenamiento de información
  • Configuración de QoS (calidad de servicio) de disco virtual

Repositorios de almacenamiento (SRs)

Un repositorio de almacenamiento (SR) es un destino de almacenamiento concreto, en el que se almacenan las imágenes de disco virtual (VDIS) de máquinas virtuales (VM). Un VDI es una abstracción de almacenamiento que representa una unidad de disco duro virtual (HDD).

Los SRs son flexibles, con soporte integrado para las siguientes unidades:

Conectado localmente:

  • IDE
  • SATA
  • SAS

Conexión remota:

  • iSCSI
  • NFS
  • SAS
  • Canal de fibra

Las abstracciones SR y VDI permiten que las funciones avanzadas de almacenamiento de información se expongan en los destinos de almacenamiento que los soportan. Por ejemplo, funciones avanzadas como aprovisionamiento ligero, instantáneas de VDI y clonación rápida. Para subsistemas de almacenamiento que no admiten operaciones avanzadas directamente, se proporciona una pila de software que implementa estas características. Esta pila de software se basa en la especificación de disco duro virtual (VHD) de Microsoft.

Los comandos SR proporcionan operaciones para crear, destruir, cambiar el tamaño, clonar, conectar y descubrir los VDI individuales que contienen.

Un repositorio de almacenamiento es una estructura de datos persistente en el disco. Para los tipos SR que utilizan un dispositivo de bloque subyacente, el proceso de creación de un SR implica borrar los datos existentes en el destino de almacenamiento especificado. Otros tipos de almacenamiento, como NFS, crean un contenedor en el arreglo de almacenamiento en paralelo a los SRs existentes.

Cada servidor HASH (0x2e68218) puede utilizar varios SRs y diferentes tipos de SR simultáneamente. Estos SRs se pueden compartir entre hosts o dedicados a hosts concretos. El almacenamiento compartido se agrupa entre varios hosts dentro de un fondo de recursos definido. Un SR compartido debe ser accesible a la red para cada host. Todos los servidores de un solo grupo de recursos deben tener al menos una SR compartida en común.

Las operaciones de CLI para administrar repositorios de almacenamiento de información se describen enComandos SR.

Imagen de disco virtual (VDI)

Una imagen de disco virtual (VDI) es una abstracción de almacenamiento que representa una unidad de disco duro virtual (HDD). Los VDI son la unidad fundamental de almacenamiento virtualizado en HASH (0x2c1a078). Los VDI son objetos persistentes en disco que existen independientemente de los servidores HASH (0x2e68218). Las operaciones de CLI para administrar VDIS se describen enComandos VDI. La representación en disco de los datos difiere según el tipo SR. Una interfaz de complemento de almacenamiento independiente para cada SR, denominada SM API, administra los datos.

Dispositivos de bloqueo físico (PBD)

Los dispositivos de bloque físico representan la interfaz entre un servidor físico y un SR conectado. Los PBD son objetos de conector que permiten asignar un SR determinado a un host. Los PBD almacenan los campos de configuración del dispositivo que se utilizan para conectarse a un destino de almacenamiento determinado e interactuar con él. Por ejemplo, la configuración del dispositivo NFS incluye la dirección IP del servidor NFS y la ruta de acceso asociada que monta el servidor HASH (0x2e68218). Los objetos PBD administran los datos adjuntos en tiempo de ejecución de un SR dado a un servidor HASH determinado (0x2e68218). Las operaciones de CLI relacionadas con PBD se describen enComandos PBD.

Dispositivos de bloque virtual (VBD)

Los dispositivos de bloque virtual son objetos de conector (similar al PBD descrito anteriormente) que permiten asignaciones entre VDI y VM. Además de proporcionar un mecanismo para conectar un VDI en una máquina virtual, los VBD permiten ajustar los parámetros con respecto a QoS (Calidad de Servicio) y estadísticas de un VDI determinado, y si ese VDI puede iniciarse. Las operaciones de CLI relacionadas con VBD se describen enComandos VBD.

Resumen de objetos de almacenamiento

La siguiente imagen es un resumen de cómo se relacionan los objetos de almacenamiento presentados hasta ahora:

Visión general gráfica de los repositorios de almacenamiento y objetos relacionados

Formatos de datos de disco virtual

En general, existen los siguientes tipos de asignación de almacenamiento físico a un VDI:

  1. VHD basado en volúmenes lógicos en un LUN: el almacenamiento predeterminado basado en bloques HASH (0x2c1a078) inserta un administrador de volúmenes lógicos en un disco. Este disco es un dispositivo conectado localmente (LVM) o un LUN conectado a SAN a través de Fibre Channel, iSCSI o SAS. Los VDI se representan como volúmenes dentro del administrador de volúmenes y se almacenan en formato VHD para permitir el aprovisionamiento ligero de nodos de referencia en instantáneas y clonaciones.

  2. QCOW2 basado en archivos en un LUN: las imágenes de VM se almacenan como archivos de formato QCOW2 con aprovisionamiento fino en un sistema de archivos de disco compartido GFS2 en un LUN conectado a través del iniciador de software iSCSI o del HBA de hardware.

  3. VHD basado en archivos en un sistema de archivos: las imágenes de VM se almacenan como archivos de formato VHD con aprovisionamiento fino en un sistema de archivos local no compartido (tipo EXT SR) o en un destino NFS compartido (tipo NFS SR).

Tipos de VDI

Para la mayoría de los tipos SR, se crean VDI en formato VHD. Puede optar por utilizar raw en el momento de crear el VDI. Esta opción sólo se puede especificar mediante el uso de la CLI xe. Para los SRs de GFS2, se crean VDI QCOW2.

Para comprobar si se creó un VDI contype=raw, compruebe susm-configmapa. Los comandossr-param-list yvdi-param-list xe se pueden utilizar respectivamente para este propósito.

Crear un disco virtual sin formato mediante la CLI xe

  1. Ejecute el siguiente comando para crear un VDI dado el UUID del SR en el que desea colocar el disco virtual:

    xe vdi-create sr-uuid=sr-uuid type=user virtual-size=virtual-size \
            name-label=VDI name sm-config:type=raw
    
  2. Adjunte el nuevo disco virtual a una máquina virtual. Utilice las herramientas de disco de la máquina virtual para particionar y formatear, o utilice el nuevo disco. Puede utilizar elvbd-create comando para crear un VBD para asignar el disco virtual a su máquina virtual.

Convertir entre formatos VDI

No es posible realizar una conversión directa entre los formatos raw y VHD. En su lugar, puede crear un VDI (ya sea sin formato, como se describió anteriormente, o VHD) y, a continuación, copiar datos en él desde un volumen existente. Utilice la CLI xe para asegurarse de que el nuevo VDI tiene un tamaño virtual al menos tan grande como el VDI desde el que está copiando. Puede hacerlo comprobando suvirtual-size campo, por ejemplo, utilizando elvdi-param-list comando. A continuación, puede adjuntar este nuevo VDI a una máquina virtual y utilizar su herramienta preferida dentro de la máquina virtual para realizar una copia directa en bloque de los datos. Por ejemplo, herramientas de administración de discos estándar en Windows o eldd comando en Linux. Si el nuevo volumen es un volumen VHD, utilice una herramienta que evite escribir sectores vacíos en el disco. Esta acción puede garantizar que el espacio se utilice de manera óptima en el repositorio de almacenamiento subyacente. Un enfoque de copia basado en archivos puede ser más adecuado.

VDIS basados en VHD y QCow2

Las imágenes VHD y QCOW2 se pueden encadenar, lo que permite que dos VDI compartan datos comunes. En los casos en que se clona una máquina virtual respaldada por VHD o respaldada por QCow2, las máquinas virtuales resultantes comparten los datos comunes en el disco en el momento de la clonación. Cada máquina virtual procede a realizar sus propios cambios en una versión aislada de copia en escritura del VDI. Esta función permite que dichas máquinas virtuales se clonen rápidamente a partir de plantillas, lo que facilita el aprovisionamiento y la implementación muy rápidos de nuevas máquinas virtuales.

A medida que las VM y sus VDI asociados se clonan con el tiempo, esto crea árboles de VDI encadenados. Cuando se elimina uno de los VDI de una cadena, HASH (0x2c1a078) racionaliza los otros VDI de la cadena para eliminar VDIS innecesarios. Este proceso de fusión se ejecuta de forma asíncrona. La cantidad de espacio en disco recuperado y el tiempo que se tarda en realizar el proceso depende del tamaño del VDI y de la cantidad de datos compartidos.

Tanto los formatos VHD como QCOW2 admiten aprovisionamiento ligero. El archivo de imagen se extiende automáticamente en fragmentos granulares finos a medida que la máquina virtual escribe datos en el disco. Para VHD basado en archivos y QCOW2 basado en GFS2, este enfoque tiene la ventaja considerable de que los archivos de imagen de VM ocupan sólo tanto espacio en el almacenamiento físico como sea necesario. Con VHD basado en LVM, el contenedor de volumen lógico subyacente debe ajustarse al tamaño virtual del VDI. Sin embargo, el espacio no utilizado en el disco de instancia de copia en escritura subyacente se recupera cuando se produce una instantánea o un clon. La diferencia entre los dos comportamientos se puede describir de la siguiente manera:

  • Para las imágenes VHD basadas en LVM, los nodos de disco de diferencia dentro de la cadena consumen sólo tantos datos como se han escrito en el disco. Sin embargo, los nodos hoja (clones VDI) permanecen completamente inflados al tamaño virtual del disco. Los nodos hoja de instantáneas (instantáneas VDI) permanecen desinflados cuando no están en uso y se pueden asociar Sólo lectura para conservar la asignación desinflada. Los nodos de instantáneas que están conectados lectura-escritura se inflarán completamente en la conexión y se desinflarán al desenlazar.

  • Para imágenes QCOW2 *basadas en archivos y VHD basadas en GFS2* , todos los nodos consumen sólo la cantidad de datos que se ha escrito. Los archivos de nodo hoja crecen para acomodar los datos a medida que se escriben activamente. Si se asigna un VDI de 100 GB para una máquina virtual y se instala un sistema operativo, el archivo VDI tiene físicamente sólo el tamaño de los datos del sistema operativo en el disco, además de una sobrecarga de metadatos menor importancia.

Al clonar máquinas virtuales basadas en una sola plantilla VHD o QCOW2, cada máquina virtual secundaria forma una cadena en la que se escriben nuevos cambios en la nueva máquina virtual. Los bloques antiguos se leen directamente desde la plantilla principal. Si la nueva máquina virtual se convirtió en otra plantilla y más máquinas virtuales clonadas, la cadena resultante se traduce en un rendimiento degradado. HASH (0x2c1a078) admite una longitud máxima de cadena de 30. No se acerque a este límite sin una buena razón. En caso de duda, “copie” la VM usando HASH (0x2e6c8e8) o use elvm-copy comando, que restablece la longitud de la cadena a 0.

Notas específicas de VHD sobre la fusión

Sólo hay un proceso de fusión activo para una SR. Este subproceso de proceso se ejecuta en el host maestro SR.

Si tiene máquinas virtuales críticas ejecutándose en el servidor maestro del grupo, puede seguir los pasos siguientes para mitigar las E/S lentas ocasionales:

  • Migrar la máquina virtual a un host distinto del maestro SR

  • Establezca la prioridad de E/S de disco en un nivel superior y ajuste el programador. Para obtener más información, consulte Configuración de QoS de disco virtual.