Neste documento, descrevemos como definir uma política de manutenção do host da instância de máquina virtual (VM) para controlar como a VM se comporta quando um evento do 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 da seguinte maneira.
Selecione a guia para como planeja usar as amostras nesta página:
Console
Quando você usa o console do Google Cloud para acessar os serviços e as APIs do Google Cloud, não é necessário configurar a autenticação.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Defina uma região e uma zona padrão.
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para a CLI gcloud.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
-
Limitações
- Não é possível alterar a política de manutenção do host 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 alterar as configurações de manutenção
do host da VM de
MIGRATE
paraTERMINATE
ou vice-versa.
Propriedades de manutenção do host disponíveis
Com as propriedades a seguir, é possível configurar o comportamento de manutenção, o comportamento de reiniciação e o comportamento após a ocorrência de um erro do host de uma VM.
O Compute Engine configura cada VM com os valores padrão, a menos que você especifique outros.
Durante eventos do host, dependendo da política de manutenção do host configurada, as VMs que não são compatíveis com a migração em tempo real são encerradas ou reiniciadas automaticamente.
onHostMaintenance
: determina o comportamento quando ocorre um evento de manutenção que possa causar a reinicialização da instância.MIGRATE
(padrão): faz o Compute Engine migrar uma instância em tempo real quando há um evento de manutenção.TERMINATE
: interrompe uma VM em vez de migrá-la.
automaticRestart
: determina o comportamento quando uma VM 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 reinicia a VM 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.- Não definido (padrão): o Compute Engine aguarda até 1 hora para recuperar o disco. Para VMs Z3 (pré-lançamento), o tempo de espera padrão é de 4 horas.
- Um número de 0 a 168: especifica o tempo que o Compute Engine aguarda para recuperar o disco. O número precisa ser um número inteiro, em incrementos de uma hora, com um valor máximo de sete dias. Um valor de 0 significa que o Compute Engine não aguardará para recuperar os dados.
hostErrorTimeoutSeconds
(Visualização): define o tempo máximo, em segundos, que o Compute Engine aguarda para reiniciar ou encerrar uma VM depois de detectar que não está respondendo.- Não definido (padrão): o Compute Engine aguarda até 5,5 minutos (330 segundos) antes de reiniciar uma VM que não responde.
- Número de 90 a 330: especifica o número de segundos, em incrementos de 30, que o Compute Engine aguarda antes de reiniciar uma VM que não responde.
Definir política de manutenção de host de uma VM
É possível alterar a política de manutenção do host de uma VM ao criar a VM ou depois de criá-la.
Definir política de manutenção de host durante a criação da VM
As informações nesta seção se concentram em como definir a política de manutenção do host ao criar uma VM. Para mais exemplos de criação de VMs, consulte Criar e iniciar uma instância de VM.
É possível definir a política de manutenção do host de uma VM durante a criação usando o console do Google Cloud, a gcloud CLI ou a API Compute Engine.
Console
No console do Google Cloud, acesse a página Criar uma instância.
Especifique um Nome para a VM.
Selecione uma Região e uma Zona para a VM.
Na seção Configuração da máquina, faça o seguinte:
- Especifique os detalhes do tipo de máquina da VM.
- 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 VMs durante eventos de manutenção, selecione Encerrar instância da VM.
Para criar a VM, clique em Criar.
gcloud
No Console do Google Cloud, ative o Cloud Shell.
Na parte inferior do Console do Google Cloud, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.
Para definir a política de manutenção do host de uma nova VM, use o comando gcloud compute instances create
. Inclua um ou mais de um dos parâmetros a seguir:
--maintenance-policy
: se a VM será migrada ou interrompida durante a manutenção do host. A VM será migrada por padrão se você omitir essa propriedade.--no-restart-on-failure
ou--restart-on-failure
: se a VM será reiniciada automaticamente após um erro do host. Por padrão, a VM sempre será reiniciada quando uma falha for detectada.--local-ssd-recovery-timeout
: quanto tempo o Compute Engine leva para recuperar qualquer disco SSD local anexado após um erro do host. O padrão é 1 hora.
Defina a política de manutenção do host de uma nova VM com o comando a seguir. Se você omitir qualquer uma das flags, o padrão dela será usado.
gcloud compute instances create VM_NAME \
--maintenance-policy=MAINTENANCE_POLICY \
--RESTART_ON_FAILURE_BEHAVIOR \
--local-ssd-recovery-timeout=SSD_RECOVERY_TIMEOUT
Substitua:
VM_NAME
: o nome da VM.MAINTENANCE_POLICY
: a política de manutenção dessa VM,TERMINATE
ouMIGRATE
.RESTART_ON_FAILURE_BEHAVIOR
: comportamento de reiniciação da VM, definido como--no-restart-on-failure
ou--restart-on-failure
.SSD_RECOVERY_TIMEOUT
: o número de horas usadas na recuperação de um SSD local anexado a uma VM que não responde. Os valores válidos são de 0 a 168, em incrementos de 1 hora.
Definir o tempo limite de detecção de erros do host
Para definir o tempo máximo que o Compute Engine aguarda para reiniciar ou encerrar uma VM que não responde, use o comando o gcloud compute instances create
. Especifique o tempo limite com a flag --host-error-timeout-seconds
.
gcloud beta compute instances create VM_NAME \
--maintenance-policy=MAINTENANCE_POLICY \
--RESTART_ON_FAILURE_BEHAVIOR \
--local-ssd-recovery-timeout=SSD_RECOVERY_TIMEOUT \
--host-error-timeout-seconds=ERROR_DETECTION_TIMEOUT
Substitua:
VM_NAME
: o nome da VM.MAINTENANCE_POLICY
: a política de manutenção dessa VM,TERMINATE
ouMIGRATE
.RESTART_ON_FAILURE_BEHAVIOR
: comportamento de reiniciação da VM, definido como--no-restart-on-failure
ou--restart-on-failure
.SSD_RECOVERY_TIMEOUT
: o número de horas que o Compute Engine leva para recuperar um SSD local anexado a uma VM 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 VM que não responde, de 90 a 330, em incrementos de 30.
REST
Para definir a política de manutenção de host de uma nova VM usando a
API Compute Engine, use o
método instances.insert
.
Inclua uma ou mais de uma das propriedades a seguir no objeto scheduling
do corpo da solicitação:
onHostMaintenance
: se a VM será migrada ou interrompida durante a manutenção do host. A VM é migrada por padrão.automaticRestart
: se a VM será reiniciada automaticamente após um erro do host. As VMs são reiniciadas automaticamente por padrão.localSsdRecoveryTimeout
: quanto tempo o Compute Engine leva para recuperar qualquer disco SSD local anexado após detectar um erro do host. O padrão é 1 hora.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
"name": "VM_NAME",
"scheduling": {
"onHostMaintenance": "MAINTENANCE_POLICY",
"automaticRestart": "RESTART_POLICY,
"localSsdRecoveryTimeout": SSD_RECOVERY_TIMEOUT
}
}
Substitua:
PROJECT_ID
: o projeto da VM.ZONE
: a zona em que você quer criar a VM.VM_NAME
: o nome da VM.MAINTENANCE_POLICY
: a política de manutenção dessa VM,TERMINATE
ouMIGRATE
.RESTART_POLICY
: a política de reiniciação dessa VM,true
oufalse
.SSD_RECOVERY_TIMEOUT
: o número de horas que o Compute Engine leva para recuperar um disco SSD local anexado a uma VM que não responde. Os valores válidos são de 0 a 168, em incrementos 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 VM que não responde, use o método Beta instances.insert
, porque essa opção está disponível em Pré-lançamento.
Adicione a propriedade hostErrorTimeoutSeconds
ao objeto scheduling
do corpo da solicitação.
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances
{
"name": "VM_NAME",
"scheduling": {
"onHostMaintenance": "MAINTENANCE_POLICY",
"automaticRestart": "RESTART_POLICY,
"localSsdRecoveryTimeout": SSD_RECOVERY_TIMEOUT
"hostErrorTimeoutSeconds": HOST_ERROR_TIMEOUT,
}
}
Substitua:
PROJECT_ID
: o projeto da VM.ZONE
: a zona em que você quer criar a VM.VM_NAME
: o nome da VM.MAINTENANCE_POLICY
: a política de manutenção dessa VM,TERMINATE
ouMIGRATE
.RESTART_POLICY
: a política de reiniciação dessa VM,true
oufalse
.SSD_RECOVERY_TIMEOUT
: o número de horas que o Compute Engine leva para recuperar um disco SSD local anexado a uma VM que não responde. Os valores válidos são de 0 a 168, em incrementos de 1 hora.HOST_ERROR_TIMEOUT
: o número de segundos que o Compute Engine aguarda antes de reiniciar ou encerrar uma VM que não responde. Os valores válidos são de 90 a 330, em incrementos de 30.
Atualizar a política de manutenção do host de uma VM que já existe
Console
No console do Google Cloud, acesse a página Instâncias de VMs.
Clique na VM com as configurações que você quer alterar. A página de detalhes da VM é exibida.
Na página de detalhes da VM, conclua 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, defina as opções Na manutenção do host e Reinicialização automática.
- Clique em Save.
gcloud
No Console do Google Cloud, ative o Cloud Shell.
Na parte inferior do Console do Google Cloud, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.
Atualize a política de manutenção do host de uma VM atual com o comando gcloud compute instances set-scheduling
. Use os mesmos parâmetros descritos no comando de criação da VM na seção anterior.
gcloud compute instances set-scheduling VM_NAME \
--maintenance-policy=MAINTENANCE_POLICY \
--RESTART_ON_FAILURE_BEHAVIOR \
--local-ssd-recovery-timeout=SSD_RECOVERY_TIMEOUT
Substitua:
VM_NAME
: o nome da VM.MAINTENANCE_POLICY
: a política dessa VM,TERMINATE
ouMIGRATE
.RESTART_ON_FAILURE_BEHAVIOR
: comportamento de reiniciação da VM,--no-restart-on-failure
ou--restart-on-failure
.SSD_RECOVERY_TIMEOUT
: o tempo em horas que o Compute Engine leva para recuperar um disco SSD local anexado a uma VM que não responde. Os valores válidos são de 0 a 168.
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 comando gcloud beta compute instances set-scheduling
, porque esse recurso só está disponível em Pré-lançamento.
Atualize o tempo limite com o parâmetro --host-error-timeout-seconds
.
Exemplo:
gcloud beta compute instances set-scheduling VM_NAME \
--maintenance-policy=MAINTENANCE_POLICY \
--RESTART_ON_FAILURE_BEHAVIOR \
--local-ssd-recovery-timeout=SSD_RECOVERY_TIMEOUT \
--host-error-timeout-seconds=NUMBER_OF_SECONDS
Substitua:
VM_NAME
: o nome da VM.MAINTENANCE_POLICY
: a política de manutenção dessa VM,TERMINATE
ouMIGRATE
.RESTART_ON_FAILURE_BEHAVIOR
: comportamento de reiniciação da VM, definido como--no-restart-on-failure
ou--restart-on-failure
.SSD_RECOVERY_TIMEOUT
: o tempo em horas que o Compute Engine leva para recuperar um disco SSD local anexado a uma VM que não responde. Os valores válidos são de 0 a 168.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, em incrementos de 30.
REST
Atualize a política de manutenção do host de uma VM que já existe com uma solicitação POST
ao método instances.setScheduling
.
Inclua uma ou mais de uma das propriedades a seguir no corpo da solicitação:
onHostMaintenance
: se a VM será migrada ou interrompida durante a manutenção do host. A VM é migrada por padrão.automaticRestart
: se a VM será reiniciada automaticamente após um erro do host. As VMs são reiniciadas automaticamente por padrão.localSsdRecoveryTimeout
: quanto tempo o Compute Engine leva para recuperar qualquer disco SSD local anexado após detectar um erro do host. Se omitido, o padrão é 1 hora.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling
{
"onHostMaintenance": "MAINTENANCE_POLICY",
"automaticRestart": RESTART_POLICY,
"localSsdRecoveryTimeout": SSD_RECOVERY_TIMEOUT
}
Substitua:
PROJECT_ID
: o projeto da VM.ZONE
: a zona em que a VM está localizada.VM_NAME
: o nome da VM.MAINTENANCE_POLICY
: a política de manutenção dessa VM,TERMINATE
ouMIGRATE
.RESTART_POLICY
: a política de reiniciação dessa VM,true
oufalse
.SSD_RECOVERY_TIMEOUT
: o tempo em horas que o Compute Engine leva para recuperar um disco SSD local anexado a uma VM que não responde. Os valores válidos são de 0 a 168.
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á disponível em Pré-lançamento.
Adicione o parâmetro hostErrorTimeoutSeconds
ao corpo da solicitação.
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling
{
"hostErrorTimeoutSeconds": NUMBER_OF_SECONDS,
}
Substitua:
PROJECT_ID
: o projeto da VM.ZONE
: a zona em que a VM está localizada.VM_NAME
: o nome da VM.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, em incrementos de 30.
Ver as configurações da política de manutenção do host de uma VM
Console
Acesse a página Instâncias da VM.
Clique no Nome da VM com os metadados que você quer ver. A página Detalhes da instância de VM será aberta.
Acesse a seção Gerenciamento. A subseção Políticas de disponibilidade mostra as configurações atuais para Na manutenção do host e Reinicialização automática.
gcloud
Use o comando gcloud compute instances describe
para ver as configurações da opção de manutenção do host de uma VM:
gcloud compute instances describe VM_NAME --format="yaml(scheduling)"
Substitua VM_NAME
pelo nome da VM.
A saída contém o tempo limite de detecção de erros do host da VM, por exemplo:
scheduling:
automaticRestart: true
localSsdRecoveryTimeout:
nanos: 0
seconds: '10800'
onHostMaintenance: MIGRATE
preemptible: false
provisioningModel: STANDARD
Ver a configuração de tempo limite de detecção de erros do host
Veja o valor atual de hostErrorTimeoutSeconds
com o comando gcloud beta compute instances describe
, porque essa opção só está disponível em Pré-lançamento.
gcloud beta compute instances describe VM_NAME --format="yaml(scheduling)"
Substitua VM_NAME
pelo nome da VM.
A saída contém o tempo limite de detecção de erros do host da VM, por exemplo:
scheduling:
automaticRestart: true
hostErrorTimeoutSeconds: 120
localSsdRecoveryTimeout:
nanos: 0
seconds: '10800'
onHostMaintenance: MIGRATE
preemptible: false
provisioningModel: STANDARD
REST
Para ver as configurações de manutenção do host de uma VM, use o método instances.get
:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Substitua:
PROJECT_ID
: o projeto em que a VM está localizada.ZONE
: a zona em que a VM está localizada.VM_NAME
: o nome da VM.
Na saída, o objeto scheduling
contém a política de manutenção do host da VM, por exemplo:
"scheduling": {
"onHostMaintenance": "MIGRATE",
"automaticRestart": true,
"preemptible": false,
"provisioningModel": "STANDARD",
"localSsdRecoveryTimeout": {
"seconds": "10800",
"nanos": 0
}
}
Ver as configurações de tempo limite de erro do host
Veja a configuração hostErrorTimeoutSeconds
atual com uma solicitação GET
ao método Beta instances.get
, porque essa opção só está disponível em Pré-lançamento.
GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Substitua:
PROJECT_ID
: o projeto da VM.ZONE
: a zona em que a VM está localizada.VM_NAME
: o nome da VM.
Na saída, o objeto scheduling
contém o tempo limite de detecção de erros do host da VM, por exemplo:
"scheduling": {
"hostErrorTimeoutSeconds": 120
}
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.