back_button

Recursos de Alta Disponibilidade (HA)

A função de Alta Disponibilidade é uma função que automaticamente “reinicia” (chamada de failover) uma máquina virtual em outro host funcionando normalmente quando um host físico falha. Portanto, é necessário fazer ajustes prévios no sistema operacional convidado da máquina virtual para que o sistema possa ser restaurado automaticamente.

Quais são as condições para usar o HA?

Para usar o HA com a versão HRPC KVM, as seguintes condições devem ser atendidas:

  1. Um data center virtual composto por três ou mais nós configurados de forma idêntica.
  2. Deve ser do tipo HCI ou do tipo 3-tier, pois é necessário armazenamento compartilhado (Ceph, ESF com ES).
  3. Deve haver capacidade reserva suficiente (especialmente memória) no equipamento. É importante que pelo menos a memória equivalente a um nó esteja livre no total.
    *Por exemplo, no caso de um data center virtual composto por três nós, apenas a memória de dois nós deve ser usada no total.
  4. Garanta que backups das máquinas virtuais sejam realizados.
    Recomendamos fortemente que você assine um contrato com o Backup Storage ou similar e configure backups regulares das suas máquinas virtuais.

Como habilitar a função HA?

Se você deseja habilitar a função HA, primeiro selecione o data center no painel à esquerda, abra o HA no painel central e clique em Grupo.

Clique no botão Criar no painel à direita, crie um ID de grupo HA e marque os hosts relacionados ao HA. Ao criar máquinas virtuais em hosts relacionados ao HA, você deve preparar pelo menos a memória reserva equivalente a um host físico. Se você estiver participando do HA com um total de quatro HRPCs equipados com 768GB de memória, as três máquinas restantes precisarão de 768GB de memória livre para que os outros dispositivos possam continuar operando mesmo se um HRPC sofrer uma falha física. Se você não marcar o grupo HA, ele será ignorado como alvo de HA, mesmo estando no mesmo data center.

Se um host for deliberadamente removido do grupo HA e a configuração “restrito” do grupo HA estiver marcada, as máquinas virtuais pertencentes a esse grupo HA não poderão ser iniciadas no host removido.

Se a opção “nofailback” estiver marcada, quando um nó físico com falha reiniciar e retornar, as máquinas virtuais não serão restauradas, mas continuarão rodando no destino. Se “nofailback” não estiver marcado, elas serão retornadas ao nó original por migração ao vivo, permitindo um gerenciamento rigoroso da colocação de hosts de nós e máquinas virtuais. No entanto, se o nó físico se tornar instável e for reiniciado repetidamente, o HA será ativado novamente e as máquinas virtuais serão reiniciadas repetidamente. Por esse motivo, recomendamos marcar a opção “nofailback”.

Além disso, embora a migração ao vivo seja um recurso que raramente falha, há uma interrupção interna momentânea que pode causar problemas em softwares em tempo real.

Como habilitar o HA para uma máquina virtual?

O HA do Proxmox não será aplicável a menos que a máquina virtual esteja sob gerenciamento de HA.

Para colocar uma máquina virtual sob gerenciamento de HA, selecione a máquina virtual e escolha “Gerenciar HA” no menu suspenso “Mais▼” no canto superior direito. Selecione o ID do grupo HA que você configurou acima no grupo, defina o estado desejado como “iniciado” e clique no botão Adicionar.

Esta máquina virtual agora está sob controle de HA.

O escopo da operação de HA varia dependendo do hipervisor. No VMware, quando o HA é habilitado em um data center virtual, ele afeta todas as máquinas virtuais no data center virtual, enquanto no XenOrchestra, afeta apenas as máquinas virtuais no pool que têm o HA habilitado e configuradas com “reiniciar”.

Relação entre reinício de manutenção de nós (hosts) em um grupo HA e máquinas virtuais

Quando um nó que faz parte de um grupo HA é reiniciado para manutenção (não devido a uma falha inesperada), o comportamento das máquinas virtuais será diferente dependendo se elas estão sob gerenciamento de HA ou não.

Máquinas virtuais sob gerenciamento de HAMigração ao vivo para outra máquina
Máquinas virtuais não gerenciadas por HAEla desliga automaticamente e permanece desligada após o reinício

Coluna

Limitações da função HA

As funções de HA têm limitações, e há problemas que podem ocorrer ao usar o HA.

  1. Reinício inesperado de uma máquina virtual
  2. Corrupção de dados da máquina virtual

Simplificando, o HA é a capacidade de iniciar uma máquina virtual a partir de outro nó quando um nó falha, mas isso é como funciona sob uma perspectiva divina, e a lógica real do software precisa ser implementada de maneira completamente diferente.

Primeiro, não é possível definir estritamente o que constitui uma “falha” em um nó específico entre todos os três nós (ou seja, nó A, nó B e nó C). O HA é alcançado fazendo com que cada nó trabalhe em coordenação com os outros.

Quando o nó A perde comunicação com o nó B, não está claro se ocorreu uma falha no nó B ou se a comunicação foi simplesmente perdida entre o nó A e o nó B. Se o nó A pode se comunicar com o nó C do seu ponto de vista, é concebível que uma falha possa ter ocorrido no nó B.

No entanto, se os dados das máquinas virtuais hospedadas no nó B estão sendo constantemente atualizados no armazenamento compartilhado, o nó B pode estar completamente isolado.

No exemplo acima, se os nós A e C estão se comunicando, há uma alta possibilidade de que o nó B tenha falhado. Portanto, os nós A e C tentarão inicializar as máquinas virtuais hospedadas no nó B por conta própria.

No entanto, o nó B pode não ter falhado, mas apenas estar isolado. Se um nó determinar que está isolado, ele desligará imediatamente as VMs que hospeda em preparação para que os nós A e C possivelmente iniciem, o que causa o reinício inesperado mencionado acima.

Então, o que acontece se o nó B não desligar?

Se a mesma máquina virtual estiver rodando em dois lugares, no nó B e em outro nó, o disco virtual da máquina virtual será corrompido instantaneamente, o que levará à destruição dos dados da máquina virtual mencionada acima.

Portanto, sua escolha é reiniciar ou destruir seus dados.

O HA precisa coordenar entre cada nó para determinar se ele está fora do ar, apenas perdeu comunicação ou está lento.

Se as duas falhas acima forem mutuamente exclusivas, o que você quer evitar é a corrupção de dados, então desligue imediatamente.

Essa decisão é tomada em intervalos, e o Proxmox faz isso a cada 2 minutos. Se não houver resposta por 2 minutos, determina-se que “o host falhou”. Portanto, no mínimo, o tempo de inatividade será de 2 minutos + o tempo que leva para a máquina virtual inicializar (na realidade, levará mais tempo).

No entanto, se a velocidade do nó diminuir, a memória for trocada, a recuperação de memória pelo driver de ballooning causar uma lentidão temporária, ou a escrita no armazenamento ficar lenta, os dois minutos podem passar rapidamente e o desligamento pode não ser possível a tempo. Como o que deve ser protegido são os dados, o sistema usa automaticamente um WatchDog Timer ou similar, e nuvens privadas rodam em hardware equipado com um dispositivo que pode reiniciar automaticamente o kernel mesmo se o kernel do host parar de responder.