Afficher les notifications de maintenance

Un événement de maintenance de l'hôte se produit lorsque Google Cloud doit effectuer une opération 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 qu'elles ne soient effectuées. 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 prochaines opérations de maintenance en subissant une durée d'interruption minimale.

Cloud TPU vous permet d'afficher les notifications de maintenance à l'aide de la 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 de notification 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 : date et heure jusqu'auxquelles l'intervalle de maintenance peut être déplacé
  • maintenanceType : type de maintenance qui sera effectué
    • 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 les événements de maintenance planifiés
  • canReschedule : indique si vous pouvez démarrer manuellement la maintenance pendant la période de notification pour 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. Ce cas de figure s'applique généralement pendant la période où la VM fait l'objet d'une maintenance active.
  • 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

S'il n'existe aucune notification de maintenance, la réponse ressemble à ce qui 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. Ensemble, ces champs indiquent les actions que vous pouvez ou ne pouvez pas effectuer concernant le démarrage manuel d'un événement de maintenance :

  • canReschedule=True et maintenanceStatus=Pending : vous pouvez démarrer manuellement l'événement de maintenance pour 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

Vous pouvez afficher les notifications de maintenance de plusieurs façons :

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

Rechercher une notification de maintenance dans les TPU

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

En cas d'événement de maintenance à venir, la réponse contiendra une section semblable à la suivante :

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 à la date et à l'heure indiquées dans windowStartTime.
  • canReschedule est défini sur true et maintenanceStatus est défini 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"

En cas d'événement de maintenance à venir, la réponse contiendra une section semblable à la suivante :

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 de la tranche, car la notification d'événement de maintenance à venir est la même pour toutes les VM d'une tranche.

Pour en savoir plus sur les métadonnées de VM, consultez À 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, procédez comme suit :

  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 afin d'afficher les TPU pour lesquels un événement de maintenance est prévu :

    "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 à celles ci-dessous :

  • 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 à celles-ci :

  • 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 à celles-ci :

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

Étapes suivantes