Imposta criterio di manutenzione dell'host VM

Questo documento descrive come impostare il criterio di manutenzione dell'host di un'istanza di macchina virtuale (VM) per controllare il comportamento della VM quando si verifica un evento host.

Prima di iniziare

  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è il processo mediante il quale viene verificata l'identità per l'accesso ai servizi e alle API Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti in Compute Engine nel seguente modo.

    Seleziona la scheda relativa a come prevedi di utilizzare gli esempi in questa pagina:

    Console

    Quando utilizzi la console Google Cloud per accedere ai servizi e alle API di Google Cloud, non devi configurare l'autenticazione.

    gcloud

    1. Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

      gcloud init
    2. Imposta una regione e una zona predefinite.

    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, quindi initialize eseguendo questo comando:

      gcloud init

Limitazioni

  • Non puoi modificare il criterio di manutenzione dell'host di una VM prerilasciabile. In caso di evento di manutenzione, la VM prerilasciabile si arresta e non viene eseguita la migrazione. Devi riavviare manualmente la VM prerilasciata.
  • Dopo aver creato una VM utilizzando un tipo di macchina E2, non puoi modificare le impostazioni di manutenzione dell'host della VM da MIGRATE a TERMINATE o viceversa.

Proprietà di manutenzione dell'host disponibili

Puoi configurare il comportamento di manutenzione, riavvio e comportamento di una VM quando si verifica un errore dell'host con le proprietà seguenti.

Compute Engine configura ogni VM con i valori predefiniti, se non diversamente specificato.

Durante gli eventi host, a seconda del criterio di manutenzione dell'host configurato, le VM che non supportano la migrazione live vengono terminate o riavviate automaticamente.

  • onHostMaintenance: determina il comportamento quando si verifica un evento di manutenzione che potrebbe causare il riavvio della VM.

    • MIGRATE (valore predefinito): fa sì che Compute Engine esegua la migrazione live di un'istanza in caso di evento di manutenzione.
    • TERMINATE: arresta una VM anziché eseguirne la migrazione.
  • automaticRestart: determina il comportamento quando una VM ha un arresto anomalo o viene arrestata dal sistema.

    • true (valore predefinito): Compute Engine riavvia un'istanza se quest'ultima si arresta in modo anomalo o viene arrestata.
    • false: Compute Engine non riavvia una VM se questa si arresta in modo anomalo o viene arrestata.
  • localSsdRecoveryTimeout: imposta il timeout del ripristino degli SSD locali. Questo è il tempo massimo, in ore, durante il quale Compute Engine attende per recuperare i dati SSD locali dopo un errore dell'host. Questa impostazione si applica solo alle VM con dischi SSD locali collegati.

    • Non impostato (valore predefinito): Compute Engine attende fino a un'ora per recuperare il disco. Per le VM Z3 (anteprima), il tempo di attesa predefinito è di 6 ore.
    • Un numero compreso tra 0 e 168: specifica il tempo di attesa di Compute Engine per recuperare il disco. Il numero deve essere un numero intero, con incrementi di 1 ora, con un valore massimo di 7 giorni. Il valore 0 indica che Compute Engine non attende di recuperare i dati.
  • hostErrorTimeoutSeconds (anteprima): imposta il tempo massimo, in secondi, durante il quale Compute Engine attende per riavviare o terminare una VM dopo aver rilevato che la VM non risponde.

    • Non impostato (valore predefinito): Compute Engine attende fino a 5,5 minuti (330 secondi) prima di riavviare una VM che non risponde.
    • Numero da 90 a 330: specifica il numero di secondi, in incrementi di 30, che Compute Engine attende prima di riavviare una VM che non risponde.

Imposta criterio di manutenzione dell'host di una VM

Puoi modificare il criterio di manutenzione dell'host di una VM quando crei la VM per la prima volta o dopo la sua creazione.

Imposta criterio di manutenzione dell'host durante la creazione della VM

