Segnala un host difettoso

Se noti problemi su una VM H4D riservata che non riesci a risolvere in altro modo, ad esempio errori persistenti con il dispositivo RDMA, ti consigliamo di segnalare l'host come difettoso. Quando segnali un host come difettoso, Compute Engine lo segnala come difettoso e poi ripara automaticamente la VM eseguendo la manutenzione dell'host. Per le VM H4D, Compute Engine tenta di eseguire la migrazione della VM a un host diverso all'inizio della manutenzione, il che può contribuire a ridurre al minimo i tempi di inattività del workload.

Questo documento spiega come segnalare e riparare gli host difettosi per le istanze di macchine virtuali (VM) che fanno parte di cluster basati su VM. Per i cluster Google Kubernetes Engine (GKE), consulta Segnala host difettosi tramite GKE.

Limitazioni

Quando segnali un host difettoso, si applicano le seguenti limitazioni:

  • Puoi segnalare un host difettoso solo se la VM in esecuzione sull'host soddisfa tutte le seguenti condizioni:

    • La VM è in esecuzione.

    • La VM utilizza un tipo di macchina H4D.

    • La VM utilizza il modello di provisioning con prenotazione.

  • Google Cloud fa del suo meglio per soddisfare tutte le tue richieste di segnalazione di host difettosi. Tuttavia, a causa di vincoli di capacità o limiti di frequenza, una richiesta potrebbe non essere sempre soddisfatta.

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.

      Install the Google Cloud CLI. After installation, initialize the Google Cloud CLI 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 Autenticati per usare REST nella documentazione sull'autenticazione di Google Cloud .

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per segnalare un host difettoso, chiedi all'amministratore di concederti i seguenti ruoli IAM:

  • Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) sulla VM o sul progetto
  • Per visualizzare lo stato di un'operazione di report host difettoso utilizzando Cloud Logging: Visualizzatore log (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 segnalare un host difettoso. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per segnalare un host difettoso sono necessarie le seguenti autorizzazioni:

  • Per creare un report sull'host difettoso: compute.instances.update sulla VM
  • Per visualizzare un elenco di operazioni utilizzando Logging: logging.operations.list sul progetto
  • Per visualizzare i dettagli di un'operazione utilizzando Logging: logging.operations.get sul progetto
  • Per visualizzare un elenco di operazioni in Compute Engine: compute.zoneOperations.list sul progetto
  • Per visualizzare i dettagli di un'operazione in Compute Engine: compute.zoneOperations.describe sul progetto

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

Informazioni sulla procedura di segnalazione di un host difettoso

Dopo aver segnalato un host difettoso per una VM H4D, l'ora in cui la VM H4D viene riavviata varia in base alla modalità operativa della prenotazione utilizzata per creare la VM. Per verificare la modalità operativa di una prenotazione, visualizza il campo reservationOperationalMode nella prenotazione.

Modalità gestita (HIGHLY_AVAILABLE_CAPACITY)
Tipi di macchine supportati H4D
Limitazione di frequenza delle richieste API di report sull'host difettoso Le chiamate all'API potrebbero essere soggette a limiti di frequenza.
Procedura di segnalazione di un host difettoso

Quando segnali un host difettoso per una VM H4D eseguita in modalità gestita, si verifica quanto segue:

  1. Segnala l'host difettoso: la VM rimane nello stato RUNNING durante l'operazione di segnalazione, che in genere richiede 10-12 minuti per essere completata. Per esaminare lo stato dell'operazione, consulta Esaminare le operazioni dell'host difettoso del report in questo documento.
  2. Avvia la riparazione dell'host: al termine dell'operazione di segnalazione dell'host difettoso, l'operazione di riparazione dell'host inizia entro un minuto.

    Quando viene avviata l'operazione di riparazione dell'host, la VM si arresta e il suo stato cambia a seconda dell'impostazione Riavvio automatico (automaticRestart) specificata per la VM:

    • Se il riavvio automatico è abilitato per la VM, lo stato della VM cambia in REPAIRING. La VM viene riavviata automaticamente quando il relativo host è integro, a meno che tu non la arresti prima.
    • Se il riavvio automatico è disattivato per la VM, lo stato della VM cambia in TERMINATED. Devi riavviare manualmente la VM dopo che l'host è integro.

    La riparazione dell'host difettoso può richiedere da 3 a 14 giorni o anche più tempo a volte.

  3. Migrazione e riavvio della VM: dopo l'avvio dell'operazione di riparazione dell'host (in genere 10-12 minuti), Compute Engine tenta di prenotare un altro host per sostituire l'host difettoso segnalato nella capacità riservata. Se Compute Engine trova un host integro, se sostituisce correttamente l'host difettoso o se trova un host integro corrispondente nella capacità riservata, Compute Engine esegue la migrazione della VM a quell'host. Il riavvio della VM avviene quindi tramite una delle seguenti operazioni:
    • Se la VM si trova nello stato REPAIRING e le risorse sono disponibili prima o al termine della riparazione, Compute Engine riavvia automaticamente la VM su un host integro.
    • Altrimenti, se la VM è nello stato TERMINATED o se le risorse non sono disponibili prima o al termine della riparazione, lo stato della VM rimane o cambia in TERMINATED. Devi riavviare manualmente la VM quando vuoi che venga eseguita. Tuttavia, il riavvio della VM potrebbe non riuscire se le risorse non sono disponibili al momento del riavvio della VM. Ad esempio, questo può accadere se altre VM utilizzano già l'host riparato.

