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
- Usar RAID 5/6 em produção: ignorar o aviso de instabilidade do upstream leva a corrupção após falhas de energia.
- 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.
- 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.
- Ignorar scrub: sem scrub semanal ou mensal, bit rot silencioso passa despercebido até uma leitura crítica.
- 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
- Instalar btrfs-progs: apt install btrfs-progs no Debian/Ubuntu ou zypper install btrfsprogs no openSUSE.
- Criar o filesystem: mkfs.btrfs -L dados /dev/sdb1 (ou com múltiplos discos: mkfs.btrfs -d raid1 -m raid1 /dev/sdb /dev/sdc).
- Montar: mount -o compress=zstd:3,noatime /dev/sdb1 /mnt/dados e persistir em /etc/fstab.
- Criar subvolumes: btrfs subvolume create /mnt/dados/@home e /mnt/dados/@srv para separar contextos.
- Habilitar snapshots automáticos: instalar snapper e rodar snapper create-config /mnt/dados/@home.
- Agendar scrub e balance: criar timers systemd para btrfs scrub start / (semanal) e btrfs balance start -musage=50 (mensal).
- 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.