Le informazioni in questa sezione sono incentrate su come impostare il criterio di manutenzione dell'host quando crei una VM. Per altri esempi di creazione di VM, consulta Creare e avviare un'istanza VM.

Puoi impostare i criteri di manutenzione dell'host di una VM al momento della creazione utilizzando la console Google Cloud, gcloud CLI o l'API Compute Engine.

Console

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

    Vai a Crea un'istanza

  2. Specifica un nome per la VM.

  3. Seleziona una regione e una zona per la VM.

  4. Nella sezione Configurazione macchina, segui questi passaggi:

    1. Specifica i dettagli del tipo di macchina per la VM.
    2. Espandi il menu Impostazioni avanzate del modello di provisioning delle VM.
    3. Nel menu On host in manutenzione, seleziona uno dei seguenti passaggi:
    4. Per eseguire la migrazione delle VM durante gli eventi di manutenzione, seleziona Esegui la migrazione dell'istanza VM.
    5. Per arrestare le VM durante gli eventi di manutenzione, seleziona Termina istanza VM.
  5. Per creare la VM, fai clic su Crea.

gcloud

Nella console Google Cloud, attiva Cloud Shell.

Attiva Cloud Shell

Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell che mostra un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installato e con valori già impostati per il progetto attuale. L'inizializzazione della sessione può richiedere alcuni secondi.

Per impostare il criterio di manutenzione dell'host di una nuova VM, utilizza il comando gcloud compute instances create. Includi uno o più dei seguenti parametri:

  • --maintenance-policy: indica se la VM viene migrata o arrestata durante la manutenzione dell'host. Se ometti questa proprietà, la VM viene migrata per impostazione predefinita.
  • --no-restart-on-failure o --restart-on-failure: indica se la VM si riavvia automaticamente dopo un errore dell'host. Per impostazione predefinita, la VM si riavvia quando viene rilevato un errore.
  • --local-ssd-recovery-timeout: quanto tempo impiega Compute Engine per recuperare i dischi SSD locali collegati dopo un errore dell'host. Il valore predefinito è 1 ora.

Imposta il criterio di manutenzione dell'host di una nuova VM con il comando seguente. Se ometti uno qualsiasi dei flag, viene utilizzato il flag predefinito.

  gcloud compute instances create VM_NAME \
      --maintenance-policy=MAINTENANCE_POLICY \
      --RESTART_ON_FAILURE_BEHAVIOR \
      --local-ssd-recovery-timeout=SSD_RECOVERY_TIMEOUT

Sostituisci quanto segue:

  • VM_NAME: il nome della VM.
  • MAINTENANCE_POLICY: il criterio di manutenzione per questa VM, TERMINATE o MIGRATE.
  • RESTART_ON_FAILURE_BEHAVIOR: riavvia il comportamento per la VM, impostato su --no-restart-on-failure o --restart-on-failure.
  • SSD_RECOVERY_TIMEOUT: il numero di ore da dedicare al ripristino di un SSD locale collegato a una VM che non risponde. I valori validi sono compresi tra 0 e 168, con incrementi di 1 ora.

Impostare il timeout del rilevamento degli errori dell'host

Per impostare il tempo massimo di attesa di Compute Engine per riavviare o terminare una VM che non risponde, utilizza il comando gcloud compute instances create. Specifica il timeout con il flag --host-error-timeout-seconds.

  gcloud beta compute instances create VM_NAME \
      --maintenance-policy=MAINTENANCE_POLICY \
      --RESTART_ON_FAILURE_BEHAVIOR \
      --local-ssd-recovery-timeout=SSD_RECOVERY_TIMEOUT \
      --host-error-timeout-seconds=ERROR_DETECTION_TIMEOUT

