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 o failover automático e a replicação síncrona sem a necessidade de armazenamento compartilhado.

Para obter ajuda, você 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 a 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: Baixe o módulo de aplicativo pré-configurado kvm.safe.

3. Configuração

  • Console da Web: configure as pastas específicas que contêm os arquivos KVM.
  • Monitoramento: Inicie o monitoramento e a proteção do aplicativo KVM.

Limitações SafeKit de Alta Disponibilidade

Limite/RequisitoMotivo e ImpactoAlternativa recomendada
Tamanho da replicação: alguns TBsTempo de resincronização após falha (etapa 3):
• Rede de 1 Gb/s ≈ 3 horas/TB
• Rede de 10 Gb/s ≈ 1 hora/TB (dependendo do desempenho de gravação do disco)
• Usar armazenamento compartilhado externo (mais caro, mais complexo).
Contagem de arquivos: < 1.000.000 de arquivos• Desempenho do tempo de resincronização após uma falha (etapa 3).
• Tempo necessário para comparar cada arquivo entre os dois nós.
• Coloque os vários arquivos a serem replicados em um disco rígido virtual/máquina virtual.
• Apenas os arquivos que representam o disco rígido virtual/máquina virtual serão replicados e resincronizados neste caso.
Capacidade de failover: ≤ 32 VMs• Cada VM é executada em um módulo mirror independente.
• Máximo de 32 módulos mirror em execução no mesmo cluster.
• Utilize um armazenamento compartilhado externo e outra solução de cluster de máquinas virtuais (mais cara e mais complexa).
Arquitetura de rede: rede LAN/VLAN entre locais remotos• Failover automático 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 altos devem ser validados em relação à taxa de gravação do aplicativo.
• Se os dois nós estiverem em sub-redes diferentes (comum na nuvem), use outras opções de redirecionamento: um balanceador de carga, CLIs de provedor de nuvem, BGP ou redirecionamento de DNS.
• Utilize soluções de backup 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 de KVM Linux sem Armazenamento Compartilhado

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 em uma ou mais máquinas virtuais.
  • Máximo de 32 máquinas virtuais por host KVM.
  • Os dados replicados totais são limitados a alguns terabytes — além disso, o tempo de resincronização torna-se significativo.
  • Interconexão mínima de 1 Gb/s entre os nós (10 Gb/s recomendada para resincronização mais rápida).
  • O failover de IP requer que ambos os nós estejam na mesma LAN ou LAN estendida (L2) — redes L3 roteadas 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. Observação: a avaliação gratuita inclui todos os recursos SafeKit. Ao final da avaliação, você pode ativar chaves de licença permanentes sem desinstalar o pacote.
  • Após o download 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 do firewall
  • Defina a senha para o console da web e o usuário padrão admin. Defina a mesma senha em todos os nós.

Baixar SafeKit (Linux) >

Instalação do módulo no Linux

  • Baixe o módulo kvm.safe.
    O módulo é gratuito. Ele contém os arquivos userconfig.xml e os scripts de reinicialização.
  • Coloque kvm.safe em /opt/safekit/Application_Modules/generic/.

Baixar kvm.safe (Linux) >

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

⚠️ A configuração KVM é apresentada com uma máquina virtual chamada VM1 e contém o aplicativo a ser reiniciado em caso de falha.

⚠️ Você terá que 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 está no arquivo /var/lib/libvirt/images/vm1.qcow2. Antes de configurar SafeKit, você deve executar a seguinte configuração para colocar a máquina virtual em um diretório específico da vm1 que será replicado pelo SafeKit.

No nó 1:

  • Parar vm1:

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

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

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

A imagem original vm1 pode ser excluída assim que os testes com o novo local forem bem-sucedidos.

  • Edite o arquivo 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 arquivo, para garantir a integridade dos dados em caso de falha:

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

  • Desativar o início automático da vm1:

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

    virsh dumpxml vm1 > vm1.xml
    

No nó 2:

  • Copie o arquivo de configuração vm1.xml do nó 1. Observação: sempre que a configuração vm1 for alterada no nó 1, você deverá reaplicar a nova configuração no nó 2.

  • Crie vm1, mas não a inicie:

    virsh define vm1.xml
    
  • Desativar o início automático vm1:

    virsh autostart vm1 --disable
    
  • Crie o diretório para o local da imagem:

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

2. Inicie o console SafeKit

  • Inicie o console da web em um navegador em um nó do cluster, conectando-se a http://localhost:9010.
  • Insira admin como nome de usuário e a senha definida durante a instalação.

Você também pode executar o console em um navegador em uma 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 o console da web, consulte 🛠️ 11. Protegendo o serviço da web SafeKit no Guia do Usuário.

