Gestisci gli eventi sull'host nelle VM H4D

Questo documento spiega come utilizzare le funzionalità di manutenzione host disponibili con le VM H4D. Spiega come monitorare, pianificare ed eseguire la manutenzione pianificata delle istanze di macchine virtuali (VM). Per gestire la manutenzione dei blocchi di capacità prenotati, indipendentemente dal fatto che le VM siano in esecuzione o meno, consulta Gestisci gli eventi sull'host nelle prenotazioni.

Se gestisci in modo proattivo gli eventi di manutenzione dell'host imminenti sulle tue VM, puoi ridurre al minimo le interruzioni e mantenere prestazioni ottimali.

Prima di iniziare

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

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.

REST

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

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

    gcloud init

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

Per saperne di più, consulta Autenticati per usare REST nella documentazione sull'autenticazione di Google Cloud .

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per gestire gli eventi di manutenzione dell'host nelle VM, chiedi all'amministratore di concederti i seguenti ruoli IAM:

  • Compute Admin (roles/compute.admin) sul progetto
  • Per l'accesso di sola lettura agli audit log degli eventi di sistema: Logs Viewer (roles/logging.viewer) sul progetto

Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questi ruoli predefiniti contengono le autorizzazioni necessarie per gestire gli eventi di manutenzione dell'host nelle VM. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per gestire gli eventi di manutenzione dell'host nelle VM sono necessarie le seguenti autorizzazioni:

  • Per visualizzare i dettagli di una VM: compute.instances.get sul progetto

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Panoramica

Per ottimizzare la manutenzione delle VM, completa i seguenti passaggi:

  1. Informazioni sulla manutenzione dell'host. Scopri la frequenza e il comportamento di manutenzione delle tue VM in base alla serie di macchine. Queste informazioni ti aiutano a ridurre al minimo le interruzioni dei workload.

  2. Configura gli avvisi di notifica. Crea avvisi basati su log per ricevere notifiche quando la manutenzione delle tue VM è pianificata, avviata o completata. Questo approccio ti aiuta a pianificare in modo proattivo le tue attività e a evitare tempi di inattività imprevisti.

  3. Gestisci la manutenzione nelle VM. Visualizza se è pianificata la manutenzione delle tue VM. Se necessario, puoi avviare manualmente la manutenzione delle tue VM. Questo processo ti aiuta ad aumentare la resilienza dei tuoi workload per ospitare eventi, evitare tempi di inattività e massimizzare la disponibilità delle tue applicazioni.

Informazioni sulla manutenzione dell'host

Durante il ciclo di vita di un'istanza Compute Engine, la macchina host su cui viene eseguita l'istanza subisce diversi eventi dell'host. Un evento dell'host può includere la normale manutenzione dell'infrastruttura Compute Engine o, in rari casi, un errore dell'host. Compute Engine implementa anche upgrade leggeri e non invasivi dell'hypervisor e della rete, in background.

La serie di macchine H4D offre le seguenti funzionalità di manutenzione dell'host:

Tipo di macchina Frequenza tipica degli eventi di manutenzione programmata Comportamento di manutenzione Notifica di preavviso Manutenzione on demand Simulazione di manutenzione
h4d-standard-192 Almeno ogni 30 giorni Termina 7 giorni No
h4d-highmem-192 Almeno ogni 30 giorni Termina 7 giorni No
h4d-highmem-192-lssd Almeno ogni 30 giorni Termina con la persistenza dei dati di SSD locali 7 giorni No

La frequenza di manutenzione indicata nella tabella precedente ha solo valore indicativo. Può accadere che Compute Engine esegua la manutenzione con maggiore frequenza.

Configurare gli avvisi di notifica per le VM

Puoi ricevere notifiche relative agli eventi di manutenzione pianificati, avviati o completati per le tue VM creando policy di avviso basate sui log.

