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


Questo documento descrive come impostare i criteri di manutenzione dell'host per una macchina virtuale (VM) o un'istanza bare metal per controllare il comportamento dell'istanza quando si verifica un evento dell'host.

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 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. 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, consulta Eseguire l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.

Limitazioni

  • Non puoi modificare il comportamento di manutenzione 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 prelevata.
  • Dopo aver creato una VM utilizzando un tipo di macchina E2, non puoi cambiare il comportamento di manutenzione della VM da MIGRATE a TERMINATE o viceversa.
  • Non puoi modificare il comportamento di manutenzione per le istanze Bare Metal come c3-standard-192-metal o x4-megamem-1920-metal, che sono impostate su TERMINATE e si riavviano automaticamente.

Proprietà di manutenzione dell'host disponibili

Puoi configurare il comportamento di manutenzione, il comportamento di riavvio e il comportamento di attesa per errori dell'host di un'istanza di calcolo. Compute Engine configura ogni istanza 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 istanze che non supportano la migrazione live vengono interrotte e riavviate automaticamente.

  • onHostMaintenance: determina il comportamento quando si verifica un evento di manutenzione che potrebbe causare il riavvio dell'istanza.

    • MIGRATE: consente a Compute Engine di eseguire la migrazione in tempo reale di un'istanza quando si verifica un evento di manutenzione. Questa è l'impostazione predefinita per la maggior parte delle VM.
    • TERMINATE: arresta l'istanza anziché utilizzare la migrazione live. Si tratta dell'opzione predefinita per Z3, le istanze bare metal e le istanze con acceleratori come GPU e TPU. Per questi tipi di istanze, non puoi modificare l'impostazione per onHostMaintenance.
  • automaticRestart: determina il comportamento quando un'istanza si arresta in modo anomalo o viene interrotta dal sistema.

    • true (valore predefinito): Compute Engine riavvia un'istanza se si arresta in modo anomalo o viene interrotta.
    • false: Compute Engine non riavvia un'istanza se si arresta in modo anomalo o viene interrotta.
  • localSsdRecoveryTimeout: imposta il timeout del ripristino dell'SSD locale. Si tratta del periodo di tempo massimo, in ore, che Compute Engine attende per recuperare i dati dell'SSD locale dopo un errore dell'host. Questa impostazione si applica solo alle VM con dischi SSD locali collegati. Se configurerai questa impostazione per un'istanza a cui non sono collegati dischi SSD locali, l'impostazione verrà ignorata.

    • Non impostato (valore predefinito): Compute Engine attende fino a un'ora per recuperare i dati dell'unità SSD locale. Per le VM Z3, il tempo di attesa predefinito è di 6 ore.
    • Un numero intero compreso tra 0 e 168: specifica il numero di ore che Compute Engine attende per recuperare i dati dell'unità SSD locale. Il valore massimo è equivalente a 7 giorni. Un valore pari a 0 indica che Compute Engine non attende di recuperare i dati dell'unità SSD locale e riavvia immediatamente l'istanza.
  • hostErrorTimeoutSeconds (anteprima): imposta il tempo massimo, in secondi, che Compute Engine attende per riavviare o terminare un'istanza di calcolo dopo aver rilevato che l'istanza non risponde.

    • Non impostato (valore predefinito): Compute Engine attende fino a 5,5 minuti (330 secondi) prima di riavviare un'istanza non rispondente.
    • Un numero intero compreso tra 90 e 330: il numero di secondi, specificato in incrementi di 30, che Compute Engine attende prima di riavviare un'istanza di calcolo non rispondente.

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

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

Impostare il criterio di manutenzione dell'host durante la creazione dell'istanza

Le informazioni riportate in questa sezione riguardano come impostare il criterio di manutenzione dell'host quando crei un'istanza. Per altri esempi di creazione di istanze, consulta Creare e avviare un'istanza Compute Engine.

Puoi impostare il criterio di manutenzione dell'host di un'istanza di calcolo al momento della creazione utilizzando la console Google Cloud, gcloud CLI o REST.

Console

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

    Vai a Crea un'istanza

  2. Specifica un nome per l'istanza.

  3. Seleziona una Regione e una Zona per l'istanza.

  4. Nella sezione Configurazione macchina:

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

gcloud

Per impostare il criterio di manutenzione dell'host di una nuova istanza, utilizza il comando gcloud compute instances create.

Per impostare la proprietà --host-error-timeout-seconds (Anteprima), devi utilizzare il comando gcloud beta compute instances create.

