Gerenciar eventos de host em instâncias de computação

Este documento explica como usar os recursos de manutenção do host disponíveis no pacote do Cluster Director. Ele explica como monitorar, planejar e realizar a manutenção programada em instâncias do Compute Engine. Para gerenciar a manutenção nos seus blocos de capacidade reservados, com ou sem instâncias de computação em execução, consulte Gerenciar eventos de host em todas as reservas.

Ao gerenciar proativamente os próximos eventos de manutenção do host nas instâncias, é possível minimizar as interrupções e manter o desempenho ideal.

Antes de começar

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

Para usar as amostras da API REST desta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.

    Instale a CLI do Google Cloud. Após a instalação, inicialize a CLI do Google Cloud executando o seguinte comando:

    gcloud init

    Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.

Saiba mais em Autenticar para usar REST na documentação de autenticação do Google Cloud .

Funções exigidas

Para receber as permissões necessárias para gerenciar eventos de manutenção do host em instâncias de computação, peça ao administrador para conceder a você os seguintes papéis do IAM:

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esses papéis predefinidos contêm as permissões necessárias para gerenciar eventos de manutenção do host em instâncias de computação. Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As seguintes permissões são necessárias para gerenciar eventos de manutenção do host em instâncias de computação:

  • Para conferir os detalhes de uma instância: compute.instances.get no projeto

Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.

Visão geral

Para otimizar a manutenção das instâncias de computação, siga estas etapas:

  1. Entenda e lide com a manutenção do host. Saiba mais sobre a frequência e o comportamento de manutenção das suas instâncias com base na série de máquinas e aprenda a preparar sua carga de trabalho para lidar com a manutenção do host. Essas informações ajudam a minimizar interrupções e evitar a perda de dados.

  2. Configure alertas de notificação. Crie alertas com base em registros para receber notificações quando a manutenção das suas instâncias for programada, iniciada ou concluída. Essa abordagem ajuda você a planejar suas atividades de forma proativa e evitar inatividade inesperada.

  3. Gerenciar a manutenção em todas as instâncias. Verifique se há manutenção programada para suas instâncias. Se necessário, é possível iniciar manualmente a manutenção em todas as instâncias. Esse processo ajuda a aumentar a resiliência das cargas de trabalho a eventos de host, evitar inatividade e maximizar a disponibilidade dos aplicativos.

Entender e lidar com a manutenção do host

Durante o ciclo de vida de uma instância do Compute Engine, a máquina host em que a instância é executada passa por vários eventos de host. Um evento do organizador pode incluir o seguinte:

  • Manutenção planejada da infraestrutura do Compute Engine.
  • Manutenção não planejada e de emergência para reparar a infraestrutura do Compute Engine após um erro de host ou um relatório de host com falha.

A tabela a seguir descreve os recursos de manutenção do host para tipos de máquina otimizados para aceleradores:

Tipo de máquina Frequência de manutenção Comportamento Notificações avançadas para manutenção programada Notificações avançadas para manutenção de emergência Manutenção sob demanda Simular manutenção
A4X Max e A4X Mínimo de 90 dias Termina com Permanência de dados do SSD local 90 dias Se você ativar as notificações de emergência, o período será de sete dias. Caso contrário, algumas horas. Sim Não
A4 Mínimo de 90 dias Termina com Permanência de dados do SSD local 90 dias Se você ativar as notificações de emergência, o período será de sete dias. Caso contrário, algumas horas. Sim Não
A3 Ultra Mínimo de 90 dias Termina com Permanência de dados do SSD local 90 dias Se você ativar as notificações de emergência, o período será de sete dias. Caso contrário, algumas horas. Sim Não
A3 Mega e A3 High (8 GPUs) Mínimo de 90 dias Encerrar com Permanência de dados no SSD local 60 minutos Algumas horas Sim Sim

As frequências de manutenção mostradas na tabela anterior são aproximações, não garantias. O Compute Engine pode, às vezes, realizar manutenção com mais frequência.

Para evitar a perda de dados ou progresso, configure suas cargas de trabalho para lidar com a manutenção do host. Por exemplo, use as seguintes técnicas para salvar seus dados temporários e o progresso antes que a carga de trabalho seja interrompida:

Configurar alertas de notificação para instâncias de computação

É possível receber notificações sobre eventos de manutenção programados, iniciados ou concluídos para suas instâncias ao criar políticas de alertas baseadas em registros.

