Definir a política de manutenção do host para uma instância


Este documento descreve como definir a política de manutenção do host para uma máquina virtual (VM) ou uma instância bare metal para controlar como a instância se comporta quando um evento de host ocorre.

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

Limitações

  • Não é possível mudar o comportamento de manutenção de uma VM preemptiva. Quando há um evento de manutenção, a VM preemptiva é interrompida e não migra. Você precisa reiniciar manualmente a VM preemptiva.
  • Depois de criar uma VM usando um tipo de máquina E2, não é possível mudar o comportamento de manutenção da VM de MIGRATE para TERMINATE ou vice-versa.
  • Não é possível mudar o comportamento de manutenção de instâncias bare metal como c3-standard-192-metal ou x4-megamem-1920-metal, que são definidas como TERMINATE e reiniciadas automaticamente.

Propriedades de manutenção do host disponíveis

É possível configurar o comportamento de manutenção, o comportamento de reinicialização e o comportamento de espera por erros do host de uma instância de computação. O Compute Engine configura cada instância com os valores padrão, a menos que você especifique o contrário.

Durante eventos do host, dependendo da política de manutenção do host configurada, as instâncias que não são compatíveis com a migração em tempo real são encerradas e reiniciadas automaticamente.

  • onHostMaintenance: determina o comportamento quando ocorre um evento de manutenção que possa causar a reinicialização da instância.

    • MIGRATE: faz com que o Compute Engine migre uma instância em tempo real quando há um evento de manutenção. Essa é a configuração padrão para a maioria das VMs.
    • TERMINATE: interrompe a instância em vez de usar a migração ao vivo. Essa é a opção padrão para Z3, instâncias bare metal e instâncias com aceleradores, como GPUs e TPUs. Para esses tipos de instância, não é possível mudar a configuração de onHostMaintenance.
  • automaticRestart: determina o comportamento quando uma instância falha ou é interrompida pelo sistema.

    • true (padrão): o Compute Engine reinicia uma instância quando ela falha ou é interrompida.
    • false: o Compute Engine não reinicializa a instância se ela falhar ou for interrompida.
  • localSsdRecoveryTimeout: define o tempo limite de recuperação do SSD local. Esse é o período máximo, em horas, que o Compute Engine aguarda para recuperar dados do SSD local após um erro do host. Essa configuração só se aplica a VMs com discos SSD locais anexados. Se você configurar essa configuração para uma instância que não tenha discos SSD locais anexados, ela será ignorada.

    • Não definido (padrão): o Compute Engine aguarda até 1 hora para recuperar os dados do SSD local. Para VMs Z3, o tempo de espera padrão é de seis horas.
    • Um número inteiro de 0 a 168: especifica o número de horas que o Compute Engine aguarda para recuperar os dados do SSD local. O valor máximo é equivalente a 7 dias. Um valor de 0 significa que o Compute Engine não aguarda para recuperar os dados do SSD local e reinicia a instância imediatamente.
  • hostErrorTimeoutSeconds (Visualização): define o tempo máximo, em segundos, que o Compute Engine aguarda para reiniciar ou encerrar uma instância de computação depois de detectar que ela não está respondendo.

    • Não definido (padrão): o Compute Engine aguarda até 5,5 minutos (330 segundos) antes de reiniciar uma instância que não responde.
    • Um número inteiro de 90 a 330: o número de segundos, especificado em incrementos de 30, que o Compute Engine aguarda antes de reiniciar uma instância de computação que não responde.

Definir a política de manutenção do host de uma instância

É possível mudar a política de manutenção do host de uma instância ao criá-la ou depois de criá-la.

Definir a política de manutenção do host durante a criação da instância

As informações nesta seção se concentram em como definir a política de manutenção do host ao criar uma instância. Para mais exemplos de criação de instâncias, consulte Criar e iniciar uma instância do Compute Engine.

É possível definir a política de manutenção do host de uma instância de computação durante a criação usando o console do Google Cloud, CLI gcloud ou o REST.

