Signaler un hôte défectueux

Si vous rencontrez des problèmes sur une VM H4D réservée que vous ne pouvez pas résoudre autrement (par exemple, des erreurs persistantes avec le périphérique RDMA), nous vous recommandons de signaler son hôte comme défectueux. Lorsque vous signalez un hôte comme défectueux, Compute Engine le signale comme tel, puis répare automatiquement la VM en exécutant la maintenance de l'hôte. Pour les VM H4D, Compute Engine tente de migrer la VM vers un autre hôte lorsque la maintenance commence, ce qui peut aider à minimiser le temps d'arrêt de votre charge de travail.

Ce document explique comment signaler et réparer les hôtes défectueux pour les instances de machines virtuelles (VM) qui font partie de clusters basés sur des VM. Pour les clusters 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 la VM qui s'exécute sur l'hôte remplit toutes les conditions suivantes :

    • La VM est en cours d'exécution.

    • La VM utilise un type de machine H4D.

    • La VM utilise le modèle de provisionnement lié à la réservation.

  • 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 sur un hôte défectueux : compute.instances.update sur la VM
  • 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 VM H4D, le moment où la VM H4D redémarre varie en fonction du mode opérationnel de la réservation que vous avez utilisée pour créer la VM. Pour vérifier le mode opérationnel d'une réservation, affichez le champ reservationOperationalMode dans la réservation.

Mode géré (HIGHLY_AVAILABLE_CAPACITY)
Types de machines compatibles H4D
Limitation du débit de l'API de signalement d'hôte défectueux 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 VM H4D exécutée en mode géré, les opérations suivantes se produisent :

  1. Signaler l'hôte défectueux : la VM reste à l'état RUNNING pendant toute l'opération de signalement, 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. Commencez à 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, la VM s'arrête et son état change en fonction du paramètre Redémarrage automatique (automaticRestart) spécifié pour la VM :

    • Si le redémarrage automatique est activé pour la VM, son état passe à REPAIRING. La VM 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 la VM, son état passe à TERMINATED. Vous devez redémarrer manuellement la VM une fois que son hôte est opérationnel.

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

  3. Migrer et redémarrer la VM : 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 que vous avez 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 la VM vers cet hôte. Le redémarrage de la VM s'effectue ensuite de l'une des manières suivantes :
    • Si la VM est à l'état REPAIRING et que des ressources sont disponibles avant ou au moment de la réparation, Compute Engine redémarre automatiquement la VM sur un hôte opérationnel.
    • Sinon, si la VM est à l'état TERMINATED ou si les ressources ne sont pas disponibles avant ou après la réparation, l'état de la VM reste ou passe à TERMINATED. Vous devez redémarrer manuellement la VM lorsque vous souhaitez qu'elle s'exécute. Toutefois, le redémarrage de la VM peut échouer si des ressources ne sont pas disponibles au moment du redémarrage. Par exemple, cela peut se produire si d'autres VM 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 VM s'exécute.

    Pour obtenir des instructions, consultez Afficher la topologie du cluster H4D.

  2. Facultatif : sauvegardez les données des disques SSD locaux. Lorsque la VM s'arrête, Compute Engine supprime automatiquement les données de tous les disques SSD locaux associés à la VM. 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 la VM ne répond plus après le démarrage de l'opération de signalement d'hôte défectueux, nous vous recommandons de la redémarrer après avoir attendu au moins 15 minutes.

    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 VM_NAME \
        --async \
        --disruption-schedule=IMMEDIATE \
        --fault-reasons=behavior=FAULT_REASON,description=DESCRIPTION \
        --zone=ZONE
    

    Remplacez les éléments suivants :

    • VM_NAME : Nom de la VM.

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

      • PERFORMANCE : vous constatez une dégradation des performances de l'opération réseau du processeur ou de Cloud RDMA, des échecs de l'interface réseau IRDMA ou l'absence du périphérique réseau IRDMA.

      • SILENT_DATA_CORRUPTION : vous constatez une corruption des données dans votre VM, 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 processeur virtuel, des bugs logiciels ou des problèmes de noyau.

      • BEHAVIOR_UNSPECIFIED : vous n'êtes pas sûr du problème qui affecte votre VM ou le problème n'est pas couvert par les autres options.

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

    • ZONE : zone où se trouve la VM.

    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 de défaillance à la fois. Par exemple, pour spécifier deux motifs de défaillance, envoyez une requête comme suit :

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_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 la VM.

    • ZONE : zone où se trouve la VM.

    • VM_NAME : Nom de la VM.

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

      • PERFORMANCE : vous constatez une dégradation des performances du CPU ou de l'opération réseau RDMA, des défaillances de l'appareil RDMA ou l'absence de l'appareil RDMA.

      • SILENT_DATA_CORRUPTION : vous constatez une corruption des données dans votre VM, 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.

      • BEHAVIOR_UNSPECIFIED : vous n'êtes pas sûr du problème rencontré par votre VM.

    • 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 de signalement d'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 de l'hôte défaillant démarre. Compute Engine arrête la VM 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 la VM, et si des hôtes sains sont disponibles, Compute Engine maintient la VM à 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 de VM)

  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 la VM que vous avez signalée.

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

  4. Facultatif : Pour vérifier si Compute Engine a redémarré la VM, affichez les détails de la VM.

Console (journaux de VM)

  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:compute.instances.reportHostAsFaulty :

    gcloud compute operations list --filter="operationType:compute.instances.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:compute.instances.reportHostAsFaulty.

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

Remplacez les éléments suivants :

  • PROJECT_ID : nom de l'opération.

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

Étape suivante