Sostituisci quanto segue:

  • VM_NAME: il nome della VM.
  • MAINTENANCE_POLICY: il criterio di manutenzione per questa VM, TERMINATE o MIGRATE.
  • RESTART_ON_FAILURE_BEHAVIOR: riavvia il comportamento per la VM, impostato su --no-restart-on-failure o --restart-on-failure.
  • SSD_RECOVERY_TIMEOUT: il numero di ore impiegate da Compute Engine per recuperare un SSD locale collegato a una VM che non risponde. I valori validi sono compresi tra 0 e 168, con incrementi di 1 ora.
  • ERROR_DETECTION_TIMEOUT: numero di secondi attesi Compute Engine prima di riavviare una VM che non risponde, da 90 a 330, in incrementi di 30.

REST

Per impostare il criterio di manutenzione dell'host di una nuova VM utilizzando l'API Compute Engine, utilizza il metodo instances.insert. Includi una o più delle seguenti proprietà nell'oggetto scheduling del corpo della richiesta:

  • onHostMaintenance: indica se la VM viene migrata o arrestata durante la manutenzione dell'host. La VM viene migrata per impostazione predefinita.
  • automaticRestart: indica se la VM si riavvia automaticamente dopo un errore dell'host. Per impostazione predefinita, le VM vengono riavviate automaticamente.
  • localSsdRecoveryTimeout: il tempo impiegato da Compute Engine per recuperare i dischi SSD locali collegati dopo aver rilevato un errore dell'host. Il valore predefinito è 1 ora.
      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

      {
        "name": "VM_NAME",

        "scheduling": {
          "onHostMaintenance": "MAINTENANCE_POLICY",
          "automaticRestart": "RESTART_POLICY,
          "localSsdRecoveryTimeout": SSD_RECOVERY_TIMEOUT
        }
      }

Sostituisci quanto segue:

  • PROJECT_ID: il progetto per la VM.
  • ZONE: la zona in cui vuoi creare la VM.
  • VM_NAME: il nome della VM.
  • MAINTENANCE_POLICY: il criterio di manutenzione per questa VM, TERMINATE o MIGRATE.
  • RESTART_POLICY: il criterio di riavvio per questa VM, true o false.
  • SSD_RECOVERY_TIMEOUT: il numero di ore impiegate da Compute Engine per recuperare un disco SSD locale collegato a una VM che non risponde. I valori validi sono compresi tra 0 e 168, con incrementi di 1 ora.

Impostare il timeout del rilevamento degli errori dell'host

Per impostare il tempo massimo di attesa di Compute Engine per riavviare o terminare una VM che non risponde, utilizza il metodo instances.insert beta perché questa opzione è disponibile in Anteprima.

Aggiungi la proprietà hostErrorTimeoutSeconds all'oggetto scheduling del corpo della richiesta.


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

   {
      "name": "VM_NAME",

      "scheduling": {
        "onHostMaintenance": "MAINTENANCE_POLICY",
        "automaticRestart": "RESTART_POLICY,
        "localSsdRecoveryTimeout": SSD_RECOVERY_TIMEOUT
        "hostErrorTimeoutSeconds": HOST_ERROR_TIMEOUT,
      }
    }

Sostituisci quanto segue:

  • PROJECT_ID: il progetto per la VM.
  • ZONE: la zona in cui vuoi creare la VM.
  • VM_NAME: il nome della VM.
  • MAINTENANCE_POLICY: il criterio di manutenzione per questa VM, TERMINATE o MIGRATE.
  • RESTART_POLICY: il criterio di riavvio per questa VM, true o false.
  • SSD_RECOVERY_TIMEOUT: il numero di ore che Compute Engine impiega per recuperare un disco SSD locale collegato a una VM che non risponde. I valori validi sono compresi tra 0 e 168, con incrementi di 1 ora.
  • HOST_ERROR_TIMEOUT: numero di secondi attesi Compute Engine prima di riavviare o terminare una VM che non risponde. I valori validi sono compresi tra 90 e 330, con incrementi di 30.

Aggiorna il criterio di manutenzione dell'host di una VM esistente

