Btrfs: snapshots, RAID e comparação com ZFS e ext4

Btrfs (B-tree File System) é um sistema de arquivos Copy-on-Write (CoW) para Linux que reúne snapshots instantâneos, subvolumes, RAID nativo, compressão transparente e verificação de integridade por checksums em uma única stack integrada ao kernel. Criado por Chris Mason em 2007 na Oracle e mainlined no Linux 2.6.29 em 2009, o Btrfs é hoje o filesystem padrão do SUSE Linux Enterprise Server, do openSUSE e do Fedora Workstation, e o motor por trás dos volumes protegidos do Synology DSM 7. Este guia mostra como o Btrfs funciona, quais recursos importam em produção, quando usar em vez de ZFS, ext4 ou XFS, e quais armadilhas evitar em ambientes B2B.

TL;DR

  • O que é: filesystem CoW para Linux com snapshots, subvolumes, RAID nativo, compressão e checksums integrados ao kernel.
  • Por que importa: permite rollback atômico, backups incrementais eficientes (send/receive) e proteção contra bit rot sem depender de módulo externo.
  • Quando usar: partição raiz de servidores SUSE/Fedora, NAS Synology, ambientes que precisam de snapshots frequentes; evitar RAID 5/6 em produção crítica.

Como funciona o Btrfs?

Btrfs é um filesystem baseado em B-trees com Copy-on-Write que gerencia dados, metadados e pool de discos em uma única camada, eliminando a necessidade de LVM e mdadm.

Toda gravação no Btrfs cria uma nova cópia do bloco em vez de sobrescrever o original — esse é o princípio Copy-on-Write. Metadados vivem em B-trees balanceadas, o que garante buscas em tempo logarítmico mesmo em filesystems com bilhões de arquivos. Cada bloco carrega um checksum (CRC32C por padrão) verificado a cada leitura, permitindo detecção de corrupção silenciosa. Transações agrupam múltiplas mudanças em commits atômicos.

Segundo a documentação oficial do Kernel.org (2024), o Btrfs é o único filesystem CoW nativo integrado ao mainline Linux, o que dispensa módulos DKMS ou builds separados. Segundo o SUSE Documentation Portal (2024), o SLES adota Btrfs como padrão da partição raiz desde a versão 12 justamente por causa do rollback via Snapper.

Recursos avançados do Btrfs

Btrfs entrega em um único filesystem o que tradicionalmente exige combinar ext4 + LVM + mdadm + dm-crypt.

  • Snapshots e subvolumes: snapshots são cópias CoW instantâneas de subvolumes; ocupam quase zero espaço inicial e crescem conforme divergem do original.
  • Subvolumes: partições lógicas dentro do mesmo pool, com quotas, políticas de snapshot e montagem independentes.
  • RAID nativo: suporta RAID 0, 1, 10, 5 e 6, além de perfis raid1c3 e raid1c4 (três e quatro cópias) introduzidos no kernel 5.5.
  • Compressão transparente: zstd (padrão recomendado), lzo e zlib, aplicáveis por arquivo, subvolume ou filesystem inteiro.
  • Deduplication offline: ferramentas como duperemove e bees varrem blocos idênticos e reduzem uso de disco fora do caminho crítico de gravação.
  • Send/Receive: exporta as diferenças entre dois snapshots como um stream binário, ideal para backup incremental e replicação entre hosts.

Segundo a Phoronix (2024), a compressão zstd nível 3 no Btrfs oferece a melhor relação compressão/CPU para workloads mistos em servidores modernos.

Btrfs vs ZFS vs ext4 vs XFS

