Monitorar e planejar um evento de manutenção do host


A manutenção em todas as instâncias da máquina virtual (VM) é determinada pela política de manutenção do host selecionada ao criar as VMs. Algumas VMs oferecem a opção extra de visualizar a programação de manutenção da VM com antecedência.

Nesta página, explicamos como monitorar e planejar um evento de manutenção do host em VMs do Compute Engine. Para visualizar a programação de manutenção de uma VM, ela precisa executar um tipo de máquina de uma das seguintes famílias:

  • VMs C3 de uso geral
  • VMs C3D de uso geral
  • VMs Z3 com otimização de armazenamento
  • VMs M1, M2, M3 com otimização de memória

Antes de começar

  • Configure a autenticação, caso ainda não tenha feito isso. A autenticação é o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud. Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no Compute Engine da seguinte maneira.

    Selecione a guia para como planeja usar as amostras nesta página:

    Console

    Quando você usa o console do Google Cloud para acessar os serviços e as APIs do Google Cloud, não é necessário configurar a autenticação.

    gcloud

    1. Instale a Google Cloud CLI e inicialize-a executando o seguinte comando:

      gcloud init
    2. Defina uma região e uma zona padrão.

    REST

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

      Instale a Google Cloud CLI e inicialize-a executando o seguinte comando:

      gcloud init

Papéis obrigatórios

Para receber as permissões necessárias a fim de criar VMs e gerenciar a manutenção delas, peça ao administrador para conceder a você o papel do IAM de Administrador da instância do Compute (v1) (roles/compute.instanceAdmin.v1) no projeto. Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

Esse papel predefinido contém as permissões necessárias para criar VMs e gerenciar a manutenção delas. Para conferir 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 criar VMs e gerenciar a manutenção delas:

  • Para receber informações sobre uma VM: compute.instances.get
  • Para criar uma VM: compute.instances.create

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

Monitorar notificações de manutenção

O Google usa vários métodos para enviar notificações sobre manutenção futura da VM. Para encontrar as notificações, consulte suas VMs, o servidor de metadados ou o Cloud Logging. Quando a janela de manutenção programada abre, o Google Cloud realiza a manutenção automaticamente na sua VM. Ao monitorar as janelas de manutenção programada da VM, é possível preparar proativamente suas cargas de trabalho para lidar com a manutenção futura com o mínimo de interrupção.

As VMs com notificações de evento de manutenção têm as seguintes características:

  • Menos eventos de manutenção: em geral, as VMs com intervalos de manutenção recorrentes precisam ter menos eventos de manutenção.
  • Notificação de manutenção mais longa: receba notificações sobre eventos de manutenção planejados com bastante antecedência para fins de planejamento.
  • Monitoramento e planejamento: use o Cloud Logging para acompanhar sua programação de manutenção. Use incidentes e alertas para ficar por dentro.
  • Controle de manutenção sob demanda: inicie a manutenção durante o período de notificação para atualizar as VMs quando for adequado ao seu planejamento.

Verificar se há notificações de evento de manutenção nas VMs

Use o CLI do Google Cloud, o método REST ou o servidor de metadados para ver se há eventos de manutenção futura da VM.

gcloud

Para ver a janela de manutenção futura de uma VM, use o comando gcloud compute instances describe. É necessário incluir o --zone=[ZONE_NAME].

gcloud compute instances describe VM_NAME \
  --zone=ZONE

Substitua:

  • VM_NAME: o nome da VM.
  • ZONE: a zona onde a VM reside.

A resposta será assim:

  upcomingMaintenance:{
    "canReschedule":True
    "latestWindowStartTime": "2023-12-01T19:00:01Z"
    "maintenanceStatus":"PENDING"
    "type":"SCHEDULED"
    "windowEndTime": "2023-12-01T22:00:00Z"
    "windowStartTime": "2023-12-01T19:00:00Z"
  }

Nessa resposta, canReschedule é definido como True e maintenanceStatus é definido como PENDING. A manutenção está programada para a data e a hora exibidas. Essas configurações indicam que é possível acionar manualmente esse evento com antecedência.

