Impostare il criterio di manutenzione dell'host per un'istanza di calcolo


Questo documento spiega come impostare il criterio di manutenzione dell'host per un'istanza Compute Engine per determinarne il comportamento durante gli eventi dell'host. Per approfondire le policy di manutenzione dell'host, consulta la policy di manutenzione dell'host.

Un criterio di manutenzione dell'host determina la risposta dell'istanza quando l'host su cui è in esecuzione richiede manutenzione o rileva un errore. La configurazione del criterio di manutenzione dell'host per un'istanza ti consente di svolgere quanto segue:

  • Riduci al minimo i tempi di inattività.

  • Evita la perdita di dati.

Limitazioni

Per le norme di manutenzione dell'host, si applicano le seguenti limitazioni:

  • Le istanze di macchine virtuali che utilizzano tipi di macchine E2 possono eseguire la migrazione in tempo reale solo durante gli eventi di manutenzione dell'host, a meno che non si tratti di VM spot o VM preemptible.

  • Le seguenti istanze possono essere interrotte solo durante gli eventi di manutenzione dell'host:

  • Le VM spot e le VM prerilasciabili non possono riavviarsi automaticamente dopo errori dell'host o arresti programmati.

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:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    2. Set a default region and zone.
    3. REST

      Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      Per ulteriori informazioni, consulta Eseguire l'autenticazione per l'utilizzo di REST nella documentazione Google Cloud sull'autenticazione.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per impostare il criterio di manutenzione dell'host per un'istanza Compute, chiedi all'amministratore di concederti il ruolo IAM Amministratore istanze Compute (v1) (roles/compute.instanceAdmin.v1) nel progetto. Per ulteriori informazioni sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene le autorizzazioni necessarie per impostare il criterio di manutenzione dell'host per un'istanza di calcolo. Per visualizzare le autorizzazioni esatte richieste, espandi la sezione Autorizzazioni richieste:

Autorizzazioni obbligatorie

Per impostare il criterio di manutenzione dell'host per un'istanza di calcolo sono necessarie le seguenti autorizzazioni:

  • Per creare un'istanza:
    • compute.instances.create sul progetto
    • Per utilizzare un'immagine personalizzata per creare la VM: compute.images.useReadOnly sull'immagine
    • Per utilizzare uno snapshot per creare la VM: compute.snapshots.useReadOnly sullo snapshot
    • Per utilizzare un modello di istanza per creare la VM: compute.instanceTemplates.useReadOnly nel modello di istanza
    • Per assegnare una rete legacy alla VM: compute.networks.use nel progetto
    • Per specificare un indirizzo IP statico per la VM: compute.addresses.use nel progetto
    • Per assegnare un indirizzo IP esterno alla VM quando nel progetto viene utilizzata una rete precedente: compute.networks.useExternalIp
    • Per specificare una subnet per la VM: compute.subnetworks.use nel progetto o nella subnet scelta
    • Per assegnare un indirizzo IP esterno alla VM quando utilizzi una rete VPC: compute.subnetworks.useExternalIp nel progetto o nella subnet scelta
    • Per impostare i metadati dell'istanza VM per la VM: compute.instances.setMetadata nel progetto
    • Per impostare i tag per la VM: compute.instances.setTags sulla VM
    • Per impostare le etichette per la VM: compute.instances.setLabels sulla VM
    • Per impostare un account di servizio per consentire alla VM di utilizzare: compute.instances.setServiceAccount sulla VM
    • Per creare un nuovo disco per la VM: compute.disks.create nel progetto
    • Per collegare un disco esistente in modalità di sola lettura o lettura/scrittura: compute.disks.use sul disco
    • Per collegare un disco esistente in modalità di sola lettura: compute.disks.useReadOnly sul disco
  • Per creare un modello di istanza: compute.instanceTemplates.create nel progetto
  • Per aggiornare il criterio di manutenzione dell'host per un'istanza: compute.instances.setScheduling sull'istanza

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Proprietà di manutenzione dell'host disponibili

Puoi personalizzare il comportamento dell'istanza di calcolo durante la manutenzione programmata o eventi imprevisti dell'host. Se non specifichi diversamente, Compute Engine utilizza le impostazioni predefinite quando crei un' istanza, più istanze contemporaneamente o un modello di istanza.