Recurso Btrfs ZFS ext4 XFS
Copy-on-Write Sim Sim Não Não (parcial via reflink)
Snapshots nativos Sim (instantâneos) Sim (instantâneos) Não Não
RAID nativo Sim (RAID 5/6 instável) Sim (RAID-Z estável) Não Não
Compressão transparente Sim (zstd, lzo, zlib) Sim (lz4, zstd, gzip) Não Não
Deduplicação Offline Online (custa RAM) Não Não
Checksums de dados Sim Sim Não Não (só metadados)
Licença GPL CDDL (fora do mainline) GPL GPL
Maturidade em produção Alta (exceto RAID 5/6) Muito alta Muito alta Muito alta
Quando usar Raiz SUSE/Fedora, NAS, backup incremental Storage crítico, ZFS on Linux, TrueNAS Servidores estáveis, workloads simples Arquivos grandes, alto throughput

Exemplos práticos em servidores B2B

Rollback de atualização em openSUSE com Snapper

Antes de cada zypper update, o Snapper cria um snapshot pre e post do subvolume raiz. Se um pacote quebra o boot, basta selecionar o snapshot anterior no GRUB e o servidor volta ao estado exato de segundos atrás. Segundo a SUSE Documentation (2024), esse fluxo reduz o MTTR (Mean Time To Recovery) de incidentes de atualização de horas para menos de dois minutos.

Fedora Workstation com filesystem padrão

Desde o Fedora 33 (2020), o Btrfs é o filesystem raiz padrão da distribuição. Segundo o Fedora Project (2024), a decisão foi motivada pela combinação de compressão zstd (que reduz uso de disco em cerca de 20 a 40 por cento em cargas típicas), snapshots e resiliência a bit rot.

Backup incremental entre servidores com btrfs send

Um servidor de produção cria um snapshot diário e envia apenas o delta para um servidor de backup via SSH: btrfs send -p snapshot_ontem snapshot_hoje | ssh backup btrfs receive /pool/backups. O tráfego cai para uma fração do total gravado no dia, sem depender de rsync varrer o filesystem inteiro.

Btrfs em produção: quem usa e onde

O Btrfs deixou de ser experimental há uma década e está em cargas críticas em várias frentes:

  • SUSE Linux Enterprise Server: filesystem padrão da partição raiz desde 2014, com suporte comercial completo da SUSE.
  • Fedora Workstation e Server: filesystem padrão desde o Fedora 33 (2020).
  • Synology DSM 7: volumes Btrfs suportam snapshots, replicação e proteção contra bit rot em NAS corporativos.
  • Meta (Facebook): segundo o Meta Engineering Blog (2024), o Btrfs é usado em larga escala em servidores internos, com contribuições ativas ao upstream do kernel.
  • Red Hat Enterprise Linux: a Red Hat removeu o suporte oficial ao Btrfs no RHEL 8 (2019), preferindo XFS mais Stratis. Isso não afeta a comunidade nem outras distros.

Snapshots e rollback com Snapper

Snapper é a ferramenta oficial da SUSE que automatiza snapshots Btrfs e integra rollback ao GRUB.

O Snapper cria snapshots automáticos em três gatilhos: timeline (a cada hora), pre/post (antes e depois de operações do gerenciador de pacotes) e manual. Cada snapshot vira uma entrada bootável no GRUB, permitindo iniciar o sistema em qualquer estado histórico. Segundo a SUSE Documentation (2024), o padrão de retenção mantém 10 snapshots horários, 10 diários, 10 mensais e 10 anuais, ajustável em /etc/snapper/configs/. A recuperação de um snapshot pre-update leva menos de um minuto: reboot, selecionar entrada no GRUB, snapper rollback.

Btrfs RAID: o polêmico RAID 5/6

Os perfis RAID 1 e RAID 10 do Btrfs são estáveis e recomendados; RAID 5 e RAID 6 ainda carregam o clássico write-hole e não devem ir para produção crítica.

Segundo a Btrfs Wiki oficial mantida no Kernel.org (2024), os perfis raid5 e raid6 permanecem marcados como unstable devido ao write-hole (janela em que uma falha de energia durante a escrita da stripe deixa paridade e dados inconsistentes) e a bugs conhecidos na reconstrução. A recomendação atual para redundância com múltiplos discos é usar raid1, raid10 ou os perfis mais recentes raid1c3 (três cópias) e raid1c4 (quatro cópias), introduzidos no kernel 5.5. Para storage crítico com paridade, ZFS RAID-Z segue sendo a escolha madura no ecossistema Linux.

