Tipos de Sistema de Arquivos no Linux: ext4 vs xfs vs btrfs
O Que É um Sistema de Arquivos e Qual Devo Escolher?
Conclusão: Na dúvida, escolha ext4 (maduro e estável). Escolha xfs para I/O grande e altamente paralelo, e btrfs quando quiser snapshots e checksums.
Um sistema de arquivos mapeia os blocos brutos de um disco em uma estrutura de arquivos e diretórios, e gerencia metadados como permissões, timestamps e tamanhos. No Linux, o mesmo disco físico se comporta de forma diferente dependendo do sistema de arquivos com o qual é formatado — desempenho, recursos operacionais e flexibilidade de redimensionamento mudam.
Este guia compara os três sistemas de arquivos mais comuns no Linux moderno — ext4, xfs e btrfs — usando critérios práticos de decisão.
Resumo em três linhas
- ext4: O padrão maduro e estável. Uma escolha segura para desktops e servidores gerais.
- xfs: Forte em grandes volumes e I/O paralelo. O padrão em distribuições da família RHEL. Cresce online mas não pode encolher.
- btrfs: Repleto de recursos, com CoW, snapshots, checksums e RAID embutido.
Premissas
- O escopo são sistemas de arquivos Linux locais (sistemas de arquivos de rede e FAT/exFAT estão fora do escopo).
- Formatar (
mkfs) apaga todos os dados no alvo. Em produção, sempre confirme os backups e o nome exato do dispositivo primeiro.
O Que É ext4 e Quando Usá-lo?
Conclusão: ext4 é o sistema de arquivos de uso geral mais testado em batalha. Journaling e extents dão a ele resiliência a falhas e boa taxa de transferência, tornando-o um padrão seguro.
ext4 (fourth extended filesystem) dá continuidade à linhagem ext2/ext3 e há muito tempo é o padrão no Debian, Ubuntu e outros. Seu maior ponto forte é a maturidade: tem de longe o maior histórico de produção, e seus modos de falha e correções estão amplamente documentados.
Recursos principais:
- Journaling: As gravações são registradas em um journal primeiro, então após uma queda de energia o
fsckpode restaurar a consistência rapidamente. - Extents: Blocos contíguos são rastreados como intervalos (início + comprimento), reduzindo fragmentação e tratando arquivos grandes com eficiência.
- Crescimento online: Você pode expandi-lo enquanto montado com
resize2fs; encolher requer desmontagem.
# Formatar como ext4 (sempre verifique o dispositivo alvo) $ sudo mkfs.ext4 /dev/sdX1 # Expandir enquanto montado (após estender o LV ou partição) $ sudo resize2fs /dev/sdX1
Use ext4 quando
- Você não tem uma razão específica para escolher outra coisa (desktop / servidor pequeno a médio).
- Você prioriza estabilidade e o maior acervo de conhecimento para solução de problemas.
O Que É xfs e Quando Usá-lo?
Conclusão: xfs é um sistema de arquivos de 64 bits otimizado para grandes volumes e I/O paralelo intenso. O aviso operacional principal: pode crescer online mas não pode encolher.
xfs foi originalmente desenvolvido pela SGI para o IRIX e agora é o sistema de arquivos padrão no RHEL, CentOS Stream, Rocky e AlmaLinux. Ele se destaca em arquivos grandes, operações pesadas de metadados e I/O paralelo.
Recursos principais:
- Grupos de alocação: O volume é dividido em regiões independentes cujos metadados podem ser atualizados em paralelo, aumentando a taxa de transferência.
- Feito para escala: Um design de 64 bits que escala para volumes de classe exabyte, adequado para servidores de arquivos e armazenamento grande.
- Crescimento online apenas:
xfs_growfsexpande enquanto montado, mas não há recurso de encolhimento.
# Formatar como xfs $ sudo mkfs.xfs /dev/sdX1 # Expandir online pelo ponto de montagem $ sudo xfs_growfs /mnt/data
Projete em torno da regra de não encolher
xfs não pode reduzir a capacidade após o fato. Planeje os tamanhos de partição e LVM na direção "crescer depois"; se você precisar encolher, considere ext4 ou btrfs.
Use xfs quando
- Você roda grandes volumes (múltiplos TB) ou servidores de arquivos.
- Você quer combinar o padrão da família RHEL e seu conhecimento operacional.
O Que É btrfs e Quando Usá-lo?
Conclusão: btrfs é repleto de recursos, com CoW, snapshots, checksums e subvolumes. É atraente para proteção de dados e rollback, mas operá-lo é mais complexo que ext4 ou xfs.
btrfs (B-tree filesystem) é um sistema de arquivos de próxima geração construído sobre Copy-on-Write (CoW), usado como padrão no openSUSE e no desktop Fedora. Ele traz recursos de gerenciamento de volume para dentro do sistema de arquivos em vez de ser um armazenamento simples.
Recursos principais:
- Copy-on-Write (CoW): Em vez de sobrescrever dados existentes, ele grava em um novo local. Isso combina bem com snapshots e torna os dados antigos menos propensos a corrupção por uma falha no meio de uma gravação.
- Snapshots: Captura um estado em um ponto no tempo instantaneamente e reverte uma mudança com falha — útil como rede de segurança antes de atualizações.
- Checksums: Dados e metadados são verificados com checksum, então bit rot silencioso pode ser detectado.
- Subvolumes / RAID embutido: Particionamento lógico de um sistema de arquivos e abrangência de múltiplos dispositivos.
- Crescimento e encolhimento online:
btrfs filesystem resizemuda o tamanho em qualquer direção enquanto montado.
# Formatar como btrfs $ sudo mkfs.btrfs /dev/sdX1 # Exemplo de snapshot (snapshot de / em /snap) $ sudo btrfs subvolume snapshot / /snap/root-backup
Poder vem com custo operacional
CoW tende a fragmentar, e em cargas de trabalho com muita sobrescrita, como bancos de dados ou imagens de disco de VM, o desempenho pode cair (algumas configurações desabilitam CoW para esses caminhos). A curva de aprendizado para usar seus recursos bem também é maior que ext4/xfs.
Use btrfs quando
- Você quer reverter antes/depois de atualizações com snapshots (ex.: snapper no openSUSE).
- Você quer checksums para detectar corrupção, ou combinar múltiplos dispositivos em um.
Como Comparar e Escolher Entre ext4 / xfs / btrfs?
Conclusão: Os eixos base são "estabilidade → ext4", "grande/paralelo → xfs" e "snapshots/proteção de dados → btrfs". Suporte a encolhimento e contagem de recursos são os principais trade-offs.
| Aspecto | ext4 | xfs | btrfs |
|---|---|---|---|
| Maturidade | Muito alta | Alta | Em evolução (repleto de recursos) |
| Ponto forte | Geral / estável | Grande / I/O paralelo | Proteção de dados / flexível |
| Journaling | Sim | Sim | CoW (modelo diferente) |
| Snapshots | Não (precisa de LVM) | Não (precisa de LVM) | Nativo |
| Checksums | Somente metadados | Focado em metadados | Dados + metadados |
| Crescimento online | Sim | Sim (xfs_growfs) |
Sim |
| Encolhimento online | Não (precisa desmontar) | Não | Sim |
| Distro padrão comum | Debian/Ubuntu | Família RHEL | openSUSE / Fedora (parcial) |
Guia rápido de escolha
- Sem razão específica → ext4
- Servidor de arquivos grande / família RHEL → xfs
- Quer rollback por snapshot / detecção de corrupção → btrfs
Como Verificar o Sistema de Arquivos do Seu Sistema?
Conclusão:
df -Tmostra o uso com o tipo,lsblk -fmostra o FS por dispositivo, eblkidmostra UUID e TYPE. Use-os para confirmar o dispositivo antes de formatar também.
# Listar sistemas de arquivos montados incluindo a coluna Type $ df -T
Filesystem Type 1K-blocks Used Available Use% Mounted on /dev/sda2 ext4 48000000 20000000 25600000 44% / /dev/sda1 vfat 523248 6132 517116 2% /boot/efi
# Mostrar tipo de FS, UUID e ponto de montagem por dispositivo de bloco $ lsblk -f # Mostrar TYPE / UUID para um único dispositivo (evitar escolher o errado antes do mkfs) $ blkid /dev/sdX1
Para aprender rapidamente apenas o tipo do sistema de arquivos root, qualquer um funciona:
$ findmnt -no FSTYPE / $ stat -f -c %T /
Antes de executar mkfs.* ou wipefs, sempre verifique com lsblk / blkid que o nome do dispositivo alvo está correto. Um erro de um caractere que apaga o disco errado é um acidente deprimentemente comum.