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:
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
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
paraTERMINATE
ou vice-versa. - Não é possível mudar o comportamento de manutenção de instâncias bare metal,
como
c3-standard-192-metal
oux4-megamem-1920-metal
, que são definidas comoTERMINATE
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 deonHostMaintenance
.
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, a configuração 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 6 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 a recuperação dos 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 criar a instância 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, a CLI gcloud ou o REST.
No console do Google Cloud, acesse a página Criar uma instância.
Especifique um Nome para a instância.
Selecione uma Região e uma Zona para a instância.
Na seção Configuração da máquina, faça o seguinte:
- Especifique os detalhes do tipo de máquina da instância.
- Expanda o menu Configurações avançadas do modelo de provisionamento de VM.
- No menu Na manutenção do host, selecione uma das seguintes etapas:
- Para migrar VMs durante eventos de manutenção, selecione Migrar instância da VM.
- Para interromper as instâncias durante eventos de manutenção, selecione Encerrar instância da VM.
Para criar a instância, clique em Criar.
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
ouMIGRATE
. 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 sem resposta, definido comorestart-on-failure
(padrão) ouno-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.
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 do campo 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
ouMIGRATE
. 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) oufalse
.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
No console do Google Cloud, acesse a página Instâncias de VMs.
Clique no nome da instância em que você quer mudar as configurações. A página de detalhes da instância é aberta.
Com a guia Detalhes selecionada, siga estas etapas:
- Clique no botão Editar na parte superior da página.
- Acesse a seção Gerenciamento. Na seção Políticas de disponibilidade, é possível mudar as opções de manutenção do host.
- Clique em Salvar.
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
ouMIGRATE
. 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 sem resposta, definido comorestart-on-failure
(padrão) ouno-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.
Atualize a política de manutenção do host de uma instância usando uma solicitação POST
para o
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
ouMIGRATE
.RESTART_POLICY
: se a instância é reiniciada automaticamente,true
oufalse
.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
Acesse a página Instâncias da VM.
Clique no Nome da instância com as configurações que você quer ver. A página de detalhes da instância é aberta.
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
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
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
- Saiba mais sobre manutenção do host.
- Saiba mais sobre migração em tempo real.
- Saiba como detectar um evento de migração em tempo real.