Pesquisar SafeKit

Alta Disponibilidade KVM com SafeKit: Instale o Módulo kvm.safe para Failover

Guia de Instalação Rápida de Alta Disponibilidade para KVM

Este guia explica como configurar um cluster mirror para KVM usando SafeKit, garantindo a comutação automática de falhas e a replicação síncrona sem a necessidade de armazenamento partilhado.

Para obter ajuda, pode usar SafeKit AI 🤖.

1. Visão Geral

  • Arquitetura: Utiliza um sistema de dois nós (Primário/Secundário).
  • Proteção de Dados: Implementa replicação síncrona em tempo real para perda zero de dados (RPO = 0).

2. Instalação

  • Software: Instale o motor SafeKit em ambos os servidores.
  • Módulo: Descarregue o módulo de aplicação pré-configurado kvm.safe.

3. Configuração

  • Consola Web: Configure as pastas específicas que contêm os ficheiros KVM.
  • Monitorização: Inicie a monitorização e proteção da aplicação KVM.

Limitações de Alta Disponibilidade SafeKit

Limite / RequisitoRazão e ImpactoAlternativa Recomendada
Tamanho da replicação: alguns TBsTempo de resincronização após falha (passo 3):
• Rede de 1 Gb/s ≈ 3 horas/TB
• Rede de 10 Gb/s ≈ 1 hora/TB (dependendo do desempenho de escrita do disco)
• Utilizar armazenamento partilhado externo (mais caro, mais complexo).
Número de ficheiros: < 1.000.000 de ficheiros• Desempenho do tempo de resincronização após uma falha (passo 3).
• Tempo necessário para comparar cada ficheiro entre os dois nós.
• Coloque os vários ficheiros a replicar num disco rígido virtual/máquina virtual.
• Apenas os ficheiros que representam o disco rígido virtual/máquina virtual serão replicados e resincronizados neste caso.
Capacidade de contingência: ≤ 32 máquinas virtuais• Cada máquina virtual é executada num módulo mirror independente.
• Máximo de 32 módulos mirror a funcionar no mesmo cluster.
• Utilizar um armazenamento externo partilhado e outra solução de agrupamento de máquinas virtuais (mais cara, mais complexa).
Arquitetura de rede: rede LAN/VLAN entre locais remotos• Comutação automática de falha do endereço IP virtual com 2 nós na mesma sub-rede.
• Boa largura de banda para resincronização (passo 3).
• Baixa latência para replicação síncrona: normalmente < 5 ms RTT; valores mais elevados devem ser validados em relação à taxa de escrita da aplicação.
• Se os dois nós estiverem em subredes diferentes (comum na nuvem), utilize outras opções de reencaminhamento: um balanceador de carga, CLIs do fornecedor de nuvem, BGP ou redirecionamento de DNS.
• Utilize soluções de cópia de segurança com replicação assíncrona para redes com alta latência.

Visão geral da solução SafeKit/KVM

A solução é descrita aqui: 💡 Alta Disponibilidade Simples Linux KVM sem Armazenamento Partilhado

Instalação da solução SafeKit/KVM no Linux (kvm.safe)

Pré-requisitos

  • KVM instalado em 2 nós Linux.
  • Aplicações críticas instaladas dentro de uma ou mais máquinas virtuais.
  • Máximo de 32 máquinas virtuais por anfitrião KVM.
  • O total de dados replicados é limitado a alguns terabytes — para além disso, o tempo de resincronização torna-se significativo.
  • Interconexão mínima de 1 Gb/s entre nós (10 Gb/s recomendado para resincronização mais rápida).
  • A redundância de IP requer que ambos os nós estejam na mesma LAN ou LAN estendida (L2) — redes L3 com encaminhamento não são suportadas (exceto com balanceadores de carga em nuvem 🛠️).

Instalação de pacotes no Linux

  • Instale a versão gratuita do SafeKit em 2 nós Linux. Nota: a versão de avaliação gratuita inclui todas as funcionalidades SafeKit. No final do período de avaliação, pode ativar as chaves de licença permanentes sem desinstalar o pacote.
  • Após a transferência do pacote safekit_xx.bin, execute-o para extrair o rpm e o script safekitinstall e, em seguida, execute o script safekitinstall
  • Responda sim à configuração automática da firewall
  • Defina a palavra-passe para a consola web e para o utilizador admin predefinido. Defina a mesma palavra-passe em todos os nós.

