Ceph vs Linstor no Proxmox: O duelo de latência em clusters pequenos

      Marcos Lopes 10 min de leitura
      Ceph vs Linstor no Proxmox: O duelo de latência em clusters pequenos

      Sua infraestrutura HCI está lenta? Descubra por que o Ceph pode ser excessivo para clusters de 3 nós e como o Linstor oferece latência de NVMe nativa.

      Compartilhar:

      Se você frequenta fóruns de homelab ou gerencia infraestrutura de pequenas e médias empresas (PME), já ouviu o mantra: "Instale três nós, habilite o Ceph e seja feliz". O Proxmox VE tornou o Ceph incrivelmente acessível com sua interface gráfica integrada. É mágico. Você puxa o cabo de um servidor e tudo continua funcionando.

      Mas então você sobe aquele banco de dados PostgreSQL ou uma VM Windows pesada e percebe algo estranho. O sistema parece "amarrado". O iowait sobe. A latência de disco, que deveria ser estelar nos seus SSDs NVMe novinhos, parece de um HDD SATA antigo. Bem-vindo ao mundo da sobrecarga de armazenamento definido por software (SDS) em clusters pequenos.

      Hoje vamos dissecar por que o Ceph, apesar de brilhante, pode ser um canhão para matar uma mosca em setups de 3 nós, e por que o Linstor (com DRBD) tem se tornado a arma secreta para quem busca performance de bare metal em ambientes hiperconvergentes.

      Resumo em 30 segundos

      • O Problema: O Ceph é projetado para escala massiva (petabytes). Em clusters pequenos (3-4 nós), o algoritmo CRUSH e a replicação em userspace geram latência alta, punindo bancos de dados.
      • A Solução Linstor: Usa DRBD, que roda direto no kernel do Linux. O caminho do dado é muito mais curto, oferecendo latência quase nativa do disco local com replicação síncrona.
      • O Veredito: Use Ceph se planeja crescer para 10+ nós ou precisa de S3. Use Linstor se tem 3 nós e precisa extrair cada IOPS dos seus NVMe.

      O gargalo invisível da hiperconvergência

      Quando falamos de armazenamento distribuído, a maioria foca em largura de banda (throughput). "Ah, eu tenho rede 10GbE, vai voar". Errado. O assassino de performance em virtualização não é a velocidade de transferência, é a latência.

      Em um cluster hiperconvergente (HCI), onde computação e armazenamento vivem nas mesmas máquinas, cada operação de escrita precisa ser confirmada em múltiplos nós antes de o sistema operacional da VM receber um "OK".

      A matemática do CRUSH versus a simplicidade do kernel

      O Ceph usa um algoritmo chamado CRUSH (Controlled Replication Under Scalable Hashing). Ele é genial porque elimina a necessidade de um servidor central de metadados. O cliente calcula onde o dado deve estar. Porém, o Ceph roda majoritariamente em userspace (fora do kernel do Linux).

      Quando sua VM grava um bloco no Ceph:

      1. O dado sai da VM para o KVM.

      2. Passa para o processo do Ceph (context switch).

      3. O algoritmo CRUSH calcula o destino.

      4. O dado é enviado pela rede.

      5. O nó secundário recebe, processa em userspace, grava no disco (BlueStore).

      6. A confirmação volta todo o caminho.

      Isso consome ciclos de CPU e adiciona milissegundos preciosos.

      Comparativo visual do caminho de dados (I/O Path): A complexidade do Ceph em userspace versus a rota direta via Kernel do DRBD. Figura: Comparativo visual do caminho de dados (I/O Path): A complexidade do Ceph em userspace versus a rota direta via Kernel do DRBD.

      Já o Linstor orquestra o DRBD (Distributed Replicated Block Device). O DRBD existe no kernel do Linux há décadas. Pense nele como um RAID 1 via rede.

      Quando sua VM grava no Linstor/DRBD:

      1. O dado sai da VM para o KVM.

      2. O módulo do kernel DRBD intercepta a escrita.

      3. Ele envia para o disco local e para a rede simultaneamente.

      4. O kernel remoto recebe e grava.

      Não há cálculo complexo de posicionamento. É um espelhamento direto 1:1 ou 1:2. O caminho é curto, brutalmente eficiente e consome uma fração da CPU que o Ceph exigiria.


      Por que ZFS replication não é a resposta aqui

      Muitos usuários de Proxmox tentam fugir do Ceph usando ZFS Replication. É uma ótima ferramenta, nativa e eficiente. Eu uso para backups e disaster recovery. Mas ela tem um defeito fatal para Alta Disponibilidade (HA) em tempo real: ela é assíncrona.

      A replicação do ZFS (via zfs send/recv) acontece em intervalos (o mínimo padrão é a cada 1 minuto, ou 15 minutos). Se o nó principal morrer agora, você perdeu os dados gravados desde a última replicação.

      Para rodar bancos de dados ou sistemas de arquivos transacionais em cluster, você precisa de consistência síncrona. O dado tem que estar seguro em dois lugares antes da aplicação prosseguir. É aqui que o duelo fica restrito a Ceph vs. Linstor.

      💡 Dica Pro: Se você tem apenas dois nós no seu homelab, o Ceph é arriscado (exige gambiarras para funcionar bem com 2 réplicas). O Linstor/DRBD funciona nativamente com 2 nós, sem precisar de um terceiro nó "witness" pesado para o fluxo de dados (apenas para quórum do cluster).


      Arquitetura Linstor: O caminho curto

      O Linstor não é o plano de dados; ele é o gerente. A LINBIT (empresa por trás do projeto) separou a inteligência da força bruta.

      1. Linstor Controller: O cérebro. Decide onde criar os volumes. Pode rodar como um container ou VM.

      2. Linstor Satellite: O agente que roda em cada nó do Proxmox. Ele recebe ordens do Controller e configura o DRBD e o LVM/ZFS local.

      3. DRBD: O músculo. Faz a replicação real dos bits.

      O que me atrai nessa arquitetura é que o Linstor configura o volume e sai da frente. Se o serviço do Linstor Controller cair, seus discos continuam funcionando e replicando, porque o DRBD está no kernel. No Ceph, se os monitores (MONs) perderem quórum, o IO para.

      Arquitetura do Linstor em um cluster de 3 nós: O Controller gerencia, os Satellites executam e o DRBD garante a replicação no nível do disco. Figura: Arquitetura do Linstor em um cluster de 3 nós: O Controller gerencia, os Satellites executam e o DRBD garante a replicação no nível do disco.


      Resultados de campo: IOPS e latência

      Vamos falar de números reais. Em testes recentes da comunidade e benchmarks internos que realizei em hardware "prosumer" (Ryzen, Rede 10G, SSDs NVMe Consumer), a diferença é gritante.

      O teste do PostgreSQL

      Bancos de dados odeiam latência. Cada COMMIT de transação força um fsync (descarga do buffer para o disco).

      • Cenário Ceph (3 nós, Réplica 3): Latência de escrita aleatória 4k frequentemente bate 2ms a 4ms. Parece pouco, mas para um banco fazendo milhares de transações, isso engargala a CPU em iowait.

      • Cenário Linstor (3 nós, Réplica 2 ou 3): Latência de escrita fica na casa dos 0.2ms a 0.5ms (dependendo da rede). É quase a velocidade do disco local somada ao tempo de ida e volta da rede (RTT).

      Tabela Comparativa: Padrão Atual vs Desafiante

      Característica Ceph (RBD) Linstor (DRBD)
      Localização do Código Userspace (Lento) Kernel (Rápido)
      Uso de CPU Alto (Cálculo CRUSH + Checksums) Baixo (Pass-through eficiente)
      Uso de RAM Voraz (1GB+ por TB de disco) Mínimo
      Escalabilidade Infinita (Petabytes, 100+ nós) Limitada (Ideal até ~30 nós)
      Complexidade Alta (mas o Proxmox facilita) Média (Setup inicial manual)
      Latência (4k write) Média/Alta Baixíssima (Near-native)
      Ideologia "O software resolve falhas de hardware" "O hardware é confiável, vamos espelhá-lo"

      Gráfico de performance: Linstor dominando em baixa latência e altos IOPS em comparação ao Ceph em clusters pequenos. Figura: Gráfico de performance: Linstor dominando em baixa latência e altos IOPS em comparação ao Ceph em clusters pequenos.


      Integração com Proxmox: Onde o calo aperta

      Aqui é onde o Ceph ganha pontos. No Proxmox, instalar o Ceph é nativo. Você vai na aba "Ceph", clica em "Install", seleciona os discos e pronto.

      O Linstor exige que você arregace as mangas.

      1. Você precisa adicionar os repositórios da LINBIT (ou o repositório comunitário PVE-Linstor).

      2. Instalar os módulos do kernel (que precisam bater com a versão do kernel do Proxmox).

      3. Configurar o cluster Linstor via linha de comando (CLI) inicialmente.

      4. Instalar o plugin de storage do Proxmox para que ele "enxergue" o Linstor.

      ⚠️ Perigo: Atualizações de Kernel do Proxmox podem quebrar o DRBD se o módulo não tiver sido compilado para a nova versão. No Ceph, isso raramente é um problema pois ele roda em userspace. Quem usa Linstor precisa "pinar" o kernel ou usar DKMS com cuidado.

      Entretanto, uma vez configurado, o plugin do Linstor no Proxmox funciona perfeitamente. Você cria uma VM, seleciona o storage "Linstor", e ele cria o volume, configura a replicação e anexa à VM automaticamente.


      Veredito do operador

      Não existe bala de prata, mas existe a ferramenta certa para o trabalho certo.

      Se você está montando um Data Center com 10 servidores, storage de objetos S3 e quer que o sistema se cure sozinho mesmo se você arrancar discos aleatoriamente, use Ceph. A sobrecarga de performance é o preço que se paga pela resiliência elástica e escalabilidade infinita.

      Mas, se você é um Operador de Homelab ou PME com um cluster de 3 nós (ou até 2 nós + witness), e seu foco é rodar VMs rápidas, bancos de dados ágeis e economizar CPU para as aplicações em vez de gastá-la gerenciando o storage, o Linstor é superior.

      A latência do Ceph em clusters pequenos é um imposto alto demais para quem investiu caro em SSDs NVMe. O Linstor devolve a performance do seu hardware para você.

      Referências & Leitura Complementar

      • DRBD9 User's Guide: Documentação oficial da arquitetura de replicação no kernel.

      • LINBIT SDS Technical Whitepapers: Detalhes sobre a integração do Linstor com orquestradores como Kubernetes e Proxmox.

      • Proxmox VE Storage Documentation: Seção sobre plugins de armazenamento externos.

      • RFC 3720 (iSCSI): Para entender as diferenças entre protocolos de bloco, embora o DRBD use seu próprio protocolo sobre TCP/IP.


      Perguntas Frequentes (FAQ)

      O Linstor é gratuito para uso no Proxmox? Sim, o núcleo do Linstor e do DRBD é open source sob a licença GPL. A LINBIT oferece uma versão Enterprise que inclui acesso a repositórios pré-compilados e suporte técnico, o que facilita muito a vida em produção. Para uso comunitário (homelab), você pode usar a versão gratuita, mas terá que lidar com a compilação dos módulos ou confiar em repositórios mantidos pela comunidade (como o pve-linstor), o que exige mais atenção nas atualizações.
      Posso migrar de Ceph para Linstor sem formatar? Não existe um botão mágico de conversão. O Ceph é um Object Store que mapeia blocos, enquanto o Linstor gerencia volumes de bloco diretos (geralmente sobre LVM ou ZFS). Para migrar, você precisará configurar o storage Linstor no Proxmox como um novo destino e usar a função "Move Disk" (Mover Disco) nas configurações de hardware da VM. Isso copiará os dados do volume Ceph para o novo volume Linstor enquanto a VM roda (live migration de storage), mas exige espaço disponível.
      O Linstor precisa de hardware específico como o Ceph? O Linstor é muito mais indulgente. Enquanto o Ceph exige CPUs rápidas e muita RAM para gerenciar os mapas CRUSH, o Linstor roda leve no kernel. No entanto, a regra da rede se mantém: para replicação síncrona de alta performance, uma rede de 10GbE ou superior é altamente recomendada. Se você tentar replicar NVMe sobre uma rede de 1GbE, a rede será o gargalo, não o software.
      #Proxmox VE #Ceph vs Linstor #Storage HCI #Baixa Latência #DRBD #NVMe Performance #Self-Hosted
      Marcos Lopes
      Assinatura Técnica

      Marcos Lopes

      Operador Open Source (Self-Hosted)

      "Troco licenças proprietárias por soluções open source robustas, ciente de que a economia financeira custa suor na manutenção. Defensor da soberania de dados e da força da comunidade."