Faça a gestão de eventos de anfitrião em VMs H4D

Este documento explica como usar as funcionalidades de manutenção do anfitrião disponíveis com as VMs H4D. Explica como monitorizar, planear e realizar a manutenção agendada em instâncias de máquinas virtuais (VMs). Para gerir a manutenção nos seus blocos de capacidade reservados, independentemente de as VMs estarem ou não em execução nos mesmos, consulte o artigo Faça a gestão de eventos de anfitriões em várias reservas.

Quando gere proativamente os eventos de anfitrião de manutenção futuros nas suas VMs, pode minimizar as interrupções e manter um 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 os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.

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

    gcloud init

    Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

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

Funções necessárias

Para receber as autorizações de que precisa para gerir eventos de manutenção do anfitrião em VMs, peça ao seu administrador que lhe conceda as seguintes funções do IAM:

Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Estas funções predefinidas contêm as autorizações necessárias para gerir eventos de manutenção do anfitrião em todas as VMs. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:

Autorizações necessárias

São necessárias as seguintes autorizações para gerir eventos de manutenção do anfitrião em várias VMs:

  • Para ver os detalhes de uma VM: compute.instances.get no projeto

Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.

Vista geral

Para otimizar a manutenção das suas VMs, conclua os seguintes passos:

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

  2. Configure alertas de notificações. Crie alertas baseados em registos para receber notificações quando a manutenção das suas VMs estiver agendada, tiver sido iniciada ou concluída. Esta abordagem ajuda a planear proativamente as suas atividades e a evitar indisponibilidade inesperada.

  3. Faça a gestão da manutenção em várias VMs. Veja se está agendada manutenção para as suas VMs. Se necessário, pode iniciar manualmente a manutenção nas suas VMs. Este processo ajuda a aumentar a resiliência das suas cargas de trabalho para alojar eventos, evitar indisponibilidade e maximizar a disponibilidade das suas aplicações.

Compreenda a manutenção do anfitrião

Durante o ciclo de vida de uma instância do Compute Engine, a máquina anfitriã na qual a instância é executada passa por vários eventos do anfitrião. Um evento de anfitrião pode incluir a manutenção regular da infraestrutura do Compute Engine ou, em casos raros, um erro de anfitrião. O Compute Engine também aplica algumas atualizações simples não disruptivas para o hipervisor e a rede em segundo plano.

A série de máquinas H4D oferece as seguintes funcionalidades relacionadas com a manutenção do anfitrião:

Tipo de máquina Frequência típica de eventos de manutenção agendados Comportamento de manutenção Notificação avançada Manutenção a pedido Simule a manutenção
h4d-standard-192 Mínimo de 30 dias Terminar 7 dias Sim Não
h4d-highmem-192 Mínimo de 30 dias Terminar 7 dias Sim Não
h4d-highmem-192-lssd Mínimo de 30 dias Termina com a persistência de dados do SSD local 7 dias Sim Não

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

Configure alertas de notificação para VMs

Pode receber notificações sobre eventos de manutenção agendados, iniciados ou concluídos para as suas VMs criando políticas de alertas baseadas em registos.

Para criar um alerta para os eventos de manutenção das suas VMs, conclua o seguinte procedimento. Repita este procedimento para cada alerta que quer criar.

  1. Na Google Cloud consola, aceda à página Explorador de registos:

    Aceda ao Explorador de registos

    Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cuja legenda é Registo.

  2. Clique no botão Mostrar consulta para o ativar.

  3. No painel Consulta, crie uma das seguintes consultas. Estas consultas filtram as entradas do registo para identificar eventos de manutenção específicos. Se quiser usar várias consultas, repita este procedimento para criar um alerta único para cada consulta.

    • Para receber alertas quando for agendada manutenção para uma VM:

      protoPayload.methodName="compute.instances.upcomingMaintenance" severity>=DEFAULT
      protoPayload.status.message =~ "scheduled"
      
    • Para receber alertas quando o período de manutenção de uma VM estiver aberto:

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

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

  5. Na barra de ferramentas de resultados da consulta, clique na lista Ações e, de seguida, selecione Criar alerta de registo. É apresentado o painel Criar política de alertas baseada em registos.

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

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

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

    3. Clicar em Seguinte.

  7. Na secção Escolha os registos a incluir no alerta, clique em Seguinte.

  8. Na secção Defina a frequência das notificações e a duração do fecho automático, especifique o seguinte:

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

    2. Na lista Duração do encerramento automático de incidentes, selecione o período após o qual o Cloud Logging deixa de enviar notificações e encerra automaticamente o incidente.

    3. Clicar em Seguinte.

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

  10. Clique em Guardar.

Para ver exemplos de notificações de eventos de manutenção no Explorador de registos, consulte os Exemplos de notificações de manutenção na documentação do Compute Engine.

Faça a gestão da manutenção em várias VMs

Pode ver e controlar a manutenção das suas VMs através de uma ou mais das seguintes ações:

Veja o estado de manutenção das VMs

Pode ver o estado e a hora agendada da manutenção pendente das suas VMs verificando o valor do campo upcomingMaintenance nos metadados da instância. Se uma VM não contiver o campo upcomingMaintenance, não é agendado nenhum evento de manutenção do anfitrião para a VM. Para mais informações sobre os campos em upcomingMaintenance, consulte Definições do estado de manutenção na documentação do Compute Engine.