Puoi configurare le seguenti proprietà di manutenzione dell'host:

  • Comportamento di manutenzione (onHostMaintenance): cosa accade all'istanza durante un evento di manutenzione sul relativo host che potrebbe causare il riavvio dell'istanza. Puoi impostare questa proprietà su uno dei seguenti valori:

    • Esegui migrazione: Compute Engine esegue automaticamente la migrazione live della tua istanza a un altro host. Questa è l'impostazione predefinita per tutti i tipi di istanze, ad eccezione delle VM spot e delle VM preemptible.

    • Termina: Compute Engine arresta l'istanza. Si tratta dell'impostazione predefinita per le VM Spot o prerilasciabili ed è l'unica impostazione supportata per le istanze Z3, le istanze bare metal e le istanze con GPU o TPU collegate.

  • Riavvio automatico (automaticRestart): indica se l'istanza si riavvia se si arresta in modo anomalo o se Compute Engine la arresta per un arresto programmato, ad esempio un evento di manutenzione. Puoi impostare questa proprietà su uno dei seguenti valori:

    • On: Compute Engine riavvia automaticamente l'istanza. Questa è l'impostazione predefinita per tutti i tipi di istanze, ad eccezione delle VM spot e prerilasciabili. Specifica questa impostazione come segue:

      • Per la console Google Cloud, nel riquadro Avanzate, nell'elenco Riavvio automatico, seleziona On (consigliato).

      • Per Google Cloud CLI, utilizza il flag --restart-on-failure.

      • Per REST, imposta il campo automaticRestart su true.

    • Off: Compute Engine non riavvia l'istanza. Questa è l'impostazione predefinita per le VM spot o preemptible. Puoi specificare questa impostazione nel seguente modo:

      • Per la console Google Cloud, nel riquadro Avanzate, nell'elenco Riavvio automatico, seleziona Off.

      • Per l'interfaccia a riga di comando gcloud, utilizza il --no-restart-on-failure flag.

      • Per REST, imposta il campo automaticRestart su false.

  • Timeout del ripristino dei dati dell'SSD locale (localSsdRecoveryTimeout): questa impostazione si applica solo alle istanze con dischi SSD locali collegati. Determina il tempo di attesa di Compute Engine per recuperare i dati dai dischi SSD locali dopo gli errori dell'host. Per impostazione predefinita, questa proprietà non è impostata. Puoi impostare questa proprietà su uno dei seguenti valori:

    • Non impostato: Compute Engine utilizza il tempo di attesa predefinito:

      • Per le VM Z3, 6 ore

      • Per tutti gli altri tipi di istanze, 1 ora

    • Un numero intero compreso tra 0 e 168: il numero di ore di attesa. Se imposti questa proprietà su 0, Compute Engine non recupera i dati dell'SSD locale e riavvia immediatamente l'istanza.

  • Timeout errore host (hostErrorTimeoutSeconds): questa proprietà determina il tempo di attesa di Compute Engine per riavviare un'istanza non rispondente. Devi configurare questa impostazione prima che l'istanza non risponda più. Utilizza un timeout sufficientemente lungo per consentire a un'istanza di riprendersi da un stato di mancata risposta. Puoi impostare questa proprietà su uno dei seguenti valori:

    • Non impostato: Compute Engine attende fino a 330 secondi (5 minuti e 30 secondi). Questa è l'impostazione predefinita per qualsiasi tipo di istanza.

    • Un numero intero compreso tra 90 e 330: il tempo di attesa in secondi, con incrementi di 30 secondi.

Impostare il criterio di manutenzione dell'host per un'istanza

Per impostazione predefinita, le istanze di calcolo utilizzano le impostazioni predefinite per il criterio di manutenzione dell'host. Per personalizzare queste impostazioni, utilizza uno dei seguenti metodi:

Impostare il criterio per un'istanza esistente

Prima di modificare il criterio di manutenzione dell'host di un'istanza esistente, assicurati di quanto segue:

  • Non puoi modificare il comportamento di manutenzione (onHostMaintenance) dei seguenti tipi di istanze:

  • Non puoi configurare le VM spot o le VM prerilasciabili in modo che si riavviino automaticamente dopo errori dell'host o arresti programmati.

Per modificare il timeout del recupero dei dati dell'SSD locale in un'istanza a cui sono collegati dischi SSD locali, utilizza gcloud CLI o l'API REST. In caso contrario, seleziona una delle seguenti opzioni:

Console

  1. Nella console Google Cloud, vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Nella colonna Nome, fai clic sul nome dell'istanza da actualizare. Viene visualizzata una pagina con i dettagli dell'istanza.

  3. Fai clic su Modifica. Viene visualizzata una pagina che consente di modificare le proprietà dell'istanza.

  4. Nella sezione Gestione, puoi eseguire una o più delle seguenti operazioni:

    • Per modificare il comportamento durante gli eventi di manutenzione, seleziona un'altra opzione dall'elenco Manutenzione dell'host.

    • Per modificare il periodo di timeout prima del riavvio di un'istanza che non risponde, seleziona un'altra opzione dall'elenco Timeout errore host.

    • Per modificare la scelta di riavviare o meno l'istanza dopo errori dell'host o arresti programmati, seleziona un'altra opzione dall'elenco Riavvio automatico.

  5. Fai clic su Salva.

gcloud

Per modificare il criterio di manutenzione dell'host in un'istanza esistente, utilizza il comando gcloud compute instances set-scheduling con uno o più dei seguenti flag:

  • Per modificare il comportamento della manutenzione dell'host, includi il flag --maintenance-policy.

  • Per modificare il comportamento di riavvio automatico, esegui una delle seguenti operazioni:

    • Per riavviare automaticamente l'istanza, includi il --restart-on-failure flag.

    • Per impedire il riavvio automatico dell'istanza, includi il flag --no-restart-on-failure.

  • Per modificare il timeout del recupero dei dati degli SSD locali se all'istanza sono collegati dischi SSD locali, includi il flag --local-ssd-recovery-timeout.

  • Per modificare il timeout per errori dell'host, includi il flag --host-error-timeout-seconds.

Ad esempio, per modificare il comportamento della manutenzione dell'host, riavviare automaticamente l'istanza dopo errori dell'host o arresti programmati, modificare il timeout del recupero dei dati dell'SSD locale e modificare il timeout per gli errori dell'host, esegui il seguente comando:

gcloud compute instances set-scheduling INSTANCE_NAME \
    --host-error-timeout-seconds=ERROR_DETECTION_TIMEOUT \
    --local-ssd-recovery-timeout=LOCAL_SSD_RECOVERY_TIMEOUT \
    --maintenance-policy=MAINTENANCE_POLICY \
    --restart-on-failure \
    --zone=ZONE

