Durante il ciclo di vita di un'istanza di macchina virtuale (VM) o di un'istanza bare metal, la macchina host su cui viene eseguita l'istanza può subire più eventi host. Un evento host può includere la normale manutenzione dell'infrastruttura Compute Engine o, in rari casi, un errore dell'host. Puoi scegliere come rispondono le tue istanze VM e bare metal durante o dopo un evento host configurando i criteri di manutenzione dell'host.
Per impostazione predefinita, la maggior parte delle istanze è impostata sulla migrazione live durante gli eventi host. Puoi ignorare questo comportamento e impostare esplicitamente le istanze in modo che vengano terminate e, facoltativamente, riavviate. Alcuni tipi di macchina non supportano la migrazione live, ad esempio le istanze Z3 con più di 18 TiB di SSD Titanium collegato, le istanze bare metal o le istanze con GPU collegate. Queste istanze terminano durante gli eventi host. Per ulteriori informazioni, vedi Comportamenti di manutenzione e riavvio.
Tipi di eventi dell'host
Esistono due tipi di eventi host, descritti in dettaglio nelle sezioni seguenti:
Se l'istanza non risponde, può anche attivare un riavvio o l'interruzione dell'istanza.
Eventi di manutenzione
Un evento di manutenzione si verifica quando Compute Engine deve eseguire un'attività di manutenzione o riparazione che richiede lo spostamento delle VM dal server host. Se abiliti la migrazione live policy di manutenzione dell'host per un tipo di istanza supportato, Compute Engine sposta l'istanza su un nuovo host e l'interruzione dell'applicazione è minima.
Compute Engine applica anche alcuni upgrade leggeri dell'hypervisor e della rete in background in modo non invasivo, mantenendo l'istanza sullo stesso host.
Il comportamento dell'istanza durante un evento di manutenzione può variare a seconda della tenancy dell'istanza e del tipo di macchina. Puoi trovare informazioni sul comportamento di manutenzione per ogni tipo di macchina nella pagina della famiglia di macchine corrispondente, come segue:
- Serie C:
- C2 e C2D: famiglia di macchine ottimizzate per il calcolo
- Tutte le altre serie C: famiglia di macchine per uso generico
- Serie E, N e T: famiglia di macchine per uso generico
- Serie H: famiglia di macchine ottimizzate per il calcolo
- Serie M e X: famiglia di macchine ottimizzate per la memoria
- Serie Z: famiglia di macchine ottimizzate per l'archiviazione
Per informazioni sulle norme di manutenzione per serie di macchine specifiche, consulta il confronto delle serie di macchine.
Per le VM single-tenant, la frequenza approssimativa degli eventi di manutenzione dell'host pianificata è ogni 4-6 settimane. Il supporto della migrazione live dipende dalla policy di manutenzione dell'host per la VM single-tenant.
Errori relativi all'host
Un errore dell'host (compute.instances.hostError
) indica un problema hardware o software sulla macchina fisica o sull'infrastruttura del data center che ospita l'istanza di calcolo e che ha causato l'arresto anomalo dell'istanza. Un errore dell'host che comporta 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 riavvia l'istanza, in genere entro tre minuti dal momento in cui è stato rilevato l'errore. A seconda del problema, il riavvio potrebbe richiedere fino a 5 minuti e mezzo.
A volte, un'istanza di calcolo potrebbe non rispondere prima che venga segnalato un errore host. Puoi ridurre il tempo di attesa di Compute Engine per riavviare o terminare l'istanza impostando il timeout di ripristino degli errori host. Per maggiori informazioni, consulta Impostare le policy di disponibilità.
Guasti fisici di hardware e software possono verificarsi occasionalmente, ma sono eventi rari. Per proteggere le tue applicazioni e i tuoi servizi da questi eventi di sistema potenzialmente dannosi, 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 della policy 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 host o istanza che non risponde
Puoi configurare le istanze in modo che continuino a essere eseguite durante la manutenzione dell'host, mentre Compute Engine esegue la migrazione live a un altro host, oppure puoi scegliere di arrestare l'istanza.
Puoi modificare la policy di manutenzione host di un'istanza configurando le seguenti impostazioni:
- Comportamento di manutenzione:indica se l'istanza viene migrata live o arrestata quando si verifica un evento di manutenzione.
- Comportamento di riavvio:indica se Compute Engine riavvia o termina l'istanza in caso di arresto anomalo, errore dell'host o mancata risposta.
- Tempo di rilevamento degli errori dell'host:il tempo massimo che Compute Engine attende per riavviare o terminare un'istanza dopo aver rilevato che l'istanza non risponde.
- Tempo di recupero SSD locale:il tempo massimo che Compute Engine dedica al recupero dei dati sui dischi SSD locali dopo aver rilevato un errore dell'host. I dati dell'SSD locale vengono persi se il tempo specificato trascorre senza un recupero riuscito.
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 oppure può essere terminata. Se un'istanza viene terminata, puoi scegliere di riavviarla manualmente o fare in modo che Compute Engine la riavvii automaticamente.
Le seguenti serie di macchine potrebbero non supportare la migrazione live e richiedono invece la terminazione durante gli eventi host:
- Le istanze Z3 vengono riavviate sul posto.
- Bare Metal le istanze vengono terminate e riavviate, il che significa che potrebbero riavviarsi su un host diverso.
- Istanze Confidential VM ad eccezione dei tipi di macchine N2D con piattaforme CPU AMD EPYC Milan che eseguono AMD SEV.
- Istanze con GPU
- Istanze con TPU
Migrazione live
Per impostazione predefinita, la maggior parte dei tipi di istanza è impostata per la migrazione live, ad eccezione dei tipi di istanza menzionati nella sezione precedente.
Durante la migrazione live, Compute Engine esegue automaticamente la migrazione dell'istanza lontano da un evento di manutenzione dell'infrastruttura e l'istanza rimane in esecuzione durante la migrazione. La tua istanza potrebbe subire un breve periodo di prestazioni ridotte, ma in generale la maggior parte delle istanze non dovrebbe funzionare in modo notevolmente diverso. Questa opzione è ideale per le istanze che richiedono un uptime costante e possono tollerare un breve periodo di prestazioni ridotte.
Quando Compute Engine esegue la migrazione dell'istanza, segnala un evento di sistema 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 live hanno il seguente tipo di operazione:
compute.instances.migrateOnHostMaintenance
Terminazione e riavvio
Se non vuoi che la tua istanza venga sottoposta a migrazione live o se il tipo di istanza
non la supporta, 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
soft per arrestare l'istanza.
Attende quindi 60 secondi che l'istanza si arresti correttamente e imposta lo stato dell'istanza su TERMINATED
. Se l'istanza non viene arrestata correttamente
entro 60 secondi, viene terminata forzatamente.
Questa opzione è ideale se le tue istanze richiedono prestazioni massime e costanti e se la tua applicazione complessiva è progettata per gestire riavvii o guasti delle istanze.
Quando Compute Engine arresta un'istanza a causa di un evento host, segnala un evento di sistema 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 la tua 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 istanza vengono riavviati sullo stesso server host dopo l'arresto dell'istanza.
Per configurare il riavvio automatico, imposta il campo della policy di manutenzione dell'host
automaticRestart
su true
. Questa impostazione non si applica se l'istanza viene
messa offline a causa di un'interruzione di zona o tramite un'operazione manuale, ad esempio
la chiamata di sudo shutdown
nel sistema operativo guest.
Quando Compute Engine riavvia automaticamente l'istanza, segnala un evento di sistema 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 la terminazione dell'istanza
Poiché Persistent Disk e Hyperdisk sono Network Attached Storage, quando l'istanza viene riavviata, Compute Engine ricollega il disco di avvio e tutti i dischi secondari all'istanza. I dati su questi dischi vengono mantenuti durante la migrazione live e i riavvii delle istanze.
Compute Engine conserva i dati sui dischi SSD locali dopo un evento host, se possibile. Tuttavia, Compute Engine non garantisce la persistenza dei dati degli SSD locali.I dischi SSD locali vengono conservati nei seguenti scenari:
- Configuri l'istanza per la migrazione live e l'istanza subisce un evento di manutenzione dell'host.
- Si verifica un errore host e Compute Engine ricollega l'istanza ai dischi SSD locali entro il limite di timeout.
- Un'istanza di Compute con dischi SSD locali collegati che supporta solo l'arresto e il riavvio automatico viene sottoposta a un evento di manutenzione. L'istanza viene riavviata sul posto, conservando i dati dell'SSD locale, anziché eseguire la migrazione a un nuovo host.
I dischi SSD locali non vengono conservati nei seguenti scenari:
- Arresti il sistema operativo guest e forzi l'arresto dell'istanza.
- Configuri l'istanza in modo che si arresti in caso di eventi di manutenzione dell'host e l'istanza viene sottoposta a un evento di manutenzione dell'host.
- Si verifica un errore 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. Quando l'istanza viene riavviata, 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 utilizza un approccio basato sul massimo impegno per mantenere intatti i dati dell'SSD locale. Tuttavia, in alcuni casi i dati non possono essere recuperati, ad esempio in caso di timeout. Per saperne di più su quando vengono conservati i dischi SSD locali, consulta Persistenza dei dati degli SSD locali.
Timeout del ripristino degli SSD locali
Quando si verifica un errore dell'host, Compute Engine tenta di recuperare eventuali dischi SSD locali collegati all'istanza. Puoi controllare il tempo che Compute Engine dedica a tentare di recuperare i dati con l'impostazione localSsdRecoveryTimeout
del criterio host.
Per impostazione predefinita, Compute Engine dedica un'ora al recupero dei dati, ma i valori validi per questa impostazione sono compresi tra 0 e 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 tenta di recuperare gli SSD locali collegati. L'istanza viene riavviata il prima possibile e i dati dell'SSD locale non sono recuperabili. Utilizza questa configurazione se la ripresa del workload è più importante del recupero dei dati dell'SSD locale.
Se il timeout di recupero non è impostato su 0, ma il limite di tempo viene raggiunto prima che i dati dell'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 si trova nello stato REPAIRING
mentre Compute Engine tenta di recuperare i dischi SSD locali.
L'istanza e i dischi SSD locali non sono disponibili durante questo periodo.
Se imposti il timeout di recupero SSD locale sul valore massimo di 168, l'istanza rimane nello stato REPAIRING
fino a 7 giorni mentre Compute Engine tenta di recuperare i dischi SSD locali.
Interrompi il recupero del disco SSD locale
Puoi interrompere la procedura di recupero del disco SSD locale prima che Compute Engine
raggiunga il limite di timeout di recupero. Per farlo, utilizza il
comando gcloud compute instances stop
con il flag --discard-local-ssd=True
.
Questo comando arresta il processo di recupero, arresta l'istanza di Compute e ignora i dati dell'SSD locale. A questo punto, puoi riavviare l'istanza. Per saperne di più, vedi Arrestare un'istanza con SSD locale.
Questa opzione non è disponibile con le istanze Z3.
Per impostare il timeout del recupero degli SSD locali, consulta Imposta la policy di manutenzione dell'host dell'istanza.
Pianificazione della manutenzione
Google Cloud offre funzionalità che consentono un controllo più rigoroso della manutenzione.
Utilizzando determinate famiglie di macchine,
puoi specificare le preferenze di manutenzione e ricevere notifiche dei prossimi
eventi di manutenzione tramite Cloud Logging, il server di metadati dell'istanza,
il comando gcloud CLI compute instances describe
o il
metodo REST instances.describe
. Al ricevimento di una
notifica,
hai 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
all'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 policy di manutenzione dell'host dell'istanza.
- Scopri di più su come ricevere notifiche relative alla migrazione live.
- Scopri di più sulla simulazione della manutenzione dell'host.
- Scopri di più sulla gestione degli eventi di manutenzione degli host GPU.
- Scopri di più sulla migrazione live manuale delle VM single-tenant.