Cómo informar un host defectuoso

Si una instancia A4X Max, A4X, A4, A3 Ultra, A3 Mega y A3 High (8 GPUs) tiene problemas de hardware que no puedes resolver por tu cuenta, como un rendimiento más lento dentro de un clúster o temperaturas de GPU constantemente altas, puedes informar que su host tiene fallas para minimizar el tiempo de inactividad de tu carga de trabajo.

En este documento, se explica cómo informar un host defectuoso y hacer un seguimiento del estado de la operación de informe en un clúster de Slurm o en otro clúster basado en instancias de procesamiento. Para informar hosts defectuosos en un clúster de Google Kubernetes Engine (GKE), consulta Informa hosts defectuosos a través de GKE.

Limitaciones

Cuando informas un host defectuoso, se aplican las siguientes limitaciones:

  • Solo puedes informar un host defectuoso si la instancia de procesamiento que se ejecuta en el host cumple con todas las condiciones siguientes:

    • La instancia de procesamiento se está ejecutando.

    • La instancia de procesamiento usa un tipo de máquina A4X Max, A4X, A4, A3 Ultra, A3 Mega y A3 High (8 GPUs). Las GPU generales no admiten la notificación de hosts defectuosos. Si tienes problemas de hardware con una instancia de GPU general, comunícate con Atención al cliente de Cloud.

    • La instancia de procesamiento usa el modelo de aprovisionamiento vinculado a la reserva.

  • Si borras una instancia de procesamiento mientras la operación reportHostAsFaulty está en curso, la operación reportHostAsFaulty fallará.

  • Google Cloud hace todo lo posible para completar todas tus solicitudes de informe de host defectuoso. Sin embargo, debido a restricciones de capacidad o límites de frecuencia, es posible que no siempre se complete una solicitud.

Comprende el proceso de informe de hosts defectuosos

Después de informar que un host está defectuoso para una instancia de procesamiento, el momento en que se reinicia la instancia de procesamiento varía según el modo operativo de la reserva que se especifica en la reserva que usa la instancia de procesamiento. Para verificar el modo operativo de una reserva, consulta el campo reservationOperationalMode en la reserva. En la siguiente tabla, se resume el proceso de host defectuoso para los dos modos operativos de reserva disponibles: modo de capacidad total y modo administrado.
Modo All Capacity (ALL_CAPACITY) Modo administrado (HIGHLY_AVAILABLE_CAPACITY)
Tipos de máquina admitidos A4X Max y A4X A4, A3 Ultra, A3 Mega y A3 High (8 GPUs)
Límite de frecuencia de la API de informes de hosts defectuosos No se aplican límites de frecuencia. Es posible que las llamadas a la API tengan un límite de frecuencia.
Proceso de informe de host defectuoso

Cuando informas un host defectuoso para una instancia de procesamiento que se ejecuta en el modo de capacidad total, ocurre lo siguiente:

  1. Informa el host defectuoso: La instancia de procesamiento permanece en el estado RUNNING durante toda la operación de informe del host defectuoso, que suele tardar entre 10 y 12 minutos en completarse. Para revisar el estado de la operación, consulta Revisa las operaciones de host defectuosas del informe en este documento.
  2. Reparar el host: Después de que se completa la operación para informar que el host está defectuoso, comienza la operación de reparación del host en un minuto. Cuando se inicia la operación de reparación del host, la instancia de procesamiento se detiene y su estado cambia según el parámetro de configuración de reinicio automático (automaticRestart) que se especifica para la instancia de procesamiento:

    • Si el reinicio automático está habilitado para la instancia de procesamiento, el estado de la instancia de procesamiento cambia a REPAIRING.
    • Si se inhabilita el reinicio automático para la instancia de procesamiento, el estado de la instancia cambia a TERMINATED.

    La reparación del host defectuoso puede tardar entre 3 y 14 días, o incluso más.

  3. Reiniciar la instancia de procesamiento: Después de que se completa la operación de reparación del host, ocurre una de las siguientes situaciones:

    • Si la instancia de procesamiento está en el estado REPAIRING y los recursos están disponibles cuando se completa la reparación, Compute Engine reinicia automáticamente la instancia de procesamiento en el host reparado.
    • De lo contrario, si la instancia de procesamiento está en el estado TERMINATED o si los recursos no están disponibles cuando se completa la reparación, el estado de la instancia de procesamiento permanece en TERMINATED o cambia a ese estado. Debes reiniciar de forma manual la instancia de procesamiento cuando quieras que se ejecute. Sin embargo, si los recursos no están disponibles cuando reinicias la instancia de procesamiento (por ejemplo, si otras instancias de procesamiento ya están usando el host reparado), es posible que el reinicio falle.

