Signaler un hôte défectueux

Si vous constatez un problème sur une instance A4X Max, A4X, A4, A3 Ultra, A3 Mega ou A3 High (8 GPU) que vous ne parvenez pas à résoudre vous-même, vous pouvez signaler son hôte comme défectueux. Par exemple, un problème de ce type peut se traduire par des performances plus lentes au sein d'un cluster ou par des températures de GPU constamment élevées.

Lorsque vous signalez un hôte comme défectueux, Compute Engine répare automatiquement l'instance de calcul en effectuant une maintenance de l'hôte.

  • Pour les instances A4 et A3 Ultra, Compute Engine tente de migrer l'instance vers un autre hôte au début de la maintenance, si vous disposez d'une capacité réservée inutilisée ou si de la capacité est disponible dans la zone de l'instance. Signaler un hôte comme défectueux vous aide à minimiser les temps d'arrêt de votre charge de travail.
  • Pour les instances A3 Mega et A3 High, Compute Engine arrête l'instance, effectue les réparations nécessaires sur l'hôte, puis redémarre l'instance sur le même hôte.

Ce document explique comment signaler et réparer les instances hôtes défectueuses qui font partie d'un cluster Slurm ou d'autres clusters basés sur des instances de calcul. Pour signaler des hôtes défectueux dans un cluster Google Kubernetes Engine (GKE), consultez Signaler des hôtes défectueux via GKE.

Limites

Lorsque vous signalez un hôte défectueux, les limites suivantes s'appliquent :

  • Vous ne pouvez signaler un hôte défectueux que si l'instance de calcul qui s'exécute sur l'hôte remplit toutes les conditions suivantes :

    • L'instance de calcul est en cours d'exécution.

    • L'instance de calcul utilise un type de machine A4X Max, A4X, A4, A3 Ultra, A3 Mega ou A3 High (8 GPU).

    • L'instance de calcul utilise le modèle de provisionnement lié à une réservation.

  • Si vous supprimez une instance de calcul alors que l'opération reportHostAsFaulty est en cours, l'opération reportHostAsFaulty échoue.

  • Google Cloud s'efforce de répondre à toutes vos demandes de signalement d'hôte défectueux. Toutefois, en raison de contraintes de capacité ou de limites de débit, il est possible qu'une requête ne soit pas toujours traitée.

Avant de commencer

Select the tab for how you plan to use the samples on this page:

Console

When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

gcloud

In the Google Cloud console, activate Cloud Shell.

Activate Cloud Shell

At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

REST

Pour utiliser les exemples API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à la gcloud CLI.

    Install the Google Cloud CLI. After installation, initialize the Google Cloud CLI by running the following command:

    gcloud init

    If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud .

Rôles requis

Pour obtenir les autorisations nécessaires pour signaler un hôte défectueux, demandez à votre administrateur de vous accorder les rôles IAM suivants :

Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Ces rôles prédéfinis contiennent les autorisations requises pour signaler un hôte défectueux. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour signaler un hôte défectueux :

  • Pour créer un rapport d'hôte défectueux : compute.instances.update sur l'instance de calcul
  • Pour afficher la liste des opérations à l'aide de Logging : logging.operations.list sur le projet
  • Pour afficher les détails d'une opération à l'aide de Logging : logging.operations.get sur le projet
  • Pour afficher la liste des opérations dans Compute Engine : compute.zoneOperations.list sur le projet
  • Pour afficher les détails d'une opération dans Compute Engine : compute.zoneOperations.describe sur le projet

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Comprendre la procédure de signalement d'un hôte défectueux

Après avoir signalé un hôte défectueux pour une instance de calcul, le délai de redémarrage de l'instance de calcul varie en fonction du mode opérationnel de la réservation spécifié dans la réservation utilisée par l'instance de calcul. Pour vérifier le mode opérationnel d'une réservation, affichez le champ reservationOperationalMode dans la réservation. Le tableau suivant récapitule le processus d'hôte défectueux pour les deux modes opérationnels de réservation disponibles : mode "Toute la capacité" et mode géré.
Mode "Toute la capacité" (ALL_CAPACITY) Mode géré (HIGHLY_AVAILABLE_CAPACITY)
Types de machines compatibles A4X Max et A4X A4, A3 Ultra, A3 Mega et A3 High
Limitation du débit de l'API de signalement d'hôtes défectueux Aucune limite de débit ne s'applique. Les appels à l'API peuvent être soumis à une limite de fréquence.
Processus de signalement d'un hôte défectueux

