Gérer les événements hôtes sur les VM H4D

Ce document explique comment utiliser les fonctionnalités de maintenance de l'hôte disponibles avec les VM H4D. Il explique comment surveiller, planifier et effectuer la maintenance programmée sur les instances de machines virtuelles (VM). Pour gérer la maintenance de vos blocs de capacité réservés, que des VM 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 VM, 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 VM, 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 VM. 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 VM :

  • Pour afficher les détails d'une VM : 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 VM, procédez comme suit :

  1. En savoir plus sur la maintenance de l'hôte Découvrez la fréquence et le comportement de maintenance de vos VM en fonction de leur série de machines. Ces informations vous aident à minimiser les perturbations de vos charges de travail.

  2. Configurez des alertes de notification. Créez des alertes basées sur les journaux pour recevoir des notifications lorsque la maintenance de vos VM est planifiée, démarré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 les VM. Vérifiez si une opération de maintenance est prévue pour vos VM. Si nécessaire, vous pouvez démarrer manuellement la maintenance sur vos VM. 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 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 correspondre à une opération de maintenance courante de l'infrastructure Compute Engine ou, dans de rares cas, à une erreur d'hôte. Compute Engine applique également en arrière-plan des mises à niveau légères non disruptives pour l'hyperviseur et le réseau.

La série de machines H4D inclut les fonctionnalités suivantes liées à la maintenance de l'hôte :

Type de machine Fréquence typique des événements de maintenance planifiée Comportement en cas de maintenance Notification préalable Maintenance à la demande Simuler une maintenance
h4d-standard-192 30 jours minimum Arrêter 7 jours Oui Non
h4d-highmem-192 30 jours minimum Arrêter 7 jours Oui Non
h4d-highmem-192-lssd 30 jours minimum L’événement se conclut par la persistance des données SSD locales 7 jours Oui Non

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.

Configurer des alertes de notification pour les VM

Vous pouvez recevoir des notifications concernant les événements de maintenance planifiés, en cours ou terminés pour vos VM 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 VM, procédez comme suit. Répétez cette procédure pour chaque alerte que vous souhaitez créer.

  1. Dans la console Google Cloud , accédez à la page Explorateur 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 maintenance est planifiée pour une VM :

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

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

      protoPayload.methodName="compute.instance.terminateOnHostMaintenance" severity>=DEFAULT
      
    • Pour recevoir des alertes lorsque la maintenance d'une VM 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 VM

Vous pouvez afficher et contrôler la maintenance de vos VM en effectuant une ou plusieurs des opérations suivantes :

Afficher l'état de maintenance des VM

Vous pouvez consulter l'état et l'heure prévue des opérations de maintenance à venir pour vos VM en vérifiant la valeur du champ upcomingMaintenance dans les métadonnées de l'instance. Si une VM ne contient pas le champ upcomingMaintenance, aucun événement de maintenance de l'hôte n'est planifié pour la VM. 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 prévue pour une VM, le champ upcomingGroupMaintenance contient le champ maintenanceReasons. Ce champ décrit la raison pour laquelle la maintenance a été planifiée pour votre VM, comme indiqué dans le tableau suivant :

Type de maintenance Motif de la maintenance État des VM
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 VM 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 VM.
  • 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 VM.
  • FAILURE_NETWORK : maintenance non planifiée prévue en raison d'une erreur avec le réseau.
Ne s'applique qu'aux VM en cours d'exécution.

Pour afficher le champ maintenanceReasons dans une VM, vous devez utiliser la gcloud CLI ou l'API REST. Pour afficher l'état de maintenance de plusieurs VM 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 VM. 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 VM, utilisez la commande gcloud compute instances describe avec l'option --flatten=resourceStatus.upcomingMaintenance :

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

Remplacez les éléments suivants :

  • VM_NAME : nom de la VM.

  • ZONE : zone où se trouve la VM.

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

  • Si un événement de maintenance de l'hôte est prévu pour votre VM, la sortie 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 VM, la sortie ressemble à ce qui suit :

    ---
    null
    

REST

Pour afficher l'état de maintenance de vos VM, 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 VM. Vous devez également inclure le paramètre de requête filter pour filtrer les VM uniquement par type de machine spécifique.

  • Pour afficher les VM 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 VM 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éé des VM.

  • ZONE : zone où se trouvent les VM.

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

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

{
  "items": [
    {
      "name": "vm-01",
      "machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/europe-west4-b/machineTypes/h4d-highmem-192-lssd",
      "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 éventuellement affiner davantage une liste de VM 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 VM, procédez comme suit :

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

  2. Interrogez le serveur de métadonnées comme suit :

    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 VM, la sortie 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 :

    { }
    

Démarrer manuellement la maintenance sur les VM

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

Selon l'état de maintenance d'une VM, voici ce qui se passe :

État de maintenance Description Ce que vous voyez
Planifié Compute Engine a planifié une maintenance pour la VM. 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 la VM.
  • 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 VM simultanément ou pour des VM individuelles. Pour plusieurs VM, utilisez la console Google Cloud ou, pour les VM situées dans la même zone, la gcloud CLI. Pour les VM 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 des VM 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 VM dans la même zone, utilisez la commande gcloud compute instances perform-maintenance :

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

Remplacez les éléments suivants :

  • VM_NAMES : liste des noms de VM séparés par des espaces (par exemple, vm-01 vm-02 vm-03).

  • ZONE : zone où se trouvent les VM.

REST

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

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

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel vous avez créé la VM.

  • ZONE : zone où se trouve la VM.

  • VM_NAME : nom de la VM.