Cuando informas que un host está defectuoso para una instancia de procesamiento que se ejecuta en modo administrado, sucede lo siguiente:

  1. Informa el host defectuoso: La instancia de procesamiento permanece en el estado RUNNING durante toda la operación de informe del host defectuoso, que suele tardar entre 10 y 12 minutos en completarse. Para revisar el estado de la operación, consulta Revisa las operaciones de host con errores del informe en este documento.
  2. Comienza a reparar el host: Después de que se completa la operación para informar que el host está defectuoso, la operación de reparación del host comienza en un minuto.

    El comportamiento de la instancia de procesamiento cuando se inicia la operación de reparación del host varía según la serie de máquinas:

    • A4 y A3 Ultra: Compute Engine intenta migrar en vivo la instancia de procesamiento a un host diferente. Si no tienes suficiente capacidad reservada o la capacidad no está disponible en la zona de la instancia de procesamiento, esta se detiene.
    • A3 Mega y A3 High: Compute Engine detiene la instancia de procesamiento y la reinicia en un host en buen estado.

    Si una instancia de procesamiento se detiene, su estado cambia según el parámetro de configuración de reinicio automático (automaticRestart) que se especifica para la instancia de procesamiento:

    • Si el reinicio automático está habilitado para la instancia de procesamiento, su estado cambia a REPAIRING. A menos que primero detengas la instancia de procesamiento, se reiniciará automáticamente cuando el host esté en buen estado.
    • Si se inhabilita el reinicio automático para la instancia de procesamiento, su estado cambia a TERMINATED. Después de que el host esté en buen estado, debes reiniciar la instancia de procesamiento de forma manual.

    La reparación del host defectuoso original puede tardar entre 3 y 14 días, o incluso más en ocasiones.

  3. Migra o reinicia la instancia de procesamiento: Después de que se inicia la operación de reparación del host, Compute Engine intenta reservar un host en buen estado para reemplazar el host defectuoso que informaste en tu capacidad reservada. Si Compute Engine encuentra un host de reemplazo, sucede lo siguiente:

    • A4 y A3 Ultra: Si la instancia de procesamiento se migró en vivo en el paso anterior, seguirá ejecutándose en el host de reemplazo. Si la instancia de procesamiento se detuvo, se reinicia en el host de reemplazo.
    • A3 Mega y A3 High: La instancia de procesamiento se reinicia en el host de reemplazo.

    Si Compute Engine no puede encontrar un host de reemplazo de inmediato, la instancia de procesamiento se reinicia de la siguiente manera:

    • Si la instancia de procesamiento está en el estado REPAIRING y los recursos están disponibles antes de que se complete la reparación o cuando esta se complete, Compute Engine reinicia automáticamente la instancia de procesamiento en un host en buen estado.
    • De lo contrario, si la instancia de procesamiento está en el estado TERMINATED o si los recursos no están disponibles antes o cuando se completa la reparación, el estado de la instancia de procesamiento permanece en TERMINATED o cambia a ese estado. Debes reiniciar de forma manual la instancia de procesamiento cuando quieras que se ejecute.

    A diferencia del modo All Capacity, no es necesario que esperes a que se repare el host defectuoso original para que se reanude la carga de trabajo.

Soluciona problemas antes de informar un host defectuoso