REST

Para ver se há manutenção futura para uma VM, execute o comando instances.get:

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/VM_NAME

Substitua:

  • PROJECT_NAME: o nome do projeto.
  • ZONE: a zona onde a VM reside.
  • VM_NAME: o nome da VM.

A resposta será assim:

  upcomingMaintenance:{
    "canReschedule":True
    "latestWindowStartTime": "2023-12-01T19:00:01Z"
    "maintenanceStatus":"PENDING"
    "type":"SCHEDULED"
    "windowEndTime": "2023-12-01T22:00:00Z"
    "windowStartTime": "2023-12-01T19:00:00Z"
  }

Nessa resposta, canReschedule é definido como TRUE e maintenanceStatus é definido como PENDING. A manutenção está programada para a data e a hora exibidas.

Servidor de metadados

No SO convidado, consulte o servidor de metadados para ver o próximo evento de manutenção.

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

Verificar se há notificações de evento de manutenção no Cloud Logging

O Google envia uma notificação para o Cloud Logging antes da manutenção da VM. O Cloud Logging gera um evento do sistema na Análise de registros. A manutenção programada da VM aparece no Cloud Logging como: compute.instances.upcomingMaintenance.

Dependendo da configuração da VM, o Cloud Logging exibe o evento da seguinte maneira:

  • Para VMs configuradas para usar a migração em tempo real para manutenção, o evento é exibido com o nome do método: compute.instances.migrateOnHostMaintenance.
  • Para VMs configuradas para usar as opções "Encerrar" e "Reinicialização automática" para manutenção, o evento é exibido com o nome do método: compute.instances.terminateOnHostMaintenance.

Se a VM estiver configurada para usar a migração em tempo real, após a conclusão da manutenção, compute.instances.upcomingMaintenance será exibido, indicando que a notificação foi apagada.

Pode ser útil configurar alertas para receber notificações de manutenção. Para saber mais, leia Configurar alertas com base em registros e Criar e gerenciar canais de notificação.

Definições do status de manutenção

As definições de status a seguir explicam as respostas a uma consulta de manutenção da VM. Elas contêm informações relacionadas à manutenção da VM. A CLI do Google Cloud, a REST e o servidor de metadados usam essas mesmas respostas:

  • windowStartTime: o início da janela de tempo em que a manutenção ocorre
  • windowEndTime: o fim da janela de tempo em que a manutenção ocorre
  • latestWindowStartTime: o primeiro horário para o qual a janela pode ser movida
  • maintenanceType: o tipo de manutenção a ser realizada
    • NONE: nenhuma manutenção está programada para essa VM
    • SCHEDULED: haverá um aviso sobre a manutenção com sete dias de antecedência
    • UNSCHEDULED: a manutenção representa atualizações críticas com muito menos avisos
  • canReschedule: se a manutenção pode ser acionada durante o período de notificação dessa VM
    • TRUE: a manutenção acionada pelo cliente pode ser realizada durante o período de notificação
    • FALSE: não é possível realizar a manutenção acionada pelo cliente nessa VM. Isso geralmente ocorre durante o período em que a VM está em manutenção
  • maintenanceStatus: o status da operação de manutenção atual
    • ONGOING: a operação de manutenção está em andamento
    • PENDING: a operação de manutenção está programada, mas ainda não foi iniciada

Comportamentos do status de manutenção

Enquanto você gerencia a programação de manutenção, verifique o status de canReschedule= e maintenanceStatus=. Essas combinações de resposta descrevem o comportamento esperado dos recursos e mostram uma das combinações de status a seguir:

  • Se canReschedule=Yes e maintenanceStatus=Pending, é possível acionar a manutenção na VM.
  • Se canReschedule=No e maintenanceStatus=Ongoing, a manutenção já está em andamento.
  • Se canReschedule=No e maintenanceStatus=Pending, a VM não é compatível com a manutenção acionada manualmente.

A seguir