Sostituisci quanto segue:

  • INSTANCE_NAME: il nome dell'istanza.

  • ERROR_DETECTION_TIMEOUT: il numero di secondi prima che Compute Engine riavvii un'istanza che non risponde. Il valore deve essere compreso tra 90 (90 secondi) e 330 (330 secondi o 5 minuti e 30 secondi). Sono consentiti solo incrementi di 30 secondi.

  • MAINTENANCE_POLICY: il comportamento della manutenzione dell'istanza. Il valore può essere TERMINATE o MIGRATE.

  • LOCAL_SSD_RECOVERY_TIMEOUT: il numero di ore da dedicare al recupero dei dati dai dischi SSD locali collegati. Il valore deve essere compreso tra 0 (0 ore) e 168 (168 ore o 7 giorni). Se imposti questo campo su 0, significa che Compute Engine non recupera i dati SSD locali.

  • ZONE: la zona in cui esiste l'istanza.

REST

Per modificare il criterio di manutenzione dell'host in un'istanza esistente, invia una richiesta POST al metodo instances.setScheduling. Nel corpo della richiesta, includi uno o più dei seguenti campi:

  • Per modificare il comportamento di manutenzione dell'host, includi il campo onHostMaintenance.

  • Per modificare il comportamento di riavvio automatico, esegui una delle seguenti operazioni:

    • Per riavviare automaticamente l'istanza, includi il campo automaticRestart.

    • Per impedire il riavvio automatico dell'istanza, includi il campo automaticRestart.

  • Per modificare il timeout del recupero dei dati degli SSD locali se all'istanza sono collegati dischi SSD locali, includi il campo localSsdRecoveryTimeout.

  • Per modificare il timeout per errori dell'host, includi il campo hostErrorTimeoutSeconds.

Ad esempio, per modificare il comportamento di manutenzione dell'host, riavviare automaticamente l'istanza dopo errori dell'host o arresti programmati, modificare il timeout per il recupero dei dati dell'unità SSD locale e modificare il timeout per gli errori dell'host, effettua una richiesta come segue:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/setScheduling

