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éewindowEndTime
: fin de la période au cours de laquelle la maintenance sera effectuéelatestWindowStartTime
: 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 avantUNSCHEDULED
: 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 actuelleONGOING
: l'opération de maintenance est en coursPENDING
: 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
etmaintenanceStatus=Pending
: vous pouvez démarrer manuellement l'événement de maintenance pour 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
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 surtrue
etmaintenanceStatus
est défini 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"
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 :
Dans le menu de navigation de la console Google Cloud , accédez à la page "Explorateur de journaux" :
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
- Se préparer aux événements de maintenance
- Démarrer manuellement un événement de maintenance de l'hôte