Console

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

    Vai a Istanze VM

  2. Fai clic sulla VM per cui vuoi modificare le impostazioni. Viene visualizzata la pagina dei dettagli della VM.

  3. Nella pagina dei dettagli della VM, completa i seguenti passaggi:

    1. Fai clic sul pulsante Modifica nella parte superiore della pagina.
    2. Vai alla sezione Gestione. Nella sezione Criteri di disponibilità, puoi impostare le opzioni In manutenzione dell'host e Riavvio automatico.
    3. Fai clic su Salva.

gcloud

Nella console Google Cloud, attiva Cloud Shell.

Attiva Cloud Shell

Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell che mostra un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installato e con valori già impostati per il progetto attuale. L'inizializzazione della sessione può richiedere alcuni secondi.

Aggiorna il criterio di manutenzione dell'host di una VM esistente con il comando gcloud compute instances set-scheduling. Utilizza gli stessi parametri descritti nel comando di creazione della VM nella sezione precedente.

    gcloud compute instances set-scheduling VM_NAME \
      --maintenance-policy=MAINTENANCE_POLICY \
      --RESTART_ON_FAILURE_BEHAVIOR \
      --local-ssd-recovery-timeout=SSD_RECOVERY_TIMEOUT

Sostituisci quanto segue:

  • VM_NAME: il nome della VM.
  • MAINTENANCE_POLICY: il criterio per questa VM, TERMINATE o MIGRATE.
  • RESTART_ON_FAILURE_BEHAVIOR: comportamento di riavvio per la VM, --no-restart-on-failure o --restart-on-failure.
  • SSD_RECOVERY_TIMEOUT: il tempo in ore che Compute Engine impiega per recuperare un disco SSD locale collegato a una VM che non risponde. I valori validi sono compresi tra 0 e 168.

Aggiorna il timeout del rilevamento degli errori dell'host

Per aggiornare il tempo massimo di attesa di Compute Engine per riavviare o terminare una VM che non risponde, utilizza il comando gcloud beta compute instances set-scheduling, perché questa funzionalità è disponibile solo in Anteprima.

Aggiorna il timeout con il parametro --host-error-timeout-seconds. Ad esempio:

    gcloud beta compute instances set-scheduling VM_NAME \
      --maintenance-policy=MAINTENANCE_POLICY \
      --RESTART_ON_FAILURE_BEHAVIOR \
      --local-ssd-recovery-timeout=SSD_RECOVERY_TIMEOUT \
      --host-error-timeout-seconds=NUMBER_OF_SECONDS

Sostituisci quanto segue:

  • VM_NAME: il nome della VM.
  • MAINTENANCE_POLICY: il criterio di manutenzione per questa VM, TERMINATE o MIGRATE.
  • RESTART_ON_FAILURE_BEHAVIOR: riavvia il comportamento per la VM, impostato su --no-restart-on-failure o --restart-on-failure.
  • SSD_RECOVERY_TIMEOUT: il tempo in ore che Compute Engine impiega per recuperare un disco SSD locale collegato a una VM che non risponde. I valori validi sono compresi tra 0 e 168.
  • NUMBER_OF_SECONDS: numero di secondi che Compute Engine attende prima di riavviare o terminare una VM che non risponde, da 90 a 330, in incrementi di 30.

REST

Aggiorna il criterio di manutenzione dell'host di una VM esistente con una richiesta POST al metodo instances.setScheduling.

Includi una o più delle seguenti proprietà nel corpo della richiesta:

  • onHostMaintenance: indica se la VM viene migrata o arrestata durante la manutenzione dell'host. La VM viene migrata per impostazione predefinita.
  • automaticRestart: indica se la VM si riavvia automaticamente dopo un errore dell'host. Per impostazione predefinita, le VM vengono riavviate automaticamente.
  • localSsdRecoveryTimeout: il tempo impiegato da Compute Engine per recuperare i dischi SSD locali collegati dopo aver rilevato un errore dell'host. Se omesso, il valore predefinito è 1 ora.
    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling

    {
      "onHostMaintenance": "MAINTENANCE_POLICY",
      "automaticRestart": RESTART_POLICY,
      "localSsdRecoveryTimeout": SSD_RECOVERY_TIMEOUT
    }