Antes de informar un host defectuoso, te recomendamos que soluciones el problema para confirmar si se trata de un problema de hardware, en lugar de un problema con tu carga de trabajo o configuración del clúster. Este enfoque ayuda a evitar el tiempo de inactividad innecesario para tus cargas de trabajo.

Verifica si hay errores de memoria de GPU o Xid

Si observas errores de memoria de GPU o Xid en una instancia de procesamiento, verifica si las medidas de recuperación manuales, como restablecer las GPU o reiniciar la instancia de procesamiento, pueden resolver el problema antes de informar que el host tiene fallas. Para obtener más información, consulta Revisa los mensajes de Xid.

Verifica si hay problemas de rendimiento de la GPU y rezagados

Si notas un rendimiento lento, usa el servicio de detección de rezagados para identificar las instancias de procesamiento que podrían tener un rendimiento más lento que otras en el clúster.

Supervisa las temperaturas de las GPU y los incumplimientos térmicos

Si ves advertencias de incumplimiento térmico en tus registros o informadas por DCGM, revisa la siguiente guía:

  • Advertencias frente a errores críticos: Los diagnósticos de DCGM pueden informar incumplimientos térmicos como advertencias con una gravedad de monitor. Esta gravedad significa que las GPU aún están listas para ejecutar cargas de trabajo, pero te recomendamos que las supervises.

  • Falsos positivos: NVIDIA está investigando un aumento en la frecuencia de los informes de infracciones térmicas en las GPU que no muestran signos de problemas térmicos reales.

  • Recomendación: Antes de informar que un host tiene fallas debido a advertencias térmicas, verifica si las temperaturas reales de la GPU superan los umbrales seguros y si el rendimiento de tu carga de trabajo se ve afectado. Si las temperaturas se mantienen estables y el rendimiento es normal, te recomendamos que supervises la GPU en lugar de informar que está defectuosa.

Para obtener más información sobre la solución de problemas de GPU, consulta Soluciona problemas de VMs con GPU en la documentación de Compute Engine.

Antes de comenzar

Selecciona la pestaña según cómo planeas usar las muestras de esta página:

Console

Cuando usas la consola de Google Cloud para acceder a los servicios y las APIs de Google Cloud , no necesitas configurar la autenticación.

gcloud

En la consola de Google Cloud , activa Cloud Shell.

Activa Cloud Shell

En la parte inferior de la consola de Google Cloud , se inicia una sesión de Cloud Shell en la que se muestra una ventana de línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.

REST

Para usar las muestras de la API de REST incluidas en esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la gcloud CLI.

    Instala Google Cloud CLI.

    Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

Para obtener más información, consulta Autentícate para usar REST en la documentación de autenticación de Google Cloud .

Roles obligatorios

Para obtener los permisos que necesitas para informar un host defectuoso, pídele a tu administrador que te otorgue los siguientes roles de IAM:

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Estos roles predefinidos contienen los permisos necesarios para informar un host defectuoso. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para informar un host defectuoso:

  • Para informar un host defectuoso: compute.instances.update en la instancia de procesamiento o el proyecto
  • Para ver una lista de operaciones con Logging, haz lo siguiente: logging.logEntries.list en el proyecto
  • Para ver una lista de operaciones en Compute Engine, haz lo siguiente: compute.zoneOperations.list en el proyecto
  • Para ver los detalles de una operación en Compute Engine: compute.zoneOperations.get en el proyecto

También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.

Cómo informar un host defectuoso

