Citrix Hypervisor

Administrar repositorios de almacenamiento

En esta sección se describe la creación de tipos de repositorios de almacenamiento y su puesta a disposición del servidor de Citrix Hypervisor. También cubre varias operaciones requeridas en la administración continua de repositorios de almacenamiento (SR), incluida la migración de VDI en vivo.

Crear repositorios de almacenamiento

En esta sección se explica cómo crear repositorios de almacenamiento (SRs) de diferentes tipos y ponerlos a disposición del servidor de Citrix Hypervisor. Los ejemplos proporcionados cubren la creación de SRs mediante la CLI xe. Para obtener más información sobre el uso del asistente Nuevo repositorio de almacenamiento para agregar SR mediante XenCenter, consulte la documentación de XenCenter.

Nota:

SRs locales de tipolvm y solo seext pueden crear mediante la CLI xe. Después de la creación, puede administrar todos los tipos de SR mediante XenCenter o la CLI xe.

Hay dos pasos básicos para crear un repositorio de almacenamiento para usarlo en un host mediante la CLI:

  1. Pruebe el tipo de SR para determinar los valores de los parámetros requeridos.

  2. Cree el SR para inicializar el objeto SR y los objetos PBD asociados, conectar los PBD y activar el SR.

Estos pasos difieren en detalle según el tipo de SR que se esté creando. En todos los ejemplos, el comando sr-create devuelve el UUID del SR creado si tiene éxito.

Los SR se pueden destruir cuando ya no se usan para liberar el dispositivo físico. Los SR también se pueden olvidar para desconectar el SR de un servidor de Citrix Hypervisor y adjuntarlo a otro. Para obtener más información, consulte Eliminación de SR en la siguiente sección.

Sonda una SR

El comando sr-probe se puede utilizar de las siguientes maneras:

  • Para identificar parámetros desconocidos para usarlos en la creación de un SR
  • Para devolver una lista de los SR existentes

En ambos casos, sr-probe funciona especificando un tipo de SR y uno o más parámetros device-config para ese tipo de SR. Si se proporciona un conjunto incompleto de parámetros, el comando sr-probe devuelve un mensaje de error que indica que faltan parámetros y las posibles opciones para los parámetros que faltan. Cuando se suministra un conjunto completo de parámetros, se devuelve una lista de los SR existentes. Todos los resultados de sr-probe se devuelven como XML.

Por ejemplo, un objetivo iSCSI conocido se puede sondear especificando su nombre o dirección IP. Se devuelve el conjunto de IQN disponibles en el objetivo:

    xe sr-probe type=lvmoiscsi device-config:target=192.168.1.10

    Error code: SR_BACKEND_FAILURE_96
    Error parameters: , The request is missing or has an incorrect target IQN parameter, \
    <?xml version="1.0" ?>
    <iscsi-target-iqns>
        <TGT>
            <Index>
                0
            </Index>
            <IPAddress>
                192.168.1.10
            </IPAddress>
            <TargetIQN>
                iqn.192.168.1.10:filer1
            </TargetIQN>
        </TGT>
    </iscsi-target-iqns>
<!--NeedCopy-->

Al volver a sondear el mismo destino y especificar el nombre/dirección IP y el IQN deseado, se devuelve el conjunto de SCSIids (LUN) disponibles en el objetivo/IQN.

    xe sr-probe type=lvmoiscsi device-config:target=192.168.1.10  \
    device-config:targetIQN=iqn.192.168.1.10:filer1

    Error code: SR_BACKEND_FAILURE_107
    Error parameters: , The SCSIid parameter is missing or incorrect, \
    <?xml version="1.0" ?>
    <iscsi-target>
        <LUN>
            <vendor>
                IET
            </vendor>
            <LUNid>
                0
            </LUNid>
            <size>
                42949672960
            </size>
            <SCSIid>
                149455400000000000000000002000000b70200000f000000
            </SCSIid>
        </LUN>
    </iscsi-target>
<!--NeedCopy-->

