Questo documento descrive come impostare il criterio di manutenzione dell'host per una macchina virtuale (VM) o un'istanza bare metal per controllare il comportamento dell'istanza quando si verifica un evento dell'host.
Prima di iniziare
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è il processo mediante il quale la tua identità viene verificata per l'accesso a servizi e API. Google Cloud
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:
Select the tab for how you plan to use the samples on this page:
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
REST
Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Per ulteriori informazioni, consulta Eseguire l'autenticazione per l'utilizzo di REST nella documentazione Google Cloud sull'autenticazione.
-
Limitazioni
- Non puoi modificare il comportamento di manutenzione di una VM prerilasciabile. Quando si verifica un evento di manutenzione, la VM preassegnabile si arresta e non viene eseguita la migrazione. Devi riavviare manualmente la VM prelevata.
- Dopo aver creato una VM utilizzando un tipo di macchina E2, non puoi cambiare il comportamento di manutenzione della VM da
MIGRATE
aTERMINATE
o viceversa. - Non puoi modificare il comportamento di manutenzione per le istanze Bare Metal come
c3-standard-192-metal
ox4-megamem-1920-metal
, che sono impostate suTERMINATE
e si riavviano automaticamente.
Proprietà di manutenzione dell'host disponibili
Puoi configurare il comportamento di manutenzione, il comportamento di riavvio e il comportamento di attesa per errori dell'host di un'istanza di calcolo. Compute Engine configura ogni istanza con i valori predefiniti, a meno che tu non specifichi diversamente.
Durante gli eventi dell'host, a seconda del criterio di manutenzione dell'host configurato, le istanze che non supportano la migrazione live vengono interrotte e riavviate automaticamente.
onHostMaintenance
: determina il comportamento quando si verifica un evento di manutenzione che potrebbe causare il riavvio dell'istanza.MIGRATE
: consente a Compute Engine di eseguire la migrazione in tempo reale di un'istanza quando si verifica un evento di manutenzione. Questa è l'impostazione predefinita per la maggior parte delle VM.TERMINATE
: arresta l'istanza anziché utilizzare la migrazione live. Si tratta dell'opzione predefinita per Z3, le istanze bare metal e le istanze con acceleratori come GPU e TPU. Per questi tipi di istanze, non puoi modificare l'impostazione peronHostMaintenance
.
automaticRestart
: determina il comportamento quando un'istanza si arresta in modo anomalo o viene interrotta dal sistema.true
(valore predefinito): Compute Engine riavvia un'istanza se si arresta in modo anomalo o viene interrotta.false
: Compute Engine non riavvia un'istanza se si arresta in modo anomalo o viene interrotta.
localSsdRecoveryTimeout
: imposta il timeout del ripristino dell'SSD locale. Si tratta del periodo di tempo massimo, in ore, che Compute Engine attende per recuperare i dati dell'SSD locale dopo un errore dell'host. Questa impostazione si applica solo alle VM con dischi SSD locali collegati. Se configurerai questa impostazione per un'istanza a cui non sono collegati dischi SSD locali, l'impostazione verrà ignorata.- Non impostato (valore predefinito): Compute Engine attende fino a un'ora per recuperare i dati dell'unità SSD locale. Per le VM Z3, il tempo di attesa predefinito è di 6 ore.
- Un numero intero compreso tra 0 e 168: specifica il numero di ore che Compute Engine attende per recuperare i dati dell'unità SSD locale. Il valore massimo è equivalente a 7 giorni. Un valore pari a 0 indica che Compute Engine non attende di recuperare i dati dell'unità SSD locale e riavvia immediatamente l'istanza.
hostErrorTimeoutSeconds
(anteprima): imposta il tempo massimo, in secondi, che Compute Engine attende per riavviare o terminare un'istanza di calcolo dopo aver rilevato che l'istanza non risponde.- Non impostato (valore predefinito): Compute Engine attende fino a 5,5 minuti (330 secondi) prima di riavviare un'istanza che non risponde.
- Un numero intero compreso tra 90 e 330: il numero di secondi, specificato in incrementi di 30, che Compute Engine attende prima di riavviare un'istanza di calcolo non responsiva.
Impostare il criterio di manutenzione dell'host di un'istanza
Puoi modificare il criterio di manutenzione dell'host di un'istanza quando la crei per la prima volta o dopo la sua creazione.
Impostare il criterio di manutenzione dell'host durante la creazione dell'istanza
Le informazioni riportate in questa sezione riguardano come impostare il criterio di manutenzione dell'host quando crei un'istanza. Per altri esempi di creazione di istanze, consulta Creare e avviare un'istanza Compute Engine.
Puoi impostare il criterio di manutenzione dell'host di un'istanza di calcolo al momento della creazione utilizzando la console Google Cloud, gcloud CLI o REST.
Nella console Google Cloud, vai alla pagina Crea un'istanza.
Specifica un nome per l'istanza.
Seleziona una Regione e una Zona per l'istanza.
Nella sezione Configurazione macchina:
- Specifica i dettagli del tipo di macchina per l'istanza.
- Espandi il menu Impostazioni avanzate del modello di provisioning delle VM.
- Nel menu Manutenzione sull'host, seleziona uno dei seguenti passaggi:
- Per eseguire la migrazione delle VM durante gli eventi di manutenzione, seleziona Esegui la migrazione dell'istanza VM.
- Per arrestare le istanze durante gli eventi di manutenzione, seleziona Termina istanza VM.
Per creare l'istanza, fai clic su Crea.
Per impostare il criterio di manutenzione dell'host di una nuova istanza, utilizza il
comando gcloud compute instances create
.
Per impostare la proprietà --host-error-timeout-seconds
(Anteprima), devi utilizzare il comando gcloud beta compute instances create
.
Puoi impostare il criterio di manutenzione dell'host di una nuova istanza con il seguente comando. Se ometti uno dei flag, viene utilizzato il valore predefinito per il flag.
gcloud compute instances create INSTANCE_NAME \
--zone=ZONE \
--maintenance-policy=MAINTENANCE_BEHAVIOR \
--RESTART_ON_FAILURE_BEHAVIOR \
--local-ssd-recovery-timeout=SSD_RECOVERY_TIMEOUT \
--host-error-timeout-seconds=ERROR_DETECTION_TIMEOUT
Sostituisci quanto segue:
INSTANCE_NAME
: il nome dell'istanza.- ZONE: la zona in cui si trova l'istanza,
MAINTENANCE_BEHAVIOR
: il comportamento dell'evento di manutenzione di un'istanza,TERMINATE
oMIGRATE
. Per la maggior parte di tipi di macchine, la VM viene migrata per impostazione predefinita se ometti questa proprietà. Le istanze Z3 e Bare Metal vengono interrotte.RESTART_ON_FAILURE_BEHAVIOR
: comportamento di riavvio per le istanze terminate o non rispondenti, impostato surestart-on-failure
(predefinito) ono-restart-on-failure
.SSD_RECOVERY_TIMEOUT
: il numero di ore da impiegare per recuperare i dischi SSD locali collegati a un'istanza terminata o non rispondente. I valori validi vanno da 0 a 168 con incrementi di 1 ora.ERROR_DETECTION_TIMEOUT
: il numero di secondi che Compute Engine attende prima di riavviare un'istanza che non risponde, da 90 a 330 secondi (5,5 minuti), con incrementi di 30 secondi.
Per impostare il criterio di manutenzione dell'host di una nuova istanza utilizzando REST,
utilizza il
metodo instances.insert
.
Puoi impostare il criterio di manutenzione dell'host di una nuova istanza con il seguente comando. Se ometti uno dei campi, viene utilizzato il valore predefinito per il campo.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID /zones/ZONE /instances
{
"name": "INSTANCE_NAME ",
"scheduling": {
"onHostMaintenance": "MAINTENANCE_BEHAVIOR ",
"automaticRestart": "RESTART_POLICY ,
"localSsdRecoveryTimeout": SSD_RECOVERY_TIMEOUT
}
}
Sostituisci quanto segue:
PROJECT_ID
: il progetto per l'istanza.ZONE
: la zona in cui vuoi creare l'istanza.INSTANCE_NAME
: il nome dell'istanza.MAINTENANCE_BEHAVIOR
: il comportamento dell'evento di manutenzione di un'istanza,TERMINATE
oMIGRATE
. Per la maggior parte di tipi di macchine, la VM viene migrata per impostazione predefinita se ometti questo campo. Le istanze Z3 e Bare Metal vengono interrotte.RESTART_POLICY
: indica se l'istanza si riavvia automaticamente dopo un evento di manutenzione o un errore dell'host. Può esseretrue
(valore predefinito) ofalse
.SSD_RECOVERY_TIMEOUT
: il numero di ore impiegate da Compute Engine per recuperare i dischi SSD locali collegati a un'istanza non rispondente o terminata. I valori validi vanno da 0 a 168, con incrementi di 1 ora. Il valore predefinito per Z3 è 6 ore e per tutte le altre VM è 1 ora.
Imposta il timeout per il rilevamento degli errori dell'host
Per impostare il tempo massimo di attesa di Compute Engine per riavviare o terminare un'istanza che non risponde, utilizza il metodo beta instances.insert
, poiché questa opzione è in anteprima.
Aggiungi la proprietà hostErrorTimeoutSeconds
all'oggetto scheduling
del corpo della richiesta, dove HOST_ERROR_TIMEOUT
è il numero di secondi che Compute Engine attende prima di riavviare o terminare un'istanza non rispondente. I valori validi vanno da 90 a 330
(5,5 minuti), con incrementi di 30 secondi.
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID /zones/ZONE /instances
{
"name": "INSTANCE_NAME ",
"scheduling": {
"onHostMaintenance": "MAINTENANCE_BEHAVIOR ",
"automaticRestart": "RESTART_POLICY ,
"localSsdRecoveryTimeout": SSD_RECOVERY_TIMEOUT
"hostErrorTimeoutSeconds": HOST_ERROR_TIMEOUT ,
}
}
Aggiorna il criterio di manutenzione dell'host di un'istanza esistente
Nella console Google Cloud, vai alla pagina Istanze VM.
Fai clic sul nome dell'istanza per la quale vuoi modificare le impostazioni. Viene visualizzata la pagina dei dettagli dell'istanza.
Con la scheda Dettagli selezionata, completa i seguenti passaggi:
- Fai clic sul pulsante Modifica nella parte superiore della pagina.
- Vai alla sezione Gestione. Nella sezione Norme sulla disponibilità, puoi modificare le opzioni di manutenzione dell'attività.
- Fai clic su Salva.
Aggiorna il criterio di manutenzione dell'host di un'istanza esistente con il
comando gcloud compute instances set-scheduling
.
Utilizza gli stessi parametri del comando di creazione dell'istanza
nella sezione precedente.
Per aggiornare il tempo massimo di attesa di Compute Engine per riavviare o terminare un'istanza non rispondente (anteprima), utilizza il comando gcloud beta compute instances set-scheduling
e includi --host-error-timeout-seconds=NUMBER_OF_SECONDS
.
gcloud compute instances set-scheduling INSTANCE_NAME \
--maintenance-policy=MAINTENANCE_BEHAVIOR \
--RESTART_ON_FAILURE_BEHAVIOR \
--local-ssd-recovery-timeout=SSD_RECOVERY_TIMEOUT
Sostituisci quanto segue:
NUMBER_OF_SECONDS
: il numero di secondi che Compute Engine attende prima di riavviare o terminare una VM non rispondente, da 90 a 330 (5,5 minuti), con incrementi di 30 secondi.INSTANCE_NAME
: il nome dell'istanza.MAINTENANCE_BEHAVIOR
: il comportamento dell'evento di manutenzione di un'istanza,TERMINATE
oMIGRATE
. Per la maggior parte di tipi di macchine, la VM viene migrata per impostazione predefinita se ometti questa proprietà. Le istanze Z3 e Bare Metal vengono interrotte.RESTART_ON_FAILURE_BEHAVIOR
: comportamento di riavvio per le istanze terminate o non rispondenti, impostato surestart-on-failure
(predefinito) ono-restart-on-failure
.SSD_RECOVERY_TIMEOUT
: il numero di ore da impiegare per recuperare i dischi SSD locali collegati a un'istanza terminata o non rispondente. I valori validi vanno da 0 a 168 con incrementi di 1 ora.NUMBER_OF_SECONDS
: il numero di secondi che Compute Engine attende prima di riavviare un'istanza che non risponde, da 90 a 330 secondi (5,5 minuti), con incrementi di 30 secondi.
Aggiorna il criterio di manutenzione dell'host di un'istanza esistente utilizzando una POST
richiesta al
metodo instances.setScheduling
.
POST https://compute.googleapis.com/compute/v1projects/PROJECT_ID /zones/ZONE /instances/INSTANCE_NAME /setScheduling
{
"onHostMaintenance": "MAINTENANCE_BEHAVIOR ",
"automaticRestart": RESTART_POLICY ,
"localSsdRecoveryTimeout": SSD_RECOVERY_TIMEOUT
}
Sostituisci quanto segue:
PROJECT_ID
: il progetto per l'istanza.ZONE
: la zona in cui si trova l'istanza.INSTANCE_NAME
: il nome dell'istanza.MAINTENANCE_BEHAVIOR
: il comportamento dell'evento di manutenzione di questa istanza,TERMINATE
oMIGRATE
.RESTART_POLICY
: indica se l'istanza viene riavviata automaticamente,true
ofalse
.SSD_RECOVERY_TIMEOUT
: il numero di ore da impiegare per recuperare i dischi SSD locali collegati all'istanza. I valori validi vanno da 0 a 168 con incrementi di 1 ora.
Aggiorna il timeout del rilevamento degli errori dell'host
Per aggiornare il tempo massimo di attesa di Compute Engine per riavviare o terminare una VM non rispondente, devi utilizzare il metodo beta instances.setScheduling
perché questa funzionalità è in anteprima.
Aggiungi la proprietà hostErrorTimeoutSeconds
al corpo della richiesta, dove HOST_ERROR_TIMEOUT
è il numero di secondi che Compute Engine attende prima di riavviare o terminare un'istanza che non risponde. I valori validi vanno da 90 a 330
(5,5 minuti), con incrementi di 30 secondi.
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID /zones/ZONE /instances/INSTANCE_NAME /setScheduling
{
...
"hostErrorTimeoutSeconds": NUMBER_OF_SECONDS
}
Visualizzare le impostazioni del criterio di manutenzione dell'host per un'istanza
Vai alla pagina Istanze VM.
Fai clic sul nome dell'istanza di cui vuoi visualizzare le impostazioni. Viene visualizzata la pagina dei dettagli dell'istanza.
Vai alla sezione Gestione. La sottosezione Criteri di disponibilità mostra le impostazioni correnti per quanto segue:
- Host in manutenzione
- Riavvio automatico
- Timeout errore dell'host
Visualizza le impostazioni dell'opzione di manutenzione dell'host per un'istanza con il comando gcloud compute instances describe
.
Per visualizzare il valore corrente dell'impostazione hostErrorTimeoutSeconds
(Anteprima), utilizza il comando gcloud beta compute instances describe
.
gcloud compute instances describe INSTANCE_NAME \
--zone ZONE --format="yaml(scheduling)"
Sostituisci quanto segue:
INSTANCE_NAME
: il nome dell'istanzaZONE
: la zona in cui si trova l'istanza
L'output include le impostazioni correnti per il criterio di manutenzione dell'host, ad esempio:
scheduling:
automaticRestart: true
hostErrorTimeoutSeconds: 120
localSsdRecoveryTimeout:
nanos: 0
seconds: '10800'
onHostMaintenance: MIGRATE
preemptible: false
provisioningModel: STANDARD
Per visualizzare le impostazioni di manutenzione dell'host per un'istanza, utilizza il
metodo instances.get
:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID /zones/ZONE /instances/INSTANCE_NAME
Sostituisci quanto segue:
PROJECT_ID
: il progetto in cui si trova l'istanza.ZONE
: la zona in cui si trova l'istanza.INSTANCE_NAME
: il nome dell'istanza.
Nell'output, l'oggetto scheduling
contiene le impostazioni per il criterio di manutenzione dell'host dell'istanza, ad esempio:
{
...
"scheduling": {
"onHostMaintenance": "MIGRATE",
"automaticRestart": true,
"preemptible": false,
"provisioningModel": "STANDARD",
"localSsdRecoveryTimeout": {
"seconds": "10800",
"nanos": 0
}
},
...
}
Visualizzare le impostazioni del timeout errore dell'host
Visualizza l'impostazione hostErrorTimeoutSeconds
corrente creando
una richiesta GET
utilizzando il
metodo instances.get
beta.
GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID /zones/ZONE /instances/INSTANCE_NAME
Sostituisci quanto segue:
PROJECT_ID
: il progetto per l'istanza.ZONE
: la zona in cui si trova l'istanza.INSTANCE_NAME
: il nome dell'istanza.
Nell'output, l'oggetto scheduling
include il timeout di rilevamento degli errori dell'host dell'istanza, ad esempio:
{
...
"scheduling": {
"onHostMaintenance": "MIGRATE",
"automaticRestart": true,
"preemptible": false,
"provisioningModel": "STANDARD",
"hostErrorTimeoutSeconds": 120,
"localSsdRecoveryTimeout": {
"seconds": "10800",
"nanos": 0
}
},
...
}
Passaggi successivi
- Scopri di più sulla manutenzione dell'attività.
- Scopri di più sulla migrazione live.
- Scopri come rilevare un evento di migrazione in tempo reale.