Como automatizar failover NVMe-oF e DRBD no Proxmox
Aprenda a configurar alta disponibilidade de storages NVMe em clusters Proxmox usando DRBD e multipathing NVMe-oF para garantir redundância sem perda de dados.
Resumo
- O NVMe-oF transporta comandos NVMe por redes de alta velocidade permitindo latência próxima ao disco local.
- O DRBD espelha blocos em tempo real entre nós garantindo consistência síncrona ou assíncrona.
- O multipathing unifica caminhos redundantes de rede prevenindo quedas brutas de armazenamento.
- A automação do failover no Proxmox evita intervenção manual durante falhas críticas de infraestrutura.
- A correlação entre telemetria de hardware e heartbeat previne cenários de split-brain.
O desafio da alta disponibilidade em storages NVMe
Manter storages rápidos e seguros em ambientes de virtualização é um dos maiores malabarismos que um engenheiro de infraestrutura enfrenta no dia a dia. Quando falamos de discos NVMe, que entregam velocidades de leitura e escrita impressionantes, qualquer gargalo na rede ou falha de hardware pode derrubar dezenas de máquinas virtuais instantaneamente. Na prática, isso significa que não basta apenas ter hardware veloz; precisamos garantir que o dado gravado em um servidor seja copiado de forma instantânea para outro local seguro, sem engasgos ou perda de pacotes.
Em clusters Proxmox, o objetivo principal é fazer com que, caso um servidor físico morra de repente, as máquinas virtuais que rodavam nele acordem em outro hardware em poucos segundos, com o menor impacto possível para o usuário final. Para alcançar essa mágica sem perder dados, combinamos duas tecnologias poderosas: o NVMe-oF para tráfego rápido de blocos e o DRBD para replicação síncrona de dados. Antes de avançarmos para a montagem prática, vale lembrar a importância de manter um ambiente monitorado, tal como discutimos em estratégias de monitoramento preditivo de infraestrutura com Prometheus.
Entendendo o NVMe-oF e o DRBD na prática
O NVMe-oF, ou NVMe over Fabrics, é basicamente a tecnologia que permite que comandos de disco NVMe viajem pela rede de computadores em vez de ficarem presos diretamente na placa-mãe do servidor. Na prática, ele estende o barramento ultra-rápido do NVMe para cabos de rede de alta performance, como InfiniBand ou Ethernet com RDMA. Isso faz com que acessar um disco remoto pareça quase tão rápido quanto acessar um disco conectado fisicamente dentro do próprio computador.
Por outro lado, o DRBD funciona como um espelho de disco em rede. Ele intercepta cada pedacinho de dado que o sistema operacional tenta gravar no disco principal e envia uma cópia exata pela rede para um segundo servidor em tempo real. Se o primeiro servidor pegar fogo ou perder energia, o segundo servidor assume a operação imediatamente porque já possui uma cópia idêntica e atualizada de todos os blocos de dados. Essa redundância estrutural lembra os cuidados que tomamos em sistemas críticos, analogamente aos princípios de diagnóstico de falhas em barramentos físicos industriais.
Configurando a camada de transporte NVMe-oF
Para começar a estruturar nossa redundância de dados, precisamos preparar os nós do Proxmox para se comunicarem via NVMe-oF utilizando o protocolo TCP ou RDMA. O primeiro passo consiste em carregar os módulos de kernel necessários em todos os nós do cluster e garantir que o serviço de descoberta enxogue os storages disponíveis na rede.
A execução dos comandos abaixo deve ser feita diretamente no terminal de cada nó do Proxmox para habilitar os drivers de transporte e conectar o iniciador NVMe aos storages remotos:
modprobe nvme
modprobe nvme-fabrics
modprobe nvme-tcp
nvme discover -t tcp -a 192.168.100.50
nvme connect-all -t tcp -a 192.168.100.50Com esses comandos, o Proxmox passa a enxergar o disco remoto NVMe como se fosse um dispositivo local conectado às controladoras do próprio servidor. O uso de multipathing garante que, se uma das placas de rede falhar, o tráfego migre automaticamente para a interface secundária sem derrubar as conexões ativas.
Implementando o espelhamento síncrono com DRBD
Com os discos NVMe expostos e conectados via rede, o próximo passo é criar a camada de replicação síncrona utilizando o DRBD. Esta ferramenta atua diretamente na camada de blocos do Linux, garantindo que qualquer alteração feita no volume primário seja imediatamente confirmada apenas após a gravação bem-sucedida no nó secundário.
Abaixo temos um exemplo de arquivo de configuração para o recurso DRBD que gerencia nosso volume de armazenamento compartilhado entre dois nós do Proxmox:
resource r0 {
protocol C;
disk {
c-plan-ahead 512;
c-fill-target 24M;
c-max-rate 720M;
}
net {
allow-two-primaries no;
rr-conflict disconnect;
}
on proxmox-node1 {
device /dev/drbd0;
disk /dev/nvme0n1;
address 192.168.200.10:7788;
meta-disk internal;
}
on proxmox-node2 {
device /dev/drbd0;
disk /dev/nvme0n1;
address 192.168.200.20:7788;
meta-disk internal;
}
}Após criar esse arquivo de configuração em ambos os servidores, inicializamos o recurso executando os comandos de ativação e formatação do dispositivo lógico resultante:
drbdadm create-md r0
drbdadm up r0
drbdadm primary --force r0
mkfs.ext4 /dev/drbd0Essa estrutura síncrona garante que o cluster Proxmox tenha sempre um bloco de dados perfeitamente íntegro pronto para ser montado em caso de falha de hardware imprevista.
Para garantir que todo o ecossistema de hardware e sensores responda de maneira saudável e previsível sob estresse térmico ou elétrico, vale a pena manter boas práticas de engenharia de hardware, revisando conceitos fundamentais como os descritos em nosso guia sobre monitoramento de temperaturas de VRM e telemetria via barramento I2C.
Automatizando o failover e prevenindo o split-brain
O maior perigo em sistemas de alta disponibilidade baseados em replicação de blocos é o temido split-brain, situação em que ambos os nós perdem a comunicação de rede entre si e assumem simultaneamente que o outro morreu, gravando dados diferentes no mesmo disco e corrompendo todo o armazenamento. Para evitar esse desastre, configuramos mecanismos de fencing e quorum baseados em STONITH (Shoot The Other Node In The Head).
O Proxmox gerencia essa inteligência através do seu gerenciador de cluster corosync, que monitora constantemente a pulsação de cada máquina física. Quando um nó deixa de responder ao heartbeat por alguns segundos, o sistema de automação aciona o isolamento imediato daquele nó defeituoso e promove o nó secundário a primário absoluto do DRBD, permitindo que as máquinas virtuais continuem rodando sem intervenção humana.
Considerações finais
Automatizar o failover de storages NVMe em clusters Proxmox utilizando DRBD e multipathing NVMe-oF transforma uma infraestrutura caseira ou corporativa em um ambiente altamente resiliente e preparado para o inesperado. Embora a complexidade inicial de configuração exija atenção redobrada aos detalhes de rede e fencing, a tranquilidade operacional compensa cada minuto investido. Com redundância de caminhos, espelhamento síncrono de blocos e automação de quorum, sua infraestrutura ganha a robustez necessária para operar ininterruptamente, mantendo seus dados seguros e seus serviços sempre no ar.