Per creare un avviso per gli eventi di manutenzione delle tue VM, completa la seguente procedura. Ripeti questa procedura per ogni avviso che vuoi creare.

  1. Nella console Google Cloud , vai alla pagina Esplora log:

    Vai a Esplora log

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.

  2. Fai clic sul pulsante di attivazione/disattivazione Mostra query in modo che sia impostato su On.

  3. Nel riquadro Query, crea una delle seguenti query. Queste query filtrano le voci di log per identificare eventi di manutenzione specifici. Se vuoi utilizzare più query, ripeti questa procedura per creare un avviso univoco per ogni query.

    • Per ricevere avvisi quando è pianificata la manutenzione di una VM:

      protoPayload.methodName="compute.instances.upcomingMaintenance" severity>=DEFAULT
      protoPayload.status.message =~ "scheduled"
      
    • Per ricevere avvisi quando si apre la periodo di manutenzione per una VM:

      protoPayload.methodName="compute.instances.upcomingMaintenance" severity>=DEFAULT
      protoPayload.status.message =~ "ongoing"
      
    • Per ricevere avvisi quando è iniziata la manutenzione di una VM:

      protoPayload.methodName="compute.instance.terminateOnHostMaintenance" severity>=DEFAULT
      
    • Per ricevere avvisi al termine della manutenzione di una VM:

      protoPayload.methodName="compute.instances.upcomingMaintenance" severity>=DEFAULT
      protoPayload.status.message =~ "completed"
      
  4. Per convalidare la query, fai clic su Esegui query. Se la query è valida, il riquadro Risultati delle query mostra le voci di log che corrispondono alla query.

  5. Nella barra degli strumenti dei risultati della query, fai clic sull'elenco Azioni e poi seleziona Crea avviso log. Viene visualizzato il riquadro Crea policy di avviso basata su log.

  6. Nella sezione Dettagli avviso, segui questi passaggi:

    1. Nel campo Nome criterio di avviso, inserisci un nome per il criterio.

    2. Nell'elenco Livello di gravità della policy, seleziona Avviso (o un livello di gravità superiore).

    3. Fai clic su Avanti.

  7. Nella sezione Scegli i log da includere nell'avviso, fai clic su Avanti.

  8. Nella sezione Imposta la frequenza delle notifiche e la durata della chiusura automatica, specifica quanto segue:

    1. Nell'elenco Tempo tra le notifiche, seleziona la frequenza con cui vuoi ricevere le notifiche.

    2. Nell'elenco Durata chiusura automatica incidenti, seleziona dopo quanto tempo Cloud Logging smette di inviare notifiche e chiude automaticamente l'incidente.

    3. Fai clic su Avanti.

  9. Nella sezione Chi dovrebbe ricevere le notifiche?, specifica un canale di notifica per Logging a cui inviare le notifiche.

  10. Fai clic su Salva.

Per visualizzare esempi di notifiche di eventi di manutenzione in Esplora log, consulta Esempi di notifiche relative alla manutenzione nella documentazione di Compute Engine.

Gestisci la manutenzione tra le VM

Puoi visualizzare e controllare la manutenzione delle tue VM eseguendo una o più delle seguenti operazioni:

Visualizzare lo stato di manutenzione delle VM

Puoi visualizzare lo stato e l'ora pianificata della manutenzione imminente delle tue VM controllando il valore del campo upcomingMaintenance nei metadati dell'istanza. Se una VM non contiene il campo upcomingMaintenance, non è pianificato alcun evento di manutenzione dell'host per la VM. Per ulteriori informazioni sui campi in upcomingMaintenance, consulta Definizioni dello stato di manutenzione nella documentazione di Compute Engine.

Inoltre, se è pianificata la manutenzione per una VM, il campo upcomingGroupMaintenance contiene il campo maintenanceReasons. Questo campo descrive il motivo per cui è stata pianificata la manutenzione della VM, come descritto nella tabella seguente:

Tipo di manutenzione Motivo della manutenzione Stato delle VM
Manutenzione pianificata per la manutenzione regolare
  • PLANNED_UPDATE: manutenzione pianificata dell'infrastruttura
  • PLANNED_NETWORK_UPDATE: manutenzione di rete pianificata
