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.

    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

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

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

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.

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