Ferramentas Btrfs

  • btrfs-progs: pacote oficial com o comando btrfs (subvolume, snapshot, balance, scrub, device, filesystem).
  • Snapper: gerenciamento de snapshots com integração ao GRUB, padrão no SUSE e openSUSE.
  • btrbk: orquestrador declarativo de snapshots e replicação send/receive entre hosts.
  • Timeshift: interface amigável de snapshots muito usada em Linux Mint e derivados Ubuntu.
  • btrfs scrub: varre todos os blocos, valida checksums e corrige corrupção quando há redundância.
  • btrfs balance: redistribui dados entre discos, essencial após adicionar ou remover devices ou trocar perfil RAID.

Erros comuns em Btrfs

  1. Usar RAID 5/6 em produção: ignorar o aviso de instabilidade do upstream leva a corrupção após falhas de energia.
  2. Deixar o filesystem quase cheio: Btrfs precisa de espaço livre para metadados e balance; acima de 90 por cento de uso o desempenho cai e operações falham com ENOSPC.
  3. Não rodar balance periódico: após muitas gravações e remoções, os chunks ficam fragmentados; um btrfs balance start -musage=50 -dusage=50 mensal resolve.
  4. Ignorar scrub: sem scrub semanal ou mensal, bit rot silencioso passa despercebido até uma leitura crítica.
  5. Desligar checksums de dados: alguns tutoriais sugerem nodatacow para bancos de dados; isso remove a principal proteção do Btrfs — prefira ajustar autodefrag e compress.

Como criar e usar Btrfs — passo a passo

  1. Instalar btrfs-progs: apt install btrfs-progs no Debian/Ubuntu ou zypper install btrfsprogs no openSUSE.
  2. Criar o filesystem: mkfs.btrfs -L dados /dev/sdb1 (ou com múltiplos discos: mkfs.btrfs -d raid1 -m raid1 /dev/sdb /dev/sdc).
  3. Montar: mount -o compress=zstd:3,noatime /dev/sdb1 /mnt/dados e persistir em /etc/fstab.
  4. Criar subvolumes: btrfs subvolume create /mnt/dados/@home e /mnt/dados/@srv para separar contextos.
  5. Habilitar snapshots automáticos: instalar snapper e rodar snapper create-config /mnt/dados/@home.
  6. Agendar scrub e balance: criar timers systemd para btrfs scrub start / (semanal) e btrfs balance start -musage=50 (mensal).
  7. Configurar backup send/receive: criar snapshots read-only e enviar via SSH para um destino Btrfs remoto.

Btrfs e a Shiftmind

A Shiftmind atua há mais de 12 anos em infraestrutura Linux para B2B e recomenda Btrfs em cenários específicos: partição raiz de servidores SUSE e Fedora, NAS Synology e ambientes onde rollback rápido de atualizações é crítico. Para clientes que precisam de infraestrutura dedicada com filesystem otimizado, oferecemos servidor dedicado com Btrfs, ZFS ou XFS conforme o workload. Para sites e lojas WordPress em ambiente gerenciado, nossa hospedagem WordPress aplica snapshots automáticos e backup incremental. Contamos ainda com suporte e manutenção WordPress para operar Snapper e rotinas de scrub, proteção antivírus e segurança de websites e criação de sites WordPress em infraestrutura Linux robusta.

Perguntas frequentes sobre Btrfs

Btrfs é estável para produção em 2026?

Sim, com ressalvas. Os perfis single, DUP, RAID 0, RAID 1, RAID 10, raid1c3 e raid1c4 são considerados estáveis e usados por SUSE, Fedora, Synology e Meta em produção. Os perfis RAID 5 e RAID 6 permanecem marcados como unstable pelo próprio upstream do Kernel.org (2024) por causa do write-hole. Para redundância com paridade em cenários críticos, ZFS RAID-Z continua sendo a escolha mais madura no ecossistema Linux.