Si applica alle VM in esecuzione, arrestate o sospese.
Manutenzione di emergenza non pianificata
  • FAILURE_DISK: manutenzione non pianificata pianificata a causa di un errore con un disco collegato a una VM.
  • FAILURE_INFRA: manutenzione non pianificata pianificata a causa di un errore dell'infrastruttura.
  • FAILURE_INTERFACE: manutenzione non pianificata programmata a causa di un errore con la NIC.
  • FAILURE_MEMORY: manutenzione non pianificata pianificata a causa di un errore nella memoria di una VM.
  • FAILURE_NETWORK: manutenzione non pianificata programmata a causa di un errore di rete.
Si applica solo alle VM in esecuzione.

Per visualizzare il campo maintenanceReasons in una VM, devi utilizzare gcloud CLI o l'API REST. Per visualizzare lo stato di manutenzione di più VM contemporaneamente, devi utilizzare la console Google Cloud 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 Stato della manutenzione, Compute Engine mostra lo stato di manutenzione delle tue VM. Se non vedi questa colonna nella tabella Istanze VM, fai clic su view_column Opzioni di visualizzazione delle colonne, seleziona la casella di controllo Stato della manutenzione e poi fai clic su Ok.

gcloud

Per visualizzare lo stato di manutenzione di una VM, utilizza il comando gcloud compute instances describe con il flag --flatten=resourceStatus.upcomingMaintenance:

gcloud compute instances describe VM_NAME \
    --flatten=resourceStatus.upcomingMaintenance \
    --zone=ZONE

Sostituisci quanto segue:

  • VM_NAME: il nome della VM.

  • ZONE: la zona in cui esiste la VM.

L'output è simile a uno dei seguenti:

  • Se per la tua VM è pianificato un evento di manutenzione dell'host, l'output è simile al seguente:

    ---
    canReschedule: true
    latestWindowStartTime: '2025-11-01T19:00:00Z'
    maintenanceReasons:
    - 'PLANNED_UPDATE'
    - 'PLANNED_NETWORK_UPDATE'
    maintenanceStatus: 'PENDING'
    type: 'SCHEDULED'
    windowEndTime: '2025-11-01T22:00:00Z'
    windowStartTime: '2025-11-01T19:00:00Z'
    
  • Se per la tua VM non è pianificato un evento di manutenzione dell'host, l'output è simile al seguente:

    ---
    null
    

REST

Per visualizzare lo stato di manutenzione delle VM, invia una delle seguenti richieste GET. Quando effettui una richiesta, devi includere il parametro di query fields per mostrare solo il nome, il tipo di macchina e la manutenzione imminente per una VM. Devi includere anche il parametro di query filter per filtrare le VM solo in base a un tipo di macchina specifico.

  • Per visualizzare le VM in tutte le zone: instances.aggregatedList metodo.

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/instances?fields=items.name,items.machineType,items.upcomingMaintenance&filter=machineType%3AMACHINE_TYPE
    
  • Per visualizzare le VM in una zona specifica: metodo instances.list.

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances?fields=items.name,items.machineType,items.upcomingMaintenance&filter=machineType%3AMACHINE_TYPE
    

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui hai creato le VM.

  • ZONE: la zona in cui esistono le VM.

  • MACHINE_TYPE: il tipo di macchina in base al quale vuoi filtrare le VM.

Se per una VM è pianificato un evento di manutenzione dell'host, la VM contiene il campo upcomingMaintenance:

{
  "items": [
    {
      "name": "vm-01",
      "machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/europe-west4-b/machineTypes/h4d-highmem-192-lssd",
      "resourceStatus": {
        "upcomingMaintenance": {
          "canReschedule": true,
          "latestWindowStartTime": "2024-11-01T19:00:00Z",
          "maintenanceStatus": "PENDING",
          "maintenanceReasons": [
            "PLANNED_UPDATE",
            "PLANNED_NETWORK_UPDATE"
          ],
          "type": "SCHEDULED",
          "windowEndTime": "2024-11-01T22:00:00Z",
          "windowStartTime": "2024-11-01T19:00:00Z"
        }
      }
    },
    ...
  ]
}

