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éewindowEndTime
: fin de la période au cours de laquelle la maintenance sera effectuéelatestWindowStartTime
: heure la plus tardive vers laquelle la période de maintenance peut être déplacéemaintenanceType
: type de maintenance à effectuerSCHEDULED
: 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 actuelleONGOING
: l'opération de maintenance est en coursPENDING
: 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
etmaintenanceStatus=Pending
: vous pouvez démarrer manuellement l'événement de maintenance de l'instance avant l'heure de début prévue.canReschedule=False
etmaintenanceStatus=Ongoing
: la maintenance est en cours et ne peut pas être reprogrammée.canReschedule=False
etmaintenanceStatus=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 surtrue
etmaintenanceStatus
surPENDING
. Ces paramètres indiquent que vous pouvez démarrer manuellement l'événement de maintenance planifié avant la date indiquée danslatestWindowStartTime
.
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:
Dans le menu de navigation de la console Google Cloud, accédez à la page Explorateur de journaux:
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." }