{
  "automaticRestart": AUTOMATIC_RESTART,
  "hostErrorTimeoutSeconds": ERROR_DETECTION_TIMEOUT,
  "localSsdRecoveryTimeout": LOCAL_SSD_RECOVERY_TIMEOUT,
  "onHostMaintenance": "MAINTENANCE_POLICY"
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui esiste l'istanza.

  • ZONE: la zona in cui esiste l'istanza.

  • INSTANCE_NAME: il nome dell'istanza.

  • AUTOMATIC_RESTART: il comportamento di riavvio automatico dell'istanza se si arresta in modo anomalo o se Compute Engine la arresta per un arresto programmato. Specifica uno dei seguenti valori:

    • Per consentire a Compute Engine di riavviare automaticamente l'istanza: true

    • Per evitare i riavvii automatici: false

  • ERROR_DETECTION_TIMEOUT: il numero di secondi prima di riavviare un'istanza non rispondente. Il valore deve essere compreso tra 90 (90 secondi) e 330 (330 secondi o 5 minuti e 30 secondi). Sono consentiti solo incrementi di 30 secondi.

  • LOCAL_SSD_RECOVERY_TIMEOUT: il numero di ore da dedicare al recupero dei dati dai dischi SSD locali collegati. Il valore deve essere compreso tra 0 (0 ore) e 168 (168 ore o 7 giorni). Se imposti questo campo su 0, significa che Compute Engine non recupera i dati SSD locali.

  • MAINTENANCE_POLICY: il comportamento della manutenzione dell'istanza. Il valore può essere TERMINATE o MIGRATE.

Impostare il criterio durante la creazione di un'istanza

Puoi impostare il criterio di manutenzione dell'host di un'istanza di calcolo durante la sua creazione.

Per impostare il timeout del recupero dei dati dell'SSD locale durante la creazione di un'istanza con dischi SSD locali collegati, utilizza gcloud CLI o l'API REST. In caso contrario, seleziona una delle seguenti opzioni:

Console

  1. Nella console Google Cloud, vai alla pagina Crea un'istanza.

    Vai a Crea un'istanza

  2. Nel campo Nome, inserisci un nome per l'istanza.

  3. Nei campi Regione e Zona, specifica in quale regione e zona creare l'istanza.

  4. Specifica il tipo di macchina per l'istanza.

  5. Nel menu di navigazione, fai clic su Avanzate.

  6. Nella sezione Modello di provisioning, espandi Impostazioni avanzate del modello di provisioning delle VM e segui una o più delle seguenti operazioni:

    • Per impostare il comportamento durante gli eventi di manutenzione, nell'elenco Manutenzione dell'host, seleziona una delle seguenti opzioni:

      • Per eseguire la migrazione dell'istanza durante gli eventi di manutenzione dell'host, seleziona Esegui migrazione istanza VM (consigliato).

      • Per arrestare l'istanza durante gli eventi di manutenzione dell'host, seleziona Termina istanza VM.

    • Per impostare il periodo di timeout prima di riavviare un'istanza non rispondente, nell'elenco Timeout errore host seleziona una delle seguenti opzioni:

      • Per non specificare un timeout per gli errori dell'host, seleziona Senza specifica (predefinito).

      • Per specificare un timeout per gli errori dell'host, seleziona una delle opzioni disponibili, fino a 5 minuti e 30 secondi.

    • Per impostare se riavviare l'istanza in caso di arresto anomalo o interruzione, nell'elenco Riavvio automatico seleziona una delle seguenti opzioni:

      • Per riavviare automaticamente l'istanza dopo errori dell'host o arresti programmati, seleziona On (recommended) (On (consigliato)).

      • Per impedire il riavvio automatico dell'istanza dopo errori dell'host o arresti programmati, seleziona Off.

  7. Fai clic su Crea.

gcloud

Per impostare il criterio di manutenzione dell'host di un'istanza durante la sua creazione, utilizza il comando gcloud compute instances create con uno o più dei seguenti flag:

  • Per impostare il comportamento di manutenzione dell'host, includi il flag --maintenance-policy.

  • Per impostare il comportamento di riavvio automatico, esegui una delle seguenti operazioni:

    • Per riavviare automaticamente l'istanza, includi il flag --restart-on-failure.

    • Per impedire il riavvio automatico dell'istanza, includi il flag --no-restart-on-failure.

  • Per impostare un timeout per il recupero dei dati degli SSD locali se alla tua istanza sono collegati dischi SSD locali, includi il flag --local-ssd-recovery-timeout.

  • Per impostare un timeout per errori dell'host, includi il flag --host-error-timeout-seconds.

Ad esempio, per impostare il comportamento di manutenzione dell'host, riavviare automaticamente l'istanza dopo errori dell'host o arresti programmati, impostare un timeout per il recupero dei dati dell'unità SSD locale e un timeout per gli errori dell'host, esegui il seguente comando:

gcloud compute instances create INSTANCE_NAME \
    --host-error-timeout-seconds=ERROR_DETECTION_TIMEOUT \
    --local-ssd-recovery-timeout=LOCAL_SSD_RECOVERY_TIMEOUT \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=MAINTENANCE_POLICY \
    --restart-on-failure \
    --zone=ZONE

Sostituisci quanto segue:

  • INSTANCE_NAME: il nome dell'istanza.

  • ERROR_DETECTION_TIMEOUT: il numero di secondi prima di riavviare un'istanza non rispondente. Il valore deve essere compreso tra 90 (90 secondi) e 330 (330 secondi o 5 minuti e 30 secondi). Sono consentiti solo incrementi di 30 secondi.

  • LOCAL_SSD_RECOVERY_TIMEOUT: il numero di ore da dedicare al recupero dei dati dai dischi SSD locali collegati. Il valore deve essere compreso tra 0 (0 ore) e 168 (168 ore o 7 giorni). Se imposti questo campo su 0, significa che Compute Engine non recupera i dati SSD locali.

  • MACHINE_TYPE: il tipo di macchina da utilizzare.

  • MAINTENANCE_POLICY: il comportamento della manutenzione dell'istanza. Il valore può essere TERMINATE o MIGRATE. Se stai creando una VM spot, una VM preemptible o un'istanza che non supporta la migrazione live, puoi utilizzare solo TERMINATE.

  • ZONE: la zona in cui creare l'istanza.

REST

Per impostare il criterio di manutenzione dell'host di un'istanza durante la sua creazione, invia una richiesta POST al metodo instances.insert. Nel corpo della richiesta, includi uno o più dei seguenti campi nel scheduling:

  • Per impostare il comportamento di manutenzione dell'host, includi il campo onHostMaintenance.

  • Per impostare il comportamento di riavvio automatico, esegui una delle seguenti operazioni:

    • Per riavviare automaticamente l'istanza, includi il campo automaticRestart.

    • Per impedire il riavvio automatico dell'istanza, includi il campo automaticRestart.

  • Per impostare un timeout per il recupero dei dati degli SSD locali se all'istanza sono collegati dischi SSD locali, includi il campo localSsdRecoveryTimeout.

  • Per impostare un timeout per gli errori dell'host, includi il campo hostErrorTimeoutSeconds.

Ad esempio, per impostare il comportamento di manutenzione dell'host, riavviare automaticamente l'istanza dopo errori dell'host o arresti programmati, impostare un timeout per il recupero dei dati dell'SSD locale e impostare un timeout per gli errori dell'host, effettua una richiesta come segue:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
  "name": "INSTANCE_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks": [
    {
      "boot": true,
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      }
    }
  ],
  "networkInterfaces": [
    {
      "network": "global/networks/default"
    }
  ],
  "scheduling": {
    "automaticRestart": AUTOMATIC_RESTART,
    "hostErrorTimeoutSeconds": ERROR_DETECTION_TIMEOUT,
    "localSsdRecoveryTimeout": LOCAL_SSD_RECOVERY_TIMEOUT,
    "onHostMaintenance": "MAINTENANCE_POLICY"
  }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui creare l'istanza.

  • ZONE: la zona in cui creare l'istanza.

  • INSTANCE_NAME: il nome dell'istanza.

  • MACHINE_TYPE: il tipo di macchina da utilizzare.

  • IMAGE_PROJECT: il progetto immagine che contiene l'immagine, ad esempio debian-cloud. Per saperne di più sui progetti di immagini supportati, consulta Immagini pubbliche.

  • IMAGE: specifica una delle seguenti opzioni:

    • Una versione specifica dell'immagine del sistema operativo, ad esempio debian-12-bookworm-v20240617.

    • Una famiglia di immagini, che deve essere formattata come family/IMAGE_FAMILY. Questo specifica l'immagine del sistema operativo più recente e non ritirata. Ad esempio, se specifichi family/debian-12, viene utilizzata la versione più recente della famiglia di immagini Debian 12. Per saperne di più sull'utilizzo delle famiglie di immagini, consulta le best practice per le famiglie di immagini.

  • AUTOMATIC_RESTART: il comportamento di riavvio automatico dell'istanza se si arresta in modo anomalo o se Compute Engine la arresta per un arresto programmato. Specifica uno dei seguenti valori:

    • Per consentire a Compute Engine di riavviare automaticamente l'istanza: true

    • Per evitare i riavvii automatici: false

  • ERROR_DETECTION_TIMEOUT: il numero di secondi prima di riavviare un'istanza non rispondente. Il valore deve essere compreso tra 90 (90 secondi) e 330 (330 secondi o 5 minuti e 30 secondi). Sono consentiti solo incrementi di 30 secondi.

  • LOCAL_SSD_RECOVERY_TIMEOUT: il numero di ore da dedicare al recupero dei dati dai dischi SSD locali collegati. Il valore deve essere compreso tra 0 (0 ore) e 168 (168 ore o 7 giorni). Se imposti questo campo su 0, significa che Compute Engine non recupera i dati SSD locali.

  • MAINTENANCE_POLICY: il comportamento della manutenzione dell'istanza. Il valore può essere TERMINATE o MIGRATE. Se stai creando una VM spot o un'istanza che non supporta la migrazione live, puoi utilizzare solo TERMINATE.