Descarregue SafeKit (Linux) >

Instalação do módulo no Linux

  • Faça o download do módulo kvm.safe.
    O módulo é gratuito. Contém os ficheiros userconfig.xml e os scripts de reinicialização.
  • Coloque kvm.safe em /opt/safekit/Application_Modules/generic/.

Descarregar kvm.safe (Linux) >

Configuração passo a passo da solução SafeKit/KVM

⚠️ A configuração KVM é apresentada com uma máquina virtual denominada VM1 e contém a aplicação a reiniciar em caso de falha.

⚠️ Terá de repetir esta configuração para todas as máquinas virtuais que deseja replicar e reiniciar.

1. Pré-requisitos

A imagem da máquina virtual VM1 encontra-se no ficheiro /var/lib/libvirt/images/vm1.qcow2. Antes de configurar SafeKit, deve executar a seguinte configuração para colocar a máquina virtual num diretório específico da que será replicado pelo SafeKit.

No nó 1:

  • Parar a vm1:

    virsh shutdown vm1
    
  • Crie um diretório vm1/:

    mkdir -p /var/lib/libvirt/images/vm1/
    
  • Copie a imagem da vm1 para o novo local:

    cp -a /var/lib/libvirt/images/vm1.qcow2 /var/lib/libvirt/images/vm1/
    

A imagem original vm1 pode ser eliminada assim que os testes com a nova localização forem bem-sucedidos.

  • Edite o ficheiro de configuração vm1:

    EDITOR=vi virsh edit vm1
    

E altere a linha:

    <source file='/var/lib/libvirt/images/vm1.qcow2'>

por:

    <source file='/var/lib/libvirt/images/vm1/vm1.qcow2'>
  • Defina a opção de cache como ’nenhuma’ no mesmo ficheiro, para garantir a integridade dos dados em caso de falha:

    <disk type='file' device='disk'> <driver name='qemu' type='qcow2' **cache='none'** />
    
  • Feche o ficheiro de configuração vm1

  • Desativar o arranque automático da vm1:

    virsh autostart vm1 --disable
    
  • Crie um ficheiro de configuração vm1.xml para vm1:

    virsh dumpxml vm1 > vm1.xml
    

No nó 2:

  • Copie o ficheiro de configuração vm1.xml do nó 1. Nota: sempre que a configuração vm1 for alterada no nó 1, deve reaplicar a nova configuração no nó 2.

  • Crie a vm1, mas não a inicie:

    virsh define vm1.xml
    
  • Desativar o arranque automático vm1:

    virsh autostart vm1 --disable
    
  • Crie o diretório para a localização da imagem:

    mkdir -p /var/lib/libvirt/images/vm1/
    

2. Inicie a consola SafeKit

  • Inicie a consola web num navegador, num dos nós do cluster, ligando-se a http://localhost:9010.
  • Introduza admin como nome de utilizador e a palavra-passe definida durante a instalação.

Também é possível executar a consola num navegador, numa estação de trabalho externa ao cluster.

⚠️ A configuração do SafeKit é feita em ambos os nós a partir de um único navegador.

ℹ️ Para proteger a consola web, consulte 🛠️ 11. Proteção do serviço web SafeKit no Guia do Utilizador.

Inicie a consola web SafeKit para configurar o cluster KVM

3. Configurar os endereços dos nós

  • Introduza os endereços IP dos nós, prima a Tab key para verificar a conectividade e preencha os nomes dos nós. Se node1 ou node2 tiverem uma cor vermelha, verifique a conectividade do navegador a ambos os nós e verifique a firewall em ambos os nós para 🛠️ resolução de problemas.
  • Em seguida, clique em Save and apply para guardar a configuração.
  • Verifique a mensagem Success ✅ em ambos os nós.
  • Se ocorrer uma Failure de configuração ❌ num nó, abra o acordeão ▼ desse nó e reveja as mensagens. Tenha em atenção que pode utilizar a IA SafeKit 🤖 para obter assistência.

ℹ️ Se desejar, pode adicionar uma nova LAN and nodes (primeiro ➕) para criar um segundo heartbeat e uma rede de replicação dedicada.

ℹ️ Se clicar em Advanced configuration, o ficheiro cluster.xml é apresentado. Este ficheiro é preenchido automaticamente pela consola e implementado nos nós.

