Tipos de Sistema de Arquivos no Linux: ext4 vs xfs vs btrfs

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 fsck pode 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_growfs expande 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 resize muda 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 -T mostra o uso com o tipo, lsblk -f mostra o FS por dispositivo, e blkid mostra 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.

Resumo - ext4 por Padrão, xfs / btrfs por Necessidade

Escolher um sistema de arquivos é menos sobre encontrar "o único melhor" e mais sobre corresponder aos requisitos.

  • ext4: O padrão maduro e estável. Escolha quando estiver em dúvida.
  • xfs: Grandes volumes, I/O paralelo, padrão da família RHEL — mas sem encolhimento.
  • btrfs: Repleto de recursos com CoW, snapshots e checksums — ligeiramente mais complexo de operar.

Comece executando df -T e lsblk -f para ver qual sistema de arquivos você está usando agora.