Qual a diferença entre Btrfs e ZFS?

Ambos são filesystems CoW com snapshots, RAID nativo, compressão e checksums. Btrfs está mainlined no kernel Linux sob licença GPL e dispensa módulo externo, enquanto ZFS usa licença CDDL e depende do projeto OpenZFS. ZFS tem RAID-Z estável e ARC/L2ARC maduros; Btrfs tem integração nativa, menor consumo de RAM em pequenos setups e melhor suporte a redimensionamento online do pool.

Btrfs consome mais CPU e RAM que ext4?

Sim, mas em escala controlada. Segundo a Phoronix (2024), o overhead médio de CPU do Btrfs com compressão zstd fica entre 5 e 15 por cento em workloads mistos, compensado pela redução de I/O em cargas comprimíveis. O consumo de RAM é significativamente menor que o ZFS por padrão, já que o Btrfs não mantém cache ARC. Em servidores modernos com CPU sobrando, o custo é irrelevante.

Posso migrar de ext4 para Btrfs sem perder dados?

Sim. O comando btrfs-convert converte um filesystem ext3 ou ext4 existente em Btrfs preservando os dados e criando um subvolume ext2_saved com o layout original para rollback. Segundo a documentação do Kernel.org (2024), o processo é seguro em filesystems íntegros, mas backup completo antes da conversão é obrigatório. Após confirmar que tudo funciona, o subvolume ext2_saved pode ser removido para liberar espaço.

Btrfs suporta criptografia nativa?

Não diretamente. O Btrfs ainda não implementa criptografia por subvolume no kernel mainline em 2026. A prática recomendada é usar dm-crypt/LUKS abaixo do Btrfs (mkfs.btrfs sobre /dev/mapper/luks-dev) ou fscrypt em nível de diretório. A criptografia nativa está em desenvolvimento upstream, mas sem prazo firme para merge.

Quantos snapshots o Btrfs suporta?

Tecnicamente ilimitado. O limite prático vem do tempo de operações como balance, scrub e delete, que crescem conforme o número de snapshots e subvolumes. Segundo a SUSE (2024), a recomendação para produção é manter até algumas centenas de snapshots ativos por filesystem e usar políticas de retenção do Snapper ou btrbk para remover snapshots antigos automaticamente.

Termos relacionados

Conclusão

O Btrfs é a resposta do Linux mainline para filesystems modernos: um único stack integrado ao kernel que entrega Copy-on-Write, snapshots atômicos, subvolumes, RAID, compressão e checksums sem depender de módulos externos ou licenças conflitantes. Para partição raiz em SUSE e Fedora, para volumes de dados em NAS Synology e para backups incrementais via send/receive, é uma escolha madura e produtiva. Para RAID com paridade em cargas críticas, ZFS ainda vence; para servidores simples e workloads previsíveis, ext4 e XFS seguem imbatíveis em simplicidade. A decisão certa depende do workload, do time e do apetite operacional.

Última atualização: Setembro/2026

Precisa de um servidor Linux com filesystem otimizado para seu workload — Btrfs, ZFS, ext4 ou XFS? A Shiftmind projeta, implementa e opera a infraestrutura sob medida. Fale com a Shiftmind.

Autor: Henry Douglas
Analista de marketing digital, trabalho com SEO desde 2010 e tenho 13 anos de experiência em em WordPress.

Como podemos te ajudar?

Entre em contato conosco hoje mesmo e descubra como nossa empresa de marketing pode impulsionar suas vendas, aumentar sua visibilidade online e alcançar seus objetivos de negócios.

Desenvolvemos projetos conforme as necessidades e objetivos de cada cliente, sempre com processos bem definidos e transparentes do planejamento ao controle, facilitando a comunicação com as partes interessadas e a melhoria contínua das ações de marketing implementadas.

Danilo Pedrosa
Especialista em Projetos de Marketing, Shiftmind