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


Questo documento spiega come impostare la policy di manutenzione dell'host per un'istanza Compute Engine per determinare il suo comportamento durante gli eventi host. Per scoprire di più sulle policy di manutenzione dell'host, consulta Policy di manutenzione dell'host.

Un criterio di manutenzione dell'host determina il modo in cui la tua istanza risponde quando l'host su cui è in esecuzione richiede manutenzione o si verifica un errore. La configurazione della policy di manutenzione dell'host per un'istanza ti consente di:

  • Ridurre al minimo i tempi di inattività.

  • Evitare la perdita di dati.

Limitazioni

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

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

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

    • Istanze che non supportano la migrazione live, come le istanze Z3 con più di 18 TiB di Titanium SSD collegato, le istanze bare metal o le VM a cui sono collegate GPU.

    • VM spot o VM prerilasciabili.

  • Le VM spot e le VM preemptible non possono essere riavviate automaticamente dopo errori host o arresti programmati.

Prima di iniziare

  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è il processo di verifica dell'identità per poter accedere a Google Cloud servizi e API. 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. Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il seguente comando:

      gcloud init

      Se utilizzi un provider di identità (IdP) esterno, devi prima accedere alla gcloud CLI con la tua identità federata.

    2. Set a default region and zone.

    REST

    Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, devi utilizzare le credenziali che fornisci a gcloud CLI.

      Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il seguente comando:

      gcloud init

      Se utilizzi un provider di identità (IdP) esterno, devi prima accedere alla gcloud CLI con la tua identità federata.

    Per saperne di più, consulta Autenticarsi per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud .

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per impostare la policy di manutenzione host per un'istanza di computing, chiedi all'amministratore di concederti il ruolo IAM Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene le autorizzazioni necessarie per impostare il criterio di manutenzione host per un'istanza di computing. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per impostare la policy di manutenzione host per un'istanza di computing 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 template di istanza per creare la VM: compute.instanceTemplates.useReadOnly sul template di istanza
    • Per assegnare una rete legacy alla VM: compute.networks.use sul progetto
    • Per specificare un indirizzo IP statico per la VM: compute.addresses.use sul progetto
    • Per assegnare un indirizzo IP esterno alla VM quando viene utilizzata una rete legacy: compute.networks.useExternalIp sul progetto
    • Per specificare una subnet per la VM: compute.subnetworks.use sul progetto o sulla subnet scelta
    • Per assegnare un indirizzo IP esterno alla VM quando si utilizza una rete VPC: compute.subnetworks.useExternalIp sul progetto o sulla subnet scelta
    • Per impostare i metadati dell'istanza VM per la VM: compute.instances.setMetadata sul 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 service account che la VM possa utilizzare: compute.instances.setServiceAccount sulla VM
    • Per creare un nuovo disco per la VM: compute.disks.create sul 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 template di istanza: compute.instanceTemplates.create sul progetto
  • Per aggiornare la policy 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 host disponibili

Puoi personalizzare il comportamento della tua istanza di calcolo durante la manutenzione pianificata o eventi host imprevisti. Se non specifichi diversamente, Compute Engine utilizza le impostazioni predefinite quando crei un'istanza , istanze collettive o un modello di istanza.

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

  • Comportamento di manutenzione (onHostMaintenance): cosa succede 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:

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

    • Termina: Compute Engine arresta l'istanza. Questa è l'impostazione predefinita per le VM spot o preemptible ed è l'unica impostazione supportata per le istanze Z3 con più di 18 TiB di Titanium SSD collegato, le istanze bare metal e le istanze con GPU o TPU collegate.

  • Riavvio automatico (automaticRestart): indica se l'istanza si riavvia in caso di arresto 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 di VM spot e VM prerilasciabili. Specifica questa impostazione come segue:

      • Per la console Google Cloud , nel riquadro Avanzate, nell'elenco Riavvio automatico, seleziona Attivo (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 le VM preemptible. Specifica questa impostazione nel seguente modo:

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

      • Per gcloud CLI, utilizza il flag --no-restart-on-failure.

      • Per REST, imposta il campo automaticRestart su false.

  • Timeout del recupero dei dati dell'SSD locale (localSsdRecoveryTimeout): questa impostazione si applica solo alle istanze a cui sono collegati dischi SSD locali. Determina per quanto tempo Compute Engine attende 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 da attendere. 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 per quanto tempo Compute Engine attende prima di riavviare un'istanza che non risponde. Devi configurare questa impostazione prima che l'istanza smetta di rispondere. Utilizza un timeout sufficientemente lungo da consentire a un'istanza di riprendersi da uno stato di mancata risposta. Puoi impostare questa proprietà su uno dei seguenti valori:

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

    • Un numero intero da 90 a 330: il tempo di attesa in secondi, con incrementi di 30 secondi.

Imposta la policy di manutenzione dell'host per un'istanza

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

Imposta la policy per un'istanza esistente