Além disso, se a manutenção estiver agendada para uma VM, o campo upcomingGroupMaintenance contém o campo maintenanceReasons. Este campo descreve o motivo pelo qual a manutenção foi agendada para a sua VM, conforme descrito na tabela seguinte:

Tipo de manutenção Motivo da manutenção Estado das VMs
Manutenção planeada para manutenção regular
  • PLANNED_UPDATE: manutenção de infraestrutura planeada
  • PLANNED_NETWORK_UPDATE: manutenção de rede planeada
Aplica-se a VMs em execução, paradas ou suspensas.
Manutenção de emergência não planeada
  • FAILURE_DISK: manutenção não planeada agendada devido a um erro com um disco associado a uma VM.
  • FAILURE_INFRA: manutenção não planeada agendada devido a um erro com a infraestrutura.
  • FAILURE_INTERFACE: não planeada manutenção agendada devido a um erro com a NIC.
  • FAILURE_MEMORY: manutenção não planeada agendada devido a um erro com a memória de uma VM.
  • FAILURE_NETWORK: manutenção não planeada agendada devido a um erro na rede.
Aplica-se apenas a VMs em execução.

Para ver o campo maintenanceReasons numa VM, tem de usar a CLI gcloud ou a API REST. Para ver o estado de manutenção de várias VMs em simultâneo, tem de usar a consola ou a API REST. Google Cloud Caso contrário, selecione uma das seguintes opções:

Consola

  1. Na Google Cloud consola, aceda à página Instâncias de VM.

    Aceda às instâncias de VM

  2. Na coluna Estado de manutenção, o Compute Engine apresenta o estado de manutenção das suas VMs. Se não vir esta coluna na tabela Instâncias de VM, clique em view_column Opções de apresentação de colunas, selecione a caixa de verificação Estado de manutenção e, de seguida, clique em OK.

gcloud

Para ver 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 o seguinte:

  • VM_NAME: o nome da VM.

  • ZONE: a zona onde a VM existe.

O resultado é semelhante a um dos seguintes:

  • Se estiver agendado um evento de manutenção do anfitrião para a sua VM, o resultado é semelhante ao seguinte:

    ---
    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 não estiver agendado um evento de manutenção do anfitrião para a sua VM, o resultado é semelhante ao seguinte:

    ---
    null
    

REST

Para ver o estado de manutenção das suas VMs, faça um dos seguintes GET pedidos. Quando faz um pedido, tem de incluir o parâmetro de consulta fields para mostrar apenas o nome, o tipo de máquina e a manutenção futura de uma VM. Também tem de incluir o parâmetro de consulta filter para filtrar apenas as VMs por um tipo de máquina específico.

  • Para ver as 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 VMs numa 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 o seguinte:

  • PROJECT_ID: o ID do projeto onde criou VMs.

  • ZONE: a zona onde as VMs existem.

  • MACHINE_TYPE: o tipo de máquina pelo qual quer filtrar as VMs.

Se um evento de manutenção do anfitrião estiver agendado para uma VM, a VM contém 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"
        }
      }
    },
    ...
  ]
}

Opcionalmente, para restringir ainda mais uma lista de VMs, defina o parâmetro de consulta filter para uma expressão de filtro diferente.

Servidor de metadados

Para ver o estado de manutenção de uma VM, faça o seguinte:

  1. Se ainda não o fez, estabeleça ligação à sua Linux ou do Windows.

  2. Consulte o servidor de metadados da seguinte forma:

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

    Se estiver agendado um evento de manutenção do anfitrião para a sua VM, o resultado é semelhante ao seguinte:

    "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 estiver agendado um evento de manutenção do anfitrião, o resultado é semelhante ao seguinte:

    { }
    

Inicie manualmente a manutenção em VMs

Pode iniciar manualmente a manutenção das suas VMs em vez de aguardar pela hora agendada.

Consoante o estado de manutenção de uma VM, ocorre o seguinte:

Estado de manutenção Descrição O que vê
Agendado O Compute Engine tem manutenção agendada para a VM. Pode iniciar manualmente a manutenção antes da hora agendada.
  • Na Google Cloud consola, o estado de manutenção é apresentado como Pronto para execução – vai ser executado a DATE.
  • Na CLI gcloud ou na API REST, o Compute Engine define o campo maintenanceStatus como PENDING.
Em curso A manutenção está em curso. Não pode reagendá-lo.
  • Na Google Cloud consola, o estado de manutenção é apresentado 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 está concluída. O Compute Engine removeu todas as notificações de manutenção da VM.
  • Na Google Cloud consola, o estado de manutenção é apresentado como Atualizado.
  • Na CLI gcloud ou na API REST, o Compute Engine define o campo maintenanceStatus como COMPLETE.

Pode iniciar manualmente a manutenção de várias VMs em simultâneo ou de VMs individuais. Para várias VMs, use a Google Cloud consola ou, para VMs localizadas na mesma zona, a CLI gcloud. Para VMs individuais, selecione qualquer uma das seguintes opções:

Consola

  1. Na Google Cloud consola, aceda à página Instâncias de VM.

    Aceda às instâncias de VM

  2. Selecione as linhas das VMs onde 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 o seguinte:

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

  • ZONE: a zona onde as VMs existem.

REST

Para iniciar manualmente a manutenção de uma VM, faça um pedido POST ao método instances.performMaintenance:

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

Substitua o seguinte:

  • PROJECT_ID: o ID do projeto onde criou a VM.

  • ZONE: a zona onde a VM existe.

  • VM_NAME: o nome da VM.