Afficher les notifications de maintenance

Un événement de maintenance de l'hôte se produit lorsque Google Cloud doit effectuer une activité de maintenance ou de réparation sur votre TPU. Google envoie des notifications pour les opérations de maintenance à venir sur les hôtes avant leur exécution. Lorsque l'intervalle de maintenance s'ouvre, Google Cloudeffectue automatiquement la maintenance de votre instance. En surveillant les intervalles de maintenance à venir de votre instance, vous pouvez préparer vos charges de travail de manière proactive pour gérer les opérations de maintenance à venir avec un minimum d'interruption.

Cloud TPU vous permet d'afficher les notifications de maintenance à l'aide de Google Cloud CLI et en interrogeant le serveur de métadonnées. Vous pouvez également consulter les événements de maintenance à venir dans Cloud Logging. Pour savoir comment afficher les notifications de maintenance pour les TPU dans GKE, consultez Gérer les interruptions des nœuds GKE pour les GPU et les TPU.

Champs des notifications de maintenance

Les notifications de maintenance contiennent les champs suivants:

  • windowStartTime: début de la période au cours de laquelle la maintenance sera effectuée
  • windowEndTime: fin de la période au cours de laquelle la maintenance sera effectuée
  • latestWindowStartTime: heure la plus tardive vers laquelle la période de maintenance peut être déplacée
  • maintenanceType: type de maintenance à effectuer
    • SCHEDULED: la maintenance sera notifiée sept jours avant.
    • UNSCHEDULED: la maintenance inclut des mises à jour critiques qui ne sont pas annoncées aussi longtemps à l'avance que pour les événements de maintenance planifiés.
  • canReschedule: indique si vous pouvez démarrer manuellement la maintenance pendant la période de notification de cette VM.
    • TRUE: vous pouvez démarrer manuellement la maintenance pendant la période de notification.
    • FALSE: vous ne pouvez pas démarrer manuellement la maintenance sur cette VM. Cela se produit généralement pendant la période de maintenance active de la VM.
  • maintenanceStatus: état de l'opération de maintenance actuelle
    • ONGOING: l'opération de maintenance est en cours
    • PENDING: l'opération de maintenance n'a pas encore commencé, mais elle est planifiée.

Si aucune notification de maintenance n'est envoyée, la réponse se présente comme suit:

{ "error": "no notifications have been received yet, try again later" }

Comportements des états de maintenance

Lorsque vous gérez des événements de maintenance, vérifiez les valeurs de canReschedule et maintenanceStatus. Combinés, ces champs indiquent les actions que vous pouvez ou ne pouvez pas effectuer pour démarrer manuellement un événement de maintenance:

  • canReschedule=True et maintenanceStatus=Pending: vous pouvez démarrer manuellement l'événement de maintenance de l'instance avant l'heure de début prévue.
  • canReschedule=False et maintenanceStatus=Ongoing: la maintenance est en cours et ne peut pas être reprogrammée.
  • canReschedule=False et maintenanceStatus=Pending: votre instance n'est pas compatible avec les événements de maintenance déclenchés manuellement.

Afficher les notifications de maintenance

Pour consulter les notifications de maintenance:

  • Appeler l'API Cloud TPU à l'aide de la Google Cloud CLI
  • Interroger le serveur de métadonnées sur votre VM
  • Vérifier Cloud Logging

Vérifier les TPU pour une notification de maintenance

gcloud

Utilisez la commande gcloud alpha compute tpus tpu-vm describe pour afficher les notifications de maintenance:

gcloud alpha compute tpus tpu-vm describe TPU_NAME \
    --zone=ZONE

Si un événement de maintenance est à venir, la réponse contient une section semblable à celle-ci:

upcomingMaintenance:
    canReschedule: true
    latestWindowStartTime: "2025-12-01T19:00:00Z"
    maintenanceStatus: PENDING
    type: SCHEDULED
    windowEndTime: "2025-12-01T22:00:00Z"
    windowStartTime: "2025-12-01T19:00:00Z"

Dans cette réponse:

  • La maintenance est planifiée pour la date et l'heure indiquées dans windowStartTime.
  • canReschedule est défini sur true et maintenanceStatus sur PENDING. Ces paramètres indiquent que vous pouvez démarrer manuellement l'événement de maintenance planifié avant la date indiquée dans latestWindowStartTime.