Puoi impostare il criterio di manutenzione dell'host di una nuova istanza con il seguente comando. Se ometti uno dei flag, viene utilizzato il valore predefinito per il flag.

  gcloud compute instances create INSTANCE_NAME \
      --zone=ZONE \
      --maintenance-policy=MAINTENANCE_BEHAVIOR \
      --RESTART_ON_FAILURE_BEHAVIOR \
      --local-ssd-recovery-timeout=SSD_RECOVERY_TIMEOUT \
      --host-error-timeout-seconds=ERROR_DETECTION_TIMEOUT

Sostituisci quanto segue:

  • INSTANCE_NAME: il nome dell'istanza.
  • ZONE: la zona in cui si trova l'istanza,
  • MAINTENANCE_BEHAVIOR: il comportamento dell'evento di manutenzione di un'istanza, TERMINATE o MIGRATE. Per la maggior parte di tipi di macchine, la VM viene migrata per impostazione predefinita se ometti questa proprietà. Le istanze Z3 e Bare Metal vengono interrotte.
  • RESTART_ON_FAILURE_BEHAVIOR: comportamento di riavvio per le istanze terminate o non rispondenti, impostato su restart-on-failure (predefinito) o no-restart-on-failure.
  • SSD_RECOVERY_TIMEOUT: il numero di ore da impiegare per recuperare i dischi SSD locali collegati a un'istanza terminata o non rispondente. I valori validi vanno da 0 a 168 con incrementi di 1 ora.
  • ERROR_DETECTION_TIMEOUT: il numero di secondi che Compute Engine attende prima di riavviare un'istanza che non risponde, da 90 a 330 secondi (5,5 minuti), con incrementi di 30 secondi.

REST

Per impostare il criterio di manutenzione dell'host di una nuova istanza utilizzando REST, utilizza il metodo instances.insert.