Segnalare un host difettoso

Per segnalare un host difettoso:

  1. Controlla l'host su cui viene eseguita la VM.

    Per istruzioni, vedi Visualizzare la topologia del cluster H4D.

  2. (Facoltativo) Esegui il backup dei dati SSD locali. Quando la VM si arresta, Compute Engine ignora automaticamente i dati di tutti i dischi SSD locali collegati alla VM. Non puoi recuperare i dati dell'SSD locale dopo che Compute Engine li ha eliminati.

    Per istruzioni su come conservare i dati dell'SSD locale, consulta Backup dei dati su SSD locale.

  3. Segnala l'host difettoso. Per segnalare un host difettoso, seleziona una delle seguenti opzioni. L'operazione di riparazione dell'host inizia immediatamente, entro un minuto dal completamento dell'operazione di segnalazione dell'host difettoso. Se la VM non risponde dopo l'avvio dell'operazione di segnalazione dell'host difettoso, ti consigliamo di riavviarla dopo aver atteso almeno 15 minuti.

    gcloud

    Per segnalare un host difettoso, utilizza il seguente comando gcloud compute instances report-host-as-faulty:

    gcloud compute instances report-host-as-faulty VM_NAME \
        --async \
        --disruption-schedule=IMMEDIATE \
        --fault-reasons=behavior=FAULT_REASON,description=DESCRIPTION \
        --zone=ZONE
    

    Sostituisci quanto segue:

    • VM_NAME: il nome della VM.

    • FAULT_REASON: un elenco di problemi dell'host riscontrati dalla VM, separati da virgole, ad esempio ISSUE_1,ISSUE_2. Puoi specificare i seguenti valori:

      • PERFORMANCE: si verifica un peggioramento delle prestazioni dell'operazione di rete della CPU o di Cloud RDMA, errori dell'interfaccia di rete IRDMA o il dispositivo di rete IRDMA non è presente.

      • SILENT_DATA_CORRUPTION: i dati della VM sono danneggiati, ma la VM continua a essere eseguita. Il danneggiamento silenzioso dei dati può essere dovuto a problemi come difetti della vCPU, bug software o problemi del kernel.

      • BEHAVIOR_UNSPECIFIED: non sai quale problema interessa la tua VM o il problema non è coperto dalle altre opzioni.

    • DESCRIPTION: una descrizione del problema che riguarda la tua VM, ad esempio informazioni XID o sospetti problemi di rendimento.

    • ZONE: la zona in cui esiste la VM.

    REST

    Per segnalare un host difettoso, invia la seguente richiesta POST al metodo instances.reportHostAsFaulty.

    Quando segnali un host difettoso, puoi specificare più motivi di guasto contemporaneamente. Ad esempio, per specificare due motivi di errore, invia una richiesta come segue:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/reportHostAsFaulty
    
    {
      "disruptionSchedule": "IMMEDIATE",
      "faultReasons": [
        {
          "behavior": "FAULT_REASON_1",
          "description": "DESCRIPTION_1"
        },
        {
          "behavior": "FAULT_REASON_2",
          "description": "DESCRIPTION_2"
        }
      ]
    }
    

    Sostituisci quanto segue:

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

    • ZONE: la zona in cui esiste la VM.

    • VM_NAME: il nome della VM.

    • FAULT_REASON_1 e FAULT_REASON_2: ogni problema dell'host riscontrato dalla tua VM. Puoi specificare i seguenti valori:

      • PERFORMANCE: si verifica un peggioramento delle prestazioni della CPU o dell'operazione di rete RDMA, errori del dispositivo RDMA o il dispositivo RDMA non è presente.

      • SILENT_DATA_CORRUPTION: i dati della VM sono danneggiati, ma la VM continua a essere eseguita. Il danneggiamento silenzioso dei dati può essere dovuto a problemi come difetti delle vCPU, bug del software o problemi del kernel.

      • BEHAVIOR_UNSPECIFIED: non hai la certezza di quale sia il problema della tua VM.

    • DESCRIPTION_1 e DESCRIPTION_2: una descrizione per ogni problema dell'host che hai specificato, ad esempio informazioni sull'XID o problemi di rendimento sospetti.