Al sondear el mismo destino y suministrar los tres parámetros, se devuelve una lista de los SR que existen en el LUN, si los hay.

    xe sr-probe type=lvmoiscsi device-config:target=192.168.1.10  \
    device-config:targetIQN=192.168.1.10:filer1 \
    device-config:SCSIid=149455400000000000000000002000000b70200000f000000

    <?xml version="1.0" ?>
    <SRlist>
        <SR>
            <UUID>
                3f6e1ebd-8687-0315-f9d3-b02ab3adc4a6
            </UUID>
            <Devlist>
                /dev/disk/by-id/scsi-149455400000000000000000002000000b70200000f000000
            </Devlist>
        </SR>
    </SRlist>
<!--NeedCopy-->

Se pueden probar los siguientes parámetros para cada tipo de SR:

Tipo SR Los parámetros device-config, en orden de dependencia ¿Se puede sondear? ¿Requerido para sr-create?
lvmoiscsi target No
  chapuser No No
  chappassword No No
  targetIQN
  SCSIid
lvmohba SCSIid
NetApp target No
  username No
  password No
  chapuser No No
  chappassword No No
  aggregate No (ver nota 1)
  FlexVols No No
  allocation No No
  asis No No
nfs server No
  serverpath
lvm device No
ext device No
EqualLogic target No
  username No
  password No
  chapuser No No
  chappassword No No
  storagepool No (véase la nota 2)

Notas:

  • El sondeo agregado solo es posible durante sr-create.
  • El sondeo del grupo de almacenamiento solo es posible durante sr-create.

Eliminar SRs

Un repositorio de almacenamiento (SR) se puede eliminar temporal o permanentemente.

Separar: interrumpe la asociación entre el dispositivo de almacenamiento y el grupo o el host (PBD Unplug). El SR (y sus VDI) se vuelven inaccesibles. Se conservan el contenido de los VDI y la metainformación utilizada por las VM para acceder a los VDI. La separación se puede usar cuando desconecta temporalmente un SR, por ejemplo, para mantenimiento. Un SR separado se puede volver a conectar más tarde.

Olvídese: conserva el contenido de la SR en el disco físico, pero la información que conecta una máquina virtual a sus VDI se elimina permanentemente. Por ejemplo, le permite volver a conectar el SR a otro servidor de Citrix Hypervisor, sin eliminar ninguno de los contenidos de SR.

Destruir: elimina el contenido del SR del disco físico.

Para Destroy or Forget, el PBD conectado al SR debe desconectarse del host.

  1. Desconecte el PBD para desconectar el SR del servidor de Citrix Hypervisor correspondiente:

    xe pbd-unplug uuid=pbd_uuid
    <!--NeedCopy-->
    
  2. Ejecute el comando sr-destroy para eliminar un SR. El comando destruye el SR, elimina el SR y el PBD correspondiente de la base de datos del servidor de Citrix Hypervisor y elimina el contenido de SR del disco físico:

    xe sr-destroy uuid=sr_uuid
    <!--NeedCopy-->
    
  3. Ejecute el comando sr-forget para olvidar un SR. El comando elimina el SR y el PBD correspondiente de la base de datos del servidor de Citrix Hypervisor, pero deja el contenido de SR real intacto en el medio físico:

    xe sr-forget uuid=sr_uuid
    <!--NeedCopy-->
    

Nota:

El objeto de software correspondiente al SR puede tardar algún tiempo en recogerse como basura.

Presentar una SR

Para volver a introducir una SR olvidada anteriormente, cree un PBD. Conecte manualmente el PBD a los servidores de Citrix Hypervisor apropiados para activar el SR.

En el siguiente ejemplo se presenta una SR de tipo lvmoiscsi.

  1. Sondear el SR existente para determinar su UUID:

    xe sr-probe type=lvmoiscsi device-config:target=192.168.1.10 \
        device-config:targetIQN=192.168.1.10:filer1 \
        device-config:SCSIid=149455400000000000000000002000000b70200000f000000
    <!--NeedCopy-->
    
  2. Introduzca el SR UUID existente devuelto por el comando sr-probe. Se devuelve el UUID del nuevo SR:

    xe sr-introduce content-type=user name-label="Example Shared LVM over iSCSI SR" \
        shared=true uuid=valid_sr_uuid type=lvmoiscsi
    <!--NeedCopy-->
    
  3. Crea un PBD para acompañar al SR. Se devuelve el UUID del nuevo PBD:

    xe pbd-create type=lvmoiscsi host-uuid=valid_uuid sr-uuid=valid_sr_uuid \
        device-config:target=192.168.0.1 \
        device-config:targetIQN=192.168.1.10:filer1 \
        device-config:SCSIid=149455400000000000000000002000000b70200000f000000
    <!--NeedCopy-->
    
  4. Enchufe el PBD para conectar el SR:

    xe pbd-plug uuid=pbd_uuid
    <!--NeedCopy-->
    
  5. Compruebe el estado del conector PBD. Si se hace correctamente, la propiedad currently-attached es true:

    xe pbd-list sr-uuid=sr_uuid
    <!--NeedCopy-->
    

