Durante um evento de manutenção planejada para o hardware subjacente de uma instância de máquina virtual (VM) ou de bare metal, o servidor host fica indisponível. Para manter uma instância em execução durante um evento de host, o Compute Engine executa uma migração em tempo real da instância para outro servidor de 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 instância ou modificar qualquer uma das propriedades da instância, como endereços IP, metadados, dados de armazenamento em blocos, estado do aplicativo ou configurações de rede.
A migração em tempo real mantém as instâncias 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 sistema operacional (SO) 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 a falha for detectada antes de uma falha completa do servidor, o Compute Engine vai realizar uma migração em tempo real preventiva da instância para um novo servidor host. Se o hardware falhar completamente ou impedir a migração em tempo real, a instância será encerrada e reiniciada automaticamente.
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 mudar a política de manutenção do host, consulte Definir a política de manutenção do host da VM.
Processo de migração em tempo real e discos SSD locais
O Compute Engine pode migrar instâncias em tempo real com discos SSD locais anexados (exceto instâncias Z3). O Compute Engine move as instâncias de VM com os dados do 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:
- Instâncias bare metal. As instâncias bare metal C3 e X4 não oferecem suporte à
migração em tempo real. O comportamento de manutenção dessas instâncias é definido como
TERMINATE
eRESTART
, respectivamente. - A maioria das instâncias de VM confidencial. A migração em tempo real para instâncias de VM confidenciais só é possível em tipos de máquina N2D com plataformas de CPU AMD EPYC Milan que executam AMD SEV. Todas as outras instâncias de VM confidenciais não oferecem suporte à migração em tempo real e precisam ser configuradas para serem interrompidas e, opcionalmente, reiniciadas durante um evento de manutenção do host. 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 oferece uma notificação de 60 minutos antes que uma instância de VM com uma GPU anexada seja interrompida. Para saber mais sobre esses avisos de eventos de manutenção, leia Como receber notificações de migração em tempo real.
Para saber mais sobre como lidar com a manutenção do host com GPUs, leia Como lidar com a manutenção do host na documentação de GPUs.
- Cloud TPUs. Os Cloud TPUs não são compatíveis com a migração em tempo real.
- VMs otimizadas para armazenamento. As VMs Z3 não são compatíveis com a 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 Compute Engine envia uma notificação para que você possa preparar as cargas de trabalho e os aplicativos para essa interrupção da migração em tempo real. 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 uma VM precisa ser movida 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 vai 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, a VM de origem é pausada, e todo o estado restante necessário para começar a executar a VM no destino é enviado. A VM entra no estágio de blecaute quando o envio de mudanças de estado durante o estágio de blecaute parcial atinge um ponto de retornos decrescentes. Um algoritmo é usado para equilibrar o número de bytes da memória que está sendo enviado 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 vai interromper e sincronizar 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 oferecer suporte à VM de destino. Por exemplo, até que o fabric de rede se atualize com o novo local da VM de destino, a VM de origem fornece serviços de encaminhamento de pacotes para e da VM de destino.
Por fim, a migração está completa e o sistema exclui a VM de origem. Confira se a migração ocorreu nos registros do Cloud Logging da sua VM.
Migração em tempo real de VMs de locatário único
À medida que a carga de trabalho é executada, é recomendado mover as VMs para um nó ou grupo de nós diferente. 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 remover 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 em um host de vários locatários para um nó de locatário individual. Para mais informações, consulte Migrar VMs em tempo real manualmente.
A seguir
Defina as opções da 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.