Introduza os nós do cluster da KVM

4. Selecione um módulo

  • No New module, clique no módulo kvm.safe.

ℹ️ No banner azul no topo, node1 🛜 representa o nó de ligação da consola. Este nó reencaminha os pedidos para node2 quando necessário.

ℹ️ A consola procura por xxx.safe no diretório Application_Modules/generic/ no nó de ligação (node1) se tiver colocado um módulo lá durante a instalação.

Escolha o módulo para KVM

5. Configure o módulo

  • Escolha o arranque Automatic do módulo no arranque, sem demora.
  • Normalmente, tem uma única rede Heartbeat na qual a replicação é feita. No entanto, pode definir uma rede privada, se necessário (adicionando uma LAN no passo 3).
  • Introduza em VM_PATH o caminho raiz do diretório replicado (/var/lib/libvirt/images).
  • Introduza em VM_NAME o nome da máquina virtual (vm1).

Assumimos que os ficheiros VM1 estão em /var/lib/libvirt/images/vm1/ (ver pré-requisitos). Este diretório será replicado em tempo real pelo SafeKit.

ℹ️ Não é necessário configurar um endereço IP virtual. VM1 será reiniciada na KVM secundária com o seu endereço IP físico e este endereço IP será redirecionado.

Introduza os parâmetros KVM

6. Verificador personalizado para detetar avarias na máquina virtual

O verificador personalizado verifica se a VM está em execução (com o comando ’virsh domstate’). Se a VM não estiver em execução, o verificador personalizado reinicia automaticamente a VM no mesmo nó KVM ou noutro.

  • Clique em Checkers / Custom (ver imagem).
  • Resource name identifica a máquina virtual com um nome de recurso no SafeKit: custom.VM_NAME_check.
  • Com restart em Action, a VM é reiniciada no mesmo nó KVM. Após 3 reinícios sem sucesso em 24 horas, o módulo SafeKit kvm para no nó primário e ocorre uma comutação de contingência da VM para o nó secundário.
  • Se definir stopstart em Action, haverá uma comutação automática para o outro nó KVM assim que a máquina virtual não estiver em execução.

ℹ️ Para manutenção, se quiser parar a máquina virtual, o verificador personalizado irá reiniciá-la automaticamente. Para evitar isso, pode suspender temporariamente o verificador 🖼️. Ou pode removê-lo, eliminando a linha de configuração na consola.

Introduza os parâmetros do verificador personalizado KVM

7. Editar os scripts (opcional)

  • Não edite os scripts.

8. Criptografia da comunicação (opcional)

  • Mantenha a encriptação da comunicação entre os nós.

Criptografia de comunicação do módulo KVM

9. Guardar e aplicar

  • Save and apply a configuração e os scripts em ambos os nós.

Guarde e aplique a configuração do módulo KVM

10. Verifique se a configuração foi bem-sucedida

  • Verifique a mensagem Success ✅ em ambos os nós e clique em Monitor modules.
  • Se ocorrer uma Failure de configuração ❌ num nó, abra o acordeão ▼ desse nó e reveja as mensagens. Tenha em atenção que pode utilizar a IA SafeKit 🤖 para obter assistência.

Verifique o sucesso da configuração do módulo KVM

11. Inicie o nó com dados atualizados

  • Se o nó 1 tiver o diretório replicado atualizado para vm1/, selecione-o e ⋯ Force start ▶ As primary.

Quando o nó 2 for iniciado, todos os dados serão copiados do nó 1 para o nó 2.

⚠️ Se fizer a escolha errada, corre o risco de sincronizar dados desatualizados em ambos os nós.

⚠️ Também se assume que VM1 está parada no nó 1 para que SafeKit instale os mecanismos de replicação e, em seguida, inicie VM1 no script start_prim.

⚠️ Utilize Start para arranques subsequentes: SafeKit mantém o servidor mais atualizado. Iniciar As primary é um arranque especial na primeira vez ou durante operações excecionais.

Inicie como primário o nó KVM com os dados atualizados

12. Aguarde a transição para ALONE (verde)

  • O nó 1 deve atingir o estado ALONE (verde), o que significa que o script start_prim foi executado no nó 1.