Serveur de métadonnées

À partir d'une VM TPU, interrogez le serveur de métadonnées pour afficher le prochain événement de maintenance:

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

Si un événement de maintenance est à venir, la réponse contient une section semblable à celle-ci:

Upcoming maintenance: {
    "can_reschedule" : "true",
    "latest_window_start_time" : "2024-06-12T16:00:01+00:00",
    "maintenance_status" : "PENDING",
    "type" : "SCHEDULED",
    "window_end_time" : "2024-06-12T20:00:00+00:00",
    "window_start_time" : "2024-06-12T16:00:00+00:00"
}

Vous pouvez interroger le serveur de métadonnées à partir de n'importe quelle VM TPU du segment, car la notification d'événement de maintenance à venir est la même pour toutes les VM d'un segment.

Pour en savoir plus sur les métadonnées de VM, consultez la section À propos des métadonnées de VM dans la documentation Compute Engine.

Rechercher une notification de maintenance dans Cloud Logging

Lorsqu'une notification est planifiée sur votre Cloud TPU, Cloud Logging contient un journal des événements système pour l'événement, avec methodName:compute.instance.upcomingMaintenance. Pour afficher les journaux des événements de maintenance à venir:

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

    Accéder à l'explorateur de journaux

  2. Utilisez la requête de recherche suivante pour afficher tous les TPU pour lesquels un événement de maintenance est planifié:

    "compute.instances.upcomingMaintenance"

    Cloud TPU consigne les événements de maintenance à venir dans Cloud Logging par instance de VM individuelle, par exemple t1v-n-5bdca789-w-0.

Exemples de journaux de notification de maintenance

Une notification d'événement de maintenance s'affiche dans l'explorateur de journaux avec des valeurs semblables aux suivantes:

  • methodName : "compute.instances.upcomingMaintenance"
  • metadata :
    • maintenanceStatus : "PENDING"
    • windowStartTime : "2024-07-23T20:00:00Z"

Voici un exemple d'entrée de journal complète pour un événement de maintenance à venir:

{
  "protoPayload": {
    "@type": "type.googleapis.com/google.cloud.audit.AuditLog",
    "status": {
      "message": "Maintenance is scheduled for this instance. Review the maintenance schedule by describing the VM with gcloud CLI or querying the http://metadata.google.internal/computeMetadata/v1/instance/upcoming-maintenance metadata key."
    },
    "serviceName": "compute.googleapis.com",
    "methodName": "compute.instances.upcomingMaintenance",
    "resourceName": "projects/cloud-tpu-multipod-dev/zones/europe-west4-b/instances/t1v-n-9472280f-w-0",
    "request": {
      "@type": "type.googleapis.com/compute.instances.upcomingMaintenance"
    },
    "metadata": {
      "type": "SCHEDULED",
      "windowStartTime": "2024-11-15T04:00:00Z",
      "canReschedule": true,
      "latestWindowStartTime": "2024-11-15T04:00:01Z",
      "windowEndTime": "2024-11-15T08:00:00Z",
      "maintenanceStatus": "PENDING"
  },
  "logName": "projects/cloud-tpu-multipod-dev/logs/cloudaudit.googleapis.com%2Fsystem_event",
  "operation": {
    "id": "systemevent-1731038451389-6265ecbfcd453-5127b81e-f40b8149",
    "producer": "compute.instances.upcomingMaintenance",
    "first": true,
    "last": true
  },
  "receiveTimestamp": "2024-11-08T04:00:54.457835088Z"
}

Lorsque l'événement de maintenance commence, un nouvel événement d'information s'affiche dans les journaux avec des valeurs semblables aux suivantes:

  • methodName : "compute.instances.upcomingMaintenance"
  • metadata :
    • maintenanceStatus : "ONGOING"
    • windowStartTime : "2024-07-23T20:00:00Z"

Une fois l'événement de maintenance terminé, un nouvel événement d'information s'affiche dans les journaux d'audit avec des valeurs semblables aux suivantes:

  • methodName : "compute.instances.upcomingMaintenance"
  • status: { message: "Maintenance window has completed for this instance. All maintenance notifications on the instance have been removed." }

Étape suivante