Para criar um alerta para os eventos de manutenção das suas instâncias, siga este procedimento. Repita esse procedimento para cada alerta que você quiser criar.

  1. No console do Google Cloud , acesse a página Análise de registros:

    Acessar a Análise de registros

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Logging.

  2. Clique no botão Mostrar consulta para a posição ativada.

  3. No painel Consulta, crie uma das seguintes consultas. Essas consultas filtram entradas de registro para identificar eventos de manutenção específicos. Se você quiser usar várias consultas, repita esse procedimento para criar um alerta exclusivo para cada uma delas.

    • Para receber alertas quando a manutenção de uma instância for programada:

      protoPayload.methodName="compute.instances.upcomingMaintenance" severity>=DEFAULT
      protoPayload.status.message =~ "scheduled"
      
    • Para receber alertas quando a janela de manutenção de uma instância for aberta:

      protoPayload.methodName="compute.instances.upcomingMaintenance" severity>=DEFAULT
      protoPayload.status.message =~ "ongoing"
      
    • Para receber alertas quando a manutenção de uma instância for iniciada:

      protoPayload.methodName="compute.instance.terminateOnHostMaintenance" severity>=DEFAULT
      
    • Para receber alertas quando a manutenção de uma instância for concluída:

      protoPayload.methodName="compute.instances.upcomingMaintenance" severity>=DEFAULT
      protoPayload.status.message =~ "completed"
      
  4. Para validar a consulta, clique em Executar consulta. Se a consulta for válida, o painel Resultados da consulta vai mostrar as entradas de registro que correspondem a ela.

  5. Na barra de ferramentas de resultados da consulta, clique na lista Ações e selecione Criar alerta de registro. O painel Criar política de alertas baseada em registros aparece.

  6. Na seção Detalhes do alerta, faça o seguinte:

    1. No campo Nome da política de alertas, digite um nome para a política.

    2. Na lista Nível de gravidade da política, selecione Aviso (ou uma gravidade maior).

    3. Clique em Próxima.

  7. Na seção Escolher registros a serem incluídos no alerta, clique em Próxima.

  8. Na seção Definir a frequência da notificação e a duração do fechamento automático, especifique o seguinte:

    1. Na lista Tempo entre notificações, selecione a frequência com que você quer receber notificações.

    2. Na lista Duração do fechamento automático de incidentes, selecione após quanto tempo o Cloud Logging para de enviar notificações e fecha automaticamente o incidente.

    3. Clique em Próxima.

  9. Na seção Quem deve receber notificações?, especifique um canal de notificação para o Logging enviar notificações.

  10. Clique em Salvar.

Para conferir exemplos de notificações de eventos de manutenção na Análise de registros, consulte Exemplos de notificações de manutenção na documentação do Compute Engine.

Gerenciar a manutenção em instâncias de computação

Para ver e controlar a manutenção das suas instâncias, faça uma ou mais das seguintes ações:

Conferir o estado de manutenção das instâncias de computação

Para conferir o estado e o horário programado da próxima manutenção das suas instâncias, verifique o valor do campo upcomingMaintenance nos metadados da instância. Se uma instância não tiver o campo upcomingMaintenance, nenhum evento de manutenção do host será programado para ela. Para mais informações sobre os campos em upcomingMaintenance, consulte Definições de status de manutenção na documentação do Compute Engine.

Além disso, se uma manutenção for programada para uma instância, o campo upcomingGroupMaintenance vai conter o campo maintenanceReasons. Esse campo descreve por que a manutenção foi programada para sua instância, conforme descrito na tabela a seguir:

Tipo de manutenção Motivo da manutenção Estado da instância de computação
Manutenção planejada após o relatório de host com falha FAILURE_GPU_CUSTOMER_REPORTED Isso se aplica apenas a instâncias em execução no host que você informou como com falha.
Manutenção planejada para manutenção regular
  • PLANNED_UPDATE: manutenção planejada da infraestrutura
  • PLANNED_NETWORK_UPDATE: manutenção de rede planejada
Aplica-se a instâncias em execução, interrompidas ou suspensas.
Manutenção de emergência não planejada
  • FAILURE_DISK: manutenção não planejada programada devido a um erro com um disco anexado a uma instância.
  • FAILURE_GPU: manutenção não planejada programada devido a um erro relacionado à GPU.
  • FAILURE_GPU_TEMPERATURE: manutenção não planejada agendada devido a um erro relacionado à GPU depois que ela atingiu uma temperatura alta.
  • FAILURE_GPU_XID: manutenção não planejada depois que você recebeu uma mensagem Xid devido a um erro relacionado à GPU.
  • FAILURE_INFRA: manutenção não planejada programada devido a um erro na infraestrutura.
  • FAILURE_INTERFACE: manutenção não planejada programada devido a um erro na NIC.
  • FAILURE_MEMORY: manutenção não planejada programada devido a um erro na memória de uma instância.
  • FAILURE_NETWORK: manutenção não planejada programada devido a um erro na rede.
  • FAILURE_NVLINK: manutenção não planejada programada devido a um erro com o NVLink.
Aplicável apenas a instâncias em execução.

Para ver o campo maintenanceReasons em uma instância, use a CLI gcloud ou a API REST. Para conferir o estado de manutenção de várias instâncias de computação simultaneamente, use o console do Google Cloud ou a API REST. Caso contrário, selecione uma destas opções:

Console

  1. No console do Google Cloud , acesse a página Instâncias de VM.

    Acessar instâncias de VM

  2. Na coluna Status da manutenção, o Compute Engine mostra o estado de manutenção das suas instâncias. Se você não encontrar essa coluna na tabela Instâncias de VM, clique em view_column Opções de exibição de coluna, marque a caixa de seleção Status da manutenção e clique em OK.