Sostituisci quanto segue:

  • PROJECT_ID: il progetto per la VM.
  • ZONE: la zona in cui si trova la VM.
  • VM_NAME: il nome della VM.
  • MAINTENANCE_POLICY: il criterio di manutenzione per questa VM, TERMINATE o MIGRATE.
  • RESTART_POLICY: il criterio di riavvio per questa VM, true o false.
  • SSD_RECOVERY_TIMEOUT: il tempo, in ore, che Compute Engine impiega per recuperare un disco SSD locale collegato a una VM che non risponde. I valori validi sono compresi tra 0 e 168.

Aggiorna il timeout del rilevamento degli errori dell'host

Per aggiornare il tempo massimo di attesa di Compute Engine per riavviare o terminare una VM che non risponde, devi utilizzare il metodo instances.setScheduling beta perché questa funzionalità è disponibile in Anteprima.

Aggiungi il parametro hostErrorTimeoutSeconds al corpo della richiesta.

  POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling

  {
    "hostErrorTimeoutSeconds": NUMBER_OF_SECONDS,
  }

Sostituisci quanto segue:

  • PROJECT_ID: il progetto per la VM.
  • ZONE: la zona in cui si trova la VM.
  • VM_NAME: il nome della VM.
  • NUMBER_OF_SECONDS: numero di secondi che Compute Engine attende prima di riavviare o terminare una VM che non risponde, da 90 a 330, in incrementi di 30.

Visualizza le impostazioni dei criteri di manutenzione dell'host di una VM

Console

  1. Vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Fai clic sul nome della VM per cui vuoi visualizzare le impostazioni. Viene visualizzata la pagina Dettagli istanza VM.

  3. Vai alla sezione Gestione. La sottosezione Criteri di disponibilità mostra le impostazioni attuali per Manutenzione host e Riavvio automatico.

gcloud

Visualizza le impostazioni delle opzioni di manutenzione dell'host per una VM con il comando gcloud compute instances describe:

    gcloud compute instances describe VM_NAME --format="yaml(scheduling)"

Sostituisci VM_NAME con il nome della VM.

L'output include il timeout per il rilevamento degli errori dell'host della VM, ad esempio:

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

Visualizza l'impostazione di timeout del rilevamento degli errori dell'host

Visualizza il valore corrente di hostErrorTimeoutSeconds con il comando gcloud beta compute instances describe, poiché questa opzione è disponibile solo in Anteprima.

  gcloud beta compute instances describe VM_NAME --format="yaml(scheduling)"

Sostituisci VM_NAME con il nome della VM.

L'output include il timeout per il rilevamento degli errori dell'host della VM, ad esempio:

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

REST

Per visualizzare le impostazioni di manutenzione dell'host per una VM, utilizza il metodo instances.get:

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

Sostituisci quanto segue:

  • PROJECT_ID: il progetto in cui si trova la VM.
  • ZONE: la zona in cui si trova la VM.
  • VM_NAME: il nome della VM.

Nell'output, l'oggetto scheduling contiene il criterio di manutenzione dell'host della VM, ad esempio:

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

Visualizza le impostazioni di timeout degli errori dell'host

Visualizza l'impostazione hostErrorTimeoutSeconds corrente con una richiesta GET al metodo instances.get beta, perché questa opzione è disponibile solo in Anteprima.

 GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME

Sostituisci quanto segue:

  • PROJECT_ID: il progetto per la VM.
  • ZONE: la zona in cui si trova la VM.
  • VM_NAME: il nome della VM.

Nell'output, l'oggetto scheduling include il timeout per il rilevamento degli errori dell'host della VM, ad esempio:

  "scheduling": {
    "hostErrorTimeoutSeconds": 120
  }

Passaggi successivi