Durante um evento de manutenção planejada em um hardware subjacente de uma instância de máquina virtual (VM), o Compute Engine pode mover a VM para outro host. Para manter uma VM em execução durante um evento de host, o Compute Engine faz uma migração em tempo real da VM para outro host na mesma zona. Para mais informações sobre eventos de host, consulte Sobre eventos de host.
A migração em tempo real permite que o Google Cloud realize a manutenção sem interromper uma carga de trabalho, reiniciar uma VM ou modificar qualquer uma das propriedades dela, como endereços IP, metadados, dados de armazenamento em blocos, estado do aplicativo e configurações de rede.
Além de manter as VMs em execução durante eventos de host planejados, a migração em tempo real mantém as VMs em execução nas seguintes situações:
Manutenção da infraestrutura. A manutenção da infraestrutura inclui hardware de host, redes e redes elétricas em data centers, além de SOs e BIOS de host.
Atualizações relacionadas à segurança e alterações na configuração do sistema. Isso inclui eventos como a instalação de patches de segurança e a alteração do tamanho da partição raiz do host para armazenamento dos pacotes e da imagem do SO do host.
Falhas de hardware. Isso inclui falhas de memória, CPUs, placas de rede e discos. Se o hardware falhar completamente ou impedir a migração em tempo real, a VM será encerrada, reiniciada automaticamente e o Compute Engine registrará um
hostError
.
O Compute Engine só faz uma migração em tempo real de VMs que têm a política de manutenção do host definida para migração. Para informações sobre como alterar a política de manutenção do host, consulte Definir política de manutenção do host da VM.
Processo de migração em tempo real e SSDs locais
O Compute Engine pode migrar VMs em tempo real com SSDs locais conectados, movendo as VMs com o SSD local para uma nova máquina antes de qualquer manutenção planejada.
Limitações
A migração em tempo real não é compatível com os seguintes tipos de VM:
Algumas instâncias de VMs confidenciais. A migração em tempo real só é possível em tipos de máquina N2D com plataformas de CPU AMD EPYC Milan que executam AMD SEV. Todos os outros tipos de VMs confidenciais precisam ser definidos para interrupção e reinicialização opcional. Consulte Migração em tempo real para mais detalhes.
VMs com GPUs conectadas. As instâncias de VM com GPUs anexadas precisam ser definidas para interrupção e reinicialização opcional. O Compute Engine emite uma notificação 60 minutos antes que uma instância de VM com uma GPU anexada seja interrompida. Para saber mais sobre esses notificações de eventos de manutenção, leia Como receber notificações de migração em tempo real.
Para saber mais, leia Como lidar com a manutenção do host na documentação de GPUs.
Cloud TPUs. As Cloud TPUs não são compatíveis com migração em tempo real.
VMs preemptivas Não é possível configurar uma VM preemptiva para realizar a migração em tempo real. O comportamento de manutenção de instâncias preemptivas é sempre definido como
TERMINATE
por padrão, e não é possível alterar essa opção. Não é possível definir a opção de reinicialização automática para instâncias preemptivas, mas é possível iniciar manualmente as VMs preemptivas novamente na página Detalhes das instâncias de VM após a interrupção.Se você precisar tornar sua instância não preemptiva, remova o disco de inicialização da instância preemptiva e anexe-o a uma nova instância que não esteja configurada para ser preemptiva. Também é possível criar um snapshot do disco de inicialização e usá-lo para criar uma nova instância sem capacidade de preempção.
VMs do Spot. As VMs do Spot não podem fazer a migração em tempo real para se tornarem VMs padrão enquanto estiverem em execução ou sendo configuradas para reiniciar automaticamente quando há um evento de manutenção.
VMs otimizadas para armazenamento. As VMs Z3 (pré-lançamento) não aceitam migração em tempo real. O comportamento de manutenção de VMs do Z3 está definido como
TERMINATE
.
Como funciona o processo de migração em tempo real?
Quando uma VM é programada para migração em tempo real, o Google Cloud envia uma notificação. Durante a migração em tempo real, o Google Cloud garante um tempo mínimo de interrupção, que costuma ser menos de um segundo. Se uma VM não estiver configurada para migração em tempo real, o Compute Engine encerrará a VM durante a manutenção do host. As VMs definidas para serem encerradas durante um evento de host são interrompidas e (opcionalmente) reiniciadas.
Quando migra uma VM em execução de um host para outro, o Google Cloud move o estado completo da VM da origem para o destino de uma maneira transparente ao SO convidado e a tudo que se comunique com ele. Há muitos componentes envolvidos em fazer isso funcionar perfeitamente, mas as etapas de alto nível são mostradas na ilustração a seguir:
O processo começa com uma notificação de que as VMs precisam ser movidas da máquina host atual. A notificação pode começar com uma mudança de arquivo indicando que uma nova versão de BIOS está disponível, uma manutenção de programação de operação de hardware ou um sinal automático de uma falha de hardware iminente.
O software de gerenciamento de cluster do Google Cloud vigia constantemente esses eventos e os programa com base em políticas que controlam os data centers, como taxas de utilização de capacidade e o número de VMs que apenas um cliente pode migrar de uma só vez.
Depois que uma VM é selecionada para migração, o Google Cloud envia uma notificação para o convidado informando que uma migração acontecerá em breve. Após um período de espera, um host de destino é selecionado e solicitado a configurar uma nova VM "de destino" vazia para receber a VM "de origem" de migração. A autenticação é usada para estabelecer uma conexão entre a origem e o destino.
Há três estágios envolvidos na migração da VM:
Bblecaute parcial na origem. A VM ainda está sendo executada na origem, enquanto a maioria dos estados é enviada da origem ao destino. Por exemplo, o Google Cloud copia toda a memória do convidado para o destino, enquanto rastreia as páginas que foram alteradas na origem. O tempo gasto no blecaute parcial é uma função do tamanho da memória do convidado e da taxa em que as páginas estão sendo alteradas.
Indisponível. Um momento muito breve em que a VM não está sendo executada em lugar algum, está pausada, e todo o estado restante necessário para começar a executar a VM no destino é enviado. A VM entra no estágio indisponível quando o envio de estado durante o blecaute parcial atinge um ponto de redução de retornos. Um algoritmo é usado para equilibrar o número de bytes da memória que está sendo enviada em relação à taxa em que a VM convidada está fazendo alterações.
Observação: durante eventos de indisponibilidade, o relógio do sistema parece adiantar até cinco segundos. Se um evento de indisponibilidade for superior a 5 segundos, o Google Cloud interromperá e ressincronizará o relógio usando um daemon incluído nos pacotes de convidado da VM.
Blecaute parcial no destino. A VM é executada na VM de destino. A VM de origem está presente e pode fornecer funcionalidades de suporte para a VM de destino. Por exemplo, até que a malha da rede tenha alcançado a nova localização da VM de destino, a VM de origem fornecerá serviços de encaminhamento para pacotes enviados à e recebidos da VM de destino.
Por fim, a migração está completa e o sistema exclui a VM de origem. Veja se a migração ocorreu nos registros da VM.
Processo de migração manual em tempo real
À medida que a carga de trabalho é executada, é recomendado mover as VMs para um nó ou grupo de nós diferente. Com o locatário individual, é possível mover as VMs para um grupo de nós ou nó de locatário individual específico. Se você mover uma VM para um grupo de nós, o Compute Engine determinará o nó em que ela será colocada. Para informações sobre locatário individual, consulte Visão geral sobre locatário individual.
Para mover VMs de locatário individual para um nó ou grupo de nós diferente, inicie manualmente uma migração em tempo real. Também é possível iniciar manualmente uma migração em tempo real para mover uma VM de vários locatários para um locatário individual. Para mais informações, consulte Migração em tempo real manual de VMs.
A seguir
Defina a Política de manutenção do host da VM para configurar as instâncias para migração em tempo real.
Leia dicas sobre como projetar um sistema robusto capaz de processar interrupções de serviço.