Nota:

Realice los pasos 3 a 5 para cada servidor de la agrupación de recursos. Estos pasos también se pueden realizar con la función Repair Storage Repository en XenCenter.

Expansión de LUNs

Para cumplir con los requisitos de capacidad, es posible que deba agregar capacidad a la matriz de almacenamiento para aumentar el tamaño del LUN aprovisionado al servidor de Citrix Hypervisor. La expansión de LUN en vivo le permite aumentar el tamaño del LUN sin ningún tiempo de inactividad de la VM.

Después de agregar más capacidad a su arreglo de almacenamiento, introduzca,

xe sr-scan sr-uuid=sr_uuid
<!--NeedCopy-->

Este comando vuelve a escanear el SR y se agrega cualquier capacidad adicional y se pone a disposición.

Esta operación también está disponible en XenCenter. Seleccione la SR que quiere cambiar el tamaño y, a continuación, haga clic en Volver a analizar.

Advertencias:

  • No es posible reducir ni truncar los LUN. Reducir el tamaño del LUN en el arreglo de almacenamiento puede provocar la pérdida de datos.

Migración de VDI en vivo

La migración de VDI en vivo permite al administrador reubicar la imagen de disco vDisk (VDI) de VM sin apagar la VM. Esta función permite realizar operaciones administrativas tales como:

  • Trasladar una VM desde un almacenamiento local barato a un almacenamiento rápido, resistente y respaldado por matrices.
  • Mover una VM de un entorno de desarrollo a un entorno de producción.
  • Moverse entre niveles de almacenamiento cuando una VM está limitada por la capacidad de almacenamiento.
  • Realizar actualizaciones de arreglos de almacenamiento.

Limitaciones y advertencias

La migración de VDI en vivo está sujeta a las siguientes limitaciones y advertencias:

  • Debe haber suficiente espacio en disco disponible en el repositorio de destino.

Para mover discos vDisk mediante XenCenter

  1. En el panel Recursos, seleccione el SR donde está almacenado el disco vDisk y, a continuación, haga clic en la ficha Almacenamiento.

  2. En la lista Discos vDisk, seleccione el disco vDisk que quiere mover y, a continuación, haga clic en Mover.

  3. En el cuadro de diálogo Mover disco vDisk, seleccione el SR de destino al que quiere mover el VDI.

    Nota:

    Asegúrese de que el SR tenga suficiente espacio para otro disco vDisk: El espacio disponible se muestra en la lista de SRs disponibles.

  4. Haga clic en Mover para mover el disco vDisk.

Para obtener una referencia de la CLI de xe, consulte vdi-pool-migrate.

Migración de VDI en frío entre SR (migración fuera de línea)

Los VDI asociados a una VM se pueden copiar de un SR a otro para adaptarse a los requisitos de mantenimiento o a las configuraciones de almacenamiento en niveles. XenCenter le permite copiar una VM y todos sus VDI en el mismo SR o en uno diferente. Se puede usar una combinación de XenCenter y la CLI xe para copiar VDI individuales.

Para obtener una referencia de la CLI de xe, consulte vm-migrate.

Copie todos los VDI de una VM en un SR diferente

La función XenCenter Copy VM crea copias de todos los VDI para una VM seleccionada en el mismo SR o en uno diferente. La VM y los VDI de origen no se ven afectados de forma predeterminada. Para mover la máquina virtual a la SR seleccionada en lugar de crear una copia, seleccione la opción Eliminar máquina virtual original en el cuadro de diálogo Copiar máquina virtual.

  1. Apague la VM.
  2. En XenCenter, seleccione la VM y, a continuación, seleccione la VM > Opción Copiar VM
  3. Seleccione el SR de destino deseado.

