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:

SR locales de tipo lvm y ext solo se 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 de la SR creada 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 usar 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 de parámetros incompleto, 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
lvmofcoe SCSIid
nfs server No
  serverpath
‘smb’ server No
  username No No
  password No No
lvm device No
ext device No

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.

Nota:

Cuando utilice el almacenamiento SMB, no extraiga el recurso compartido del almacenamiento antes de desconectar el SMB SR.

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. Utilice el comando sr-destroy para eliminar una 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. Use el comando sr-forget para olvidar una 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 UUID de SR 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 del grupo 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 para cambiar el tamaño y, a continuación, haga clic en Reanalizar.

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 virtuales mediante XenCenter

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

  2. En la lista Discos virtuales, seleccione el disco virtual 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 la SR tenga espacio suficiente para otro disco virtual: el espacio disponible se muestra en la lista de SR disponibles.

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

Para ver la referencia de la CLI, 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 ver la referencia de la CLI, 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 mover cada VDI, seleccione la VDI y haga clic en el botón Desconectar. Este paso también se puede realizar mediante el comando vbd-destroy.

    Nota:

    Si usa el comando vbd-destroy para desconectar los UUID de VDI, primero compruebe si el VBD tiene el parámetro other-config:owner establecido en true. Defina este parámetro en false. Al emitir el comando vbd-destroy con other-config:owner=true, también se destruye la VDI asociada.

  4. Use el comando vdi-copy para copiar cada uno de los VDI de VM para moverlos 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 realizar con 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 “fusión en línea”. La fusión en línea se aplica a todos los tipos de SR. Sin embargo, los SR de GFS2 no pueden realizar la fusión de hojas, es decir, la VDI en la que escribe la máquina virtual no se puede fusionar con su matriz en una SR de GFS2.

En ciertos casos, es posible que la recuperación automática de espacio no pueda continuar. Le recomendamos que utilice la herramienta de fusión sin conexión 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 de fusión sin conexión provoca cierto tiempo de inactividad para la máquina virtual, debido a las operaciones de suspensión o reanudación realizadas.
  • Antes de ejecutar la herramienta, elimine las instantáneas y los 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 los 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.

Recupera espacio con la herramienta de fusión sin conexión

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 máquina virtual 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 necesarias y reanuda la máquina virtual. Es posible que las VM ágiles se reinicien en un host diferente.

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

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

Trabajando con E/S de disco

Puede configurar el programador de E/S del disco y los ajustes de prioridad de E/S del disco para cambiar el rendimiento de los discos.

Nota:

Las capacidades de E/S de disco descritas en esta sección no se aplican al almacenamiento de EqualLogic, NetApp ni NFS.

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.

  1. Ajuste el programador de discos mediante el siguiente comando:

    xe sr-param-set other-config:scheduler=<option> uuid=<sr_uuid>
    <!--NeedCopy-->
    

    El valor de <option> puede ser uno de los siguientes términos: noop, cfq o deadline.

  2. Desenchufe y vuelva a conectar el PBD correspondiente para que el parámetro del programador surta efecto.

    xe pbd-unplug uuid=<pbd_uuid>
    xe pbd-plug uuid=<pbd_uuid>
    <!--NeedCopy-->
    

Para aplicar la priorización de las solicitudes de E/S del disco, anule la configuración predeterminada y asigne el programador de discos cfq al SR.

Priorización de solicitudes de E/S de discos virtuales

Los discos virtuales tienen una configuración de prioridad de solicitud de E/S opcional. Puede usar esta configuración para priorizar las E/S en el disco de una máquina virtual en particular sobre los demás.

Antes de configurar cualquier parámetro de prioridad de solicitud de E/S de disco para un VBD, asegúrese de que el programador de discos para el SR esté configurado correctamente. El parámetro del planificador debe configurarse en cfq en el SR y el PBD asociado desenchufados y reconectados. Para obtener información sobre cómo ajustar el programador, consulte Ajustar el programador de E/S del disco.

En el caso de la SR compartida, en la que varios hosts acceden al mismo LUN, la configuración de prioridad se aplica a los VBD que acceden al LUN desde el mismo host. Esta configuración no se aplica a todos los anfitriones del grupo.

El host emite una solicitud al almacenamiento remoto, pero el almacenamiento remoto realiza la priorización de la solicitud.

Configuración de los parámetros de solicitud de E/S del disco

Esta configuración se puede aplicar a los discos virtuales existentes mediante el comando xe vbd-param-set con los siguientes parámetros:

  • qos_algorithm_type: Este parámetro se debe establecer en el valor ionice, que es el único algoritmo admitido para los discos virtuales.

  • qos_algorithm_param: Utilice este parámetro para configurar pares clave/valor. Para los discos virtuales, qos_algorithm_param toma una clave sched y, según el valor, también requiere una clave class.

    La clave qos_algorithm_param:sched puede tener uno de los valores siguientes:

    • sched=rt o sched=real-time: Este valor establece el parámetro de programación en prioridad en tiempo real, lo que requiere un parámetro class para establecer un valor.

    • sched=idle: Este valor establece el parámetro de programación en prioridad de inactividad, que no requiere ningún parámetro class para establecer ningún valor.

    • sched=anything: Este valor establece el parámetro de programación como prioridad de máximo esfuerzo, lo que requiere un parámetro class para establecer un valor.

    La clave qos_algorithm_param:class puede tener uno de los siguientes valores:

    • Una de las siguientes palabras clave: highest, high, normal, low, lowest.

    • 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.

Ejemplo

Por ejemplo, los siguientes comandos de CLI configuran el VBD del disco virtual para que utilice la prioridad en tiempo real 5:

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-unplug uuid=<pbd_uuid>
xe pbd-plug uuid=<pbd_uuid>
<!--NeedCopy-->