Inicie o console web SafeKit para configurar o cluster KVM

3. Configurar endereços de nós

  • Insira os endereços IP do nó, pressione a Tab key para verificar a conectividade e preencha os nomes dos nós. Se node1 ou node2 estiverem em vermelho, verifique a conectividade do navegador com ambos os nós e verifique o firewall em ambos os nós para 🛠️ solucionar problemas.
  • Em seguida, clique em Save and apply para salvar a configuração.
  • Verifique a mensagem Success ✅ em ambos os nós.
  • Se ocorrer uma Failure de configuração ❌ em um nó, abra o acordeão ▼ desse nó e revise as mensagens. Observe que você pode usar a IA SafeKit 🤖 para obter assistência.

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

ℹ️ Se você clicar em Advanced configuration, o arquivo cluster.xml será exibido. Este arquivo é preenchido automaticamente pelo console e implantado nos nós.

Insira os nós do cluster KVM

4. Selecione um módulo

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

ℹ️ No banner azul na parte superior, 🛜 node1 representa o nó de conexão do console. Este nó retransmite solicitações para node2 quando necessário.

ℹ️ O console procura por xxx.safe no diretório Application_Modules/generic/ no nó de conexão (node1) se você colocou um módulo lá durante a instalação.

Escolha o módulo para KVM

5. Configure o módulo

  • Escolha o início Automatic do módulo na inicialização sem atraso.
  • Normalmente, você tem uma única rede Heartbeat na qual a replicação é feita. Mas, você pode definir uma rede privada, se necessário (adicionando uma LAN na etapa 3).
  • Insira em VM_PATH o caminho raiz do diretório replicado (/var/lib/libvirt/images).
  • Insira em VM_NAME o nome da máquina virtual (vm1).

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

ℹ️ Você não precisa configurar um endereço IP virtual. VM1 será reiniciada no KVM secundário com seu endereço IP físico, e esse endereço IP será redirecionado.

Insira os parâmetros KVM

6. Verificador personalizado para detetar o mau funcionamento da 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 no outro.

  • Clique em Checkers / Custom (veja a 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 reinicializações malsucedidas em 24 horas, o módulo SafeKit kvm para no nó primário e ocorre um failover da VM no nó secundário.
  • Se você definir stopstart em Action, haverá um failover direto no outro nó KVM assim que a VM não estiver em execução.

ℹ️ Para manutenção, se você quiser parar a máquina virtual, o verificador personalizado a reiniciará automaticamente. Para evitar isso, você pode suspender temporariamente o verificador 🖼️. Ou você pode removê-lo excluindo a linha de configuração no console.

Insira os parâmetros do verificador personalizado KVM

7. Editar scripts (opcional)

  • Não edite os scripts.

8. Criptografia de comunicação (opcional)

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

Criptografia de comunicação do módulo KVM

9. Salvar e aplicar

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

Salve 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 ❌ em um nó, abra o acordeão ▼ desse nó e revise as mensagens. Observe que você pode usar a IA SafeKit 🤖 para obter assistência.

Verifique se a configuração do módulo KVM foi bem-sucedida

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 você fizer a escolha errada, corre o risco de sincronizar dados desatualizados em ambos os nós.

⚠️ Também se presume 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.

⚠️ Use Start para inícios subsequentes: SafeKit mantém o servidor mais atualizado. Iniciar As primary é um início especial na primeira vez ou durante operações excepcionais.

Inicie o nó KVM como primário 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 log do módulo 🖼️ do nó 1.

  • Clique no ícone de log 🔍 do node1 para abrir o log do módulo e procure mensagens de erro, como um verificador que detecta um erro e interrompe o módulo.
  • Clique em start_prim no log: as mensagens de saída do script são exibidas à direita e os erros podem ser detectados, como VM1 iniciada incorretamente.
  • Use o SafeKit AI 🤖 para obter ajuda com as mensagens de log.

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

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

13. Iniciar o 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).
  • Isso pode levar algum tempo, dependendo do tamanho dos arquivos a serem resincronizados nos diretórios replicados e da largura de banda da rede.
  • Para ver o progresso da cópia, consulte o log do módulo 🖼️ e os recursos de replicação 🖼️ do nó 2. Use o SafeKit AI 🤖 para obter assistência com as mensagens de log.

Inicie o nó 2 KVM

14. Verifique se o cluster está operacional

  • Verifique se o cluster está verde/verde com VM1 em execução no nó PRIM e não em execução no nó SECOND.

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

O nó KVM 2 é SECOND (verde)