Lorsque vous signalez un hôte défectueux pour une instance de calcul qui s'exécute en mode "Toute capacité", les événements suivants se produisent :

  1. Signalez l'hôte défectueux : l'instance reste à l'état RUNNING pendant toute l'opération de signalement de l'hôte défectueux, qui prend généralement 10 à 12 minutes. Pour examiner l'état de l'opération, consultez Examiner les opérations d'hôte défectueux signalées dans ce document.
  2. Réparer l'hôte : une fois l'opération de signalement de l'hôte défaillant terminée, l'opération de réparation de l'hôte commence dans la minute qui suit.

    Lorsque l'opération de réparation de l'hôte démarre, l'instance s'arrête et son état change en fonction du paramètre de redémarrage automatique (automaticRestart) spécifié pour l'instance :

    • Si le redémarrage automatique est activé pour l'instance, l'état de l'instance passe à REPAIRING. L'instance redémarre automatiquement lorsque son hôte est opérationnel, sauf si vous l'arrêtez avant.
    • Si le redémarrage automatique est désactivé pour l'instance, son état passe à TERMINATED. Vous devez redémarrer manuellement l'instance une fois que son hôte est sain.

    La réparation de l'hôte défectueux peut prendre entre 3 et 14 jours, voire plus parfois.

  3. Redémarrez l'instance : une fois l'opération de réparation de l'hôte terminée (généralement entre 3 et 14 jours), l'une des situations suivantes se produit :

    • Si l'instance est à l'état REPAIRING et que les ressources sont disponibles une fois la réparation terminée, Compute Engine redémarre automatiquement l'instance sur l'hôte réparé.
    • Dans le cas contraire, si l'instance est à l'état TERMINATED ou si les ressources ne sont pas disponibles une fois la réparation terminée, l'état de l'instance reste à TERMINATED ou passe à TERMINATED. Vous devez redémarrer manuellement l'instance lorsque vous souhaitez qu'elle s'exécute. Toutefois, le redémarrage de l'instance peut échouer si les ressources ne sont pas disponibles au moment du redémarrage. Par exemple, cela peut se produire si d'autres instances utilisent déjà l'hôte réparé.

Lorsque vous signalez un hôte défectueux pour une instance de calcul qui s'exécute en mode géré, les événements suivants se produisent :

  1. Signalez l'hôte défectueux : l'instance reste à l'état RUNNING pendant toute l'opération de signalement de l'hôte défectueux, qui prend généralement 10 à 12 minutes. Pour examiner l'état de l'opération, consultez Examiner les opérations d'hôte défectueux signalées dans ce document.
  2. Démarrer la réparation de l'hôte : une fois l'opération de signalement de l'hôte défaillant terminée, l'opération de réparation de l'hôte démarre dans la minute qui suit.

    Lorsque l'opération de réparation de l'hôte démarre, l'instance s'arrête et son état change en fonction du paramètre de redémarrage automatique (automaticRestart) spécifié pour l'instance :

    • Si le redémarrage automatique est activé pour l'instance, l'état de l'instance passe à REPAIRING. L'instance redémarre automatiquement lorsque son hôte est opérationnel, sauf si vous l'arrêtez avant.
    • Si le redémarrage automatique est désactivé pour l'instance, son état passe à TERMINATED. Vous devez redémarrer manuellement l'instance une fois que son hôte est sain.

    La réparation de l'hôte défectueux peut prendre entre 3 et 14 jours, voire plus parfois.

  3. Migrer et redémarrer l'instance : une fois l'opération de réparation de l'hôte démarrée (généralement 10 à 12 minutes), Compute Engine tente de réserver un hôte supplémentaire pour remplacer l'hôte défectueux signalé dans votre capacité réservée. Si Compute Engine trouve un hôte sain (s'il remplace l'hôte défectueux ou trouve un hôte sain correspondant dans votre capacité réservée), il migre l'instance vers cet hôte. Le redémarrage de l'instance s'effectue ensuite de l'une des manières suivantes :

    • Si l'instance est à l'état REPAIRING et que des ressources sont disponibles avant ou au moment de la réparation, Compute Engine redémarre automatiquement l'instance sur un hôte sain.
    • Sinon, si l'instance est à l'état TERMINATED ou si les ressources ne sont pas disponibles avant ou à la fin de la réparation, l'état de l'instance reste à TERMINATED ou passe à TERMINATED. Vous devez redémarrer manuellement l'instance lorsque vous souhaitez qu'elle s'exécute. Toutefois, le redémarrage de l'instance peut échouer si les ressources ne sont pas disponibles au moment du redémarrage. Par exemple, cela peut se produire si d'autres instances utilisent déjà l'hôte réparé.