⚠️ Se ALONE (verde) não for atingido ou se VM1 não for iniciado, analise o motivo com o registo do módulo 🖼️ do nó 1.

  • Clique no ícone de registo 🔍 do node1 para abrir o registo do módulo e procure mensagens de erro, como um verificador que deteta um erro e para o módulo.
  • Clique em start_prim no registo: as mensagens de saída do script são apresentadas à direita e os erros podem ser detetados, como VM1 iniciado incorretamente.
  • Utilize o SafeKit AI 🤖 para obter assistência com as mensagens de registo.

⚠️ Se o cluster estiver no estado WAIT (red) not uptodate, STOP (red) not uptodate, pare o nó WAIT e force o seu arranque como primário 🖼️.

O primeiro nó KVM inicia como primário e fica ALONE

13. Iniciar nó 2

  • ⋯ Start o nó 2 com o seu menu contextual.
  • Aguarde o SECOND estado (verde).

ℹ️

  • O nó 2 permanece no SECOND estado (laranja) enquanto resincroniza os diretórios replicados (cópia do nó 1 para o nó 2).
  • Isto pode demorar algum tempo, dependendo do tamanho dos ficheiros a resincronizar nos diretórios replicados e da largura de banda da rede.
  • Para ver o progresso da cópia, consulte o registo do módulo 🖼️ e os recursos de replicação 🖼️ do nó 2. Utilize a IA SafeKit 🤖 para obter assistência com as mensagens de registo.

Inicie o nó 2 KVM

14. Verifique se o cluster está operacional

  • Verifique se o cluster está verde/verde com VM1 a ser executada no nó PRIM e não no nó SECOND.

Apenas as alterações dentro dos ficheiros são replicadas em tempo real neste estado.

O nó KVM 2 é SECOND (verde)

15. Testes

  • Pare o nó PRIM, percorrendo o menu contextual e clicando em Stop.
  • Verifique se existe um failover no SECOND nó, que deverá ficar ALONE (verde).
  • Verifique com as ferramentas KVM se VM1 está a ser executada no nó 2.

⚠️ Se ALONE (verde) não for atingido no node2 ou se VM1 não for iniciada, analise o motivo com o registo do módulo 🖼️ do nó 2.

  • Clique no ícone de registo 🔍 do node2 para abrir o registo do módulo e procure mensagens de erro, como um verificador que deteta um erro e para o módulo.
  • Clique em start_prim no registo: as mensagens de saída do script são apresentadas à direita e os erros podem ser detetados, como VM1 iniciado incorretamente.
  • Utilize o SafeKit AI 🤖 para obter assistência com as mensagens de registo.

⚠️

  • Se tudo estiver bem, inicie o node1, que irá ressincronizar os diretórios replicados do node2.
  • Se as coisas correrem mal, pare node2 e force o nó 1 a iniciar como primário 🖼️, que será reiniciado com os seus dados localmente íntegros no momento da paragem.

ℹ️ Tenha em atenção que tem uma linha do 🖼️ 🕒 que pode ser útil para entender o que acontece no cluster.

Parar o módulo KVM no servidor PRIM

16. Se necessário, configure um verificador de divisão de rede

  • Consulte “Quais são os diferentes cenários em caso de isolamento de rede num cluster?” para saber se precisa de configurar um verificador de divisão de rede.
  • Vá para a configuração do módulo e clique em Checkers / Splitbrain (ver imagem) para editar os parâmetros do splitbrain.
  • Save and apply a nova configuração para a reimplantar em ambos os nós (o módulo deve estar parado em ambos os nós para guardar e aplicar).

Parâmetros :

  • Resource name identifica a testemunha com um nome de recurso: splitbrain.witness. Pode alterar este valor para identificar a testemunha.
  • Witness address é o argumento para um ping quando um nó passa de PRIM para ALONE ou de SECOND para ALONE. Altere este valor para o IP do testemunha (um elemento robusto, normalmente um router).
  • Nota: pode definir vários IPs separados por espaços em branco. Tenha em atenção que os endereços IP devem ser acessíveis a partir de um nó, mas não do outro, em caso de isolamento de rede.

Introduza os parâmetros de divisão de rede KVM

17. Replicar instantâneos

O diretório que contém os ficheiros XML da cópia de segurança é:

/var/lib/libvirt/qemu/snapshot/%VM_NAME%

onde VM_NAME é o nome da máquina virtual (vm1).

Nota: Se nenhuma cópia de segurança tiver sido criada, crie uma para gerar o diretório (caso contrário, a configuração SafeKit falhará).