Copiar VDI individuales en un SR diferente

Se puede usar una combinación de la CLI xe y XenCenter para copiar VDI individuales entre SR.

  1. Apague la VM.

  2. Use la CLI xe para identificar los UUID de los VDI que se van a mover. Si la máquina virtual tiene una unidad de DVD, vdi-uuid aparece como not in database y se puede ignorar.

    xe vbd-list vm-uuid=valid_vm_uuid
    <!--NeedCopy-->
    

    Nota:

    El comando vbd-list muestra los UUID de VBD y VDI. Asegúrese de grabar los UUID de VDI en lugar de los UUID de VBD.

  3. En XenCenter, seleccione la ficha Almacenamiento de VM. Para cada VDI que quiera mover, seleccione el VDI y haga clic en el botón Desenlazar. Este paso también se puede hacer mediante el comando vbd-destroy.

    Nota:

    Si utiliza el comando vbd-destroy para separar los UUID de VDI, compruebe primero si el VBD tiene el parámetro other-config:owner establecido en true. Establezca este parámetro en false. La emisión del comando vbd-destroy con other-config:owner=true también destruye el VDI asociado.

  4. Ejecute el comando vdi-copy para copiar cada uno de los VDI de VM que se van a mover al SR deseado.

    xe vdi-copy uuid=valid_vdi_uuid sr-uuid=valid_sr_uuid
    <!--NeedCopy-->
    
  5. En XenCenter, seleccione la ficha Almacenamiento de VM. Haga clic en el botón Adjuntar y seleccione los VDI del nuevo SR. Este paso también se puede hacer mediante el comando vbd-create.

  6. Para eliminar los VDI originales, seleccione la ficha Almacenamiento del SR original en XenCenter. Los VDI originales se enumeran con un valor vacío para el campo VM. Use el botón Eliminar para eliminar la VDI.

Convertir SR de canal de fibra local en SR compartidos

Use la CLI xe y la función Repair Storage Repair de XenCenter para convertir un SR de FC local en un SR de FC compartido:

  1. Actualice todos los hosts del grupo de recursos a Citrix Hypervisor 8.2.

  2. Asegúrese de que todos los hosts del grupo tengan el LUN de SR dividido en zonas de manera adecuada. Consulte Sondear un SR para obtener más información sobre el uso del comando sr-probe para verificar que el LUN esté presente en cada host.

  3. Convertir el SR en compartido:

    xe sr-param-set shared=true uuid=local_fc_sr
    <!--NeedCopy-->
    
  4. El SR se mueve del nivel de host al nivel de grupo en XenCenter, lo que indica que ahora se comparte. El SR se marca con un signo de exclamación rojo para indicar que no está conectado en todos los hosts del grupo.

  5. Seleccione el SR y, a continuación, seleccione el almacenamiento > Opción Reparar repositorio de almacenamiento.

  6. Haga clic en Reparar para crear y conectar un PBD para cada host del grupo.

Recupere espacio para el almacenamiento basado en bloques en el arreglo de discos de reserva mediante el uso de descarte

Puede utilizar la recuperación de espacio para liberar bloques no utilizados en un LUN de aprovisionamiento reducido. Una vez liberado el espacio, el arreglo de almacenamiento puede reutilizar este espacio recuperado.

Nota:

La recuperación de espacio solo está disponible en algunos tipos de arreglos de almacenamiento. Para determinar si su arreglo admite esta función y si necesita una configuración específica, consulte la Lista de compatibilidad de hardware y la documentación específica del proveedor de almacenamiento.

Para recuperar el espacio mediante XenCenter:

  1. Seleccione la vista Infraestructura y, a continuación, elija el servidor o el grupo conectado al SR.

  2. Haga clic en la ficha Almacenamiento.

  3. Seleccione el SR en la lista y haga clic en Recuperar espacio libre.

  4. Haga clic en para confirmar la operación.

  5. Haga clic en Notificaciones y luego en Eventos para ver el estado de la operación.

Para obtener más información, presione F1en XenCenter para acceder a la ayuda en línea.

Para recuperar espacio mediante la CLI xe, puede usar el siguiente comando:

xe host-call-plugin host-uuid=host_uuid \
    plugin=trim fn=do_trim args:sr_uuid=sr_uuid