Signaler un hôte défectueux

Pour signaler un hôte défectueux, procédez comme suit :

  1. Examinez l'hôte sur lequel votre instance de calcul s'exécute.

    Pour savoir comment procéder, consultez Afficher la topologie d'une instance de calcul.

  2. Facultatif : sauvegardez les données des disques SSD locaux. Lorsque l'instance s'arrête, Compute Engine supprime automatiquement les données de tous les disques SSD locaux qui y sont associés. Vous ne pouvez pas récupérer les données des disques SSD locaux une fois que Compute Engine les a supprimées.

    Pour savoir comment conserver les données des disques SSD locaux, consultez Sauvegarde des données des disques SSD locaux.

  3. Signalez l'hôte défectueux. Pour signaler un hôte défectueux, sélectionnez l'une des options suivantes. L'opération de réparation de l'hôte commence immédiatement, dans la minute qui suit la fin de l'opération de signalement de l'hôte défectueux. Si l'instance ne répond plus après le début de l'opération de signalement d'un hôte défectueux, nous vous recommandons d'attendre au moins 15 minutes, puis de redémarrer l'instance de calcul.

    gcloud

    Pour signaler un hôte défectueux, utilisez la commande gcloud compute instances report-host-as-faulty suivante :

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

    Remplacez les éléments suivants :

    • INSTANCE_NAME : nom de l'instance de calcul.

    • FAULT_REASON : liste des problèmes d'hôte rencontrés par votre instance de calcul, séparés par des virgules (par exemple, ISSUE_1,ISSUE_2). Vous pouvez spécifier les valeurs suivantes :

      • PERFORMANCE : les GPU associés à l'instance de calcul présentent des problèmes de performances par rapport aux autres GPU du cluster. Vous ne voyez aucune erreur XID dans les journaux et Compute Engine ne détecte aucun autre schéma d'échec habituel, tel qu'une corruption silencieuse des données.

      • SILENT_DATA_CORRUPTION : vous constatez une corruption des données dans votre instance de calcul, mais celle-ci continue de s'exécuter. La corruption silencieuse des données peut être due à des problèmes tels que des défauts de processeurs virtuels, des bugs logiciels ou des problèmes de noyau.

      • UNRECOVERABLE_GPU_ERROR : vous avez identifié une erreur de GPU irrécupérable avec un XID.

      • BEHAVIOR_UNSPECIFIED : vous n'êtes pas sûr du problème lié à votre instance de calcul.

    • DESCRIPTION : description du problème affectant votre instance de calcul, comme des informations XID ou des problèmes de performances suspectés.

    • ZONE : zone où se trouve l'instance de calcul.

    REST

    Pour signaler un hôte défectueux, envoyez la requête POST suivante à la méthode instances.reportHostAsFaulty.

    Lorsque vous signalez un hôte défectueux, vous pouvez spécifier plusieurs raisons à la fois. Par exemple, pour spécifier deux raisons d'erreur, envoyez une requête comme suit :

    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"
        }
      ]
    }
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet dans lequel se trouve l'instance de calcul.

    • ZONE : zone où se trouve l'instance de calcul.

    • INSTANCE_NAME : nom de l'instance de calcul.

    • FAULT_REASON_1 et FAULT_REASON_2 : chaque problème d'hôte rencontré par votre instance de calcul. Vous pouvez spécifier les valeurs suivantes :

      • PERFORMANCE : les GPU associés à l'instance de calcul présentent des problèmes de performances par rapport aux autres GPU du cluster. Vous ne voyez aucune erreur XID dans les journaux et Compute Engine ne détecte aucun autre schéma d'échec habituel, tel qu'une corruption silencieuse des données.

      • SILENT_DATA_CORRUPTION : vous constatez une corruption des données dans votre instance de calcul, mais celle-ci continue de s'exécuter. La corruption silencieuse des données peut être due à des problèmes tels que des défauts de processeurs virtuels, des bugs logiciels ou des problèmes de noyau.

      • UNRECOVERABLE_GPU_ERROR : vous avez identifié une erreur de GPU irrécupérable avec un XID.

      • BEHAVIOR_UNSPECIFIED : vous n'êtes pas sûr du problème lié à votre instance de calcul.

    • DESCRIPTION_1 et DESCRIPTION_2 : description de chaque problème d'hôte que vous avez spécifié, comme des informations XID ou des problèmes de performances suspectés.

