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


Questo documento spiega come impostare i criteri 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 norme di manutenzione dell'host, si applicano le seguenti limitazioni:

  • Le istanze di macchine virtuali che utilizzano tipi di macchine E2 possono essere sottoposte a migrazione live 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 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 SSD Titanium collegato, le istanze bare metal o le VM a cui sono collegate GPU.

    • VM spot o VM prerilasciabili.

  • Le VM spot e le VM prerilasciabili non possono riavviarsi automaticamente dopo errori 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 ai Google Cloud servizi e alle 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. 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 di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci 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 saperne di più, consulta la sezione Autenticarsi per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud .

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per impostare il criterio 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 il criterio 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 viene utilizzata 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 dell'istanza di calcolo durante la manutenzione pianificata o gli 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 sull'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 preemptible.

    • 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 SSD Titanium collegato, le istanze bare metal e le istanze con GPU o TPU collegate.

  • Riavvio automatico (automaticRestart): indica se l'istanza viene riavviata 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, seleziona Attivo (consigliato) nell'elenco Riavvio automatico.

      • 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. Specifica questa impostazione nel seguente modo:

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

      • 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 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 Compute utilizzano le impostazioni predefinite per il criterio di manutenzione dell'host. Per personalizzare queste impostazioni, utilizza uno dei seguenti metodi:

Imposta il criterio per un'istanza esistente

Prima di modificare la policy di manutenzione dell'host di un'istanza esistente, assicurati che:

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

  • Non puoi configurare le VM spot o preemptible 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 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 degli SSD locali 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 o 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'SSD locale.

  • 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 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 SSD locali 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 di 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 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, Compute Engine non recupera i dati dell'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 computing durante la creazione.

Per impostare il timeout del recupero dei dati dell'SSD locale durante la creazione di 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 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 Avanzato.

  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 Host in manutenzione:

      • 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 On (consigliato).

      • Per impedire il riavvio automatico dell'istanza dopo errori dell'host o interruzioni programmate, 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 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 l'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 SSD locale e un timeout di errore dell'host, esegui il comando seguente:

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 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, Compute Engine non recupera i dati dell'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 dell'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 SSD locali se alla tua istanza sono collegati dischi SSD locali, includi il campo localSsdRecoveryTimeout.

  • Per impostare un timeout per l'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 la seguente richiesta:

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 di immagini 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 sistema operativo, ad esempio debian-12-bookworm-v20240617.

    • Una famiglia di immagini, che deve essere formattata come family/IMAGE_FAMILY. Specifica l'immagine sistema operativo più recente e non deprecata. Ad esempio, se specifichi family/debian-12, viene utilizzata l'ultima versione 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 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 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, Compute Engine non recupera i dati dell'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 il criterio durante la creazione collettiva delle istanze

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

gcloud

Per impostare il criterio di manutenzione dell'host durante la creazione collettiva di 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 l'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 SSD locale e un timeout di errore dell'host, esegui il comando seguente. 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 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, Compute Engine non recupera i dati dell'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 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 del nome genera istanze con nomi che iniziano con instance-1, instance-2 e continuano 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 collettiva di istanze, 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 SSD locali se alla tua istanza sono collegati dischi SSD locali, includi il campo localSsdRecoveryTimeout.

  • Per impostare un timeout per l'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 la seguente richiesta. 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 continuano fino al numero di istanze specificato da COUNT.

  • MACHINE_TYPE: il tipo di macchina da utilizzare.

  • IMAGE_PROJECT: il progetto di immagini 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 sistema operativo, ad esempio debian-12-bookworm-v20240617.

    • Una famiglia di immagini, che deve essere formattata come family/IMAGE_FAMILY. Specifica l'immagine sistema operativo più recente e non deprecata. Ad esempio, se specifichi family/debian-12, viene utilizzata l'ultima versione 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 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 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, Compute Engine non recupera i dati dell'SSD locale.

  • MAINTENANCE_POLICY: il comportamento di 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 saperne di più sulla creazione di istanze in blocco, consulta Crea più 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 Compute che crei utilizzando il modello ereditano la norma 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 modello 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 modello di istanza regionale, seleziona Regionale (consigliato), quindi seleziona 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 poi esegui una o più delle seguenti operazioni:

    • Per modificare il comportamento durante gli eventi di manutenzione, nell'elenco Host in manutenzione, 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 On (consigliato).

      • Per impedire il riavvio automatico dell'istanza dopo errori dell'host o interruzioni programmate, 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 SSD locali se alla tua istanza sono collegati dischi SSD locali, includi il campo localSsdRecoveryTimeout.

  • Per impostare un timeout per l'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, esegui il comando seguente. L'esempio seguente crea anche un modello di istanza regionale. Per creare un modello 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 modello 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 o 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'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 il criterio di manutenzione dell'host durante la creazione di un modello di istanza, effettua una richiesta POST con 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 SSD locali se alla tua istanza sono collegati dischi SSD locali, includi il campo localSsdRecoveryTimeout.

  • Per impostare un timeout per l'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 la seguente richiesta. 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 template di istanza

  • INSTANCE_TEMPLATE_NAME: il nome del modello di istanza.

  • IMAGE_PROJECT: il progetto di immagini 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 sistema operativo, ad esempio debian-12-bookworm-v20240617.

    • Una famiglia di immagini, che deve essere formattata come family/IMAGE_FAMILY. Specifica l'immagine sistema operativo più recente e non deprecata. Ad esempio, se specifichi family/debian-12, viene utilizzata l'ultima versione 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 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 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, Compute Engine non recupera i dati dell'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 modello di istanza, vedi Creare modelli di istanza.

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 che l'istanza attende prima di riavviarsi o arrestarsi 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 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