Ce document explique comment surveiller, planifier et effectuer une maintenance planifiée sur les instances de GPU en cluster (A4X Max, A4X, A4, A3 Ultra, A3 Mega et A3 High (8 GPU)) et de GPU généraux. En gérant de manière proactive les événements de maintenance de l'hôte à venir sur vos instances Compute Engine, vous pouvez minimiser les perturbations et maintenir des performances optimales.
Pour en savoir plus sur les options de maintenance de votre infrastructure, consultez les ressources suivantes :
Pour gérer la maintenance de vos blocs de capacité liée à une réservation, que des instances de calcul s'exécutent ou non sur ces blocs, consultez Gérer les événements hôtes pour plusieurs réservations.
Pour gérer la maintenance d'un cluster dans Cluster Director, consultez Gérer l'état d'un cluster.
Avant de commencer
Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :
Console
Lorsque vous utilisez la console Google Cloud pour accéder aux services et aux API Google Cloud , vous n'avez pas besoin de configurer l'authentification.
gcloud
Dans la console Google Cloud , activez Cloud Shell.
En bas de la console Google Cloud , une session Cloud Shell démarre et affiche une invite de ligne de commande. Cloud Shell est un environnement de shell dans lequel la Google Cloud CLI est déjà installée, et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.
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.
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 :
- Administrateur Compute (
roles/compute.admin) sur le projet -
Pour un accès en lecture seule aux journaux d'audit des événements système : Visionneuse de journaux (
roles/logging.viewer) sur le projet
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.getsur 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 :
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.
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, 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.
Gérer la maintenance sur plusieurs instances Vérifiez si une maintenance est planifiée pour vos instances. Si nécessaire, vous pouvez lancer manuellement la maintenance sur vos instances. Ce processus vous aide à accroître la résilience de vos charges de travail aux événements d'hôte, à é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 d'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 la maintenance d'urgence | Maintenance à la demande | Simuler une maintenance |
|---|---|---|---|---|---|---|
| A4X Max et A4X | 90 jours minimum | L'événement se conclut par la persistance des données SSD locales | 90 jours | Si vous activez les notifications d'urgence, sept jours. Sinon, cela peut prendre quelques heures. | Oui | Non |
| A4 | 90 jours minimum | L'événement se conclut par la persistance des données SSD locales | 90 jours | Si vous activez les notifications d'urgence, sept jours. Sinon, cela peut prendre quelques heures. | Oui | Non |
| A3 Ultra | 90 jours minimum | L'événement se conclut par la persistance des données SSD locales | 90 jours | Si vous activez les notifications d'urgence, sept jours. Sinon, cela peut prendre quelques heures. | Oui | Non |
| A3 Mega et A3 High (8 GPU) | 90 jours minimum | L'événement se conclut par la persistance des données SSD locales | 90 jours | Si vous activez les notifications d'urgence, sept jours. Sinon, cela peut prendre quelques heures. | Oui | Oui |
| A3 Edge | 30 jours minimum | Arrêter et redémarrer | 7 jours | Si vous activez les notifications d'urgence, sept jours. Sinon, cela peut prendre quelques heures. | Oui | Oui |
Les remarques suivantes s'appliquent au tableau précédent :
- Fréquence typique des événements de maintenance planifiée :
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 votre progression, configurez vos charges de travail de sorte 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, démarrés 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, procédez comme suit. Répétez cette procédure pour chaque alerte que vous souhaitez créer.
-
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.
Cliquez sur le bouton Afficher la requête pour l'activer.
Dans le volet Requête, créez l'une des requêtes suivantes. Ces requêtes filtrent les entrées de journal 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 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 lorsqu'une opération de maintenance a commencé sur une instance :
protoPayload.methodName="compute.instance.terminateOnHostMaintenance" severity>=DEFAULTPour recevoir des alertes lorsque la maintenance d'une instance est terminée :
protoPayload.methodName="compute.instances.upcomingMaintenance" severity>=DEFAULT protoPayload.status.message =~ "completed"
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.
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.
Dans la section Détails de l'alerte, procédez comme suit :
Dans le champ Nom de la règle d'alerte, saisissez un nom pour la règle.
Dans la liste Niveau de gravité de la règle, sélectionnez Avertissement (ou un niveau de gravité plus élevé).
Cliquez sur Suivant.
Dans la section Sélectionner les journaux à inclure dans l'alerte, cliquez sur Suivant.
Dans la section Définir la fréquence des notifications et le délai pour la fermeture automatique, spécifiez les éléments suivants :
Dans la liste Délai entre les notifications, sélectionnez la fréquence à laquelle vous souhaitez être averti.
Dans la liste Durée de fermeture automatique des incidents, sélectionnez le délai après lequel Cloud Logging cesse d'envoyer des notifications et ferme automatiquement l'incident.
Cliquez sur Suivant.
Dans la section Qui doit être informé ?, spécifiez un canal de notification auquel Logging doit envoyer des notifications.
Cliquez sur Enregistrer.
Pour voir 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 effectuant une ou plusieurs des opérations suivantes :
Pour vérifier l'état et l'heure planifiée de la maintenance à venir de vos instances, consultez l'état de maintenance des instances.
Pour démarrer immédiatement la maintenance sur vos instances, plutôt que d'attendre l'heure de maintenance planifiée, démarrez manuellement la maintenance sur les instances.
Afficher l'état de maintenance des instances de calcul
Vous pouvez afficher l'état et l'heure planifiée de la maintenance à venir pour 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 des états de maintenance dans la documentation Compute Engine.
De plus, si une maintenance est planifiée pour une instance, le champ upcomingGroupMaintenance contient le champ maintenanceReasons. Ce champ décrit pourquoi la maintenance a été planifiée pour votre instance, comme décrit dans le tableau suivant :
| Type de maintenance | Motif de maintenance | État de l'instance de calcul |
|---|---|---|
| Maintenance planifiée après le signalement d'un hôte défectueux | FAILURE_GPU_CUSTOMER_REPORTED |
S'applique uniquement aux instances exécutées sur l'hôte que vous avez signalé comme défectueux. |
| Maintenance planifiée pour la maintenance régulière |
|
S'applique aux instances en cours d'exécution, arrêtées ou suspendues. |
| Maintenance d'urgence non planifiée |
|
S'applique uniquement 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
Dans la console Google Cloud , accédez à la page Instances de VM.
Dans la colonne État de maintenance, Compute Engine affiche l'état de maintenance de vos instances. Si vous ne voyez pas cette colonne 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'instanceZONE: zone où se trouve l'instance.
Le résultat ressemble à l'un des éléments suivants :
Si un événement de maintenance de l'hôte est planifié pour votre instance, le résultat ressemble à ceci :
--- 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 planifié 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 effectuez 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 ne filtrer les instances que par un type de machine spécifique.
Pour afficher les instances de 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_TYPEPour 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 par 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"
}
}
},
...
]
}
Si vous le souhaitez, pour affiner davantage une liste d'instances, définissez 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 :
Si ce n'est pas déjà fait, connectez-vous à votre instance Linux ou Windows.
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 planifié pour votre instance, le résultat ressemble à ceci :
"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 ressemble à ce qui suit :
{ }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 le résultat de ces requêtes, consultez Examiner les résultats.
Démarrer manuellement la maintenance sur des instances de calcul
Vous pouvez démarrer manuellement la maintenance de vos instances au lieu d'attendre l'heure programmée.
Selon l'état de maintenance d'une instance, les événements suivants se produisent :
| État de maintenance | Description | Ce que vous voyez |
|---|---|---|
| Programmée | Compute Engine a planifié une maintenance pour l'instance. Vous pouvez démarrer manuellement la maintenance avant l'heure prévue. |
|
| En cours | Cela signifie que l'opération de maintenance est en cours. Vous ne pouvez pas la reprogrammer. |
|
| Terminé | La maintenance est terminée. Compute Engine a supprimé toutes les notifications de maintenance de l'instance. |
|
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
Dans la console Google Cloud , accédez à la page Instances de VM.
Sélectionnez les lignes correspondant aux instances pour lesquelles vous souhaitez démarrer la maintenance.
Cliquez sur Exécuter la maintenance.
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
Pour tester votre charge de travail après un événement d'hôte, consultez Recettes d'analyse comparative.
Pour en savoir plus sur la surveillance des VM, consultez Surveiller les VM et les clusters Slurm.