Para informar un host defectuoso, completa los siguientes pasos:

  1. Revisa el host en el que se ejecuta tu instancia de procesamiento. Debes verificar el ID del host en el que se ejecuta tu instancia de procesamiento.

    Para obtener instrucciones, consulta Visualiza la topología de una instancia de procesamiento.

  2. Opcional: Crea una copia de seguridad de los datos de la SSD local. Cuando se detiene la instancia de procesamiento, Compute Engine descarta automáticamente los datos de los discos SSD locales que están conectados a la instancia de procesamiento. No puedes recuperar los datos de SSD locales después de que Compute Engine los descarta.

    Para obtener instrucciones sobre cómo conservar los datos de SSD locales, consulta Copia de seguridad de datos de SSD locales.

  3. Informa el host defectuoso. La operación de reparación del host comienza de inmediato, en un minuto después de que se completa la operación de informe de host defectuoso. Si la instancia de procesamiento deja de responder después de iniciar la operación de informe de host defectuoso, te recomendamos que esperes al menos 15 minutos y, luego, reinicies la instancia de procesamiento.

    Para informar un host defectuoso, selecciona una de las siguientes opciones:

    gcloud

    Para informar sobre un host defectuoso, usa el comando gcloud compute instances report-host-as-faulty:

    gcloud compute instances report-host-as-faulty INSTANCE_NAME \
        --async \
        --disruption-schedule=IMMEDIATE \
        --fault-reasons=behavior=FAULT_REASON,description=DESCRIPTION \
        --zone=ZONE
    

    Reemplaza lo siguiente:

    • INSTANCE_NAME: Es el nombre de la instancia de procesamiento.

    • FAULT_REASON: Es una lista de problemas de host que encontró tu instancia de procesamiento, separados por comas, por ejemplo, ISSUE_1,ISSUE_2. Puedes especificar los siguientes valores:

      • PERFORMANCE: Las GPU que están conectadas a la instancia de procesamiento tienen problemas de rendimiento en comparación con otras GPU del clúster, no ves errores de Xid en los registros y Compute Engine no detecta otros patrones de falla habituales, como daños silenciosos en los datos.

      • SILENT_DATA_CORRUPTION: Ves daños en los datos de tu instancia de procesamiento, pero esta sigue en ejecución. La corrupción de datos silenciosa puede deberse a problemas como defectos de las CPUs virtuales, errores de software o problemas del kernel.

      • UNRECOVERABLE_GPU_ERROR: Identificaste un error de GPU irrecuperable con un Xid.

      • BEHAVIOR_UNSPECIFIED: No tienes certeza de cuál es el problema con tu instancia de procesamiento.

    • DESCRIPTION: Es una descripción del problema que afecta a tu instancia de procesamiento, como la información de Xid o los problemas de rendimiento sospechosos.

    • ZONE: Es la zona en la que existe la instancia de procesamiento.

    REST

    Para informar un host defectuoso, realiza una solicitud POST al método instances.reportHostAsFaulty.

    Cuando informas un host defectuoso, puedes especificar varios motivos de falla a la vez. Por ejemplo, para especificar dos motivos de falla, realiza una solicitud de la siguiente manera:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/reportHostAsFaulty
    
    {
      "disruptionSchedule": "IMMEDIATE",
      "faultReasons": [
        {
          "behavior": "FAULT_REASON_1",
          "description": "DESCRIPTION_1"
        },
        {
          "behavior": "FAULT_REASON_2",
          "description": "DESCRIPTION_2"
        }
      ]
    }
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID del proyecto en el que existe la instancia de procesamiento.

    • ZONE: Es la zona en la que existe la instancia de procesamiento.

    • INSTANCE_NAME: Es el nombre de la instancia de procesamiento.

    • FAULT_REASON_1 y FAULT_REASON_2: cada problema de host que encontró tu instancia de procesamiento. Puedes especificar los siguientes valores:

      • PERFORMANCE: Las GPU que están conectadas a la instancia de procesamiento tienen problemas de rendimiento en comparación con otras GPU del clúster, no ves errores de Xid en los registros y Compute Engine no detecta otros patrones de fallas comunes, como la corrupción de datos silenciosa.

      • SILENT_DATA_CORRUPTION: Ves daños en los datos de tu instancia de procesamiento, pero esta sigue en ejecución. La corrupción de datos silenciosa puede deberse a problemas como defectos de las CPUs virtuales, errores de software o problemas del kernel.

      • UNRECOVERABLE_GPU_ERROR: Identificaste un error de GPU irrecuperable con un Xid.

      • BEHAVIOR_UNSPECIFIED: No tienes certeza de cuál es el problema con tu instancia de procesamiento.

    • DESCRIPTION_1 y DESCRIPTION_2: Es una descripción de cada problema del host que especificaste, como la información de Xid o los posibles problemas de rendimiento.