Console

  1. No console do Google Cloud, acesse a página Criar uma instância.

    Acesse "Criar uma instância"

  2. Especifique um Nome para a instância.

  3. Selecione uma Região e uma Zona para a instância.

  4. Na seção Configuração da máquina, faça o seguinte:

    1. Especifique os detalhes do tipo de máquina da instância.
    2. Expanda o menu Configurações avançadas do modelo de provisionamento de VM.
    3. No menu Na manutenção do host, selecione uma das seguintes etapas:
      1. Para migrar VMs durante eventos de manutenção, selecione Migrar instância da VM.
      2. Para interromper as instâncias durante eventos de manutenção, selecione Encerrar instância da VM.
  5. Para criar a instância, clique em Criar.

gcloud

Para definir a política de manutenção do host de uma nova instância, use o comando gcloud compute instances create.

Para definir a propriedade --host-error-timeout-seconds (Visualização), use o comando gcloud beta compute instances create.

É possível definir a política de manutenção do host de uma nova instância com o comando a seguir. Se você omitir qualquer uma das flags, o valor padrão dela será usado.

  gcloud compute instances create INSTANCE_NAME \
      --zone=ZONE \
      --maintenance-policy=MAINTENANCE_BEHAVIOR \
      --RESTART_ON_FAILURE_BEHAVIOR \
      --local-ssd-recovery-timeout=SSD_RECOVERY_TIMEOUT \
      --host-error-timeout-seconds=ERROR_DETECTION_TIMEOUT

Substitua:

  • INSTANCE_NAME: o nome da instância.
  • ZONE: a zona em que a instância está localizada,
  • MAINTENANCE_BEHAVIOR: o comportamento do evento de manutenção de uma instância, TERMINATE ou MIGRATE. Para a maioria dos tipos de máquina, a VM é migrada por padrão se você omitir essa propriedade. As instâncias Z3 e bare metal são encerradas.
  • RESTART_ON_FAILURE_BEHAVIOR: comportamento de reinicialização para instâncias encerradas ou não responsivas, definido como restart-on-failure (padrão) ou no-restart-on-failure.
  • SSD_RECOVERY_TIMEOUT: o número de horas usadas na recuperação de discos SSD locais anexados a uma instância encerrada ou que não responde. Os valores válidos são de 0 a 168, em incrementos de 1 hora.
  • ERROR_DETECTION_TIMEOUT: o número de segundos que o Compute Engine aguarda antes de reiniciar uma instância que não responde, de 90 a 330 segundos (5,5 minutos), em incrementos de 30 segundos.

REST

Para definir a política de manutenção do host de uma nova instância usando o REST, use o método instances.insert.

É possível definir a política de manutenção do host de uma nova instância com o comando a seguir. Se você omitir qualquer um dos campos, o valor padrão dele será usado.

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

      {
        "name": "INSTANCE_NAME",

        "scheduling": {
          "onHostMaintenance": "MAINTENANCE_BEHAVIOR",
          "automaticRestart": "RESTART_POLICY,
          "localSsdRecoveryTimeout": SSD_RECOVERY_TIMEOUT
        }
      }

Substitua:

  • PROJECT_ID: o projeto da instância.
  • ZONE: a zona em que você quer criar a instância.
  • INSTANCE_NAME: o nome da instância.
  • MAINTENANCE_BEHAVIOR: o comportamento do evento de manutenção de uma instância, TERMINATE ou MIGRATE. Para a maioria dos tipos de máquina, a VM é migrada por padrão se você omitir esse campo. As instâncias Z3 e bare metal são encerradas.
  • RESTART_POLICY: se a instância será reiniciada automaticamente após um evento de manutenção ou um erro do host, true (padrão) ou false.
  • SSD_RECOVERY_TIMEOUT: o número de horas que o Compute Engine leva para recuperar discos SSD locais anexados a uma instância encerrada ou que não responde. Os valores válidos são de 0 a 168, em incrementos de 1 hora. O valor padrão para Z3 é de 6 horas, e para todas as outras VMs, o padrão é de 1 hora.