Per ulteriori informazioni sulla creazione di un'istanza, consulta Creare e avviare un'istanza Compute Engine.

Impostare il criterio durante la creazione collettiva delle istanze

Per impostare il criterio di manutenzione dell'host durante la creazione collettiva delle istanze, seleziona una delle seguenti opzioni:

gcloud

Per impostare il criterio di manutenzione dell'host durante la creazione collettiva delle istanze, utilizza il comando gcloud compute instances bulk create con uno o più dei seguenti flag:

  • Per impostare il comportamento di manutenzione dell'host, includi il flag --maintenance-policy.

  • Per impostare il comportamento di riavvio automatico, esegui una delle seguenti operazioni:

    • Per riavviare automaticamente l'istanza, includi il flag --restart-on-failure.

    • Per impedire il riavvio automatico dell'istanza, includi il flag --no-restart-on-failure.

  • Per impostare un timeout per il recupero dei dati degli SSD locali se alla tua istanza sono collegati dischi SSD locali, includi il flag --local-ssd-recovery-timeout.

  • Per impostare un timeout per errori dell'host, includi il flag --host-error-timeout-seconds.

Ad esempio, per impostare il comportamento di manutenzione dell'host, riavviare automaticamente l'istanza dopo errori dell'host o arresti programmati, impostare un timeout per il recupero dei dati dell'unità SSD locale e impostare un timeout per gli errori dell'host, esegui il seguente comando. L'esempio seguente crea anche istanze in un'unica zona e specifica un pattern di nomi per le istanze:

gcloud compute instances bulk create \
    --count=COUNT \
    --host-error-timeout-seconds=ERROR_DETECTION_TIMEOUT \
    --local-ssd-recovery-timeout=LOCAL_SSD_RECOVERY_TIMEOUT \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=MAINTENANCE_POLICY \
    --name-pattern=NAME_PATTERN \
    --restart-on-failure \
    --zone=ZONE

Sostituisci quanto segue:

  • COUNT: il numero di istanze da creare.

  • ERROR_DETECTION_TIMEOUT: il numero di secondi prima di riavviare un'istanza non rispondente. Il valore deve essere compreso tra 90 (90 secondi) e 330 (330 secondi o 5 minuti e 30 secondi). Sono consentiti solo incrementi di 30 secondi.

  • LOCAL_SSD_RECOVERY_TIMEOUT: il numero di ore da dedicare al recupero dei dati dai dischi SSD locali collegati. Il valore deve essere compreso tra 0 (0 ore) e 168 (168 ore o 7 giorni). Se imposti questo campo su 0, significa che Compute Engine non recupera i dati SSD locali.

  • MACHINE_TYPE: il tipo di macchina da utilizzare.

  • MAINTENANCE_POLICY: il comportamento della manutenzione delle istanze. Il valore può essere TERMINATE o MIGRATE. Se stai creando VM spot, VM prerilasciabili o istanze che non supportano la migrazione live, puoi utilizzare solo TERMINATE.

  • NAME_PATTERN: il pattern del nome per le istanze. Per sostituire una sequenza di numeri in un nome dell'istanza, utilizza una sequenza di caratteri hash (#). Ad esempio, l'utilizzo di instance-# per il pattern di nome genera istanze con nomi che iniziano con instance-1,instance-2 e continuano fino al numero di istanze specificato daCOUNT.

  • ZONE: la zona in cui creare le istanze.

REST

Per impostare il criterio di manutenzione dell'host durante la creazione collettiva delle istanze, effettua una richiesta POST al metodo instances.bulkInsert. Nel corpo della richiesta, includi uno o più dei seguenti campi nel scheduling:

  • Per impostare il comportamento di manutenzione dell'host, includi il campo onHostMaintenance.

  • Per impostare il comportamento di riavvio automatico, esegui una delle seguenti operazioni:

    • Per riavviare automaticamente l'istanza, includi il campo automaticRestart.

    • Per impedire il riavvio automatico dell'istanza, includi il campo automaticRestart.

  • Per impostare un timeout per il recupero dei dati degli SSD locali se all'istanza sono collegati dischi SSD locali, includi il campo localSsdRecoveryTimeout.

  • Per impostare un timeout per gli errori dell'host, includi il campo hostErrorTimeoutSeconds.

