Gérer les événements hôtes sur les instances de calcul

Ce document explique comment utiliser les fonctionnalités de maintenance de l'hôte disponibles dans la suite Cluster Director. Il explique comment surveiller et planifier la maintenance programmée sur les instances Compute Engine, et comment l'effectuer. Pour gérer la maintenance sur vos blocs de capacité réservés, que des instances de calcul y soient exécutées ou non, consultez plutôt Gérer les événements hôtes pour plusieurs réservations.

En gérant de manière proactive les événements de maintenance de l'hôte à venir sur vos instances, vous pouvez minimiser les interruptions et maintenir des performances optimales.

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.

    Installez la Google Cloud CLI. Une fois que la Google Cloud CLI est installée, initialisez-la en exécutant la commande suivante :

    gcloud init

    Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

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 gérer les événements de maintenance de l'hôte sur les instances de calcul, 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 gérer les événements de maintenance de l'hôte sur les instances de calcul. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour gérer les événements de maintenance de l'hôte sur les instances de calcul :

  • Pour afficher les détails d'une instance : compute.instances.get sur le projet

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

Présentation

Pour optimiser la maintenance de vos instances de calcul, procédez comme suit :

  1. Comprendre et gérer la maintenance de l'hôte Découvrez la fréquence et le comportement de maintenance de vos instances en fonction de leur série de machines, et apprenez à préparer votre charge de travail pour gérer la maintenance de l'hôte. Ces informations vous aident à minimiser les perturbations et à éviter la perte de données.

  2. Configurez des alertes de notification. Créez des alertes basées sur les journaux pour recevoir des notifications lorsque la maintenance de vos instances est planifiée, commencée ou terminée. Cette approche vous aide à planifier vos activités de manière proactive et à éviter les temps d'arrêt inattendus.

  3. Gérer la maintenance sur plusieurs instances Vérifiez si une opération de maintenance est prévue pour vos instances. Si nécessaire, vous pouvez démarrer manuellement la maintenance de vos instances. Ce processus vous aide à accroître la résilience de vos charges de travail pour héberger des événements, éviter les temps d'arrêt et maximiser la disponibilité de vos applications.

Comprendre et gérer la maintenance de l'hôte

Au cours du cycle de vie d'une instance Compute Engine, la machine hôte sur laquelle votre instance s'exécute subit plusieurs événements hôtes. Un événement hôte peut inclure les éléments suivants :

  • Maintenance planifiée de l'infrastructure Compute Engine.
  • Maintenance d'urgence non planifiée pour réparer l'infrastructure Compute Engine après une erreur d'hôte ou un rapport d'hôte défectueux.

Le tableau suivant décrit les fonctionnalités de maintenance de l'hôte pour les types de machines optimisés pour les accélérateurs :

Type de machine Fréquence typique des événements de maintenance planifiée Comportement en cas de maintenance Notification avancée pour la maintenance planifiée Notifications avancées pour les opérations de maintenance d'urgence Maintenance à la demande Simuler une maintenance
A4X Max et A4X 90 jours minimum L'événement se termine par la persistance des données SSD locales. 90 jours Si vous activez les notifications d'urgence, la durée est de sept jours. Sinon, quelques heures. Oui Non
A4 90 jours minimum L'événement se termine par la persistance des données SSD locales. 90 jours Si vous activez les notifications d'urgence, la durée est de sept jours. Sinon, quelques heures. Oui Non
A3 Ultra 90 jours minimum L'événement se termine par la persistance des données SSD locales. 90 jours Si vous activez les notifications d'urgence, la durée est de sept jours. Sinon, quelques heures. Oui Non
A3 Mega et A3 High
(8 GPU)
90 jours minimum L'événement se termine par la persistance des données SSD locales. 90 jours Si vous activez les notifications d'urgence, la durée est de sept jours. Sinon, quelques heures. Oui Oui

Les fréquences de maintenance indiquées dans le tableau précédent sont approximatives et ne sont pas garanties. Compute Engine peut occasionnellement effectuer des opérations de maintenance plus fréquentes.

Pour éviter de perdre des données ou de la progression, configurez vos charges de travail pour qu'elles gèrent la maintenance de l'hôte. Par exemple, utilisez les techniques suivantes pour enregistrer vos données temporaires et votre progression avant l'arrêt de votre charge de travail :

Configurer des alertes de notification pour les instances de calcul

Vous pouvez recevoir des notifications concernant les événements de maintenance planifiés, en cours ou terminés pour vos instances en créant des règles d'alerte basées sur les journaux.

