Faça a gestão de eventos de anfitriões em várias reservas

Este documento explica como usar as funcionalidades de manutenção do anfitrião que estão disponíveis com os seus blocos de capacidade reservados. Explica como monitorizar, planear e realizar a manutenção agendada no seu cluster de instâncias H4D. Em alternativa, para gerir a manutenção nas instâncias de máquinas virtuais (VMs), consulte o artigo Monitorize e planeie um evento de manutenção do anfitrião.

Pode gerir proativamente os eventos de manutenção do anfitrião futuros nos seus blocos de capacidade reservados, quer as VMs estejam a ser executadas neles ou não. Esta abordagem ajuda a minimizar as interrupções e a manter um desempenho ideal.

Antes de começar

  • Se ainda não o tiver feito, configure a autenticação. A autenticação valida a sua identidade para aceder a Google Cloud serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-se no Compute Engine selecionando uma das seguintes opções:

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

    2. Set a default region and zone.

    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 todas as reservas, 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 reservas. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:

Autorizações necessárias

As seguintes autorizações são necessárias para gerir eventos de manutenção de anfitriões em várias reservas:

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

    • Para ver uma lista de reservas

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

    Vista geral

    Para otimizar a manutenção dos seus blocos de capacidade reservados, conclua os seguintes passos:

    1. Configure alertas de notificação. Crie alertas baseados em registos para receber notificações sobre eventos de manutenção agendados, iniciados ou concluídos para uma reserva ou um bloqueio de reserva. Esta abordagem ajuda a planear proativamente as suas atividades e evitar tempo de inatividade inesperado.

    2. Faça a gestão da manutenção em vários blocos de capacidade. Veja e, se necessário, inicie manualmente a manutenção nas suas reservas ou blocos de reservas. Este processo ajuda a aumentar a resiliência das suas cargas de trabalho a erros do anfitrião, a evitar o tempo de inatividade e a garantir que as suas aplicações permanecem disponíveis.

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

    Configure alertas de notificação para reservas

    Pode receber notificações sobre eventos de manutenção agendados, iniciados ou concluídos para uma reserva ou um bloco de reservas através da criação de políticas de alertas baseadas em registos.

    Para criar um alerta para os eventos de manutenção de uma reserva ou um bloqueio de reserva, 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. Repita este procedimento para cada consulta que quer criar.

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

        • Para receber alertas quando a manutenção estiver agendada:

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

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

        • Para receber alertas quando a manutenção estiver agendada:

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

          protoPayload.methodName="compute.reservations.block.startGroupMaintenance" severity>=DEFAULT
          protoPayload.status.message =~ "started"
          
        • Para receber alertas quando a manutenção estiver 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 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.

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

    Pode ver e controlar a manutenção das suas reservas e blocos de reservas da seguinte forma:

    Veja o estado de manutenção

    Pode ver o estado de manutenção futuro de uma reserva ou um bloco de reserva verificando o valor do campo upcomingGroupMaintenance nos metadados da reserva. Se uma reserva não tiver o campo upcomingGroupMaintenance, não é agendada nenhuma manutenção para a reserva ou o bloco de reservas. Para mais informações acerca dos campos em upcomingGroupMaintenance, consulte Definições do estado de manutenção.

    Além disso, se for agendada manutenção para um bloco de reserva, o campo upcomingGroupMaintenance contém o campo maintenanceReasons. Este campo descreve o motivo pelo qual a manutenção foi agendada para o seu bloco de reservas, 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 num bloco de reserva ou num sub-bloco, tem de usar a CLI gcloud ou a API REST. Caso contrário, selecione uma das seguintes opções:

    Consola

    1. Na Google Cloud consola, aceda à página Reservas.

      Aceder a Reservas

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

    3. Para ver o estado de manutenção de um bloqueio de reserva, conclua os seguintes passos:

      1. Na coluna Nome, clique no nome da reserva. É apresentada uma página com os detalhes da reserva.

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

    gcloud

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

      • RESERVATION_NAME: o nome da reserva.

      • ZONE: a zona onde a reserva existe.

      O resultado é semelhante a um dos seguintes:

      • Se a manutenção estiver agendada para a sua reserva, o resultado é semelhante ao seguinte:

        ---
        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 contém os campos windowStartTime e windowEndTime.

      • Se não estiver agendada manutenção para a sua reserva, o resultado é semelhante ao seguinte:

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

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

      Se a manutenção estiver agendada ou em curso para um bloco de reserva, o resultado é semelhante ao seguinte:

      ---
      ...
      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 ver o estado de manutenção das suas reservas, faça um pedido GET através de um dos seguintes métodos:

      No URL do pedido, inclua os seguintes parâmetros de consulta:

      • Para mostrar apenas o nome, o tipo de máquina reservado e o estado 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 especifiquem um tipo de máquina específico, inclua o parâmetro de consulta filter definido como specificReservation.instanceProperties.machineType:MACHINE_TYPE através de valores codificados por URL.

      Por exemplo, para ver as reservas em todas as zonas, faça um pedido GET da seguinte forma:

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

      • PROJECT_ID: o ID do projeto onde existem as reservas.

      • MACHINE_TYPE: o tipo de máquina reservado pelo qual quer filtrar as suas reservas.

      Se a manutenção estiver agendada ou em curso para uma reserva, o resultado é semelhante ao seguinte:

      {
        "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"
                }
              }
            }
          },
          ...
        ]
      }
      

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

    2. Se a manutenção estiver agendada para a sua reserva, para ver o estado de manutenção dos blocos na reserva, faça um GET pedido ao método reservationBlocks.list. No URL do pedido, 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 a manutenção estiver agendada ou em curso para um bloco de reserva, o resultado é semelhante ao seguinte:

      {
        "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 contém os campos windowStartTime e windowEndTime.

    Inicie manualmente a manutenção

    Pode iniciar manualmente a manutenção das suas reservas ou blocos de reservas em vez de aguardar pela hora agendada. Esta ação ajuda a controlar de forma mais proativa as interrupções nas suas cargas de trabalho.

    Consoante o estado de manutenção de uma reserva ou de um bloco de reservas, ocorre o seguinte:

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

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

    Consola

    1. Na Google Cloud consola, aceda à página Reservas.

      Aceder a Reservas

    2. Na coluna Nome, clique no nome de uma reserva. É apresentada uma página com os detalhes da reserva.

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

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

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

      • Para iniciar a manutenção apenas em blocos não usados e blocos com VMs paradas ou suspensas, selecione Capacidade não usada.

    4. Para confirmar, clique em OK.

    gcloud

    • Para iniciar a manutenção numa 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 num 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 o seguinte:

    • RESERVATION_NAME: o nome da reserva.

    • RESERVATION_MAINTENANCE_SCOPE: o âmbito da manutenção para a 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 usados e blocos com VMs paradas ou suspensas: unused

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

    • BLOCK_MAINTENANCE_SCOPE: o âmbito da manutenção para o bloqueio de reserva. Especifique um dos seguintes valores:

      • Para iniciar a manutenção em todos os anfitriões: all

      • Para iniciar a manutenção apenas em anfitriões com VMs em execução: running

      • Para iniciar a manutenção apenas em anfitriões não usados e anfitriões com VMs paradas ou suspensas: unused

    • ZONE: a zona onde a reserva existe.

    REST

    • Para iniciar a manutenção numa reserva, faça um pedido POST ao 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 num bloco de reservas, faça um pedido 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 o seguinte:

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

    • ZONE: a zona onde a reserva existe.

    • RESERVATION_NAME: o nome da reserva.

    • RESERVATION_MAINTENANCE_SCOPE: o âmbito da manutenção para a 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 usados e blocos com VMs paradas ou suspensas: UNUSED

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

    • SUB_BLOCK_NAME: o nome de um sub-bloco existente no bloco de reserva.

    • BLOCK_MAINTENANCE_SCOPE: o âmbito da manutenção para o bloqueio de reserva. Especifique um dos seguintes valores:

      • Para iniciar a manutenção em todos os anfitriões: ALL

      • Para iniciar a manutenção apenas em anfitriões com VMs em execução: RUNNING

      • Para iniciar a manutenção apenas em anfitriões não usados e anfitriões com VMs paradas ou suspensas: UNUSED

    Faça a gestão das notificações de manutenção de emergência de hardware

    Depois de uma VM encontrar um erro de anfitrião ou de comunicar que o anfitrião está com problemas, o anfitrião da VM requer manutenção de emergência não planeada. Por predefinição, o Compute Engine envia um aviso com algumas horas de antecedência quando agenda este tipo de manutenção. Para anfitriões com reserva, pode ativar as notificações de manutenção de emergência para aumentar este período de aviso para, pelo menos, sete dias. Esta abordagem ajuda a controlar de forma mais proativa as interrupções nas suas 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 para uma reserva, use o comando gcloud compute reservations update com o sinalizador --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 para 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 o seguinte:

    • RESERVATION_NAME: o nome da reserva.

    • ZONE: a zona onde a reserva existe.

    REST

    Para ativar ou desativar as notificações de manutenção de emergência de hardware para uma reserva, faça um pedido PATCH ao método reservations.update. No URL do pedido, 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 o seguinte:

    • PROJECT_ID: o ID do projeto onde a reserva existe.

    • ZONE: a zona onde 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

    O que se segue?