Ad esempio, per impostare il comportamento di manutenzione dell'host, riavviare automaticamente l'istanza dopo errori dell'host o arresti programmati, impostare un timeout per il recupero dei dati dell'unità SSD locale e impostare un timeout per gli errori dell'host, effettua una richiesta come segue. L'esempio seguente crea anche istanze in un'unica zona e specifica un pattern di nomi per le istanze:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert

{
  "count": COUNT,
  "namePattern": "NAME_PATTERN",
  "instanceProperties": {
    "machineType": "MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "scheduling": {
      "automaticRestart": AUTOMATIC_RESTART,
      "hostErrorTimeoutSeconds": ERROR_DETECTION_TIMEOUT,
      "localSsdRecoveryTimeout": LOCAL_SSD_RECOVERY_TIMEOUT,
      "onHostMaintenance": "MAINTENANCE_POLICY"
    }
  }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui creare le istanze.

  • ZONE: la zona in cui creare le istanze.

  • COUNT: il numero di istanze da creare.

  • NAME_PATTERN: il pattern del nome per le istanze. Per sostituire una sequenza di numeri in un nome dell'istanza, utilizza una sequenza di caratteri hash (#). Ad esempio, l'utilizzo di instance-# per il pattern di nome genera istanze con nomi che iniziano con instance-1,instance-2 e continuano fino al numero di istanze specificato daCOUNT.

  • MACHINE_TYPE: il tipo di macchina da utilizzare.

  • IMAGE_PROJECT: il progetto immagine che contiene l'immagine, ad esempio debian-cloud. Per saperne di più sui progetti di immagini supportati, consulta Immagini pubbliche.

  • IMAGE: specifica una delle seguenti opzioni:

    • Una versione specifica dell'immagine del sistema operativo, ad esempio debian-12-bookworm-v20240617.

    • Una famiglia di immagini, che deve essere formattata come family/IMAGE_FAMILY. Questo specifica l'immagine del sistema operativo più recente e non ritirata. Ad esempio, se specifichi family/debian-12, viene utilizzata la versione più recente della famiglia di immagini Debian 12. Per saperne di più sull'utilizzo delle famiglie di immagini, consulta le best practice per le famiglie di immagini.

  • AUTOMATIC_RESTART: il comportamento di riavvio automatico dell'istanza se si arresta in modo anomalo o se Compute Engine la arresta per un arresto programmato. Specifica uno dei seguenti valori:

    • Per consentire a Compute Engine di riavviare automaticamente l'istanza: true

    • Per evitare i riavvii automatici: false

  • ERROR_DETECTION_TIMEOUT: il numero di secondi prima di riavviare un'istanza non rispondente. Il valore deve essere compreso tra 90 (90 secondi) e 330 (330 secondi o 5 minuti e 30 secondi). Sono consentiti solo incrementi di 30 secondi.

  • LOCAL_SSD_RECOVERY_TIMEOUT: il numero di ore da dedicare al recupero dei dati dai dischi SSD locali collegati. Il valore deve essere compreso tra 0 (0 ore) e 168 (168 ore o 7 giorni). Se imposti questo campo su 0, significa che Compute Engine non recupera i dati SSD locali.

  • MAINTENANCE_POLICY: il comportamento della manutenzione delle istanze. Il valore può essere TERMINATE o MIGRATE. Se stai creando VM spot, VM prerilasciabili o istanze che non supportano la migrazione live, puoi utilizzare solo TERMINATE.

Per ulteriori informazioni sulla creazione collettiva di istanze, consulta Creare VM collettivamente.

Impostare il criterio durante la creazione di un modello di istanza

Puoi impostare il criterio di manutenzione dell'host durante la creazione di un modello di istanza. Tutte le istanze di calcolo create utilizzando il modello ereditano il criterio di manutenzione dell'host specificato nel modello.

Per impostare il timeout del recupero dei dati dell'SSD locale durante la creazione di un modello di istanza che specifica i dischi SSD locali, utilizza gcloud CLI o l'API REST. In caso contrario, seleziona una delle seguenti opzioni:

Console

  1. Nella console Google Cloud, vai alla pagina Modelli di istanza.

    Vai a Modelli di istanza

  2. Fai clic su Crea modello istanza. Viene visualizzata la pagina Crea modello istanza.

  3. Nel campo Nome, inserisci un nome per il modello di istanza.

  4. Nella sezione Località, seleziona una delle seguenti opzioni:

    • Per creare un modello di istanza regionale, seleziona Regionale (consigliato) e poi la regione in cui creare il modello.

    • Per creare un modello di istanza globale, seleziona Globale.

  5. Nella sezione Configurazione macchina, specifica il tipo di macchina per il modello di istanza.

  6. Nella sezione Modello di provisioning, espandi Impostazioni avanzate del modello di provisioning delle VM e segui una o più delle seguenti operazioni:

    • Per modificare il comportamento durante gli eventi di manutenzione, nell'elenco Manutenzione sull'host, seleziona una delle seguenti opzioni:

      • Per eseguire la migrazione dell'istanza durante gli eventi di manutenzione dell'host, seleziona Esegui migrazione istanza VM (consigliato).

      • Per arrestare l'istanza durante gli eventi di manutenzione dell'host, seleziona Termina istanza VM.

    • Per modificare il periodo di tempo prima di riavviare un'istanza che non risponde, nell'elenco Timeout errore host seleziona una delle seguenti opzioni:

      • Per non specificare un timeout per gli errori dell'host, seleziona Senza specifica (predefinito).

      • Per specificare un timeout per gli errori dell'host, seleziona una delle opzioni disponibili, fino a 5 minuti e 30 secondi.

    • Per modificare l'opzione di riavvio dell'istanza in caso di arresto anomalo o interruzione, nell'elenco Riavvio automatico seleziona una delle seguenti opzioni:

      • Per riavviare automaticamente l'istanza dopo errori dell'host o arresti programmati, seleziona On (recommended) (On (consigliato)).

      • Per impedire il riavvio automatico dell'istanza dopo errori dell'host o arresti programmati, seleziona Off.

  7. Fai clic su Crea.

