layout: doc description: Create and manage storage repositories in your XenServer environment.—

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 host de XenServer. 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 (SR) de diferentes tipos y ponerlos a disposición del host de XenServer. 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:

Los SR locales de tipo lvm, ext y xfs 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. También se pueden olvidar los SR para separar el SR de un host de XenServer y conectarlo 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:

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

Para obtener información sobre cómo probar un SR de GFS2, consulte Crear un SR de GFS2.

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 host de XenServer sin eliminar ninguno de los contenidos del 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. Desenchufe el PBD para desconectar el SR del host XenServer 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 host de XenServer y elimina el contenido del 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 host de XenServer, pero deja intacto el contenido del SR real 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 hosts de XenServer correspondientes 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 host 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 para el host de XenServer. 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:

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:

Limitaciones y advertencias

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

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 XenServer 8.

  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 de infraestructura y, a continuación, elija el host 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:

Recuperar espacio automáticamente al eliminar instantáneas

Al eliminar instantáneas con XenServer, el espacio asignado a los SR basados en LVM se recupera automáticamente y no es necesario reiniciar la máquina virtual. 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.

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:

Notas:

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 coordinador 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 máquina virtual mediante XenCenter o la CLI de XenServer. 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 fusionar se encuentran en un almacenamiento compartido, debe ejecutar la herramienta de fusión fuera de línea en el coordinador del grupo.

Si los VDI que se van a fusionar se encuentran en un almacenamiento local, ejecute la herramienta de fusión fuera de línea en el host 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:

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