Para o replicar:

  • Na configuração do módulo, clique em Advanced Configuration (ver imagem) para editar o userconfig.xml.

  • Insira as linhas abaixo na secção <rfs> do userconfig.xml:

    <replicated dir="/var/lib/libvirt/qemu/snapshot/%VM_NAME%" mode="read_only"> </replicated>
    
  • Save and apply a nova configuração para reimplantar o ficheiro userconfig.xml modificado em ambos os nós (o módulo deve ser parado em ambos os nós para guardar e aplicar).

  • Crie instantâneos no nó PRIM, seja através do virt-manager ou de uma linha de comandos:

    virsh snapshot-create-as vm1 snapshot-name
    

Nota: ao criar uma cópia de segurança através da linha de comandos, é necessário atualizar a visualização da cópia de segurança no virt-manager.

As cópias de segurança criadas no nó PRIM funcionam no nó 2 após a recuperação de falhas, mas não são listadas no nó 2.

  • Para importar uma cópia de segurança no nó 2, tem de executar o comando:

    virsh snapshot-create --redefine vm1 /var/lib/libvirt/qemu/snapshot/vm1/snapshot-name
    
  • A linha de comando para listar todas as cópias de segurança da vm1 é:

    virsh snapshot-list vm1
    

Introduza os parâmetros KVM

18. Apoio

  • Para obter suporte, faça 2 Snapshots SafeKit (2 ficheiros .zip), uma para cada nó.

ℹ️ Mais informações sobre o apoio aqui.

Tire capturas de ecrã da KVM para obter suporte

Demonstração de uma solução de alta disponibilidade ao nível da máquina virtual

Vídeo SafeKit: Agrupamento de Máquinas Virtuais com Hyper-V (5:15)

Neste vídeo, descubra como SafeKit implementa alta disponibilidade para Hyper-V sem a complexidade de uma SAN. Aprenda a configurar a replicação de máquinas virtuais entre dois nós para garantir uma comutação de falha perfeita para as suas cargas de trabalho virtualizadas críticas. Embora esta demonstração utilize Hyper-V no Windows, a solução funciona de forma idêntica com KVM no Linux.

Capítulos

  1. 🎬 Visão geral da arquitetura: 2 nós Hyper-V e 2 máquinas virtuais (0:49)
  2. 🎬 Configuração do cluster e dos módulos hyperv.safe (1:59)
  3. 🎬 Teste em direto: replicação de máquinas virtuais, migração e comutação automática em caso de falha (2:26)

Implementação Passo a Passo

🔍 Explore o SafeKit

Encontre informações sobre as funcionalidades, arquiteturas, vídeos, documentação e a versão de teste gratuita do SafeKit.

RecursoDescriçãoLigação
Principais característicasSaiba por que o SafeKit é uma solução de alta disponibilidade simples e económica.Descubra as principais funcionalidades
Casos de usoSaiba como o SafeKit mantém as aplicações e infraestruturas críticas disponíveis.Explore os casos de uso
Modelo de implementaçãoO SafeKit oferece alta disponibilidade sem a necessidade de uma SAN ou de armazenamento partilhado.Explore o modelo de implementação
Estratégias de alta disponibilidadeCompare a alta disponibilidade para máquinas virtuais com a alta disponibilidade para aplicações.Compare as duas estratégias
Especificações técnicasVerifique os requisitos técnicos e as limitações dos clusters SafeKit.Leia as especificações técnicas
VídeosAssista a demonstrações da configuração do SafeKit e da comutação automática de falha.Assista aos vídeos técnicos
ArquiteturaSaiba como o cluster mirror replica ficheiros em tempo real e lida com a comutação de falhas.Explore a arquitetura Mirror
ArquiteturaSaiba como o cluster farm equilibra o tráfego de rede e lida com a contingência.Explore a arquitetura Farm
Comparação de produtosCompare o SafeKit com os clusters de alta disponibilidade tradicionais.Compare as soluções
Recursos técnicosEncontre a documentação técnica, descarregue o SafeKit e aceda à versão de avaliação gratuita.Aceda à documentação e à versão de teste gratuita
Módulos da aplicaçãoUtilize os módulos SafeKit pré-configurados para configurar alta disponibilidade para as suas aplicações.Explore os módulos da aplicação
SafeKit AI Chat SafeKit AI