Imposta criterio di manutenzione dell'host VM


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

Prima di iniziare

  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è la procedura mediante la quale la tua identità viene verificata per l'accesso alle API e ai servizi Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine come segue.

    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. Install the Google Cloud CLI, then initialize it by running the following command:

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

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

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

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

Limitazioni

  • Non puoi modificare il criterio di manutenzione dell'host di una VM prerilasciabile. Quando si verifica un 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 dopo che si verifica un errore relativo all'host con le seguenti proprietà.

Compute Engine configura ogni VM con i valori predefiniti, a meno che tu non specifichi diversamente.

Durante gli eventi dell'host, a seconda del criterio di manutenzione dell'host configurato, le 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): attiva Compute Engine quando si verifica un evento di manutenzione.
    • TERMINATE: arresta una VM anziché eseguirne la migrazione.
  • automaticRestart: determina il comportamento quando una VM si arresta in modo anomalo o viene interrotta dal sistema.

    • true (valore predefinito): Compute Engine riavvia un'istanza se l'istanza si arresta in modo anomalo o viene arrestata.
    • false: Compute Engine non riavvia una VM se La VM si arresta in modo anomalo o viene arrestata.
  • localSsdRecoveryTimeout: imposta il timeout del ripristino degli SSD locali. Si tratta del periodo di tempo massimo, in ore, che Compute Engine attende per recuperare i dati dell'unità SSD locale 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, 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. Un valore pari a 0 indica che Compute Engine non attenderà di recuperare i dati.
  • hostErrorTimeoutSeconds (anteprima): imposta la quantità di tempo massima, in secondi, che Compute Engine attende Riavvia o termina 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 compreso tra 90 e 330: specifica il numero di secondi in incrementi di 30, che Compute Engine attende prima di riavviare la VM che non risponde.

Impostare il criterio di manutenzione dell'host di una VM

Puoi modificare il criterio di manutenzione dell'host di una VM la prima volta che crea la VM o dopo che la VM è stata creata.

Impostare il criterio di manutenzione dell'host durante la creazione della VM

Le informazioni riportate in questa sezione riguardano come impostare il criterio di manutenzione dell'host quando crei una VM. Per altri esempi di creazione di VM, consulta Crea e avvia un'istanza VM.

Puoi impostare il criterio 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 Host in manutenzione, seleziona uno dei seguenti passaggi:
    4. Per eseguire la migrazione delle VM durante gli eventi di manutenzione, seleziona Esegui la migrazione di un'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

In the Google Cloud console, activate Cloud Shell.

Activate Cloud Shell

At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

Per impostare i criteri di manutenzione dell'host di una nuova VM, utilizza il metodo Comando gcloud compute instances create. Includi uno o più dei seguenti elementi parametri:

  • --maintenance-policy: indica se viene eseguita la migrazione della VM o viene arrestata durante per la manutenzione dell'host. Se ometti questa proprietà, viene eseguita la migrazione della VM 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 sempre quando viene rilevato un errore.
  • --local-ssd-recovery-timeout: il tempo impiegato da Compute Engine per recuperare i dischi SSD locali collegati dopo un errore dell'host. La il valore predefinito è 1 ora.

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

  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: comportamento di riavvio per la VM, impostato su --no-restart-on-failure o --restart-on-failure.
  • SSD_RECOVERY_TIMEOUT: il numero di ore per per il recupero di un SSD locale collegato a una VM che non risponde. Valori validi sono comprese tra 0 e 168, con incrementi di 1 ora.

Imposta il timeout per il rilevamento degli errori dell'host

Per impostare il tempo massimo di Compute Engine, procedi nel seguente modo: attende il riavvio o la terminazione di una VM che non risponde, utilizza 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: comportamento di riavvio per la VM, impostato su --no-restart-on-failure o --restart-on-failure.
  • SSD_RECOVERY_TIMEOUT: il numero di ore Compute Engine impiega il recupero di un SSD locale che era stato collegato a una VM che non risponde. I valori validi sono compresi tra 0 e 168, in incrementi di 1 ora.
  • ERROR_DETECTION_TIMEOUT: il numero di secondi che Compute Engine attende prima di riavviare una VM che non risponde, da 90 a 330, con 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 viene eseguita la migrazione della VM o viene arrestata durante per la manutenzione dell'host. La migrazione della VM viene eseguita per impostazione predefinita.
  • automaticRestart: indica se la VM si riavvia automaticamente dopo un errore dell'host. Le VM vengono riavviate automaticamente per impostazione predefinita.
  • 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 Compute Engine impiega il recupero di un disco SSD locale che era stato collegato a una VM che non risponde. I valori validi vanno da 0 a 168 con incrementi di 1 ora.

Imposta il timeout del rilevamento degli errori dell'host

Per impostare il tempo massimo di attesa di Compute Engine per riavviare o terminare una VM non rispondente, utilizza il metodo beta instances.insert, poiché 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 Compute Engine di spendere per il recupero di 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: il numero di secondi Compute Engine attende prima di riavviare o di terminare la VM che non risponde. I valori validi vanno da 90 a 330, con incrementi di 30.

Aggiornare 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 Host in manutenzione e Riavvio automatico.
    3. Fai clic su Salva.

gcloud

In the Google Cloud console, activate Cloud Shell.

Activate Cloud Shell

At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

Aggiorna il criterio di manutenzione dell'host di una VM esistente con il comando gcloud compute instances set-scheduling. Usa 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: il comportamento di riavvio per la VM, --no-restart-on-failure o --restart-on-failure.
  • SSD_RECOVERY_TIMEOUT: l'ora, in ore, Compute Engine impiega il recupero di 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 Compute Engine, attende il riavvio o la terminazione di una VM che non risponde, utilizza gcloud beta compute instances set-scheduling perché questa caratteristica è disponibile 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: comportamento di riavvio per la VM, impostato su --no-restart-on-failure o --restart-on-failure.
  • SSD_RECOVERY_TIMEOUT: l'ora, in ore, Compute Engine impiega il recupero di un disco SSD locale che era stato collegato a una VM che non risponde. I valori validi vanno da 0 a 168.
  • NUMBER_OF_SECONDS: il numero di secondi che Compute Engine attende prima di riavviare o terminare una VM non rispondente, da 90 a 330, con incrementi di 30.

REST

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

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

  • onHostMaintenance: indica se la VM viene migrata o interrotta 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. Le VM vengono riavviate automaticamente per impostazione predefinita.
  • localSsdRecoveryTimeout: per quanto tempo Compute Engine per il recupero di eventuali 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: l'ora, in ore, in cui Compute Engine impiega il recupero di un disco SSD locale che era stato collegato a una VM che non risponde. I valori validi vanno da 0 a 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 non rispondente, devi utilizzare il metodo beta instances.setScheduling 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: il numero di secondi Compute Engine attende prima di riavviare o di terminare che non risponde, da 90 a 330, con 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 di cui vuoi visualizzare le impostazioni. La Si apre la pagina Dettagli istanza VM.

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

gcloud

Visualizza le impostazioni dell'opzione 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 del rilevamento degli errori dell'host della VM, ad esempio:

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

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

Visualizza il valore attuale di hostErrorTimeoutSeconds con Comando gcloud beta compute instances describe, perché 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 del 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 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 attuale di hostErrorTimeoutSeconds con una richiesta GET alla 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 rilevamento degli errori dell'host della VM timeout, ad esempio:

  "scheduling": {
    "hostErrorTimeoutSeconds": 120
  }

Passaggi successivi