gcloud

Per impostare il criterio di manutenzione dell'host durante la creazione di un modello di istanza, utilizza il comando gcloud compute instance-templates create con uno o più dei seguenti flag:

  • Per impostare il comportamento di manutenzione dell'host, includi il campo onHostMaintenance.

  • Per impostare il comportamento di riavvio automatico, esegui una delle seguenti operazioni:

    • Per riavviare automaticamente l'istanza, includi il campo automaticRestart.

    • Per impedire il riavvio automatico dell'istanza, includi il campo automaticRestart.

  • Per impostare un timeout per il recupero dei dati degli SSD locali se all'istanza sono collegati dischi SSD locali, includi il campo localSsdRecoveryTimeout.

  • Per impostare un timeout per gli errori dell'host, includi il campo hostErrorTimeoutSeconds.

Ad esempio, per impostare il comportamento di manutenzione dell'host, riavviare automaticamente l'istanza dopo errori dell'host o arresti programmati, impostare un timeout per il recupero dei dati dell'unità SSD locale e un timeout per gli errori dell'host, esegui il seguente comando. L'esempio seguente crea anche un modello di istanza regionale. Per creare un modello di istanza globale, utilizza lo stesso comando senza il --instance-template-region flag.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --host-error-timeout-seconds=ERROR_DETECTION_TIMEOUT \
    --instance-template-region=REGION \
    --local-ssd-recovery-timeout=LOCAL_SSD_RECOVERY_TIMEOUT \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=MAINTENANCE_POLICY \
    --restart-on-failure

Sostituisci quanto segue:

  • INSTANCE_TEMPLATE_NAME: il nome del modello di istanza.

  • ERROR_DETECTION_TIMEOUT: il numero di secondi prima di riavviare un'istanza non rispondente. Il valore deve essere compreso tra 90 (90 secondi) e 330 (330 secondi o 5 minuti e 30 secondi). Sono consentiti solo incrementi di 30 secondi.

  • REGION: la regione in cui creare il modello di istanza.

  • LOCAL_SSD_RECOVERY_TIMEOUT: il numero di ore da dedicare al recupero dei dati dai dischi SSD locali collegati. Il valore deve essere compreso tra 0 (0 ore) e 168 (168 ore o 7 giorni). Se imposti questo campo su 0, significa che Compute Engine non recupera i dati SSD locali.

  • MACHINE_TYPE: il tipo di macchina da utilizzare.

  • MAINTENANCE_POLICY: il comportamento della manutenzione delle istanze. Il valore può essere TERMINATE o MIGRATE. Se nel modello di istanza specifichi una VM spot, una VM preassegnata o un tipo di istanza che non supporta la migrazione in tempo reale, puoi utilizzare solo TERMINATE.

REST

Per impostare il criterio di manutenzione dell'host durante la creazione di un modello di istanza, effettua una richiesta POST a uno dei seguenti metodi:

Nel corpo della richiesta, includi uno o più dei seguenti campi nel scheduling:

  • Per impostare il comportamento di manutenzione dell'host, includi il campo onHostMaintenance.

  • Per impostare il comportamento di riavvio automatico, esegui una delle seguenti operazioni:

    • Per riavviare automaticamente l'istanza, includi il campo automaticRestart.

    • Per impedire il riavvio automatico dell'istanza, includi il campo automaticRestart.

  • Per impostare un timeout per il recupero dei dati degli SSD locali se all'istanza sono collegati dischi SSD locali, includi il campo localSsdRecoveryTimeout.

  • Per impostare un timeout per gli errori dell'host, includi il campo hostErrorTimeoutSeconds.