gcloud

Para conferir o estado de manutenção de uma instância, use o comando gcloud compute instances describe com a flag --flatten=resourceStatus.upcomingMaintenance:

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

Substitua:

  • INSTANCE_NAME: o nome da instância.

  • ZONE: a zona em que a instância está.

A saída será semelhante a uma das seguintes:

  • Se um evento de manutenção do host estiver programado para sua instância, a saída será semelhante a esta:

    ---
    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 um evento de manutenção do host não estiver programado para sua instância, a saída será semelhante a esta:

    ---
    null
    

REST

Para conferir o estado de manutenção das suas instâncias, faça uma das seguintes solicitações GET. Ao fazer uma solicitação, inclua o parâmetro de consulta fields para mostrar apenas o nome, o tipo de máquina e a manutenção futura de uma instância. Você também precisa incluir o parâmetro de consulta filter para filtrar apenas instâncias por um tipo de máquina específico.

  • Para ver instâncias em todas as zonas: método instances.aggregatedList.

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/instances?fields=items.name,items.machineType,items.upcomingMaintenance&filter=machineType%3AMACHINE_TYPE
    
  • Para conferir instâncias em uma zona específica, use o método 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
    

Substitua:

  • PROJECT_ID: o ID do projeto em que você criou instâncias.

  • ZONE: a zona em que as instâncias estão.

  • MACHINE_TYPE: o tipo de máquina que você quer usar para filtrar as instâncias.

Se um evento de manutenção do host for programado para uma instância, ela vai conter o campo upcomingMaintenance:

{
  "items": [
    {
      "name": "vm-01",
      "machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/europe-west1-b/machineTypes/a3-ultragpu-8g",
      "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"
        }
      }
    },
    ...
  ]
}

Para restringir ainda mais uma lista de instâncias, defina o parâmetro de consulta filter como uma expressão de filtro diferente.

Servidor de metadados

Para conferir o estado de manutenção de uma instância, faça o seguinte:

  1. Se você ainda não fez isso, conecte-se à sua instância do Linux ou Windows.

  2. Para conferir a programação de manutenção futura, consulte o endpoint upcoming-maintenance:

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

    Se um evento de manutenção do host estiver programado para sua instância, a saída será semelhante a esta:

    "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 não houver um evento de manutenção do host programado, a saída será semelhante a esta:

    { }
    
  3. Para conferir o estado atual de manutenção de uma VM, consulte o endpoint maintenance-event:

    curl http://metadata.google.internal/computeMetadata/v1/instance/maintenance-event -H "Metadata-Flavor: Google"
    

    Para mais informações sobre a saída dessas consultas, consulte Analisar as saídas.

Iniciar manualmente a manutenção em instâncias de computação

É possível iniciar manualmente a manutenção das instâncias em vez de aguardar o horário programado.

Dependendo do estado de manutenção de uma instância, o seguinte acontece:

Estado de manutenção Descrição O que você vê
Programado O Compute Engine tem manutenção programada para a instância. É possível iniciar a manutenção manualmente antes do horário programado.
  • No console Google Cloud , o estado da manutenção aparece como Pronto para execução - será executado em DATE.
  • Na CLI gcloud ou na API REST, o Compute Engine define o campo maintenanceStatus como PENDING.
Em andamento A manutenção está em andamento. Não é possível reagendar.
  • No console Google Cloud , o estado de manutenção aparece como Em execução.
  • Na CLI gcloud ou na API REST, o Compute Engine define o campo maintenanceStatus como ONGOING.
Concluído A manutenção foi concluída. O Compute Engine removeu todas as notificações de manutenção da instância.
  • No console Google Cloud , o estado de manutenção aparece como Atualizado.
  • Na CLI gcloud ou na API REST, o Compute Engine define o campo maintenanceStatus como COMPLETE.

É possível iniciar manualmente a manutenção de várias instâncias simultaneamente ou de instâncias individuais. Para várias instâncias, use o console do Google Cloud ou, para instâncias localizadas na mesma zona, a CLI gcloud. Para instâncias individuais, selecione uma das seguintes opções:

Console

  1. No console do Google Cloud , acesse a página Instâncias de VM.

    Acessar instâncias de VM

  2. Selecione as linhas das instâncias em que você quer iniciar a manutenção.

  3. Clique em Executar manutenção.

  4. Para confirmar, clique em Executar manutenção.

gcloud

Para iniciar manualmente a manutenção de uma ou mais instâncias na mesma zona, use o comando gcloud compute instances perform-maintenance:

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

Substitua:

  • INSTANCE_NAMES: uma lista de nomes de instâncias separados por espaços. Por exemplo, vm-01 vm-02 vm-03.

  • ZONE: a zona em que as instâncias estão.

REST

Para iniciar manualmente a manutenção de uma instância, faça uma solicitação POST para o método instances.performMaintenance:

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

Substitua:

  • PROJECT_ID: o ID do projeto em que você criou a instância.

  • ZONE: a zona em que a instância está.

  • INSTANCE_NAME: o nome da instância.

A seguir