Acionar um evento de manutenção do host


Nesta página, explicamos como acionar um evento de manutenção do host em instâncias específicas da família de VMs. Esse recurso permite iniciar manualmente um evento de manutenção para controlar o tempo da manutenção da sua VM. Isso é útil para cargas de trabalho que podem ser afetadas por uma janela de manutenção específica.

É possível acionar manualmente um evento de manutenção para começar imediatamente. Não é possível acionar um evento em uma data ou hora específica. Se você não usar esse recurso, o evento de manutenção ocorrerá conforme programado.

Limitações

O acionamento de um evento de manutenção do host da VM é limitado aos tipos de máquina de VM a seguir:

Antes de começar

  • A inicialização manual da manutenção da VM só está disponível nas VMs C3, C3D e Z3. Se você estiver usando VMs de outras famílias de máquinas, leia o documento Definir política de manutenção do host.
  • 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:

    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.

Acionar evento de manutenção do host

O Google envia notificações sobre a próxima manutenção da VM usando vários métodos. É possível encontrar as notificações consultando suas VMs, o servidor de metadados ou o Cloud Logging.

Depois de receber uma notificação sobre um evento de manutenção do host, você tem a opção de acionar a manutenção imediatamente ou aguardar que ela ocorra conforme programado.

Iniciar o evento de manutenção

É possível iniciar a manutenção da VM imediatamente em vez de aguardar o horário programado. Use a CLI do Google Cloud ou o método REST para acionar a manutenção da VM imediatamente.

Se não houver notificação e você tentar acionar um evento de manutenção, a seguinte mensagem será exibida:

There is no reschedulable upcoming maintenance.

Isso indica que nenhum evento de manutenção foi programado e que nenhuma ação precisa ser realizada.

gcloud

Para iniciar a manutenção imediatamente, use o comando gcloud compute instances perform-maintenance. É necessário incluir o --zone=[ZONE_NAME].

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

Substitua:

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

A resposta será assim:

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

Na resposta, maintenanceStatus é definido como ONGOING. A manutenção está em andamento.

REST

Para acionar a manutenção da VM, execute o comando instances.performMaintenance:

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

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":false
  "latestWindowStartTime": "2023-12-01T19:00:01Z"
  "maintenanceStatus":"ONGOING"
  "type":"SCHEDULED"
  "windowEndTime": "2023-12-01T22:00:00Z"
  "windowStartTime": "2023-12-01T19:00:00Z"
}

Na resposta, maintenanceStatus é definido como ONGOING. A manutenção está em andamento.

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