XenServer

Cómo afrontar los fallos de las máquinas

Esta sección proporciona detalles sobre cómo recuperarse de varios escenarios de fallo. Todos los escenarios de recuperación de fallos requieren el uso de uno o más de los tipos de copia de seguridad enumerados en Copia de seguridad.

Fallos de los miembros

En ausencia de HA, los nodos coordinadores del pool detectan los fallos de los miembros al recibir mensajes de latido regulares. Si no se ha recibido ningún latido durante 600 segundos, el coordinador del pool asume que el miembro está inactivo. Hay dos formas de recuperarse de este problema:

  • Reparar el host inactivo (por ejemplo, reiniciándolo físicamente). Cuando se restablece la conexión con el miembro, el coordinador del pool lo marca como activo de nuevo.

  • Apagar el host e indicar al coordinador del pool que olvide el nodo miembro usando el comando CLI xe host-forget. Una vez que el miembro ha sido olvidado, todas las máquinas virtuales que se estaban ejecutando allí se marcan como sin conexión y se pueden reiniciar en otros hosts XenServer.

    Es importante asegurarse de que el host XenServer® esté realmente sin conexión, de lo contrario, podría producirse una corrupción de los datos de la máquina virtual.

    No divida su pool en varios pools de un solo host usando xe host-forget. Esta acción podría resultar en que todos ellos asignen el mismo almacenamiento compartido y corrompan los datos de las máquinas virtuales.

Advertencia:

  • Si va a utilizar el host olvidado como host activo de nuevo, realice una nueva instalación del software XenServer.
  • No utilice el comando xe host-forget si HA está habilitado en el pool. Deshabilite HA primero, luego olvide el host y luego vuelva a habilitar HA.

Cuando un host miembro de XenServer falla, puede haber máquinas virtuales aún registradas en estado running. Si está seguro de que el host miembro de XenServer está definitivamente inactivo, use el comando CLI xe vm-reset-powerstate para establecer el estado de energía de las máquinas virtuales en halted. Consulte vm-reset-powerstate para obtener más detalles.

Advertencia:

El uso incorrecto de este comando puede provocar la corrupción de datos. Utilice este comando solo si es necesario.

Antes de poder iniciar máquinas virtuales en otro host XenServer, también debe liberar los bloqueos del almacenamiento de las máquinas virtuales. Solo un host a la vez puede usar cada disco en un SR. Es clave hacer que el disco sea accesible para otros hosts XenServer una vez que un host ha fallado. Para hacerlo, ejecute el siguiente script en el coordinador del pool para cada SR que contenga discos de cualquier máquina virtual afectada: /opt/xensource/sm/resetvdis.py host_UUID SR_UUID master

Solo necesita proporcionar la tercera cadena (“master”) si el host fallido era el coordinador del grupo SR en el momento del fallo. (El coordinador del grupo SR es el coordinador del grupo o un host XenServer que utiliza almacenamiento local).

Advertencia:

Asegúrese de que el host esté inactivo antes de ejecutar este comando. El uso incorrecto de este comando puede provocar la corrupción de datos.

Si intenta iniciar una VM en otro host XenServer antes de ejecutar el script resetvdis.py, recibirá el siguiente mensaje de error: VDI <UUID> already attached RW.

Fallos del coordinador del grupo

Cada miembro de un grupo de recursos contiene toda la información necesaria para asumir el rol de coordinador del grupo si es necesario. Cuando falla un nodo coordinador del grupo, ocurre la siguiente secuencia de eventos:

  1. Si HA está habilitado, se elige automáticamente otro coordinador del grupo.

  2. Si HA no está habilitado, cada miembro espera a que el coordinador del grupo regrese.

Si el coordinador del grupo se recupera en este punto, restablece la comunicación con sus miembros y la operación vuelve a la normalidad.

Si el coordinador del grupo está inactivo, elija uno de los miembros y ejecute el comando xe pool-emergency-transition-to-master en él. Una vez que se haya convertido en el coordinador del grupo, ejecute el comando xe pool-recover-slaves y los miembros ahora apuntarán al nuevo coordinador del grupo.

Si repara o reemplaza el host que era el coordinador original del grupo, simplemente puede iniciarlo, instalar el software XenServer y agregarlo al grupo. Dado que los hosts XenServer en el grupo deben ser homogéneos, no hay una necesidad real de que el host reemplazado sea el coordinador del grupo.