Notas:

  • La operación solo está disponible para SRs basados en LVM que se basan en LUNs aprovisionados con poco aprovisionamiento en el arreglo de discos. Las SSD locales también se pueden beneficiar de la recuperación de espacio.
  • La recuperación de espacio no es necesaria para los SR basados en archivos, como NFS y EXT3/EXT4. El botón Reclamar espacio libre no está disponible en XenCenter para estos tipos de SR.
  • Si ejecuta el comando xe de recuperación de espacio para un RA basado en archivos o un RA basado en LVM con aprovisionamiento grueso, el comando devuelve un error.
  • La recuperación de espacio es una operación intensiva y puede provocar una degradación en el rendimiento del arreglo de discos de almacenamiento. Por lo tanto, solo inicie esta operación cuando se requiera la recuperación de espacio en la matriz. Le recomendamos que programe este trabajo fuera de las horas pico de demanda de arreglos de discos.

Recuperar espacio automáticamente al eliminar instantáneas

Al eliminar instantáneas con Citrix Hypervisor, el espacio asignado en los SR basados en LVM se recupera automáticamente y no es necesario reiniciar la VM. Esta operación se conoce como “Coalescencia en línea”.

La fusión en línea solo se aplica a los SR basados en LVM (LVM, LVMoISCSI y LVMoHBA). No se aplica a los SR EXT3/EXT4 o NFS, cuyo comportamiento permanece sin cambios. En ciertos casos, es posible que la recuperación automática de espacio no pueda continuar. Le recomendamos que utilice la herramienta Coalesce Off-Line en estos casos:

  • En condiciones en las que el rendimiento de E/S de una VM es considerable
  • En condiciones en las que no se reclama espacio después de un período

Notas:

  • La ejecución de la herramienta Fusión fuera de línea provoca cierto tiempo de inactividad para la VM, debido a las operaciones de suspensión/reanudación realizadas.
  • Antes de ejecutar la herramienta, elimine las instantáneas y clones que ya no quiera. La herramienta recupera tanto espacio como sea posible dadas las instantáneas o clones restantes. Si quiere recuperar todo el espacio, elimine todas las instantáneas y clones.
  • Los discos de VM deben estar en almacenamiento compartido o local para un único host. Las VM con discos en ambos tipos de almacenamiento no se pueden combinar.

Recuperar espacio mediante la herramienta de fusión fuera de línea

Nota:

La fusión en línea solo se aplica a los SR basados en LVM (LVM, LVMoISCSI y LVMoHBA), no se aplica a los SR EXT3/EXT4 o NFS, cuyo comportamiento permanece sin cambios.

Habilite los objetos ocultos mediante XenCenter. Haga clic en Ver > Objetos ocultos. En el panel Recurso, seleccione la máquina virtual para la que quiere obtener el UUID. El UUID se muestra en la ficha General.

En el panel Recursos, seleccione el maestro del grupo de recursos (el primer host de la lista). La ficha General muestra el UUID. Si no usa un grupo de recursos, seleccione el host de la VM.

  1. Abra una consola en el host y ejecute el siguiente comando:

    xe host-call-plugin host-uuid=host-UUID \
        plugin=coalesce-leaf fn=leaf-coalesce args:vm_uuid=VM-UUID
    <!--NeedCopy-->
    

    Por ejemplo, si el UUID de VM es 9bad4022-2c2d-dee6-abf5-1b6195b1dad5 y el UUID de host es b8722062-de95-4d95-9baa-a5fe343898ea, ejecute el siguiente comando:

    xe host-call-plugin host-uuid=b8722062-de95-4d95-9baa-a5fe343898ea \
        plugin=coalesce-leaf fn=leaf-coalesce args:vm_uuid=9bad4022-2c2d-dee6-abf5-1b6195b1dad5
    <!--NeedCopy-->
    
  2. Este comando suspende la VM (a menos que ya esté apagada), inicia el proceso de recuperación de espacio y, a continuación, reanuda la VM.

Notas:

Le recomendamos que apague o suspenda la VM manualmente antes de ejecutar la herramienta de fusión fuera de línea. Puede apagar o suspender la VM mediante XenCenter o la CLI de Citrix Hypervisor. Si ejecuta la herramienta de fusión en una máquina virtual en ejecución, la herramienta suspende automáticamente la máquina virtual, realiza las operaciones de fusión de VDI requeridas y reanuda la máquina virtual. Es posible que las VM ágiles se reinicien en un host diferente.

