Usando Sistema de Arquivos BTRFS - Subvolumes, Snapshots e Compactação
Este artigo é um compilado de dicas sobre o uso do sistema de arquivos BTRFS em sistemas GNU/Linux. Está longe de ser um guia definitivo, ou mesmo descrever de forma simples (e em português) todas as funções deste excepcional sistema de arquivos. As dicas aqui contidas foram testadas no Arch Linux, mas podem ser facilmente adaptadas a outras distros.
Introdução

O salto evolutivo em relação ao ext4 foi bastante grande, já que o BTRFS introduziu novas possibilidades e tecnologias que atualmente existem apenas no ZFS ou no F2FS, porém o ZFS não é nativo do kernel Linux, e o F2FS é voltado exclusivamente para memórias nand, sendo então o BTRFS uma opção bastante óbvia.
Entre as várias características do BTRFS, destacam-se:
- Capacidade de conversão de sistemas ext3/4 para BTRFS, com possibilidade de reversão;
- Suporte a raid (algumas funções requerem atenção e cuidados especiais);
- Suporte a desfragmentação automática;
- Sistema de arquivos baseado no princípio de cópia em gravação (copy-on-write);
- Subvolumes;
- Imagem instantânea do sistema de arquivos (snapshot);
- Compactação instantânea e com diferentes níveis de compressão;
- Suporte a checksums em dados e metadados (ext4 possui apenas para metadados);
- Detecção automática de SSF e suporte a Trim;
- Ótimo desempenho em SSD e discos mecânicos, tanto para arquivos, grandes quanto pequenos; e com grande velocidade de leitura e escrita. Entre vários outros.
Daqui para frente, todos os comandos que tiverem na frente a cerquilha (# - também conhecido como Hashtag), significa que devem ser executados como root, ou sudo.
O comando para criação de partições em BTRFS, é:
# mkfs.btrfs /dev/sdXX
Onde "XX", se refere ao disco e partição.
O BTRFS já foi usado como sistema de arquivos recomendado pela Red Hat em seu sistema homônimo e ainda é usado como padrão nos sistemas SUSE Linux, além de ser suportado na maioria das distribuições. Várias empresas usam o BTRFS devido ao seu desempenho e grande variedade de ferramentas e recursos disponíveis.
Neste artigo, iremos falar um pouco sobre cópia em gravação (cow), subvolumes, imagem instantânea do sistema de arquivos (snapshot) e compactação. Usarei como base o Arch Linux, explicações e exemplos na maioria serão os disponíveis na WIKI do Arch e do próprio BTRFS.
________________________________________________
O programador tem a mania de achar que tudo é objeto