Cuando un host miembro de XenServer se convierte en coordinador del grupo, verifique que el repositorio de almacenamiento predeterminado del grupo esté configurado con un valor apropiado. Esta verificación se puede realizar utilizando el comando xe pool-param-list y verificando que el parámetro default-SR apunte a un repositorio de almacenamiento válido.

Fallos del grupo

En el desafortunado caso de que falle todo su grupo de recursos, debe recrear la base de datos del grupo desde cero. Asegúrese de hacer copias de seguridad regularmente de sus metadatos del grupo utilizando el comando CLI xe pool-dump-database (consulte pool-dump-database).

Para restaurar un grupo completamente fallido:

  1. Instale un nuevo conjunto de hosts. No los agrupe en un pool en esta etapa.

  2. Para el host nominado como coordinador del pool, restaure la base de datos del pool desde su copia de seguridad usando el comando xe pool-restore-database (consulte pool-restore-database).

  3. Conéctese al coordinador del pool usando XenCenter® y asegúrese de que todo su almacenamiento compartido y sus máquinas virtuales estén disponibles de nuevo.

  4. Realice una operación de unión al pool en los hosts miembros restantes recién instalados, e inicie sus máquinas virtuales en los hosts apropiados.

Hacer frente a fallos debidos a errores de configuración

Si la máquina host física está operativa pero el software o la configuración del host están dañados:

  1. Ejecute el siguiente comando para restaurar el software y la configuración del host:

    xe host-restore host=host file-name=hostbackup
    <!--NeedCopy-->
    
  2. Reinicie con el CD de instalación del host y seleccione Restaurar desde copia de seguridad.

Fallo de la máquina física

Si la máquina host física ha fallado, utilice el procedimiento adecuado de la siguiente lista para recuperarse.

Advertencia:

Cualquier máquina virtual que se ejecute en un miembro anterior (o el host anterior) que haya fallado sigue marcada como Running en la base de datos. Este comportamiento es por seguridad. Iniciar simultáneamente una máquina virtual en dos hosts diferentes provocaría una grave corrupción del disco. Si está seguro de que las máquinas (y las máquinas virtuales) están sin conexión, puede restablecer el estado de energía de la máquina virtual a Halted:

xe vm-reset-powerstate vm=vm_uuid --force

Las máquinas virtuales se pueden reiniciar entonces usando XenCenter o la CLI.

Para reemplazar un coordinador de pool fallido con un miembro aún en ejecución:

  1. Ejecute los siguientes comandos:

    xe pool-emergency-transition-to-master
    xe pool-recover-slaves
    <!--NeedCopy-->
    
  2. Si los comandos se ejecutan correctamente, reinicie las máquinas virtuales.

Para restaurar un grupo con todos los hosts fallidos:

  1. Ejecute el comando:

    xe pool-restore-database file-name=backup
    <!--NeedCopy-->
    

    Advertencia:

    Este comando solo se ejecuta correctamente si la máquina de destino tiene un número adecuado de NIC con nombres apropiados.

  2. Si la máquina de destino tiene una vista del almacenamiento diferente a la de la máquina original, modifique la configuración de almacenamiento con el comando pbd-destroy. A continuación, utilice el comando pbd-create para volver a crear las configuraciones de almacenamiento. Consulte comandos pbd para obtener la documentación de estos comandos.

  3. Si ha creado una configuración de almacenamiento, utilice pbd-plug o el elemento de menú Almacenamiento > Reparar repositorio de almacenamiento en XenCenter para usar la nueva configuración.

  4. Reinicie todas las máquinas virtuales.

Para restaurar una máquina virtual cuando el almacenamiento de la máquina virtual no está disponible:

  1. Ejecute el siguiente comando:

    xe vm-import filename=backup metadata=true
    <!--NeedCopy-->
    
  2. Si la importación de metadatos falla, ejecute el comando:

    xe vm-import filename=backup metadata=true --force
    <!--NeedCopy-->
    

    Este comando intenta restaurar los metadatos de la máquina virtual con el «mejor esfuerzo».

  3. Reinicie todas las máquinas virtuales.

Cómo afrontar los fallos de las máquinas