É possível escolher como as instâncias de máquinas virtuais (VMs) responderão durante ou após um evento de host definindo a política de manutenção do host durante a criação da VM. Um evento de host pode incluir a manutenção regular da infraestrutura do Compute Engine ou um erro de host em uma VM. Por padrão, as VMs são definidas para migração em tempo real durante eventos do sistema host, mas é possível defini-las para encerrar e, opcionalmente, reiniciar. As VMs Z3 são a exceção da migração em tempo real, já que são reiniciadas no local por padrão.
Os eventos de host a seguir levam à migração em tempo real ou ao encerramento da VM, dependendo da política de manutenção do host definida:
Eventos de manutenção
Um evento de manutenção ocorre quando o Compute Engine interrompe uma VM para executar uma atualização de hardware ou software. Se você ativar a política de manutenção do host da migração em tempo real, o Compute Engine moverá a VM para um novo host, sem interrupção no aplicativo.
O comportamento da VM durante um evento de manutenção pode variar dependendo da locação da VM. A tabela a seguir mostra algumas diferenças entre o comportamento das VMs de multilocação e de locatário individual durante eventos de manutenção.
Locação de host | Frequência Aproximada * | Migração em tempo real para o novo host | Seleção de organizadores |
---|---|---|---|
Multilocatário | A cada duas semanas | Sim | Compute Engine |
Locatário único | A cada quatro a seis semanas | Depende da política de manutenção do host | Depende da política de manutenção do host |
O Compute Engine também aplica alguns hipervisores leves e upgrades de rede em segundo plano sem interrupções.
Política de manutenção do host
A política de manutenção de host de uma VM determina como ela se comporta durante os seguintes eventos:
- Quando há um evento de manutenção em que o Google precisa mover uma VM para outra máquina host
- Quando há um erro de host em que o Google precisa encerrar ou reiniciar uma VM
É possível configurar as VMs para continuarem em execução durante a manutenção do host, enquanto o Compute Engine as migra em tempo real para outro host ou pode optar por interromper as VMs. Você pode atualizar a política de manuntenção do host de uma VM a qualquer momento para controlar a maneira como quer que as VMs se comportem.
É possível alterar a política de manutenção do host de uma VM definindo as seguintes configurações:
- Comportamento de manutenção: se a VM é migrada em tempo real ou interrompida quando há um evento de manutenção.
- Comportamento de reinicialização: se o Compute Engine reinicia ou encerra a VM caso ela falhe ou apresente um erro de host.
- Tempo de detecção de erros do host: o tempo máximo que o Compute Engine aguarda para reiniciar ou encerrar uma VM depois de detectar que a VM não está respondendo.
- Tempo de recuperação do SSD local: o tempo máximo que o Compute Engine gasta na recuperação dos dados em discos SSD locais após a detecção de um erro de host. Os dados da SSD local serão perdidos se o tempo especificado se esgotar sem uma recuperação bem-sucedida.
Programação da manutenção
O Google Cloud fornece recursos que permitem maior controle da manutenção. Ao usar determinadas famílias de VMs, é possível especificar preferências de manutenção para receber notificações de vários dias pelo Cloud Logging. Ao receber uma notificação, é possível acionar a manutenção a qualquer momento até o evento programado.
É possível usar esses recursos em combinação com a política de manutenção do host para personalizar uma programação que se adapte à sua carga de trabalho.
Migração em tempo real
Por padrão, todas as VMs, exceto as VMS Z3 são definidas para migração em tempo real, quando o Compute Engine migra automaticamente a VM em um evento de manutenção de infraestrutura e a VM permanece em execução durante a migração. A VM pode ter um curto período de desempenho reduzido, mas, em geral, a maioria das VMs não tem um desempenho notavelmente diferente. Isso é ideal para VMs que exigem tempo de atividade constante e podem tolerar um período curto de desempenho reduzido.
Ao migrar a VM, o Compute Engine informa um evento de sistema que é publicado na lista de operações de zona. É possível analisar esse evento ao visualizar as operações do Compute Engine para uma zona específica. Os eventos de migração em tempo real têm o seguinte tipo de operação:
compute.instances.migrateOnHostMaintenance
Reiniciar (opcional) e interromper
Se você não quiser que a VM seja migrada em tempo real, interrompa e, se preferir, reinicie a VM. Para VMs configuradas para serem interrompidas e reiniciadas opcionalmente, o Compute Engine envia um sinal de desligamento flexível para encerrar a VM. Em seguida, ele aguarda 60 segundos para que a VM seja encerrada corretamente, encerra a VM e a reinicia para evitar o evento de manutenção. Se a VM não for encerrada corretamente em 60 segundos, ela será encerrada.
Essa opção é ideal se as VMs exigirem desempenho máximo constante e se o aplicativo geral for criado para lidar com falhas ou reinicializações da VM.
Quando o Compute Engine interrompe e reinicializa suas VMs, ele registra um evento de sistema que é publicado na lista de operações da zona. É possível analisar esse evento ao visualizar as operações do Compute Engine para uma zona específica. Eventos interrompidos têm o seguinte tipo de operação:
compute.instances.terminateOnHostMaintenance
Quando a VM é reiniciada, ela usa o mesmo disco de inicialização permanente e reconecta os discos permanentes secundários configurados. Os dados nesses discos permanecem durante a migração e a reinicialização da VM.
Os dados do SSD local não permanecem quando uma VM é interrompida devido a um evento de manutenção. Quando a VM é reiniciada, ela cria um novo SSD local que você precisará formatar e montar.
Os dados do SSD local permanecem em VMs Z3 otimizadas para armazenamento (pré-lançamento). Quando há um evento de manutenção, a VM Z3 é reiniciada no local, em vez de migrada para um novo host. No final da manutenção de rotina, sua VM será reiniciada. O Google Cloud faz o possível para garantir que os dados do SSD local permaneçam intactos. No entanto, há casos em que não é possível recuperar os dados, como um caso de tempo limite.
Reinicialização automática
Se a VM estiver definida para ser interrompida quando houver um evento de manutenção, ou se a
VM falhar devido a um problema de hardware subjacente, configure
o Compute Engine para reiniciar a VM automaticamente. Para fazer isso, defina o
campo automaticRestart
como true
. Essa configuração não se aplica se a
VM ficar off-line por causa de uma ação do usuário, como chamar
sudo shutdown
, ou durante uma interrupção na zona.
Quando o Compute Engine reinicia a VM automaticamente, ele relata um evento de sistema que é publicado na lista de operações de zona. É possível analisar esse evento ao visualizar as operações do Compute Engine para uma zona específica. Os eventos de reinicialização automática têm o seguinte tipo de operação:
compute.instances.automaticRestart
Erros de host
Um erro de host (compute.instances.hostError
) significa que houve um problema de hardware ou software na máquina física que hospeda
a VM que causou a falha da VM. Um erro de host que envolve falha total de hardware ou outros problemas de hardware pode impedir a
migração em tempo real da VM.
Se a VM estiver configurada para reiniciar automaticamente, o que é a configuração padrão, o Google a reiniciará, normalmente em três minutos a partir do momento em que o erro foi detectado. Dependendo do problema, a reinicialização pode levar até 5,5 minutos.
VMs com discos SSD locais
Se ocorrer um erro de host em uma VM que tenha um ou mais discos SSD locais anexados, o Compute Engine tentará se reconectar à VM e preservar o SSD local dados. Enquanto o Compute Engine recupera a VM e o disco SSD local, o sistema host e o disco subjacente não respondem.
É possível especificar quanto tempo o Compute Engine gasta tentando recuperar dados do SSD local definindo o tempo limite de recuperação do SSD local.
Para mais informações sobre como os discos SSD locais se comportam quando ocorre um erro de host, consulte Persistência de dados do SSD local.
VMs que não respondem
Ás vezes, uma VM pode não responder antes que um erro do host seja detectado. É possível reduzir o tempo que o Compute Engine aguarda para reiniciar ou encerrar a VM definindo o tempo limite da recuperação do erro do host (Visualização). Para mais informações, consulte Definir políticas de disponibilidade.
Falhas físicas de hardware e software podem acontecer ocasionalmente, mas são raras. Para proteger aplicativos e serviços contra esses eventos de sistema potencialmente prejudiciais, analise os seguintes recursos:
- Como projetar sistemas robustos
- Padrões para apps escalonáveis e resilientes
- Como criar grupos de instâncias gerenciadas
O Google também oferece serviços gerenciados, como o App Engine e o ambiente flexível do App Engine.
Tempo limite de recuperação do SSD local
Quando ocorre um erro de host, o Compute Engine tenta recuperar todos os discos SSD locais anexados à VM. É possível controlar quanto tempo o Compute Engine passa tentando recuperar os dados com o tempo limite de recuperação do SSD local. Por padrão, o Compute Engine gasta uma hora recuperando os dados, mas os valores válidos ficam entre 0 e 168, em incrementos de 1 hora. A exceção é a Z3, que tem um tempo de recuperação padrão de até seis horas.
Se o tempo limite expirar e os dados ainda não puderem ser recuperados, o Compute Engine reiniciará a VM sem o disco SSD local. O Compute Engine anexa um novo disco SSD local em branco à VM reiniciada.
Se o tempo limite for de uma hora ou mais, a VM estará no estado REPAIRING
enquanto o Compute Engine recupera todos os discos SSD locais anexados. A VM e os discos SSD locais não respondem durante a recuperação.
Se o tempo limite for 0, o Compute Engine não tentará recuperar os discos SSD locais e os dados serão irrecuperáveis. É possível definir o tempo limite de recuperação como 0 se a retomada da carga de trabalho for mais importante do que a recuperação dos dados do SSD local.
Interromper a recuperação do disco SSD local
É possível interromper o processo de recuperação antes que o tempo limite de recuperação do SSD local
expire. Para fazer isso, use o comando gcloud compute instances stop
com a flag --discard-local-ssd=True
.
Isso interromperá o processo de recuperação, a VM e descartará os dados do SSD local. Depois, é possível reiniciar a VM. Consulte Interromper uma VM com SSD local para mais informações.
Para definir o tempo limite de recuperação do SSD local, consulte Definir política de manutenção do host da VM.
A seguir
- Saiba mais sobre migração em tempo real.
- Saiba mais sobre como configurar a política de manutenção do host da VM.
- Saiba mais sobre como receber notificações de migração em tempo real.
- Saiba mais sobre como simular a manutenção do host.
- Saiba mais sobre como processar eventos de manutenção do host da GPU.
- Saiba mais sobre como migrar manualmente e em tempo real VMs de locatário individual.