Prima di modificare la policy 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 preemptible per il riavvio automatico dopo errori 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 che vuoi aggiornare. Viene visualizzata una pagina con i dettagli dell'istanza.

  3. Fai clic su Modifica. Viene visualizzata una pagina che ti 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 Host in manutenzione.

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

    • Per modificare l'impostazione relativa al riavvio o meno dell'istanza dopo errori dell'host o interruzioni programmate, seleziona un'altra opzione dall'elenco Riavvio automatico.

  5. Fai clic su Salva.

gcloud

Per modificare la policy di manutenzione 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 del 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 modificare il timeout di recupero dei dati dell'SSD locale se alla tua istanza sono collegati dischi SSD locali, includi il flag --local-ssd-recovery-timeout.

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

Ad esempio, per modificare il comportamento di manutenzione dell'host, riavviare automaticamente l'istanza dopo errori dell'host o arresti programmati, modificare il timeout di recupero dei dati SSD locale e modificare il timeout di errore 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, ovvero 5 minuti e 30 secondi). Sono consentiti solo incrementi di 30 secondi.

  • MAINTENANCE_POLICY: il comportamento di 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, Compute Engine non recupera i dati dell'unità SSD locale.

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

REST

Per modificare la policy 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 della manutenzione dell'host, includi il campo onHostMaintenance.

  • Per modificare il comportamento del 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 di recupero dei dati dell'SSD locale se alla tua istanza sono collegati dischi SSD locali, includi il campo localSsdRecoveryTimeout.

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

Ad esempio, per modificare il comportamento della manutenzione dell'host, riavviare automaticamente l'istanza dopo errori dell'host o arresti programmati, modificare il timeout di recupero dei dati dell'SSD locale e modificare il timeout di errore 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 in caso di arresto 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 impedire i riavvii automatici: false

  • ERROR_DETECTION_TIMEOUT: il numero di secondi prima di riavviare un'istanza che non risponde. Il valore deve essere compreso tra 90 (90 secondi) e 330 (330 secondi, ovvero 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, Compute Engine non recupera i dati dell'unità SSD locale.

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

Imposta la policy durante la creazione di un'istanza