Si las imágenes de disco vDisk (VDI) que se van a fusionar se encuentran en almacenamiento compartido, debe ejecutar la herramienta de fusión fuera de línea en el maestro del grupo.

Si los VDI que se van a fusionar están en almacenamiento local, ejecute la herramienta de fusión fuera de línea en el servidor al que está conectado el almacenamiento local.

Ajustar el programador de E/S de disco

Para obtener un rendimiento general, el programador de discos predeterminado noop se aplica a todos los tipos de SR nuevos. El programador noop proporciona el rendimiento más justo para las máquinas virtuales de la competencia que acceden al mismo dispositivo. Para aplicar la QoS del disco, es necesario anular la configuración predeterminada y asignar el programador de discos cfq al SR. La PBD correspondiente debe desconectarse y volver a conectarse para que el parámetro del programador surta efecto. El programador de discos se puede ajustar mediante el siguiente comando:

xe sr-param-set other-config:scheduler=noop|cfq|anticipatory|deadline \
    uuid=valid_sr_uuid
<!--NeedCopy-->

Nota:

Este comando no afecta al almacenamiento de EqualLogic, NetApp ni NFS.

Configuración de QoS del disco vDisk

Los discos vDisk tienen una configuración opcional de calidad de servicio (QoS) de prioridad de E/S. Esta configuración se puede aplicar a discos vDisk existentes mediante la CLI xe como se describe en esta sección.

Para SR compartida, donde varios hosts acceden al mismo LUN, la configuración de QoS se aplica a los VBD que acceden al LUN desde el mismo host. La QoS no se aplica en todos los hosts del grupo.

Antes de configurar cualquier parámetro de QoS para un VBD, asegúrese de que el programador de disco para el SR se haya configurado correctamente. Consulte Ajuste del programador de E/S de disco en la sección anterior para obtener detalles sobre cómo ajustar el programador. El parámetro del programador debe establecersecfq en el SR para el que se quiere la QoS.

Nota:

Recuerde configurar el programador cfq en el SR y asegurarse de que el PBD se ha reconectado para que el cambio del programador surta efecto.

El primer parámetro es qos_algorithm_type. Este parámetro debe establecerse en el valorionice, que es el único tipo de algoritmo QoS compatible con discos vDisk en esta versión.

Los propios parámetros de QoS se establecen con pares clave/valor asignados al parámetro qos_algorithm_param. Para discos vDisk,qos_algorithm_param toma unasched clave, y dependiendo del valor, también requiere unaclass clave.

Los valores posibles de qos_algorithm_param:sched son:

-sched=rt o sched=real-time establece el parámetro de programación de QoS en prioridad en tiempo real, lo que requiere un parámetro de clase para establecer un valor

-sched=idle establece el parámetro de programación de QoS en prioridad inactiva, lo que no requiere ningún parámetro de clase para establecer ningún valor

-sched=anything establece el parámetro de programación de QoS en la prioridad de mejor esfuerzo, lo que requiere un parámetro de clase para establecer un valor

Los valores posibles para class son:

  • Una de las siguientes palabras clave: Más alto, alto, normal, bajo, más bajo

  • Un número entero entre 0 y 7, donde 7 es la prioridad más alta y 0 es la más baja. Por ejemplo, a las solicitudes de E/S con una prioridad de 5 se les da prioridad sobre las solicitudes de E/S con una prioridad de 2.

Para habilitar la configuración de QoS del disco, también debe establecer other-config:scheduler en cfq volver a conectar PBD para el almacenamiento en cuestión.

Por ejemplo, los siguientes comandos de CLI establecen el VBD del disco vDisk para que use prioridad en tiempo real5:

    xe vbd-param-set uuid=vbd_uuid qos_algorithm_type=ionice
    xe vbd-param-set uuid=vbd_uuid qos_algorithm_params:sched=rt
    xe vbd-param-set uuid=vbd_uuid qos_algorithm_params:class=5
    xe sr-param-set uuid=sr_uuid other-config:scheduler=cfq
    xe pbd-plug uuid=pbd_uuid
<!--NeedCopy-->