Gerenciar eventos de host em VMs H4D

Neste documento, explicamos como usar os recursos de manutenção do host disponíveis com VMs H4D. Ele explica como monitorar, planejar e realizar a manutenção programada em instâncias de máquina virtual (VM). Para gerenciar a manutenção nos blocos de capacidade reservados, com ou sem VMs 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 VMs, é 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 todas as VMs, peça ao administrador 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 várias VMs. Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As permissões a seguir são necessárias para gerenciar eventos de manutenção do host em VMs:

  • Para ver os detalhes de uma VM: 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 VMs, siga estas etapas:

  1. Entenda a manutenção do host. Saiba mais sobre a frequência e o comportamento de manutenção das suas VMs com base na série de máquinas. Essas informações ajudam a minimizar as interrupções nas suas cargas de trabalho.

  2. Configure alertas de notificação. Crie alertas com base em registros para receber notificações quando a manutenção das suas VMs 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 VMs. Verifique se há manutenção programada para suas VMs. Se necessário, é possível iniciar manualmente a manutenção em todas as VMs. 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 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 de host pode incluir a manutenção regular da infraestrutura do Compute Engine ou, em casos raros, um erro de host. O Compute Engine também aplica alguns upgrades leves não destrutivos para o hipervisor e a rede em segundo plano.

A série de máquinas H4D oferece os seguintes recursos relacionados à manutenção do host:

Tipo de máquina Frequência típica de eventos de manutenção programada Comportamento de manutenção Notificação avançada Manutenção sob demanda Simular manutenção
h4d-standard-192 Mínimo de 30 dias Encerrar 7 dias Sim Não
h4d-highmem-192 Mínimo de 30 dias Encerrar 7 dias Sim Não
h4d-highmem-192-lssd Mínimo de 30 dias Termina com permanência de dados no SSD local 7 dias Sim Não

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.

Configurar alertas de notificação para VMs

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

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

  1. No console 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 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 VM for programada:

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

      protoPayload.methodName="compute.instances.upcomingMaintenance" severity>=DEFAULT
      protoPayload.status.message =~ "ongoing"
      
    • Para receber alertas quando a manutenção de uma VM começar:

      protoPayload.methodName="compute.instance.terminateOnHostMaintenance" severity>=DEFAULT
      
    • Para receber alertas quando a manutenção de uma VM 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 à consulta.

  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 VMs

É possível ver e controlar a manutenção das suas VMs fazendo uma ou mais das seguintes ações:

Conferir o estado de manutenção das VMs

Para conferir o estado e o horário programado da próxima manutenção das suas VMs, verifique o valor do campo upcomingMaintenance nos metadados da instância. Se uma VM 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 VM tiver manutenção programada, o campo upcomingGroupMaintenance vai conter o campo maintenanceReasons. Esse campo descreve por que a manutenção foi programada para sua VM, conforme descrito na tabela a seguir:

Tipo de manutenção Motivo da manutenção Estado das VMs
Manutenção planejada para manutenção regular
  • PLANNED_UPDATE: manutenção planejada da infraestrutura
  • PLANNED_NETWORK_UPDATE: manutenção de rede planejada
Aplicável a VMs 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 VM.
  • 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 VM.
  • FAILURE_NETWORK: manutenção não planejada programada devido a um erro na rede.
Aplicável apenas a VMs em execução.

Para conferir o campo maintenanceReasons em uma VM, use a CLI gcloud ou a API REST. Para conferir o estado de manutenção de várias VMs 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 de manutenção, o Compute Engine mostra o estado de manutenção das suas VMs. Se você não encontrar essa coluna na tabela Instâncias de VM, clique em view_column Opções de exibição de colunas, marque a caixa de seleção Status da manutenção e clique em OK.

gcloud

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

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

Substitua:

  • VM_NAME: o nome da VM.

  • ZONE: a zona em que a VM está.

A saída será semelhante a uma destas:

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

    ---
    null
    

REST

Para conferir o estado de manutenção das suas VMs, 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 VM. Você também precisa incluir o parâmetro de consulta filter para filtrar apenas VMs por um tipo de máquina específico.

  • Para conferir VMs 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 ver as VMs em uma zona específica: 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 as VMs.

  • ZONE: a zona em que as VMs estão.

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

Se um evento de manutenção do host estiver programado para uma VM, ela vai conter o 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"
        }
      }
    },
    ...
  ]
}

Para restringir ainda mais uma lista de VMs, 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 VM, faça o seguinte:

  1. Se ainda não tiver feito isso, conecte-se à sua VM do Linux ou do Windows.

  2. Consulte o servidor de metadados da seguinte maneira:

    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 VM, 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:

    { }
    

Iniciar manualmente a manutenção das VMs

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

Dependendo do estado de manutenção de uma VM, acontece o seguinte:

Estado de manutenção Descrição O que você vê
Programado O Compute Engine tem uma manutenção programada para a VM. É 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 VM.
  • 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 VMs simultaneamente ou de VMs individuais. Para várias VMs, use o console do Google Cloud ou, para VMs localizadas na mesma zona, a gcloud CLI. Para VMs 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 VMs 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 VMs na mesma zona, use o comando gcloud compute instances perform-maintenance:

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

Substitua:

  • VM_NAMES: uma lista de nomes de VMs separados por espaços. Por exemplo, vm-01 vm-02 vm-03.

  • ZONE: a zona em que as VMs estão.

REST

Para iniciar manualmente a manutenção de uma VM, 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/VM_NAME/performMaintenance

Substitua:

  • PROJECT_ID: o ID do projeto em que você criou a VM.

  • ZONE: a zona em que a VM está.

  • VM_NAME: o nome da VM.