Gerenciar eventos de host em todas as reservas

Este documento explica como usar os recursos de manutenção do host disponíveis com seus blocos de capacidade reservados. Ele explica como monitorar, planejar e realizar a manutenção programada no cluster de instâncias H4D. Para gerenciar a manutenção nas instâncias de máquina virtual (VM), consulte Monitorar e planejar um evento de manutenção do host.

É possível gerenciar de forma proativa os próximos eventos de host de manutenção nos seus blocos de capacidade reservados, estejam ou não executando VMs. Essa abordagem ajuda a minimizar interrupções e manter a performance ideal.

Antes de começar

  • Configure a autenticação, caso ainda não tenha feito isso. Com isso, você confirma sua identidade para acesso a serviços e APIs do Google Cloud . Para executar código ou exemplos em um ambiente de desenvolvimento local, faça a autenticação no Compute Engine com um destes métodos:

    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. 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.

    2. Set a default region and zone.

    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 ter as permissões necessárias para gerenciar eventos de manutenção do host em todas as reservas, peça ao administrador para conceder a você 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 todas as reservas. Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As seguintes permissões são necessárias para gerenciar eventos de manutenção do host em todas as reservas:

  • Para iniciar a manutenção do host em uma reserva: compute.reservations.performMaintenance no projeto
  • Para iniciar a manutenção do host em um bloco de reserva: compute.reservationBlocks.performMaintenance no projeto

    • Para ver uma lista de reservas

    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 dos seus blocos de capacidade reservados, siga estas etapas:

    1. Configure alertas de notificação. Crie alertas com base em registros para receber notificações sobre eventos de manutenção programados, iniciados ou concluídos para uma reserva ou um bloco de reserva. Essa abordagem ajuda você a planejar suas atividades de forma proativa e evitar inatividade inesperada.

    2. Gerenciar a manutenção em blocos de capacidade. Veja e, se necessário, inicie manualmente a manutenção em todas as suas reservas ou blocos de reserva. Esse processo ajuda a aumentar a resiliência das cargas de trabalho a erros de host, evitar inatividade e garantir que seus aplicativos permaneçam disponíveis.

    Para mais informações sobre a frequência e o comportamento de manutenção dos tipos de máquina H4D, consulte Experiência de manutenção para instâncias H4D.

    Configurar alertas de notificação para reservas

    É possível receber notificações sobre eventos de manutenção programados, iniciados ou concluídos para uma reserva ou um bloco de reserva ao criar políticas de alertas com base em registros.

    Para criar um alerta para os eventos de manutenção de uma reserva ou um bloco de reserva, siga este procedimento. 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. Repita esse procedimento para cada consulta que você quiser criar.

      • Receber alertas de manutenção para uma reserva:

        • Para receber alertas quando uma manutenção for programada:

          protoPayload.methodName="compute.reservations.upcomingGroupMaintenance" severity>=DEFAULT
          protoPayload.status.message =~ "scheduled"
          
        • Para receber alertas quando a manutenção for concluída:

          protoPayload.methodName="compute.reservations.completedGroupMaintenance" severity>=DEFAULT
          protoPayload.status.message =~ "completed"
          
      • Receber alertas de manutenção para um bloco de reserva:

        • Para receber alertas quando uma manutenção for programada:

          protoPayload.methodName="compute.reservations.block.upcomingGroupMaintenance" severity>=DEFAULT
          protoPayload.status.message =~ "scheduled"
          
        • Para receber alertas quando a manutenção começar:

          protoPayload.methodName="compute.reservations.block.startGroupMaintenance" severity>=DEFAULT
          protoPayload.status.message =~ "started"
          
        • Para receber alertas quando a manutenção for concluída:

          protoPayload.methodName="compute.reservations.block.completedGroupMaintenance" 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.

    Gerenciar a manutenção em todas as reservas

    É possível conferir e controlar a manutenção das suas reservas e blocos de reserva da seguinte maneira:

    Ver o estado de manutenção

    Para conferir o estado da manutenção futura de uma reserva ou um bloco de reserva, verifique o valor do campo upcomingGroupMaintenance nos metadados da reserva. Se uma reserva não tiver o campo upcomingGroupMaintenance, significa que não há manutenção programada para ela ou para o bloco de reserva. Para mais informações sobre os campos em upcomingGroupMaintenance, consulte Definições de status de manutenção.

    Além disso, se a manutenção for programada para um bloco de reserva, o campo upcomingGroupMaintenance vai conter o campo maintenanceReasons. Este campo descreve por que a manutenção foi programada para seu bloco de reserva, 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 ver o campo maintenanceReasons em um bloco ou sub-bloco de reserva, use a CLI gcloud ou a API REST. Caso contrário, selecione uma destas opções:

    Console

    1. No console do Google Cloud , acesse a página Reservas.

      Acessar "Reservas"

    2. Na coluna Status da manutenção, o Compute Engine mostra o estado de manutenção das suas reservas. Se essa coluna não aparecer na tabela Reservas sob demanda, clique em Opções de exibição de colunas, marque a caixa de seleção Status da manutenção e clique em OK.

    3. Para conferir o estado de manutenção de um bloco de reserva, siga estas etapas:

      1. Na coluna Nome, clique no nome da reserva. Uma página com os detalhes da reserva será aberta.

      2. Na tabela Blocos, na coluna Manutenção, o Compute Engine mostra o estado de manutenção dos blocos na reserva.

    gcloud

    1. Para conferir o estado de manutenção de uma reserva, use o comando gcloud compute reservations describe com a flag --flatten definida como resourceStatus.reservationMaintenance:

      gcloud compute reservations describe RESERVATION_NAME \
          --flatten=resourceStatus.reservationMaintenance \
          --zone=ZONE
      

      Substitua:

      • RESERVATION_NAME: o nome da reserva.

      • ZONE: a zona em que a reserva existe.

      A saída será semelhante a uma destas:

      • Se a manutenção estiver programada para sua reserva, a saída será semelhante a esta:

        ---
        maintenanceOngoingCount: 0
        maintenancePendingCount: 6
        schedulingType: GROUPED
        upcomingGroupMaintenance:
          canReschedule: true
          maintenanceStatus: PENDING
          type: UNSCHEDULED
          windowEndTime: '2025-11-13T14:00:00.000-08:00'
          windowStartTime: '2025-11-13T12:00:00.000-08:00'
        

        Se o campo schedulingType estiver definido como INDEPENDENT, o campo upcomingGroupMaintenance não vai conter os campos windowStartTime e windowEndTime.

      • Se não houver manutenção programada para sua reserva, a saída será semelhante a esta:

        ---
        schedulingType: GROUPED
        
    2. Se a manutenção estiver programada para sua reserva, use o comando gcloud compute reservations blocks list para conferir o estado de manutenção dos blocos na reserva:

      gcloud compute reservations blocks list RESERVATION_NAME \
          --zone=ZONE
      

      Se houver manutenção programada ou em andamento para um bloco de reserva, a saída será semelhante a esta:

      ---
      ...
      name: example-fr-h4d-dense-1-block-0001
      ...
      reservationBlockMaintenance:
        maintenanceOngoingCount: 0
        maintenancePendingCount: 6
        schedulingType: GROUPED
        upcomingGroupMaintenance:
          canReschedule: true
          maintenanceReasons:
          - PLANNED_UPDATE
          - PLANNED_NETWORK_UPDATE
          maintenanceStatus: PENDING
          type: UNSCHEDULED
          windowEndTime: '2025-11-13T14:00:00.000-08:00'
          windowStartTime: '2025-11-13T12:00:00.000-08:00'
      ...
      ---
      ...
      name: example-fr-h4d-dense-1-block-0002
      ...
      schedulingType: GROUPED
      ...
      

    REST

    1. Para conferir o estado de manutenção das suas reservas, faça uma solicitação GET para um dos seguintes métodos:

      No URL da solicitação, inclua os seguintes parâmetros de consulta:

      • Para mostrar apenas o nome, o tipo de máquina reservado e o status de manutenção de uma reserva, inclua o parâmetro de consulta fields definido como items.name,items.specificReservation.instanceProperties.machineType,items.resourceStatus.reservationMaintenance.

      • Para filtrar apenas por reservas que especificam um tipo de máquina específico, inclua o parâmetro de consulta filter definido como specificReservation.instanceProperties.machineType:MACHINE_TYPE usando valores codificados por URL.

      Por exemplo, para ver as reservas em todas as zonas, faça uma solicitação GET da seguinte maneira:

      GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/reservations?fields=items.name,items.specificReservation.instanceProperties.machineType,items.resourceStatus.reservationMaintenance&filter=specificReservation.instanceProperties.machineType%3AMACHINE_TYPE
      

      Substitua:

      • PROJECT_ID: o ID do projeto em que as reservas estão.

      • MACHINE_TYPE: o tipo de máquina reservada que você quer usar para filtrar suas reservas.

      Se houver uma manutenção programada ou em andamento para uma reserva, a saída será semelhante a esta:

      {
        "items": [
          {
            "specificReservation": {
              "instanceProperties": {
                "machineType": "MACHINE_TYPE"
              }
            },
            "name": "example-reservation",
            "resourceStatus": {
              "reservationMaintenance": {
                maintenanceOngoingCount: 0,
                maintenancePendingCount: 6,
                "schedulingType": "GROUPED",
                "upcomingGroupMaintenance": {
                  "type": "SCHEDULED",
                  "canReschedule": true,
                  "windowStartTime": "2025-11-13T12:00:00.000-08:00",
                  "windowEndTime": "2025-11-13T14:00:00.000-08:00",
                  "maintenanceStatus": "PENDING"
                }
              }
            }
          },
          ...
        ]
      }
      

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

    2. Se a manutenção estiver programada para sua reserva, faça uma solicitação GET ao método reservationBlocks.list para conferir o estado de manutenção dos blocos na reserva. No URL da solicitação, inclua o parâmetro de consulta fields definido como items.name,items.reservationMaintenance:

      GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME/reservationBlocks?fields=items.name,items.reservationMaintenance
      

      Substitua RESERVATION_NAME pelo nome da reserva.

      Se houver manutenção programada ou em andamento para um bloco de reserva, a saída será semelhante a esta:

      {
        "items": [
          {
            "name": "example-fr-h4d-dense-1-block-0001",
            "reservationBlockMaintenance": {
              "maintenanceOngoingCount": 0,
              "maintenancePendingCount": 6,
              "schedulingType": "GROUPED",
              "upcomingGroupMaintenance": {
                "type": "SCHEDULED",
                "canReschedule": true,
                "windowStartTime": "2025-11-13T12:00:00.000-08:00",
                "windowEndTime": "2025-11-13T14:00:00.000-08:00",
                "maintenanceStatus": "PENDING",
                "maintenanceReasons": [
                  "PLANNED_UPDATE",
                  "PLANNED_NETWORK_UPDATE"
                ]
              }
            }
          },
          ...
        ]
      }
      

      Se o campo schedulingType estiver definido como INDEPENDENT para um bloco, o campo upcomingGroupMaintenance não vai conter os campos windowStartTime e windowEndTime.

    Iniciar a manutenção manualmente

    É possível iniciar manualmente a manutenção das suas reservas ou blocos de reserva em vez de esperar o horário programado. Essa ação ajuda você a controlar de maneira mais proativa as interrupções nas suas cargas de trabalho.

    Dependendo do estado de manutenção de uma reserva ou de um bloco de reserva, o seguinte acontece:

    Estado de manutenção Descrição O que você vê
    Programado O Compute Engine tem uma manutenção programada para a reserva. É 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 .
    • Na CLI gcloud ou na API REST, o campo maintenanceStatus não existe.

    Para iniciar manualmente a manutenção em hosts específicos em um bloco de reserva, use a CLI gcloud ou a API REST. Caso contrário, selecione uma destas opções:

    Console

    1. No console do Google Cloud , acesse a página Reservas.

      Acessar "Reservas"

    2. Na coluna Nome, clique no nome de uma reserva. Uma página com os detalhes da reserva vai aparecer.

    3. Clique em Executar manutenção e selecione uma das seguintes opções:

      • Para iniciar a manutenção em todos os blocos, selecione Toda a capacidade.

      • Para iniciar a manutenção apenas em blocos com VMs em execução, selecione Capacidade em uso.

      • Para iniciar a manutenção apenas em blocos não utilizados e blocos com VMs interrompidas ou suspensas, selecione Capacidade não utilizada.

    4. Para confirmar, clique em Ok.

    gcloud

    • Para iniciar a manutenção em uma reserva, use o comando gcloud compute reservations perform-maintenance:

      gcloud compute reservations perform-maintenance RESERVATION_NAME \
          --scope=RESERVATION_MAINTENANCE_SCOPE \
          --zone=ZONE
      
    • Para iniciar a manutenção em um bloco de reserva, use o comando gcloud compute reservations blocks perform-maintenance:

      gcloud compute reservations blocks perform-maintenance RESERVATION_NAME \
          --block-name=BLOCK_NAME \
          --scope=BLOCK_MAINTENANCE_SCOPE \
          --zone=ZONE
      

      Substitua:

    • RESERVATION_NAME: o nome da reserva.

    • RESERVATION_MAINTENANCE_SCOPE: o escopo de manutenção da reserva. Especifique um dos seguintes valores:

      • Para iniciar a manutenção em todos os blocos: all

      • Para iniciar a manutenção apenas em blocos com VMs em execução: running

      • Para iniciar a manutenção apenas em blocos não utilizados e blocos com VMs interrompidas ou suspensas: unused

    • BLOCK_NAME: o nome de um bloco que existe na reserva.

    • BLOCK_MAINTENANCE_SCOPE: o escopo da manutenção para o bloco de reserva. Especifique um dos seguintes valores:

      • Para iniciar a manutenção em todos os hosts: all

      • Para iniciar a manutenção apenas em hosts com VMs em execução: running

      • Para iniciar a manutenção apenas em hosts não utilizados e hosts com VMs paradas ou suspensas: unused

    • ZONE: a zona em que a reserva existe.

    REST

    • Para iniciar a manutenção de uma reserva, faça uma solicitação POST para o método reservations.performMaintenance:

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME/performMaintenance
      
      {
        "maintenanceScope": "RESERVATION_MAINTENANCE_SCOPE"
      }
      
    • Para iniciar a manutenção em um bloco de reserva, faça uma solicitação POST para o método reservationBlocks.performMaintenance:

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME/reservationBlocks/BLOCK_NAME/performMaintenance
      
      {
        "maintenanceScope": "BLOCK_MAINTENANCE_SCOPE"
      }
      

    Substitua:

    • PROJECT_ID: o ID do projeto em que o Compute Engine criou automaticamente a reserva.

    • ZONE: a zona em que a reserva existe.

    • RESERVATION_NAME: o nome da reserva.

    • RESERVATION_MAINTENANCE_SCOPE: o escopo de manutenção da reserva. Especifique um dos seguintes valores:

      • Para iniciar a manutenção em todos os blocos: ALL

      • Para iniciar a manutenção apenas em blocos com VMs em execução: RUNNING

      • Para iniciar a manutenção apenas em blocos não utilizados e blocos com VMs interrompidas ou suspensas: UNUSED

    • BLOCK_NAME: o nome de um bloco que existe na reserva.

    • SUB_BLOCK_NAME: o nome de um subbloco que existe no bloco de reserva.

    • BLOCK_MAINTENANCE_SCOPE: o escopo da manutenção para o bloco de reserva. Especifique um dos seguintes valores:

      • Para iniciar a manutenção em todos os hosts: ALL

      • Para iniciar a manutenção apenas em hosts com VMs em execução: RUNNING

      • Para iniciar a manutenção apenas em hosts não utilizados e hosts com VMs paradas ou suspensas: UNUSED

    Gerenciar notificações de manutenção de emergência de hardware

    Depois que uma VM encontra um erro de host ou você informa que o host dela está com falha, o host da VM exige manutenção emergencial e não planejada. Por padrão, o Compute Engine fornece algumas horas de aviso prévio ao programar esse tipo de manutenção. Para hosts reservados, é possível ativar as notificações de manutenção de emergência para aumentar esse período de aviso para pelo menos sete dias. Essa abordagem ajuda a controlar de maneira mais proativa as interrupções nas cargas de trabalho.

    Para ativar ou desativar as notificações de manutenção de emergência de hardware para uma reserva, selecione uma das seguintes opções:

    gcloud

    • Para ativar as notificações de manutenção de emergência de hardware em uma reserva, use o comando gcloud compute reservations update com a flag --enable-emergent-maintenance:

      gcloud compute reservations update RESERVATION_NAME \
          --enable-emergent-maintenance \
          --zone=ZONE
      
    • Para desativar as notificações de manutenção de emergência de hardware em uma reserva, use o comando gcloud compute reservations update com a flag --no-enable-emergent-maintenance:

      gcloud compute reservations update RESERVATION_NAME \
          --no-enable-emergent-maintenance \
          --zone=ZONE
      

    Substitua:

    • RESERVATION_NAME: o nome da reserva.

    • ZONE: a zona em que a reserva existe.

    REST

    Para ativar ou desativar as notificações de manutenção de emergência de hardware em uma reserva, faça uma solicitação PATCH para o método reservations.update. No URL da solicitação, inclua o parâmetro de consulta paths definido como enableEmergentMaintenance.

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME?paths=enableEmergentMaintenance
    
    {
      "name": "RESERVATION_NAME",
      "enableEmergentMaintenance": EMERGENCY_MAINTENANCE_NOTIFICATIONS
    }
    

    Substitua:

    • PROJECT_ID: o ID do projeto em que a reserva está.

    • ZONE: a zona em que a reserva existe.

    • RESERVATION_NAME: o nome da reserva.

    • EMERGENCY_MAINTENANCE_NOTIFICATIONS: especifique um dos seguintes valores:

      • Para ativar as notificações: true

      • Para desativar as notificações: false

    A seguir