Pour créer une alerte pour les événements de maintenance de vos instances, suivez la procédure ci-dessous. Répétez cette procédure pour chaque alerte que vous souhaitez créer.

  1. Dans la console Google Cloud , accédez à la pageExplorateur de journaux :

    Accéder à l'explorateur de journaux

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Logging.

  2. Cliquez sur le bouton Afficher la requête pour l'activer.

  3. Dans le volet Requête, créez l'une des requêtes suivantes. Ces requêtes filtrent les entrées de journaux pour identifier des événements de maintenance spécifiques. Si vous souhaitez utiliser plusieurs requêtes, répétez cette procédure pour créer une alerte unique pour chaque requête.

    • Pour recevoir des alertes lorsqu'une opération de maintenance est planifiée pour une instance :

      protoPayload.methodName="compute.instances.upcomingMaintenance" severity>=DEFAULT
      protoPayload.status.message =~ "scheduled"
      
    • Pour recevoir des alertes lorsque l'intervalle de maintenance d'une instance a commencé :

      protoPayload.methodName="compute.instances.upcomingMaintenance" severity>=DEFAULT
      protoPayload.status.message =~ "ongoing"
      
    • Pour recevoir des alertes lorsque la maintenance d'une instance a commencé :

      protoPayload.methodName="compute.instance.terminateOnHostMaintenance" severity>=DEFAULT
      
    • Pour recevoir des alertes lorsque la maintenance d'une instance est terminée :

      protoPayload.methodName="compute.instances.upcomingMaintenance" severity>=DEFAULT
      protoPayload.status.message =~ "completed"
      
  4. Pour valider la requête, cliquez sur Exécuter la requête. Si la requête est valide, le volet Résultats de la requête affiche les entrées de journal correspondant à la requête.

  5. Dans la barre d'outils des résultats de la requête, cliquez sur la liste Actions, puis sélectionnez Créer une alerte de journal. Le volet Créer une règle d'alerte basée sur les journaux s'affiche.

  6. Dans la section Détails de l'alerte, procédez comme suit :

    1. Dans le champ Nom de la règle d'alerte, saisissez un nom pour la règle.

    2. Dans la liste Niveau de gravité de la règle, sélectionnez Avertissement (ou un niveau de gravité supérieur).

    3. Cliquez sur Suivant.

  7. Dans la section Sélectionner les journaux à inclure dans l'alerte, cliquez sur Suivant.

  8. Dans la section Définir la fréquence des notifications et le délai pour la fermeture automatique, spécifiez les éléments suivants :

    1. Dans la liste Délai entre les notifications, sélectionnez la fréquence à laquelle vous souhaitez recevoir des notifications.

    2. Dans la liste Durée de fermeture automatique des incidents, sélectionnez la durée au bout de laquelle Cloud Logging cesse d'envoyer des notifications et ferme automatiquement l'incident.

    3. Cliquez sur Suivant.

  9. Dans la section Qui doit être informé ?, spécifiez un canal de notification pour la journalisation afin d'envoyer des notifications.

  10. Cliquez sur Enregistrer.

Pour afficher des exemples de notifications d'événements de maintenance dans l'explorateur de journaux, consultez Exemples de notifications de maintenance dans la documentation Compute Engine.

Gérer la maintenance sur les instances de calcul

Vous pouvez afficher et contrôler la maintenance de vos instances en procédant de l'une des manières suivantes :

Afficher l'état de maintenance des instances de calcul

Vous pouvez afficher l'état et l'heure prévue de la prochaine maintenance de vos instances en vérifiant la valeur du champ upcomingMaintenance dans les métadonnées de l'instance. Si une instance ne contient pas le champ upcomingMaintenance, aucun événement de maintenance de l'hôte n'est planifié pour l'instance. Pour en savoir plus sur les champs de upcomingMaintenance, consultez Définitions de l'état de maintenance dans la documentation Compute Engine.

De plus, si une opération de maintenance est programmée pour une instance, le champ upcomingGroupMaintenance contient le champ maintenanceReasons. Ce champ décrit la raison pour laquelle une maintenance a été planifiée pour votre instance, comme indiqué dans le tableau suivant :

Type de maintenance Motif de la maintenance État de l'instance de calcul
Maintenance planifiée après signalement d'un hôte défectueux FAILURE_GPU_CUSTOMER_REPORTED Ne s'applique qu'aux instances qui s'exécutent sur l'hôte que vous avez signalé comme défectueux.
Maintenance planifiée pour la maintenance régulière
  • PLANNED_UPDATE : maintenance planifiée de l'infrastructure
  • PLANNED_NETWORK_UPDATE : maintenance réseau planifiée
