Migração em tempo real

O Compute Engine oferece migração em tempo real para manter as instâncias de máquina virtual em execução mesmo quando ocorre um evento do sistema host, como uma atualização de software ou hardware. O Compute Engine migra em tempo real as instâncias em execução para outro host na mesma zona em vez de exigir que as VMs sejam reinicializadas. Isso permite que o Google realize manutenção integral para manter a infraestrutura protegida e confiável sem interromper nenhuma VM. Quando uma VM está programada para ser migrada em tempo real, o Google notifica o convidado de que uma migração está prestes a acontecer.

A migração em tempo real mantém suas instâncias em execução durante:

  • upgrades e manutenção de infraestrutura regulares;
  • manutenção da rede e da rede elétrica nos data centers;
  • Hardware com falha, como memória, CPU, placas de interface de rede, discos, energia e assim por diante. Isso é feito com base no melhor esforço. Se um hardware falha completamente ou impede a migração em tempo real, a VM falha e reinicia automaticamente e um hostError é registrado.
  • Upgrades da BIOS e do SO do host.
  • upgrades relacionados à segurança, com a necessidade de responder rapidamente;
  • mudanças na configuração do sistema, incluindo alteração do tamanho da partição raiz do host, para o armazenamento da imagem e dos pacotes do host.

A migração em tempo real não altera nenhum atributo ou propriedade da própria VM. O processo de migração em tempo real apenas transfere uma VM em execução de uma máquina de host para outra na mesma zona. Todas as propriedades e atributos da VM permanecem inalterados, incluindo endereços IP internos e externos, metadados de instâncias, dados de armazenamento em blocos e volumes, sistema operacional e estado do aplicativo, configurações de rede, conexões de rede e assim por diante.

Como funciona o processo de migração em tempo real?

Quando o Google migra uma instância de VM em execução de um host para outro, ele move o estado completo da instância da origem para o destino de uma maneira transparente para o sistema operacional convidado e qualquer um que se comunique com ele. Existem muitos componentes envolvidos em fazer isso funcionar perfeitamente, mas as etapas de alto nível estão ilustradas aqui:

Migrar uma VM e cada um dos recursos dela para um novo sistema host
            sem exigir que o sistema operacional convidado seja reiniciado.
Componentes da migração em tempo real

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 alteração de arquivo indicando que uma nova versão da 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 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 um único cliente pode migrar de uma só vez.

Depois que uma VM é selecionada para migração, o Google 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:

  • Durante o desligamento parcial na pré-migração, a VM ainda está sendo executada na origem enquanto a maioria dos estados é enviada da origem para o destino. Por exemplo, o Google copia toda a memória do convidado para o destino, enquanto rastreia as páginas que foram alteradas na origem. O tempo gasto no desligamento parcial na pré-migração é uma função do tamanho da memória do convidado e da taxa em que as páginas estão sendo alteradas.

  • Durante o blecaute, que é um momento muito breve quando a VM não está sendo executada em lugar algum, ela está em pausa, 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 estado durante o período de desligamento parcial na pré-migração 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.

  • Durante o blecaute parcial na pós-migração, 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 de rede alcance a nova localização da VM de destino, a VM de origem fornecerá serviços de encaminhamento para pacotes provenientes da VM de destino e destinados a ela.

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. A migração em tempo real é um componente essencial da nossa plataforma, de modo que o Google a testa continuamente com um alto nível de escrutínio. Durante o teste, utilizamos injeção de falhas para acionar falhas em todos os pontos de interesse do algoritmo de migração. Geramos falhas ativas e passivas para cada componente. Alcançar este processo complexo e multifacetado exige integração profunda em toda a infraestrutura e um poderoso conjunto de processos de programação, articulação e automação.

Migração em tempo real e GPUs

Instâncias com GPUs anexadas não podem ser migradas em tempo real. Elas precisam ser configuradas para serem interrompidas e, opcionalmente, reiniciadas. 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.

Migração em tempo real e SSDs locais

O Compute Engine também pode migrar em tempo real instâncias com SSDs locais anexados, movendo as VMs junto com o SSD local para uma nova máquina antes de qualquer manutenção planejada.

Migração em tempo real para instâncias preemptivas

Não é possível configurar uma instância preemptiva para realizar a migração em tempo real. Por padrão, o comportamento de manutenção de instâncias preemptivas é sempre definido como TERMINATE, e não é possível alterar essa opção. Como não é possível definir a opção de reinicialização automática para instâncias preemptivas, reinicie manualmente essas instâncias novamente na página Detalhes das instâncias de VM após forçar a interrupção delas.

  1. Acesse a página Instâncias de VMs.
  2. Selecione sua instância preemptiva.
  3. Na parte superior da página Detalhes da instância de VM, clique em Iniciar.

Se você precisar alterar sua instância para não ser mais preemptiva, desconecte 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 preempção.

A seguir