Examiner les opérations d'hôte défectueux

Une fois que vous avez signalé un hôte défectueux, Compute Engine lance une série d'opérations pour le marquer comme défectueux et le préparer à la réparation. Plus précisément, lors d'une opération de signalement d'un hôte défectueux, le processus suivant se déroule :

  1. Marquez l'hôte comme défectueux. Compute Engine crée l'opération de signalement d'hôte défectueux. L'opération "Signaler un hôte défectueux" crée ensuite une séquence de sous-opérations. Ces sous-opérations marquent l'hôte sous-jacent comme défectueux.

  2. Préparez l'hôte pour la réparation. Une fois toutes les sous-opérations terminées, l'opération de signalement d'un hôte défaillant démarre. Compute Engine arrête l'instance de calcul et lance l'opération de réparation de l'hôte défectueux. En fonction du mode opérationnel de la réservation spécifié dans la réservation utilisée par l'instance de calcul, et si des hôtes sains sont disponibles, Compute Engine maintient l'instance de calcul à l'arrêt ou tente de la migrer et de la redémarrer automatiquement.

  3. Remplissez le rapport et réparez l'hôte. Compute Engine termine l'opération de signalement d'un hôte défectueux, et l'opération de réparation de l'hôte s'exécute.

Pour suivre l'état des opérations de signalement d'un hôte défectueux (compute.instances.reportHostAsFaulty) dans votre projet, sélectionnez l'une des options suivantes. Pour en savoir plus sur les autres opérations que vous pouvez utiliser pour suivre les réparations, les migrations et les redémarrages automatiques, consultez Comportements de maintenance et de redémarrage et Surveiller et planifier un événement de maintenance de l'hôte dans la documentation Compute Engine.

Console (opérations sur les instances)

  1. Dans la console Google Cloud , accédez à la page Opérations.

    Accéder à la page Opérations

  2. Dans le tableau qui s'affiche, recherchez l'instance de calcul que vous avez signalée.

  3. Dans la ligne contenant l'instance de calcul, dans la colonne État, vous pouvez voir l'état de l'opération de signalement d'un hôte défectueux. Lorsque l'opération est terminée, la valeur est Done.

  4. Facultatif : Pour vérifier si Compute Engine a redémarré l'instance de calcul, affichez les détails de l'instance.

Console (journaux d'instance de calcul)

  1. Dans la console Google Cloud , accédez à la page Explorateur de journaux.

    Accéder à l'explorateur de journaux

  2. Vérifiez que l'option Afficher la requête est activée.

  3. Dans Query editor (éditeur de requête), saisissez la requête suivante :

    resource.type="gce_instance" AND protoPayload.methodName=~"compute\.instances\.reportHostAsFaulty"
    
  4. Cliquez sur Exécuter la requête. Le volet Résultats de la requête affiche les résultats de la requête.

gcloud

  1. Pour afficher l'état des opérations de signalement d'hôte défectueux dans votre projet, utilisez la commande gcloud compute operations list avec l'option --filter définie sur operationType:reportHostAsFaulty :

    gcloud compute operations list --filter="operationType:reportHostAsFaulty"
    
  2. Si vous souhaitez afficher les détails d'une opération d'hôte défectueux spécifique, utilisez la commande gcloud compute operations describe :

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

    Remplacez les éléments suivants :

    • OPERATION_NAME : nom de l'opération.

    • ZONE : zone où se trouve l'opération.

REST

Pour afficher l'état des opérations de signalement d'hôte défectueux dans votre projet, envoyez une requête GET à la méthode zoneOperations.list. Dans l'URL de la requête, incluez le paramètre de requête filter défini sur items.operationType:reportHostAsFaulty.

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

Remplacez les éléments suivants :

  • PROJECT_ID : nom de l'opération.

  • ZONE : zone où se trouvent les opérations.

Étape suivante