Ad esempio, per impostare il comportamento di manutenzione dell'host, riavviare automaticamente l'istanza dopo errori dell'host o arresti programmati, impostare un timeout per il recupero dei dati dell'unità SSD locale e impostare un timeout per gli errori dell'host, effettua una richiesta come segue. L'esempio seguente crea anche un modello di istanza regionale.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "properties": {
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "machineType": "MACHINE_TYPE",
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "scheduling": {
      "automaticRestart": AUTOMATIC_RESTART,
      "hostErrorTimeoutSeconds": ERROR_DETECTION_TIMEOUT,
      "localSsdRecoveryTimeout": LOCAL_SSD_RECOVERY_TIMEOUT,
      "onHostMaintenance": "MAINTENANCE_POLICY"
    }
  }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui creare il modello di istanza.

  • REGION: la regione in cui creare il modello di istanza.

  • INSTANCE_TEMPLATE_NAME: il nome del modello di istanza.

  • IMAGE_PROJECT: il progetto immagine che contiene l'immagine, ad esempio debian-cloud. Per saperne di più sui progetti di immagini supportati, consulta Immagini pubbliche.

  • IMAGE: specifica una delle seguenti opzioni:

    • Una versione specifica dell'immagine del sistema operativo, ad esempio debian-12-bookworm-v20240617.

    • Una famiglia di immagini, che deve essere formattata come family/IMAGE_FAMILY. Questo specifica l'immagine del sistema operativo più recente e non ritirata. Ad esempio, se specifichi family/debian-12, viene utilizzata la versione più recente della famiglia di immagini Debian 12. Per saperne di più sull'utilizzo delle famiglie di immagini, consulta le best practice per le famiglie di immagini.

  • MACHINE_TYPE: il tipo di macchina da utilizzare.

  • AUTOMATIC_RESTART: il comportamento di riavvio automatico dell'istanza se si arresta in modo anomalo o se Compute Engine la arresta per un arresto programmato. Specifica uno dei seguenti valori:

    • Per consentire a Compute Engine di riavviare automaticamente l'istanza: true

    • Per evitare i riavvii automatici: false

  • ERROR_DETECTION_TIMEOUT: il numero di secondi prima di riavviare un'istanza non rispondente. Il valore deve essere compreso tra 90 (90 secondi) e 330 (330 secondi o 5 minuti e 30 secondi). Sono consentiti solo incrementi di 30 secondi.

  • LOCAL_SSD_RECOVERY_TIMEOUT: il numero di ore da impiegare per recuperare i dati dai dischi SSD locali collegati. Il valore deve essere compreso tra 0 (0 ore) e 168 (168 ore o 7 giorni). Se imposti questo campo su 0, significa che Compute Engine non recupera i dati SSD locali.

  • MAINTENANCE_POLICY: il comportamento della manutenzione delle istanze. Il valore può essere TERMINATE o MIGRATE. Se nel modello di istanza specifichi una VM spot, una VM preassegnata o un tipo di istanza che non supporta la migrazione in tempo reale, puoi utilizzare solo TERMINATE.

Per ulteriori informazioni sulla creazione di un modello di istanza, consulta Creare modelli di istanze.

Visualizzare il criterio di manutenzione dell'host di un'istanza

Puoi visualizzare le norme di manutenzione dell'host di un'istanza visualizzando i dettagli dell'istanza.

Quando visualizzi i dettagli dell'istanza utilizzando gcloud CLI o l'API REST, puoi visualizzare i campi localSsdRecoveryTimeout e hostErrorTimeoutSeconds solo se li hai specificati durante la creazione o l'aggiornamento dell'istanza.

Per visualizzare il timeout del recupero dei dati dell'SSD locale in un'istanza a cui sono collegati dischi SSD locali, utilizza l'interfaccia a riga di comando gcloud o l'API REST. In caso contrario, seleziona una delle seguenti opzioni:

Console

  1. Nella console Google Cloud, vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Nella colonna Nome, fai clic sull'istanza che vuoi visualizzare. Viene visualizzata una pagina con i dettagli dell'istanza.

  3. Nella scheda Dettagli, nella sezione Gestione, nella sezione Criteri di disponibilità, puoi visualizzare quanto segue:

    • Nel campo Manutenzione dell'host puoi visualizzare gli eventi di comportamento della manutenzione dell'host dell'istanza.

    • Nel campo Timeout errore host, puoi vedere il tempo di attesa dell'istanza prima di riavviarla o fermarla dopo aver rilevato che non risponde. Se il valore non è impostato (), il tempo di attesa predefinito è di 5 minuti e 30 secondi.

    • Nel campo di riavvio Riavvio automatico, puoi vedere se l'istanza viene riavviata automaticamente dopo un arresto anomalo o se Compute Engine la arresta per un arresto programmato.

gcloud

Per visualizzare il criterio di manutenzione dell'host per un'istanza, utilizza il comando gcloud compute instances describe con il flag --flatten impostato su scheduling:

 gcloud compute instances describe INSTANCE_NAME \
    --flatten=scheduling \
    --zone=ZONE

Sostituisci quanto segue:

  • INSTANCE_NAME: il nome dell'istanza.

  • ZONE: la zona in cui si trova l'istanza.

L'output è simile al seguente:

---
scheduling:
  automaticRestart: true
  hostErrorTimeoutSeconds: 120
  localSsdRecoveryTimeout:
    nanos: 0
    seconds: '10800'
  onHostMaintenance: MIGRATE
  preemptible: false
  provisioningModel: STANDARD

REST

Per visualizzare il criterio di manutenzione dell'host per un'istanza, effettua una richiesta GET al metodo instances.get. Nell'URL della richiesta, includi il parametro di query fields e impostalo su scheduling:

  GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME?fields=scheduling

Sostituisci quanto segue:

  • PROJECT_ID: il progetto in cui esiste l'istanza.

  • ZONE: la zona in cui esiste l'istanza.

  • INSTANCE_NAME: il nome dell'istanza.

L'output è simile al seguente:

{
  "scheduling": {
    "onHostMaintenance": "MIGRATE",
    "automaticRestart": true,
    "preemptible": false,
    "provisioningModel": "STANDARD",
    "localSsdRecoveryTimeout": {
      "seconds": "10800",
      "nanos": 0
    }
  }
}

Passaggi successivi