Puoi impostare i criteri di manutenzione dell'host di un'istanza di calcolo durante la 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 la regione e la zona in cui 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 poi esegui una o più delle seguenti operazioni:

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

      • 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 che non risponde, nell'elenco Timeout errore host, seleziona una delle seguenti opzioni:

      • Per non specificare un timeout per l'errore dell'host, seleziona Non specificato (impostazione predefinita).

      • Per specificare un timeout per l'errore 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, seleziona una delle seguenti opzioni nell'elenco Riavvio automatico:

      • Per riavviare automaticamente l'istanza dopo errori dell'host o interruzioni programmate, seleziona Attivato (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 la policy di manutenzione host di un'istanza durante la 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 di recupero dei dati dell'SSD locale se alla tua istanza sono collegati dischi SSD locali, includi il flag --local-ssd-recovery-timeout.

  • Per impostare un timeout errore 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 di recupero dei dati dell'SSD locale e un timeout di errore 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 che non risponde. Il valore deve essere compreso tra 90 (90 secondi) e 330 (330 secondi, ovvero 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, Compute Engine non recupera i dati dell'unità SSD locale.

  • MACHINE_TYPE: il tipo di macchina da utilizzare.

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

  • ZONE: la zona in cui creare l'istanza

REST

Per impostare la policy di manutenzione host di un'istanza durante la creazione, invia una richiesta POST al metodo instances.insert. Nel corpo della richiesta, includi uno o più dei seguenti campi nel campo 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 dell'SSD locale se alla tua istanza sono collegati dischi SSD locali, includi il campo localSsdRecoveryTimeout.

  • Per impostare un timeout errore 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 di recupero dei dati dell'SSD locale e un timeout di errore dell'host, invia 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, vedi 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. In questo modo, viene specificata l'immagine del sistema operativo più recente e non deprecata. Ad esempio, se specifichi family/debian-12, viene utilizzata l'ultima versione nella 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 in caso di arresto 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 impedire i riavvii automatici: false

  • ERROR_DETECTION_TIMEOUT: il numero di secondi prima di riavviare un'istanza che non risponde. Il valore deve essere compreso tra 90 (90 secondi) e 330 (330 secondi, ovvero 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, Compute Engine non recupera i dati dell'unità SSD locale.

  • MAINTENANCE_POLICY: il comportamento di 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 Crea e avvia un'istanza Compute Engine.

Imposta la policy durante la creazione collettiva di istanze

Per impostare la policy di manutenzione dell'host durante la creazione in blocco delle istanze, seleziona una delle seguenti opzioni:

gcloud

Per impostare la policy di manutenzione host durante la creazione di istanze in blocco, 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 di recupero dei dati dell'SSD locale se alla tua istanza sono collegati dischi SSD locali, includi il flag --local-ssd-recovery-timeout.

  • Per impostare un timeout errore 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 di ripristino dei dati dell'SSD locale e un timeout di errore 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 che non risponde. Il valore deve essere compreso tra 90 (90 secondi) e 330 (330 secondi, ovvero 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, Compute Engine non recupera i dati dell'unità SSD locale.

  • MACHINE_TYPE: il tipo di macchina da utilizzare.

  • MAINTENANCE_POLICY: il comportamento di manutenzione delle istanze. Il valore può essere TERMINATE o MIGRATE. Se stai creando VM spot, VM preemptible 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 del nome genera istanze con nomi che iniziano con instance-1, instance-2 e via di seguito fino al numero di istanze specificato da COUNT.

  • ZONE: la zona in cui creare le istanze.

REST

Per impostare la policy di manutenzione dell'host durante la creazione di istanze in blocco, invia una richiesta POST al metodo instances.bulkInsert. Nel corpo della richiesta, includi uno o più dei seguenti campi nel campo 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 dell'SSD locale se alla tua istanza sono collegati dischi SSD locali, includi il campo localSsdRecoveryTimeout.

  • Per impostare un timeout errore 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 di recupero dei dati SSD locale e un timeout di errore dell'host, invia 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 del nome genera istanze con nomi che iniziano con instance-1, instance-2 e via di seguito fino al numero di istanze specificato da COUNT.

  • 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, vedi 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. In questo modo, viene specificata l'immagine del sistema operativo più recente e non deprecata. Ad esempio, se specifichi family/debian-12, viene utilizzata l'ultima versione nella 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 in caso di arresto 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 impedire i riavvii automatici: false

  • ERROR_DETECTION_TIMEOUT: il numero di secondi prima di riavviare un'istanza che non risponde. Il valore deve essere compreso tra 90 (90 secondi) e 330 (330 secondi, ovvero 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, Compute Engine non recupera i dati dell'unità SSD locale.

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

Per ulteriori informazioni sulla creazione di istanze in blocco, consulta Crea VM in blocco.

Imposta la policy durante la creazione di un modello di istanza

Puoi impostare la policy di manutenzione dell'host durante la creazione di un modello di istanza. Tutte le istanze di computing create utilizzando il modello ereditano la policy di manutenzione dell'host specificata 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 Template di istanza.

    Vai a Template di istanza

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

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

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

    • Per creare un template di istanza regionale, seleziona Regionale (consigliato), quindi seleziona la regione in cui creare il template.

    • Per creare un template 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 poi esegui 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 timeout prima di riavviare un'istanza che non risponde, seleziona una delle seguenti opzioni nell'elenco Timeout errore host:

      • Per non specificare un timeout per l'errore dell'host, seleziona Non specificato (impostazione predefinita).

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

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

      • Per riavviare automaticamente l'istanza dopo errori dell'host o interruzioni programmate, seleziona Attivato (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 la policy di manutenzione 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 dell'SSD locale se alla tua istanza sono collegati dischi SSD locali, includi il campo localSsdRecoveryTimeout.

  • Per impostare un timeout errore 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 di ripristino dei dati dell'SSD locale e un timeout di errore dell'host, esegui il seguente comando. L'esempio seguente crea anche un template di istanza regionale. Per creare un template di istanza globale, utilizza lo stesso comando senza il flag --instance-template-region.

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 template di istanza.

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

  • REGION: la regione in cui creare il template 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, Compute Engine non recupera i dati dell'unità SSD locale.

  • MACHINE_TYPE: il tipo di macchina da utilizzare.

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

REST

Per impostare la policy di manutenzione dell'host durante la creazione di un template di istanza, invia una richiesta POST a uno dei seguenti metodi:

Nel corpo della richiesta, includi uno o più dei seguenti campi nel campo 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 dell'SSD locale se alla tua istanza sono collegati dischi SSD locali, includi il campo localSsdRecoveryTimeout.

  • Per impostare un timeout errore 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 di recupero dei dati SSD locale e un timeout di errore dell'host, invia una richiesta come segue. L'esempio seguente crea anche un template 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 template di istanza

  • REGION: la regione in cui creare il template di istanza

  • INSTANCE_TEMPLATE_NAME: il nome del template di istanza.

  • IMAGE_PROJECT: il progetto immagine che contiene l'immagine, ad esempio debian-cloud. Per saperne di più sui progetti di immagini supportati, vedi 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. In questo modo, viene specificata l'immagine del sistema operativo più recente e non deprecata. Ad esempio, se specifichi family/debian-12, viene utilizzata l'ultima versione nella 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 in caso di arresto 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 impedire i riavvii automatici: false

  • ERROR_DETECTION_TIMEOUT: il numero di secondi prima di riavviare un'istanza che non risponde. Il valore deve essere compreso tra 90 (90 secondi) e 330 (330 secondi, ovvero 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, Compute Engine non recupera i dati dell'unità SSD locale.

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

Per ulteriori informazioni sulla creazione di un template di istanza, vedi Crea template di istanze.

Visualizzare la policy di manutenzione dell'host di un'istanza

Puoi visualizzare la policy 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 solo i campi localSsdRecoveryTimeout e hostErrorTimeoutSeconds 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 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 sull'istanza che vuoi visualizzare. Viene visualizzata una pagina con i dettagli dell'istanza.

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

    • Nel campo Durante la manutenzione dell'host, puoi visualizzare gli eventi di comportamento di manutenzione dell'host dell'istanza.

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

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

gcloud

Per visualizzare la policy 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, invia 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