S'applique aux instances en cours d'exécution, arrêtées ou suspendues.
Maintenance d'urgence non planifiée
  • FAILURE_DISK : maintenance non planifiée prévue en raison d'une erreur avec un disque associé à une instance.
  • FAILURE_GPU : maintenance non planifiée prévue en raison d'une erreur liée au GPU.
  • FAILURE_GPU_TEMPERATURE : maintenance non planifiée prévue en raison d'une erreur liée au GPU après que celui-ci a atteint une température élevée.
  • FAILURE_GPU_XID : maintenance non planifiée après avoir reçu un message Xid en raison d'une erreur liée au GPU.
  • FAILURE_INFRA : maintenance non planifiée prévue en raison d'une erreur liée à l'infrastructure.
  • FAILURE_INTERFACE : maintenance non planifiée prévue en raison d'une erreur avec la carte d'interface réseau.
  • FAILURE_MEMORY : maintenance non planifiée prévue en raison d'une erreur de mémoire d'une instance.
  • FAILURE_NETWORK : maintenance non planifiée prévue en raison d'une erreur avec le réseau.
  • FAILURE_NVLINK : maintenance non planifiée prévue en raison d'une erreur avec NVLink.
Ne s'applique qu'aux instances en cours d'exécution.

Pour afficher le champ maintenanceReasons dans une instance, vous devez utiliser la gcloud CLI ou l'API REST. Pour afficher l'état de maintenance de plusieurs instances de calcul simultanément, vous devez utiliser la console Google Cloud ou l'API REST. Sinon, sélectionnez l'une des options suivantes :

Console

  1. Dans la console Google Cloud , accédez à la page Instances de VM.

    Accéder à la page Instances de VM

  2. Dans la colonne État de maintenance, Compute Engine affiche l'état de maintenance de vos instances. Si cette colonne n'apparaît pas dans le tableau Instances de VM, cliquez sur view_column Options d'affichage des colonnes, cochez la case État de maintenance, puis cliquez sur OK.

gcloud

Pour afficher l'état de maintenance d'une instance, utilisez la commande gcloud compute instances describe avec l'option --flatten=resourceStatus.upcomingMaintenance :

gcloud compute instances describe INSTANCE_NAME \
    --flatten=resourceStatus.upcomingMaintenance \
    --zone=ZONE

Remplacez les éléments suivants :

  • INSTANCE_NAME : nom de l'instance

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

Le résultat ressemble à l'un des exemples suivants :

  • Si un événement de maintenance de l'hôte est prévu pour votre instance, le résultat est semblable à ce qui suit :

    ---
    canReschedule: true
    latestWindowStartTime: '2025-11-01T19:00:00Z'
    maintenanceReasons:
    - 'PLANNED_UPDATE'
    - 'PLANNED_NETWORK_UPDATE'
    maintenanceStatus: 'PENDING'
    type: 'SCHEDULED'
    windowEndTime: '2025-11-01T22:00:00Z'
    windowStartTime: '2025-11-01T19:00:00Z'
    
  • Si aucun événement de maintenance de l'hôte n'est prévu pour votre instance, le résultat ressemble à ce qui suit :

    ---
    null
    

REST

Pour afficher l'état de maintenance de vos instances, envoyez l'une des requêtes GET suivantes. Lorsque vous envoyez une requête, vous devez inclure le paramètre de requête fields pour n'afficher que le nom, le type de machine et la maintenance à venir d'une instance. Vous devez également inclure le paramètre de requête filter pour filtrer les instances uniquement par type de machine spécifique.

  • Pour afficher les instances dans toutes les zones : méthode instances.aggregatedList.

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/instances?fields=items.name,items.machineType,items.upcomingMaintenance&filter=machineType%3AMACHINE_TYPE
    
  • Pour afficher les instances d'une zone spécifique : méthode instances.list.

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances?fields=items.name,items.machineType,items.upcomingMaintenance&filter=machineType%3AMACHINE_TYPE
    

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel vous avez créé les instances.

  • ZONE : zone où se trouvent les instances.

  • MACHINE_TYPE : type de machine selon lequel vous souhaitez filtrer les instances.

Si un événement de maintenance de l'hôte est planifié pour une instance, celle-ci contient le champ upcomingMaintenance :

{
  "items": [
    {
      "name": "vm-01",
      "machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/europe-west1-b/machineTypes/a3-ultragpu-8g",
      "resourceStatus": {
        "upcomingMaintenance": {
          "canReschedule": true,
          "latestWindowStartTime": "2024-11-01T19:00:00Z",
          "maintenanceStatus": "PENDING",
          "maintenanceReasons": [
            "PLANNED_UPDATE",
            "PLANNED_NETWORK_UPDATE"
          ],
          "type": "SCHEDULED",
          "windowEndTime": "2024-11-01T22:00:00Z",
          "windowStartTime": "2024-11-01T19:00:00Z"
        }
      }
    },
    ...
  ]
}