Esamina le operazioni di segnalazione di un host difettoso

Dopo aver segnalato un host difettoso, Compute Engine avvia una serie di operazioni per contrassegnare l'host come difettoso e lo prepara per la riparazione. Nello specifico, durante un'operazione di segnalazione di un host difettoso, si verifica la seguente procedura:

  1. Contrassegna l'host come difettoso. Compute Engine crea l'operazione di report host difettoso. L'operazione Segnala host difettoso crea quindi una sequenza di operazioni secondarie. Queste sotto-operazioni contrassegnano l'host sottostante come difettoso.

  2. Prepara l'host per le riparazioni. Al termine di tutte le operazioni secondarie, inizia l'operazione Segnala host difettoso. Compute Engine arresta la VM e avvia l'operazione di riparazione dell'host difettoso. In base alla modalità operativa della prenotazione specificata nella prenotazione utilizzata dalla VM e se sono disponibili host integri, Compute Engine mantiene la VM arrestata o tenta di eseguire automaticamente la migrazione e il riavvio della VM.

  3. Completa la segnalazione e ripara l'host. Compute Engine completa l'operazione di segnalazione dell'host difettoso e viene eseguita l'operazione di riparazione dell'host.

Per monitorare lo stato delle operazioni di segnalazione di host difettoso (compute.instances.reportHostAsFaulty) nel tuo progetto, seleziona una delle seguenti opzioni. Per saperne di più su altre operazioni che puoi utilizzare per monitorare riparazioni, migrazione e riavvio automatico, consulta Comportamenti di manutenzione e riavvio e Monitorare e pianificare un evento di manutenzione dell'host nella documentazione di Compute Engine.

Console (operazioni VM)

  1. Nella console Google Cloud , vai alla pagina Operazioni.

    Vai a Operazioni

  2. Nella tabella visualizzata, individua la VM che hai segnalato.

  3. Nella riga contenente la VM, nella colonna Stato, puoi visualizzare lo stato dell'operazione di segnalazione dell'host difettoso. Al termine dell'operazione, il valore è Fine.

  4. (Facoltativo) Per verificare se Compute Engine ha riavviato la VM, visualizza i dettagli della VM.

Console (log VM)

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

    Vai a Esplora log

  2. Verifica che l'opzione Mostra query sia attiva.

  3. Nell'editor di query, inserisci la seguente query:

    resource.type="gce_instance" AND protoPayload.methodName=~"compute\.instances\.reportHostAsFaulty"
    
  4. Fai clic su Esegui query. Il riquadro Risultati delle query mostra i risultati della query.

gcloud

  1. Per visualizzare lo stato delle operazioni di segnalazione di host difettosi nel tuo progetto, utilizza il comando gcloud compute operations list con il flag --filter impostato su operationType:compute.instances.reportHostAsFaulty:

    gcloud compute operations list --filter="operationType:compute.instances.reportHostAsFaulty"
    
  2. Se vuoi visualizzare i dettagli di un'operazione host specifica con errori, utilizza il comando gcloud compute operations describe:

    gcloud compute operations describe OPERATION_NAME \
        --zone="ZONE"
    

    Sostituisci quanto segue:

    • OPERATION_NAME: il nome dell'operazione.

    • ZONE: la zona in cui esiste l'operazione.

REST

Per visualizzare lo stato delle operazioni di segnalazione di host difettosi nel tuo progetto, invia una richiesta GET al metodo zoneOperations.list. Nell'URL della richiesta, includi il parametro di query filter impostato su items.operationType:compute.instances.reportHostAsFaulty.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/operations&filter=items.operationType:compute.instances.reportHostAsFaulty

Sostituisci quanto segue:

  • PROJECT_ID: il nome dell'operazione.

  • ZONE: la zona in cui esistono le operazioni.

Passaggi successivi