Revisa las operaciones para informar que el host está defectuoso

Después de informar un host defectuoso, Compute Engine inicia una serie de operaciones para marcarlo como defectuoso y lo prepara para su reparación. En específico, durante una operación de informe de host defectuoso, se produce el siguiente proceso:

  1. Marca el host como defectuoso. Compute Engine crea la operación de informar un host defectuoso. Luego, la operación para informar que el host está defectuoso crea una secuencia de operaciones secundarias. Estas operaciones secundarias marcan el host subyacente como defectuoso.

  2. Prepara el host para las reparaciones. Una vez que se completan todas las operaciones secundarias, comienza la operación de informar el host defectuoso. Compute Engine detiene la instancia de procesamiento y, luego, inicia la operación de reparación del host defectuoso. Según el modo operativo de la reserva y la disponibilidad del host, Compute Engine mantiene la instancia de procesamiento detenida o intenta migrarla y reiniciarla.

  3. Finalización del informe y reparación del host. Compute Engine completa la operación de informar que el host está defectuoso y se ejecuta la operación de reparación del host.

Para obtener más información sobre otras operaciones que puedes usar para hacer un seguimiento de las reparaciones, la migración y el reinicio automático, consulta Comportamientos de mantenimiento y reinicio y Supervisa y planifica un evento de mantenimiento del host en la documentación de Compute Engine.

Para hacer un seguimiento del estado de las operaciones de informar un host defectuoso (compute.instances.reportHostAsFaulty) en tu proyecto, selecciona una de las siguientes opciones:

Consola (operaciones de instancia)

  1. En la consola de Google Cloud , ve a la página Operaciones.

    Ir a Operaciones

  2. En la tabla que aparece, busca la instancia de procesamiento que informaste.

  3. En la fila que contiene la instancia de procesamiento, en la columna Estado, puedes ver el estado de la operación de informar un host defectuoso. Cuando se completa la operación, el valor es Listo.

  4. Opcional: Para verificar si Compute Engine reinició la instancia de procesamiento, consulta los detalles de la instancia.

Consola (registros de instancias de procesamiento)

  1. En la consola de Google Cloud , accede a la página Explorador de registros.

    Ve al Explorador de registros

  2. Verifica que el botón de activación Mostrar consulta esté en la posición de activado.

  3. En el editor de consultas, ingresa la consulta siguiente:

    resource.type="gce_instance" AND protoPayload.methodName=~"compute\.instances\.reportHostAsFaulty"
    
  4. Haz clic en Ejecutar consulta. En el panel Resultados de la consulta, se muestran los resultados de la consulta.

gcloud

  1. Para ver el estado de las operaciones de informe de host defectuoso en tu proyecto, usa el comando gcloud compute operations list con la marca --filter establecida en operationType:reportHostAsFaulty:

    gcloud compute operations list --filter="operationType:reportHostAsFaulty"
    
  2. Si deseas ver los detalles de una operación de host defectuosa específica, usa el comando gcloud compute operations describe:

    gcloud compute operations describe OPERATION_NAME \
        --zone="ZONE"
    

    Reemplaza lo siguiente:

    • OPERATION_NAME: Es el nombre de la operación.

    • ZONE: Es la zona en la que existe la operación.

REST

Para ver el estado de las operaciones de informe de host defectuoso en tu proyecto, realiza una solicitud GET al método zoneOperations.list. En la URL de la solicitud, incluye el parámetro de consulta filter configurado como items.operationType:reportHostAsFaulty.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/operations&filter=items.operationType:reportHostAsFaulty

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del proyecto en el que existen las operaciones.

  • ZONE: Es la zona en la que existen las operaciones.

¿Qué sigue?