Vous pouvez également affiner une liste d'instances en définissant le paramètre de requête filter sur une autre expression de filtre.

Serveur de métadonnées

Pour afficher l'état de maintenance d'une instance, procédez comme suit :

  1. Si ce n'est pas déjà fait, connectez-vous à votre instance Linux ou Windows.

  2. Pour afficher le calendrier de maintenance à venir, interrogez le point de terminaison upcoming-maintenance :

    curl http://metadata.google.internal/computeMetadata/v1/instance/upcoming-maintenance?alt=json -H "Metadata-Flavor: Google"
    

    Si un événement de maintenance de l'hôte est prévu pour votre instance, le résultat est semblable à ce qui suit :

    "Upcoming maintenance": {
      "can_reschedule": "true",
      "latest_window_start_time": "2024-12-01T19:00:01Z",
      "maintenance_reasons": [
        "PLANNED_UPDATE",
        "PLANNED_NETWORK_UPDATE"
      ],
      "maintenance_status": "PENDING",
      "type": "SCHEDULED",
      "window_end_time": "2024-12-01T21:00:01Z",
      "window_start_time": "2024-12-01T19:00:01Z"
    }
    

    Si aucun événement de maintenance de l'hôte n'est planifié, le résultat est semblable à ce qui suit :

    { }
    
  3. Pour afficher l'état de maintenance actuel d'une VM, interrogez le point de terminaison maintenance-event :

    curl http://metadata.google.internal/computeMetadata/v1/instance/maintenance-event -H "Metadata-Flavor: Google"
    

    Pour en savoir plus sur les résultats de ces requêtes, consultez Examiner les résultats.

Démarrer manuellement la maintenance sur les instances de calcul

Vous pouvez démarrer manuellement la maintenance de vos instances au lieu d'attendre l'heure programmée.

En fonction de l'état de maintenance d'une instance, voici ce qui se produit :

État de maintenance Description Ce que vous voyez
Planifié Compute Engine a planifié une maintenance pour l'instance. Vous pouvez démarrer manuellement la maintenance avant l'heure prévue.
  • Dans la console Google Cloud , l'état de maintenance s'affiche comme suit : Prêt à l'exécution – s'exécutera sur DATE.
  • Dans gcloud CLI ou l'API REST, Compute Engine définit le champ maintenanceStatus sur PENDING.
En cours Une opération de maintenance est en cours. Vous ne pouvez pas la reprogrammer.
  • Dans la console Google Cloud , l'état de maintenance est En cours d'exécution.
  • Dans gcloud CLI ou l'API REST, Compute Engine définit le champ maintenanceStatus sur ONGOING.
Terminé La maintenance est terminée. Compute Engine a supprimé toutes les notifications de maintenance de l'instance.
  • Dans la console Google Cloud , l'état de maintenance est À jour.
  • Dans gcloud CLI ou l'API REST, Compute Engine définit le champ maintenanceStatus sur COMPLETE.

Vous pouvez démarrer manuellement la maintenance pour plusieurs instances simultanément ou pour des instances individuelles. Pour plusieurs instances, utilisez la console Google Cloud ou, pour les instances situées dans la même zone, la gcloud CLI. Pour les instances individuelles, sélectionnez l'une des options suivantes :

Console

  1. Dans la console Google Cloud , accédez à la page Instances de VM.

    Accéder à la page Instances de VM

  2. Sélectionnez les lignes correspondant aux instances pour lesquelles vous souhaitez démarrer la maintenance.

  3. Cliquez sur Exécuter la maintenance.

  4. Pour confirmer, cliquez sur Exécuter la maintenance.

gcloud

Pour démarrer manuellement la maintenance d'une ou de plusieurs instances dans la même zone, utilisez la commande gcloud compute instances perform-maintenance :

gcloud compute instances perform-maintenance INSTANCE_NAMES \
    --zone=ZONE

Remplacez les éléments suivants :

  • INSTANCE_NAMES : liste des noms d'instance séparés par des espaces (par exemple, vm-01 vm-02 vm-03).

  • ZONE : zone où se trouvent les instances.

REST

Pour démarrer manuellement la maintenance d'une instance, envoyez une requête POST à la méthode instances.performMaintenance :

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/performMaintenance

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel vous avez créé l'instance.

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

  • INSTANCE_NAME : nom de l'instance

Étapes suivantes