Il server di metadati fornisce informazioni sulle opzioni e sulle impostazioni di pianificazione di un'istanza di macchina virtuale (VM) tramite l'elenco della directory dei metadati scheduling/
e la chiave di metadati maintenance-event
. Puoi utilizzare queste chiavi di metadati per conoscere le opzioni di pianificazione di una VM, nonché per ricevere una notifica quando sta per verificarsi un evento di manutenzione.
Per impostazione predefinita, tutte le VM (tranne Z3) sono impostate sulla migrazione live e il server dei metadati riceve avvisi di eventi di manutenzione prima della migrazione in tempo reale di un'istanza VM. Tuttavia, se scegli un'opzione di pianificazione diversa, gli eventi di manutenzione e il comportamento della VM potrebbero variare. Per scoprire di più sugli eventi di manutenzione e sul comportamento delle VM durante gli eventi, consulta Panoramica della manutenzione dell'host.
Prima di iniziare
- Per le VM Windows Server, utilizza PowerShell 3.0 o versioni successive.
Ti consigliamo di utilizzare
ctrl+v
per incollare i blocchi di codice copiati. -
Se non l'hai già fatto, configura l'autenticazione.
L'autenticazione è il processo mediante il quale viene verificata l'identità dell'utente per ottenere l'accesso ai servizi e alle API Google Cloud.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi eseguire l'autenticazione in Compute Engine come segue.
Per utilizzare gli Python esempi in questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura le Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
Crea credenziali di autenticazione locali per il tuo Account Google:
gcloud auth application-default login
Per maggiori informazioni, consulta Set up authentication for a local development environment.
Ricevi notifiche sulla migrazione live
Puoi scoprire quando si verifica un evento di manutenzione eseguendo query periodiche sulla chiave dei metadati maintenance-event
.
La chiave dei metadati maintenance-event
viene compilata per gli eventi di manutenzione solo se hai impostato l'opzione di pianificazione della VM su migrate
o se alla VM è collegata una GPU.
Il valore di questa chiave di metadati cambia 60 secondi prima dell'avvio di un evento di manutenzione, consentendo al codice dell'applicazione di attivare le attività da eseguire prima di un evento di manutenzione, ad esempio il backup dei dati o l'aggiornamento dei log.
In sintesi, Compute Engine fornisce un avviso di 60 secondi solo se:
Hai impostato le opzioni di disponibilità della VM per la migrazione live durante un evento di manutenzione.
Hai eseguito una query sulla chiave dei metadati
maintenance-event
almeno una volta dall'ultimo evento di manutenzione.Se non hai mai eseguito query sulla chiave dei metadati
maintenance-event
o non hai eseguito query sulla chiave dei metadati dall'ultima migrazione, Compute Engine presuppone che la VM non richieda un preavviso per gli eventi di manutenzione. L'evento di manutenzione viene avviato immediatamente e ignora l'avviso di 60 secondi.Se non vuoi saltare l'avviso di 60 secondi, assicurati che il codice client esegua una query sulla chiave di metadati
maintenance-event
almeno una volta tra un evento di migrazione e l'altro. Devi eseguire una query direttamente sulla chiave dei metadatimaintenance-event
affinché Compute Engine stabilisca che stai guardando questa chiave di metadati. L'esecuzione di query su metadati di livello superiore non attiva il preavviso.
Per le VM con GPU collegate, il valore cambia 60 minuti prima dell'arresto delle VM per darti il tempo di arrestarsi e riavviarsi su un altro host. Le VM con GPU collegate non vengono migrate in tempo reale, ma vengono arrestate e riavviate facoltativamente. Per scoprire di più, consulta Gestione degli eventi di manutenzione dell'host GPU.
Per un insieme specifico di VM, le opzioni di manutenzione delle VM sono più flessibili. Per scoprire di più, vedi Monitorare e pianificare un evento di manutenzione dell'host.
Esegui una query sulla chiave dei metadati dell'evento di manutenzione
VM Linux
Per eseguire una query sulla chiave di metadati maintenance-event
sulle VM Linux, esegui questo comando:
user@myinst:~$ curl http://metadata.google.internal/computeMetadata/v1/instance/maintenance-event -H "Metadata-Flavor: Google"
L'output è simile al seguente:
NONE
Puoi anche utilizzare l'opzione wait-for-change
. Con questa opzione specificata, la richiesta restituisce un output solo quando un evento di manutenzione sta per iniziare e terminare.
user@myinst:~$ curl http://metadata.google.internal/computeMetadata/v1/instance/maintenance-event?wait_for_change=true -H "Metadata-Flavor: Google"
VM Windows
Per eseguire una query sulla chiave di metadati maintenance-event
sulle VM Windows, esegui questo comando:
PS C:\>
$value = (Invoke-RestMethod `
-Headers @{'Metadata-Flavor' = 'Google'} `
-Uri "http://metadata.google.internal/computeMetadata/v1/instance/maintenance-event")
$value
L'output è simile al seguente:
NONE
Puoi anche utilizzare l'opzione wait-for-change
. Se questa opzione viene specificata, la richiesta restituisce un output solo quando stanno per iniziare e terminare un evento di manutenzione.
PS C:\>
$value = (Invoke-RestMethod `
-Headers @{'Metadata-Flavor' = 'Google'} `
-Uri "http://metadata.google.internal/computeMetadata/v1/instance/maintenance-event?wait_for_change=true")
$value
Python
Puoi utilizzare la chiave di metadati maintenance-event
con la funzionalità in attesa di aggiornamenti per inviare una notifica agli script e alle applicazioni quando un evento di manutenzione sta per iniziare e terminare. In questo modo puoi automatizzare le azioni
che vuoi eseguire prima o dopo l'evento.
Il seguente esempio Python fornisce un esempio di come puoi implementare queste due funzionalità insieme.
Rivedi gli output
Il valore iniziale e predefinito della chiave di metadati maintenance-event
è NONE
.
Per le VM con GPU collegate, durante un evento di manutenzione il valore cambia da
NONE
aTERMINATE_ON_HOST_MAINTENANCE
. Questo valore viene aggiornato 60 minuti prima dell'inizio dell'evento di interruzione.Per le VM non GPU con un'opzione di pianificazione di
migrate
, il valore dimaintenance-event
cambia come segue:- All'inizio dell'evento di migrazione, il valore cambia da
NONE
aMIGRATE_ON_HOST_MAINTENANCE
. Questo valore viene aggiornato 60 secondi prima dell'inizio dell'evento di interruzione. - Per tutta la durata dell'evento e durante la migrazione live dell'istanza VM, il valore rimane
MIGRATE_ON_HOST_MAINTENANCE
. - Al termine dell'evento di manutenzione, il valore torna a
NONE
.
- All'inizio dell'evento di migrazione, il valore cambia da
Per le VM single-tenant, durante un evento di manutenzione dell'host, il valore della chiave dei metadati
maintenance-event
non cambia e rimaneNONE
dall'inizio alla fine dell'evento.
Passaggi successivi
- Scopri di più sull'impostazione dei criteri di disponibilità delle istanze.
- Scopri di più sulla migrazione live.
- Scopri di più sui metadati delle VM.