(Facoltativo) Per restringere ulteriormente un elenco di VM, imposta il parametro di query filter su un'espressione di filtro diversa.

Server di metadati

Per visualizzare lo stato di manutenzione di una VM:

  1. Se non l'hai ancora fatto, connettiti alla tua Linux o Windows.

  2. Esegui una query sul server di metadati nel seguente modo:

    curl http://metadata.google.internal/computeMetadata/v1/instance/upcoming-maintenance?alt=json -H "Metadata-Flavor: Google"
    

    Se per la tua VM è pianificato un evento di manutenzione dell'host, l'output è simile al seguente:

    "Upcoming maintenance": {
      "can_reschedule": "true",
      "latest_window_start_time": "2024-12-01T19:00:01Z",
      "maintenance_reasons": [
        "PLANNED_UPDATE",
        "PLANNED_NETWORK_UPDATE"
      ],
      "maintenance_status": "PENDING",
      "type": "SCHEDULED",
      "window_end_time": "2024-12-01T21:00:01Z",
      "window_start_time": "2024-12-01T19:00:01Z"
    }
    

    Se non è pianificato un evento di manutenzione dell'host, l'output è simile al seguente:

    { }
    

Avviare manualmente la manutenzione sulle VM

Puoi avviare manualmente la manutenzione delle VM anziché attendere l'ora pianificata.

A seconda dello stato di manutenzione di una VM, si verifica quanto segue:

Stato di manutenzione Descrizione Cosa vedi
Pianificato Compute Engine ha pianificato la manutenzione della VM. Puoi avviare manualmente la manutenzione prima dell'orario pianificato.
  • Nella console Google Cloud , lo stato della manutenzione viene visualizzato come Pronto per l'esecuzione - verrà eseguito il giorno DATE.
  • In gcloud CLI o nell'API REST, Compute Engine imposta il campo maintenanceStatus su PENDING.
In corso La manutenzione è in corso. Non puoi riprogrammarlo.
  • Nella console Google Cloud , lo stato della manutenzione viene visualizzato come In esecuzione.
  • In gcloud CLI o nell'API REST, Compute Engine imposta il campo maintenanceStatus su ONGOING.
Completa La manutenzione è terminata. Compute Engine ha rimosso tutte le notifiche di manutenzione dalla VM.
  • Nella console Google Cloud , lo stato di manutenzione viene visualizzato come Aggiornato.
  • In gcloud CLI o nell'API REST, Compute Engine imposta il campo maintenanceStatus su COMPLETE.

Puoi avviare manualmente la manutenzione per più VM contemporaneamente o per singole VM. Per più VM, utilizza la console Google Cloud o, per le VM situate nella stessa zona, gcloud CLI. Per le singole VM, seleziona una delle seguenti opzioni:

Console

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

    Vai a Istanze VM

  2. Seleziona le righe delle VM in cui vuoi avviare la manutenzione.

  3. Fai clic su Esegui manutenzione.

  4. Per confermare, fai clic su Esegui manutenzione.

gcloud

Per avviare manualmente la manutenzione di una o più VM all'interno della stessa zona, utilizza il comando gcloud compute instances perform-maintenance:

gcloud compute instances perform-maintenance VM_NAMES \
    --zone=ZONE

Sostituisci quanto segue:

  • VM_NAMES: un elenco di nomi di VM separati da spazi; ad esempio, vm-01 vm-02 vm-03.

  • ZONE: la zona in cui esistono le VM.

REST

Per avviare manualmente la manutenzione di una VM, invia una richiesta POST al metodo instances.performMaintenance:

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

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui hai creato la VM.

  • ZONE: la zona in cui esiste la VM.

  • VM_NAME: il nome della VM.