Durante il ciclo di vita di un'istanza di macchina virtuale (VM) o bare metal, la macchina host su cui viene eseguita l'istanza può registrare più eventi host. Un evento host può includere la manutenzione regolare dell'infrastruttura Compute Engine o, in rari casi, un errore dell'host. Puoi scegliere come reagiscono le tue VM e le tue istanze bare metal durante o dopo un evento dell'host configurando il criterio di manutenzione dell'host.
Per impostazione predefinita, la maggior parte delle istanze è impostata su migrazione live durante gli eventi dell'host. Puoi ignorare questo comportamento e impostare esplicitamente le istanze in modo che si interrompano e, facoltativamente, si riavviino. Alcuni tipi di macchine non supportano la migrazione in tempo reale, ad esempio le istanze bare metal o le VM con GPU collegate. Queste istanze vengono interrotte durante gli eventi dell'host. Per ulteriori informazioni, consulta Comportamenti di manutenzione e riavvio.
Tipi di eventi ospitati
Esistono due tipi di eventi host, descritti in modo più dettagliato nelle sezioni seguenti:
Se l'istanza non risponde, può anche essere riavviata o terminata.
Eventi di manutenzione
Un evento di manutenzione si verifica quando Compute Engine deve eseguire un'attività di manutenzione o riparazione che richiede il trasferimento delle VM dal server host. Se attivi il criterio di manutenzione dell'host per la migrazione live di un tipo di istanza supportato, Compute Engine sposta l'istanza su un nuovo host con un'interruzione minima dell'applicazione.
Il comportamento dell'istanza durante un evento di manutenzione può variare in base al tenancy dell'istanza e al tipo di macchina. La seguente tabella riassume il comportamento per gli eventi di manutenzione pianificata.
Tenancy dell'host | Frequenza approssimativa degli eventi di manutenzione |
Migrazione live supportata | Selezione dell'organizzatore |
---|---|---|---|
Multi-tenant (condiviso) | Ogni 2 settimane | Sì | Compute Engine |
Single-tenant | Ogni 4-6 settimane | Dipende dal criterio di manutenzione dell'host | Dipende dal criterio di manutenzione dell'host |
X4 | Minimo 90 giorni | No | Compute Engine |
C3 | Minimo 30 giorni | No | Compute Engine |
Compute Engine applica inoltre alcuni upgrade di rete e dell'hypervisor in background senza interruzioni mantenendo l'istanza sullo stesso host.
Errori dell'host
Un errore dell'host (compute.instances.hostError
) indica che si è verificato un problema hardware o software sulla macchina fisica o sull'infrastruttura del data center che ospita l'istanza di calcolo e che ne ha causato l'arresto anomalo. Un errore dell'host che coinvolge un guasto hardware totale o altri problemi hardware potrebbe impedire la migrazione live dell'istanza.
Se l'istanza è impostata per il riavvio automatico, che è l'impostazione predefinita, Compute Engine la riavvia, in genere entro tre minuti dal rilevamento dell'errore. A seconda del problema, il riavvio potrebbe richiedere fino a 5,5 minuti.
A volte, un'istanza di calcolo potrebbe non rispondere prima che venga segnalato un errore dell'host. Puoi ridurre il tempo di attesa di Compute Engine per riavviare o terminare l'istanza impostando il timeout per il recupero degli errori dell'host (anteprima). Per ulteriori informazioni, consulta Impostare i criteri di disponibilità.
A volte possono verificarsi guasti hardware e software fisici, ma si tratta di casi rari. Per proteggere le tue applicazioni e i tuoi servizi da questi eventi di sistema potenzialmente disgregatori, consulta le seguenti risorse:
- Progettazione di sistemi solidi
- Pattern per app scalabili e resilienti
- Creazione di gruppi di istanze gestite
Google offre anche servizi gestiti come App Engine e l'ambiente flessibile di App Engine.
Panoramica dei criteri di manutenzione dell'host
I criteri di manutenzione dell'host di un'istanza determinano il suo comportamento durante i seguenti eventi dell'host:
- Evento di manutenzione
- Evento di errore dell'host o istanza che non risponde
Puoi configurare le istanze in modo che continuino a funzionare durante la manutenzione dell'host, mentre Compute Engine esegue la migrazione live a un altro host oppure puoi scegliere di interrompere l'istanza.
Puoi modificare il criterio di manutenzione dell'host di un'istanza configurando le seguenti impostazioni:
- Comportamento di manutenzione:indica se l'istanza viene migrata in tempo reale o interrotta quando si verifica un evento di manutenzione.
- Comportamento di riavvio:indica se Compute Engine riavvia o termina l'istanza se si arresta in modo anomalo, si verifica un errore dell'host o non risponde.
- Tempo di rilevamento dell'errore dell'host:il tempo massimo che Compute Engine attende per riavviare o terminare un'istanza dopo aver rilevato che non risponde.
- Tempo di recupero dell'SSD locale:il tempo massimo impiegato da Compute Engine per recuperare i dati sui dischi SSD locali dopo aver rilevato un errore dell'host. I dati dell'unità SSD locale andranno persi se il tempo specificato scade senza che il recupero sia andato a buon fine.
Puoi aggiornare i criteri di manutenzione dell'host di un'istanza in qualsiasi momento per controllare il comportamento delle istanze.
Comportamenti di manutenzione e riavvio
Quando si verifica un evento host, l'istanza di calcolo può utilizzare la migrazione live o essere interrotta. Se un'istanza viene terminata, puoi scegliere di riavviarla autonomamente o di chiedere a Compute Engine di farlo automaticamente.
Le seguenti serie di macchine non supportano la migrazione live e vengono invece terminate durante gli eventi dell'host:
- Le istanze Z3 e X4 vengono riavviate sul posto.
- Le istanzebare metal C3 vengono interrotte e riavviate, il che significa che potrebbero riavviarsi su un altro host.
- Istanze con GPU
- Istanze con TPU
Migrazione live
Per impostazione predefinita, la maggior parte dei tipi di istanze è impostata su migrazione live, ad eccezione di:
- Istanze con GPU e TPU collegate
- Istanze bare metal C3 o X4
- Istanze Z3
Durante la migrazione live, Compute Engine esegue automaticamente la migrazione dell'istanza da un evento di manutenzione dell'infrastruttura e l'istanza rimane in esecuzione durante la migrazione. L'istanza potrebbe registrare un breve periodo di calo delle prestazioni, ma in generale la maggior parte delle istanze non dovrebbe registrare un rendimento notevolmente diverso. È ideale per le istanze che richiedono un uptime costante e possono tollerare un breve periodo di calo delle prestazioni.
Quando Compute Engine esegue la migrazione dell'istanza, registra un evento di sistema che viene pubblicato nell'elenco delle operazioni di zona e nei log degli eventi di sistema. Puoi esaminare questo evento visualizzando le operazioni di Compute Engine per una zona specifica. Gli eventi di migrazione in tempo reale hanno il seguente tipo di operazione:
compute.instances.migrateOnHostMaintenance
Termina e riavvia
Se non vuoi che venga eseguita la migrazione live dell'istanza o se il tipo di istanza non supporta la migrazione live, puoi scegliere di consentire a Google Cloud di arrestare l'istanza quando si verifica un evento host. Con questa configurazione, se si verifica un evento host, Compute Engine invia un segnale di spegnimento graduale per arrestare l'istanza.
Attende quindi 60 secondi affinché l'istanza si arresti correttamente e imposta lo stato dell'istanza su TERMINATED
. Se l'istanza non si arresta correttamente
in 60 secondi, viene terminata forzatamente.
Questa opzione è ideale se le tue istanze richiedono prestazioni massime e costanti e se l'applicazione complessiva è progettata per gestire arresti anomali o riavvii delle istanze.
Quando Compute Engine arresta un'istanza a causa di un evento dell'host, registra un evento di sistema che viene pubblicato nell'elenco delle operazioni di zona e nei log degli eventi di sistema. Puoi esaminare questo evento visualizzando le operazioni di Compute Engine per una zona specifica. Gli eventi di terminazione dell'istanza hanno il seguente tipo di operazione:
compute.instances.terminateOnHostMaintenance
Riavvio automatico
Se l'istanza è configurata per arrestarsi in caso di evento di manutenzione o se si arresta in modo anomalo a causa di un problema hardware sottostante, Compute Engine può riavviarla automaticamente. L'istanza viene riavviata sullo stesso server host o spostata su un altro server nella stessa zona che non partecipa all'evento di manutenzione.
Per impostazione predefinita, Compute Engine tenta di recuperare le istanze con dischi SSD locali collegati per un'ora. Se viene raggiunto il limite di tempo, Compute Engine tenta di riavviare l'istanza su un altro server host nella stessa zona. Le istanze Z3 e X4 hanno tempi di attesa predefiniti diversi. Questi tipi di istanze vengono riavviati sullo stesso server host dopo l'interruzione dell'istanza.
Per configurare il riavvio automatico, imposta il campo del criterio di manutenzione dell'host
automaticRestart
su true
. Questa impostazione non si applica se l'istanza viene messa offline a causa di un'interruzione di servizio zonale o tramite un'azione dell'utente, ad esempio l'esecuzione di sudo shutdown
all'interno del sistema operativo guest.
Quando Compute Engine riavvia automaticamente l'istanza, genera un evento di sistema che viene pubblicato nell'elenco delle operazioni di zona. Puoi esaminare questo evento visualizzando le operazioni di Compute Engine per una zona specifica. Gli eventi di riavvio automatico hanno il seguente tipo di operazione:
compute.instances.automaticRestart
Persistenza del disco dopo l'interruzione dell'istanza
Poiché Persistent Disk e Hyperdisk sono Network Attached Storage, quando l'istanza viene riavviata, Compute Engine ricollega il disco di avvio e eventuali dischi secondari all'istanza. I dati su questi dischi rimangono invariati durante migrazione live e i riavvii dell'istanza.
Se possibile, Compute Engine conserva i dati sui dischi SSD locali dopo un evento dell'host. Tuttavia, Compute Engine non garantisce la persistenza dei dati sulle unità SSD locali.I dischi SSD locali vengono conservati se:
- Configura l'istanza per la migrazione live e l'istanza viene sottoposto a un evento di manutenzione dell'host.
- Si verifica un errore dell'host e Compute Engine ricollega l'istanza ai dischi SSD locali entro il limite di tempo.
- Un'istanza di calcolo con dischi SSD locali collegati che supporta solo la terminazione e il riavvio automatico subisce un evento di manutenzione. L'istanza viene riavviata in situ, preservando i dati dell'unità SSD locale, anziché eseguire la migrazione a un nuovo host.
I dischi SSD locali non vengono conservati se:
- Arresti il sistema operativo guest e forzi l'interruzione dell'istanza.
- Configura l'istanza in modo che si arresti in caso di eventi di manutenzione dell'host e l'istanza subisce un evento di manutenzione dell'host.
- Si verifica un errore dell'host e Compute Engine non riesce a ricollegare i dischi all'istanza prima della scadenza del timeout. In questo caso, l'istanza viene riavviata senza recuperare i dischi SSD locali. Al riavvio dell'istanza, Compute Engine collega dischi SSD locali vuoti all'istanza riavviata. Devi formattare e montare questi dischi prima che l'istanza possa utilizzarli. I dati sui dischi SSD locali originali non sono recuperabili.
Google Cloud si impegna a garantire che i dati dell'SSD locale rimangano invariati. Tuttavia, in alcuni casi i dati non possono essere recuperati, ad esempio in caso di timeout. Per ulteriori informazioni su quando vengono conservati i dischi SSD locali, consulta Persistenza dei dati delle SSD locali.
Timeout del ripristino degli SSD locali
Quando si verifica un errore dell'host, Compute Engine tenta di recuperare i dischi SSD locali collegati all'istanza. Puoi controllare il tempo impiegato da Compute Engine per tentare di recuperare i dati con l'impostazione localSsdRecoveryTimeout
delle norme dell'host.
Per impostazione predefinita, Compute Engine impiega 1 ora per recuperare i dati, ma i valori validi per questa impostazione vanno da 0 a 168 con incrementi di 1 ora. Per le istanze Z3, il valore predefinito è 6, il che significa che le istanze Z3 tenteranno di recuperare i dati dell'SSD locale per 6 ore prima di raggiungere il limite di timeout.
Se imposti il timeout del ripristino degli SSD locali su 0, Compute Engine non tenterà di recuperare i dischi SSD locali collegati. L'istanza viene riavviata il prima possibile e i dati dell'unità SSD locale non sono recuperabili. Utilizza questa configurazione se la ripresa del carico di lavoro è più importante del recupero dei dati dell'unità SSD locale.
Se il timeout del recupero non è impostato su 0, ma il limite di tempo viene raggiunto prima che i dati del disco SSD locale vengano recuperati, Compute Engine riavvia l'istanza senza il disco SSD locale. Compute Engine collega nuovi dischi SSD locali vuoti all'istanza riavviata. Devi formattare e montare questi dischi prima che l'istanza possa utilizzarli.
L'istanza è in stato REPAIRING
mentre Compute Engine tenta di recuperare i dischi SSD locali.
Durante questo periodo, l'istanza e i dischi SSD locali non sono disponibili.
Se imposti il timeout del recupero dell'SSD locale sul valore massimo di 168, l'istanza rimane nello stato REPAIRING
per un massimo di 7 giorni mentre
Compute Engine tenta di recuperare i dischi SSD locali.
Interrompi il ripristino del disco SSD locale
Puoi interrompere la procedura di recupero del disco SSD locale prima che Compute Engine
raggiunga il limite di timeout del recupero. Per farlo, utilizza il comando gcloud compute instances stop
con il flag --discard-local-ssd=True
.
Questo comando interrompe il processo di recupero, arresta l'istanza di calcolo e elimina i dati dell'SSD locale. Puoi quindi riavviare l'istanza. Per saperne di più, consulta Arrestare un'istanza con SSD locale.
Per impostare il timeout del recupero degli SSD locali, consulta Impostare il criterio di manutenzione dell'host dell'istanza.
Pianificazione della manutenzione
Google Cloud offre funzionalità che consentono un controllo più stretto della manutenzione.
Utilizzando determinate famiglie di macchine,
puoi specificare le preferenze di manutenzione e ricevere notifiche degli eventi di manutenzione imminenti tramite Cloud Logging, il server dei metadati dell'istanza,
il comando compute instances describe
dell'interfaccia a riga di comando gcloud o il
metodo REST instances.describe
. Dopo aver ricevuto una
notifica,
hai a disposizione un periodo di tempo in cui puoi avviare la manutenzione pianificata
all'ora che preferisci. Se non attivi la manutenzione pianificata, l'evento di manutenzione si verifica al termine del periodo di tempo della notifica, ovvero l'ora pianificata indicata nella notifica.
Puoi utilizzare queste funzionalità in combinazione con i criteri di manutenzione dell'host per personalizzare una pianificazione della manutenzione adatta al tuo carico di lavoro.
Passaggi successivi
- Scopri di più sulla migrazione live.
- Scopri di più su come impostare la norma di manutenzione dell'host dell'istanza.
- Scopri di più su come ricevere avvisi sulla migrazione live.
- Scopri di più sulla simulazione della manutenzione dell'attività. + Scopri di più sulla gestione degli eventi di manutenzione degli host GPU.
- Scopri di più sulla migrazione live manuale delle VM single-tenant.