Definir o tempo limite de detecção de erros do host

Para definir o período máximo que o Compute Engine aguarda para reiniciar ou encerrar uma instância que não responde, use o método Beta instances.insert, porque essa opção está em Pré-lançamento.

Adicione a propriedade hostErrorTimeoutSeconds ao objeto scheduling do corpo da solicitação, em que HOST_ERROR_TIMEOUT é o número de segundos que o Compute Engine aguarda antes de reiniciar ou encerrar uma instância que não responde. Os valores válidos são de 90 a 330 (5,5 minutos), em incrementos de 30 segundos.


   POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances

   {
      "name": "INSTANCE_NAME",

      "scheduling": {
        "onHostMaintenance": "MAINTENANCE_BEHAVIOR",
        "automaticRestart": "RESTART_POLICY,
        "localSsdRecoveryTimeout": SSD_RECOVERY_TIMEOUT
        "hostErrorTimeoutSeconds": HOST_ERROR_TIMEOUT,
      }
    }

Atualizar a política de manutenção do host de uma instância

Console

  1. No console do Google Cloud, acesse a página Instâncias de VMs.

    Acessar instâncias de VM

  2. Clique no nome da instância em que você quer mudar as configurações. A página de detalhes da instância é aberta.

  3. Com a guia Detalhes selecionada, siga estas etapas:

    1. Clique no botão Editar na parte superior da página.
    2. Acesse a seção Gerenciamento. Na seção Políticas de disponibilidade, você pode mudar as opções de manutenção do host.
    3. Clique em Salvar.

gcloud

Atualize a política de manutenção do host de uma instância atual com o comando gcloud compute instances set-scheduling. Use os mesmos parâmetros do comando de criação de instância na seção anterior.

Para atualizar o período máximo que o Compute Engine aguarda para reiniciar ou encerrar uma instância que não responde (Pré-lançamento), use o comando gcloud beta compute instances set-scheduling e inclua --host-error-timeout-seconds=NUMBER_OF_SECONDS.

    gcloud compute instances set-scheduling INSTANCE_NAME \
      --maintenance-policy=MAINTENANCE_BEHAVIOR \
      --RESTART_ON_FAILURE_BEHAVIOR \
      --local-ssd-recovery-timeout=SSD_RECOVERY_TIMEOUT

Substitua:

  • NUMBER_OF_SECONDS: o número de segundos que o Compute Engine aguarda antes de reiniciar ou encerrar uma VM que não responde, de 90 a 330 (5,5 minutos), em incrementos de 30 segundos.
    • INSTANCE_NAME: o nome da instância.
    • MAINTENANCE_BEHAVIOR: o comportamento do evento de manutenção de uma instância, TERMINATE ou MIGRATE. Para a maioria dos tipos de máquina, a VM é migrada por padrão se você omitir essa propriedade. As instâncias Z3 e bare metal são encerradas.
    • RESTART_ON_FAILURE_BEHAVIOR: comportamento de reinicialização para instâncias encerradas ou não responsivas, definido como restart-on-failure (padrão) ou no-restart-on-failure.
    • SSD_RECOVERY_TIMEOUT: o número de horas usadas na recuperação de discos SSD locais anexados a uma instância encerrada ou que não responde. Os valores válidos são de 0 a 168, em incrementos de 1 hora.
    • NUMBER_OF_SECONDS: o número de segundos que o Compute Engine aguarda antes de reiniciar uma instância que não responde, de 90 a 330 segundos (5,5 minutos), em incrementos de 30 segundos.

REST

Atualize a política de manutenção do host de uma instância atual usando uma solicitação POST ao método instances.setScheduling.

    POST https://compute.googleapis.com/compute/v1projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/setScheduling

    {
      "onHostMaintenance": "MAINTENANCE_BEHAVIOR",
      "automaticRestart": RESTART_POLICY,
      "localSsdRecoveryTimeout": SSD_RECOVERY_TIMEOUT
    }