15. Testes

  • Pare o nó PRIM rolando para baixo no menu contextual e clicando em Stop.
  • Verifique se há um failover no SECOND nó, que deve ficar ALONE (verde).
  • Verifique com as ferramentas KVM se VM1 está sendo 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 log do módulo 🖼️ do nó 2.

  • Clique no ícone de log 🔍 do node2 para abrir o log do módulo e procure mensagens de erro, como um verificador detectando um erro e interrompendo o módulo.
  • Clique em start_prim no log: as mensagens de saída do script são exibidas à direita e os erros podem ser detectados, como VM1 iniciada incorretamente.
  • Use o SafeKit AI 🤖 para obter ajuda com as mensagens de log.

⚠️

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

ℹ️ Observe que você tem uma 🖼️ linha do tempo 🕒 que pode ser útil para entender o que acontece no cluster.

Pare o módulo KVM no servidor PRIM

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

  • Consulte “Quais são os diferentes cenários em caso de isolamento de rede em um cluster?” para saber se você precisa configurar um verificador de divisão de rede.
  • Acesse a configuração do módulo e clique em Checkers / Splitbrain (veja a imagem) para editar os parâmetros do splitbrain.
  • Save and apply a nova configuração para reimplementá-la em ambos os nós (o módulo deve ser interrompido em ambos os nós para salvar e aplicar).

Parâmetros :

  • Resource name identifica a testemunha com um nome de recurso: splitbrain.witness. Você pode alterar esse 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 com o IP da testemunha (um elemento robusto, normalmente um roteador).
  • Observação: você pode definir vários IPs separados por espaços em branco. Observe que os endereços IP devem ser acessíveis a partir de um nó, mas não do outro, no caso de isolamento de rede.

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

17. Replicando snapshots

O diretório que contém os arquivos XML do snapshot é:

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

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

Observação: Se nenhum snapshot tiver sido criado, crie um para gerar o diretório (caso contrário, a configuração SafeKit falhará).

Para replicar:

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

  • Insira as linhas abaixo na seçã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 arquivo userconfig.xml modificado em ambos os nós (o módulo deve ser interrompido em ambos os nós para salvar e aplicar).

  • Crie snapshots no nó PRIM, seja através do virt-manager ou de uma linha de comando:

    virsh snapshot-create-as vm1 snapshot-name
    

Observação: ao criar um snapshot com uma linha de comando, você precisa atualizar a visualização do snapshot no virt-manager.

As capturas de tela criadas no nó PRIM ficam operacionais no nó 2 após o failover, mas não são listadas no nó 2.

  • Para importar um snapshot no nó 2, você deve executar o comando:

    virsh snapshot-create --redefine vm1 /var/lib/libvirt/qemu/snapshot/vm1/snapshot-name
    
  • O comando para listar todos os snapshots da vm1 é:

    virsh snapshot-list vm1
    

Insira os parâmetros KVM

18. Suporte

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

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

Tire capturas de tela do KVM para obter suporte

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

Vídeo SafeKit: Agrupamento em cluster no nível da máquina virtual 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 o failover contínuo para suas cargas de trabalho virtualizadas críticas. Embora esta demonstração use 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. 🎬 Configurando o cluster e os módulos hyperv.safe (1:59)
  3. 🎬 Teste ao vivo: replicação de VM, migração e failover automático em caso de falha (2:26)

Implementação passo a passo

🔍 Explore o SafeKit

Encontre informações sobre os recursos, as arquiteturas, os vídeos, a documentação e a avaliação gratuita do SafeKit.

RecursoDescriçãoLink
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 a infraestrutura críticas disponíveis.Explore os casos de uso
Modelo de implantaçãoO SafeKit oferece alta disponibilidade sem a necessidade de uma SAN ou armazenamento compartilhado.Explore o modelo de implantação
Estratégias de alta disponibilidadeCompare a alta disponibilidade para máquinas virtuais com a alta disponibilidade para aplicativos.Compare as duas estratégias
Especificações técnicasVerifique os requisitos técnicos e as limitações dos clusters do SafeKit.Leia as especificações técnicas
VídeosAssista a demonstrações da configuração do SafeKit e do failover automático.Assista aos vídeos técnicos
ArquiteturaSaiba como o cluster mirror replica arquivos em tempo real e lida com o failover.Explore a arquitetura Mirror
ArquiteturaSaiba como o cluster farm equilibra o tráfego de rede e lida com o failover.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, baixe o SafeKit e acesse a versão de teste gratuita.Acesse a documentação e a versão de teste gratuita
Módulos de aplicaçãoUse os módulos pré-configurados do SafeKit para configurar alta disponibilidade para seus aplicativos.Explore os módulos do aplicativo
SafeKit AI Chat SafeKit AI