Puoi impostare il criterio di manutenzione dell'host di una nuova istanza con il seguente comando. Se ometti uno dei campi, viene utilizzato il valore predefinito per il campo.

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

      {
        "name": "INSTANCE_NAME",

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

Sostituisci quanto segue:

  • PROJECT_ID: il progetto per l'istanza.
  • ZONE: la zona in cui vuoi creare l'istanza.
  • INSTANCE_NAME: il nome dell'istanza.
  • MAINTENANCE_BEHAVIOR: il comportamento dell'evento di manutenzione di un'istanza, TERMINATE o MIGRATE. Per la maggior parte di tipi di macchine, la VM viene migrata per impostazione predefinita se ometti questo campo. Le istanze Z3 e Bare Metal vengono interrotte.
  • RESTART_POLICY: indica se l'istanza si riavvia automaticamente dopo un evento di manutenzione o un errore dell'host. Può essere true (valore predefinito) o false.
  • SSD_RECOVERY_TIMEOUT: il numero di ore impiegate da Compute Engine per recuperare i dischi SSD locali collegati a un'istanza non rispondente o terminata. I valori validi vanno da 0 a 168, con incrementi di 1 ora. Il valore predefinito per Z3 è 6 ore e per tutte le altre VM è 1 ora.

Imposta il timeout per il rilevamento degli errori dell'host

Per impostare il tempo massimo di attesa di Compute Engine per riavviare o terminare un'istanza che non risponde, utilizza il metodo beta instances.insert, poiché questa opzione è in anteprima.

Aggiungi la proprietà hostErrorTimeoutSeconds all'oggetto scheduling del corpo della richiesta, dove HOST_ERROR_TIMEOUT è il numero di secondi che Compute Engine attende prima di riavviare o terminare un'istanza non rispondente. I valori validi vanno da 90 a 330 (5,5 minuti), con incrementi di 30 secondi.


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

   {
      "name": "INSTANCE_NAME",

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

Aggiorna il criterio di manutenzione dell'host di un'istanza esistente

Console

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

    Vai a Istanze VM

  2. Fai clic sul nome dell'istanza per cui vuoi modificare le impostazioni. Viene visualizzata la pagina dei dettagli dell'istanza.

  3. Con la scheda Dettagli selezionata, completa i seguenti passaggi:

    1. Fai clic sul pulsante Modifica nella parte superiore della pagina.
    2. Vai alla sezione Gestione. Nella sezione Norme sulla disponibilità, puoi modificare le opzioni di manutenzione dell'attività.
    3. Fai clic su Salva.

gcloud

Aggiorna il criterio di manutenzione dell'host di un'istanza esistente con il comando gcloud compute instances set-scheduling. Utilizza gli stessi parametri del comando di creazione dell'istanza nella sezione precedente.

Per aggiornare il tempo massimo di attesa di Compute Engine per riavviare o terminare un'istanza non rispondente (anteprima), utilizza il comando gcloud beta compute instances set-scheduling e includi --host-error-timeout-seconds=NUMBER_OF_SECONDS.

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

Sostituisci quanto segue:

  • NUMBER_OF_SECONDS: il numero di secondi che Compute Engine attende prima di riavviare o terminare una VM non rispondente, da 90 a 330 (5,5 minuti), con incrementi di 30 secondi.
    • INSTANCE_NAME: il nome dell'istanza.
    • MAINTENANCE_BEHAVIOR: il comportamento dell'evento di manutenzione di un'istanza, TERMINATE o MIGRATE. Per la maggior parte di tipi di macchine, la VM viene migrata per impostazione predefinita se ometti questa proprietà. Le istanze Z3 e Bare Metal vengono interrotte.
    • RESTART_ON_FAILURE_BEHAVIOR: comportamento di riavvio per le istanze terminate o non rispondenti, impostato su restart-on-failure (predefinito) o no-restart-on-failure.
    • SSD_RECOVERY_TIMEOUT: il numero di ore da impiegare per recuperare i dischi SSD locali collegati a un'istanza terminata o non rispondente. I valori validi vanno da 0 a 168 con incrementi di 1 ora.
    • NUMBER_OF_SECONDS: il numero di secondi che Compute Engine attende prima di riavviare un'istanza che non risponde, da 90 a 330 secondi (5,5 minuti), con incrementi di 30 secondi.

REST

Aggiorna il criterio di manutenzione dell'host di un'istanza esistente utilizzando una POST richiesta al metodo instances.setScheduling.

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

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

Sostituisci quanto segue:

  • PROJECT_ID: il progetto per l'istanza.
  • ZONE: la zona in cui si trova l'istanza.
  • INSTANCE_NAME: il nome dell'istanza.
  • MAINTENANCE_BEHAVIOR: il comportamento dell'evento di manutenzione di questa istanza, TERMINATE o MIGRATE.
  • RESTART_POLICY: indica se l'istanza viene riavviata automaticamente, true o false.
    • SSD_RECOVERY_TIMEOUT: il numero di ore da impiegare per recuperare i dischi SSD locali collegati all'istanza. I valori validi vanno da 0 a 168 con incrementi di 1 ora.

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à è in anteprima.

Aggiungi la proprietà hostErrorTimeoutSeconds al corpo della richiesta, dove HOST_ERROR_TIMEOUT è il numero di secondi che Compute Engine attende prima di riavviare o terminare un'istanza non rispondente. I valori validi vanno da 90 a 330 (5,5 minuti), con incrementi di 30 secondi.

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

  {
    ...
    "hostErrorTimeoutSeconds": NUMBER_OF_SECONDS
  }

Visualizzare le impostazioni del criterio di manutenzione dell'host per un'istanza

Console

  1. Vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Fai clic sul nome dell'istanza di cui vuoi visualizzare le impostazioni. Viene visualizzata la pagina dei dettagli dell'istanza.

  3. Vai alla sezione Gestione. La sottosezione Criteri di disponibilità mostra le impostazioni correnti per quanto segue:

    • Host in manutenzione
    • Riavvio automatico
    • Timeout errore dell'host

gcloud

Visualizza le impostazioni dell'opzione di manutenzione dell'host per un'istanza con il comando gcloud compute instances describe.

Per visualizzare il valore corrente dell'impostazione hostErrorTimeoutSeconds (Anteprima), utilizza il comando gcloud beta compute instances describe.

 gcloud compute instances describe INSTANCE_NAME \
 --zone ZONE --format="yaml(scheduling)"

Sostituisci quanto segue:

  • INSTANCE_NAME: il nome dell'istanza
  • ZONE: la zona in cui si trova l'istanza

L'output include le impostazioni correnti per il criterio di manutenzione dell'host, 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 un'istanza, utilizza il metodo instances.get:

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

Sostituisci quanto segue:

  • PROJECT_ID: il progetto in cui si trova l'istanza.
  • ZONE: la zona in cui si trova l'istanza.
  • INSTANCE_NAME: il nome dell'istanza.

Nell'output, l'oggetto scheduling contiene le impostazioni per il criterio di manutenzione dell'host dell'istanza, ad esempio:

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

Visualizzare le impostazioni del timeout errore dell'host

Visualizza l'impostazione hostErrorTimeoutSeconds corrente creando una richiesta GET utilizzando il metodo instances.get beta.

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

Sostituisci quanto segue:

  • PROJECT_ID: il progetto per l'istanza.
  • ZONE: la zona in cui si trova l'istanza.
  • INSTANCE_NAME: il nome dell'istanza.

Nell'output, l'oggetto scheduling include il timeout di rilevamento degli errori dell'host dell'istanza, ad esempio:

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

Passaggi successivi