Substitua:

  • PROJECT_ID: o projeto da instância.
  • ZONE: a zona em que a instância está localizada.
  • INSTANCE_NAME: o nome da instância.
  • MAINTENANCE_BEHAVIOR: o comportamento do evento de manutenção dessa instância, TERMINATE ou MIGRATE.
  • RESTART_POLICY: se a instância é reiniciada automaticamente, true ou false.
    • SSD_RECOVERY_TIMEOUT: o número de horas usadas na recuperação de discos SSD locais anexados à instância. Os valores válidos são de 0 a 168, em incrementos de 1 hora.

Atualizar o tempo limite de detecção de erros do host

Para atualizar o período máximo que o Compute Engine aguarda para reiniciar ou encerrar uma VM que não responde, use o método Beta instances.setScheduling, porque esse recurso está em Pré-lançamento.

Adicione a propriedade hostErrorTimeoutSeconds ao corpo da solicitação, em que HOST_ERROR_TIMEOUT é o número de segundos que o Compute Engine aguarda antes de reiniciar ou encerrar uma instância que não responde. Os valores válidos são de 90 a 330 (5,5 minutos), em incrementos de 30 segundos.

  POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/setScheduling

  {
    ...
    "hostErrorTimeoutSeconds": NUMBER_OF_SECONDS
  }

Conferir as configurações da política de manutenção do host de uma instância

Console

  1. Acesse a página Instâncias da VM.

    Acessar instâncias de VM

  2. Clique no Nome da instância com as configurações que você quer ver. A página de detalhes da instância é aberta.

  3. Acesse a seção Gerenciamento. A subseção Políticas de disponibilidade mostra as configurações atuais para:

    • Na manutenção do host
    • Reinicialização automática
    • Tempo limite de erro do host

gcloud

Use o comando gcloud compute instances describe para conferir as configurações da opção de manutenção do host de uma instância.

Para conferir o valor atual da configuração hostErrorTimeoutSeconds (Visualização), use o comando gcloud beta compute instances describe.

 gcloud compute instances describe INSTANCE_NAME \
 --zone ZONE --format="yaml(scheduling)"

Substitua:

  • INSTANCE_NAME: o nome da instância.
  • ZONE: a zona em que a instância está localizada.

A saída inclui as configurações atuais da política de manutenção do host, por exemplo:

scheduling:
  automaticRestart: true
  hostErrorTimeoutSeconds: 120
  localSsdRecoveryTimeout:
    nanos: 0
    seconds: '10800'
  onHostMaintenance: MIGRATE
  preemptible: false
  provisioningModel: STANDARD

REST

Para conferir as configurações de manutenção do host de uma instância, use o método instances.get:

  GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME

Substitua:

  • PROJECT_ID: o projeto em que a instância está localizada.
  • ZONE: a zona em que a instância está localizada.
  • INSTANCE_NAME: o nome da instância.

Na saída, o objeto scheduling contém as configurações da política de manutenção do host da instância, por exemplo:

{
...
  "scheduling": {
      "onHostMaintenance": "MIGRATE",
      "automaticRestart": true,
      "preemptible": false,
      "provisioningModel": "STANDARD",
      "localSsdRecoveryTimeout": {
        "seconds": "10800",
        "nanos": 0
      }
    },
...
}

Conferir as configurações de tempo limite de erro do host

Para conferir a configuração atual de hostErrorTimeoutSeconds, crie uma solicitação GET usando o método instances.get Beta.

 GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME

Substitua:

  • PROJECT_ID: o projeto da instância.
  • ZONE: a zona em que a instância está localizada.
  • INSTANCE_NAME: o nome da instância.

Na saída, o objeto scheduling inclui o tempo limite de detecção de erros do host da instância, por exemplo:

{
...
  "scheduling": {
    "onHostMaintenance": "MIGRATE",
    "automaticRestart": true,
    "preemptible": false,
    "provisioningModel": "STANDARD",
    "hostErrorTimeoutSeconds": 120,
    "localSsdRecoveryTimeout": {
      "seconds": "10800",
      "nanos": 0
    }
  },
...
}

A seguir