De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.

Origem e Desenvolvimento Colaborativo do Sistema de Arquivos Btrfs

Colaboração: Rubens Queiroz de Almeida

Desde que comecei a trabalhar com sistemas *NIX, os sistemas de particionamento evoluíram sensivelmente.

Minha primeira experiência, com sistemas SunOS, da Sun Microsystems, foi realmente assustadora. As partições não possuíam nenhum tipo de salvaguarda, as modificações nas partições eram armazenadas em memória e de tempos em tempos gravadas no disco. Se houvesse uma queda de energia entre uma gravação e outra, a partição ficara irremediavelmente corrompida. Perdi a conta das noites que passei restaurando sistemas, especialmente no verão, quando as chuvas, e as interrupções de energia, são mais frequentes.

Felizmente, tudo isso é parte do passado. Já há muitos anos sistemas Linux oferecem sistemas de particionamento com journaling, ou seja, você sempre tem uma posição estável da partição gravada em disco. Antes de fazer qualquer alteração real no sistema de arquivos, a operação desejada (como uma escrita de arquivo ou uma mudança de metadado) é primeiro registrada em uma área especial do disco chamada "journal" (diário). Depois que a operação é registrada no journal, o sistema de arquivos executa a operação real no disco.

Se o sistema enfrentar uma interrupção inesperada (por exemplo, uma falha de energia) após a operação ser registrada no journal, mas antes de ser concluída no disco, no próximo boot o sistema de arquivos pode consultar o journal para descobrir quais operações foram interrompidas e concluir essas operações.

Mas isto é coisa do passado, já há muito tempo. Sistemas como ext3, ext4, ReiserFS, JFS, são extremamente robustos e estáveis, e praticamente não ocorrem mais problemas de corrupção das partições, a não ser por falha de hardware.

Chegamos então ao sistema de particionamento BTRFS (B-Tree File System). Confesso que conheci este sistema de particionamento há pouco tempo, quando instalei uma versão da distribuição nacional BigLinux, que utiliza como sistema de particionamento padrão o Btrfs. Além deste sistema de particionamento super avançado, o BigLinux oferece uma enormidade de inovações. Mas isso é assunto para outro texto. 😉

O Btrfs foi originalmente desenvolvido por Chris Mason, que trabalhava na Oracle Corporation na época. Mason começou a trabalhar no Btrfs em 2007, e a primeira versão do Btrfs foi lançada em agosto de 2008.

Desde o seu início, muitos desenvolvedores contribuíram para o projeto, e ele passou a contar com a colaboração de várias empresas, além da Oracle, como Facebook, Fujitsu, Intel, Linux Foundation, Netgear, Red Hat, STRATO e muitas outras.

O Btrfs nos dias de hoje é um esforço coletivo, distribuído sob a licença GNU General Public License, versão 2 (GPLv2). Muitos desenvolvedores de diferentes empresas e comunidades contribuem para o seu desenvolvimento e evolução. A Oracle continua a ser um dos principais contribuintes, mas o Btrfs também recebe contribuições significativas de outras organizações e da comunidade em geral. Chris Mason, o desenvolvedor original, passou a trabalhar para o Facebook e continuou seu envolvimento com o desenvolvimento do Btrfs por lá.

Diferentemente de outros sistemas de particionamento, o Btrfs apresenta inúmeros recursos interessantes, e consequentemente, sua complexidade o torna mais difícil de ser dominado.

Relaciono a seguir os principais recursos oferecidos pelo Btrfs:

  1. Snapshot e Clones: O Btrfs permite criar "snapshots" do sistema de arquivos, que são imagens básicas de um ponto no tempo. Estes snapshots são incrivelmente úteis para backups e para testar mudanças sem afetar o estado original. Além disso, o Btrfs pode criar clones de arquivos, que são semelhantes a hard links, mas com capacidade de escrita.

  2. Subvolumes: Os subvolumes no Btrfs são como sistemas de arquivos aninhados dentro do sistema de arquivos principal. Eles não têm tamanho definido e podem ser usados para organizar dados ou para separar o ambiente de trabalho.

  3. Integridade de Dados: O Btrfs verifica automaticamente a integridade dos dados e dos metadados por meio de checksums. Se estiver usando um array RAID, o Btrfs pode reparar dados corrompidos usando cópias espelhadas dos dados.

  4. Suporte RAID: Btrfs possui suporte nativo a configurações RAID. Ele pode lidar com RAID 0, 1, 5, 6 e 10 nativamente, sem a necessidade de ferramentas RAID externas.

  5. Compactação de Dados: A compactação de dados em tempo real é uma característica do Btrfs, o que pode resultar em uso eficiente do espaço em disco.

  6. Desfragmentação Online: Enquanto muitos sistemas de arquivos exigem tempo offline para desfragmentação, Btrfs pode desfragmentar dados enquanto o sistema está em uso.

  7. Balanceamento de Dados: Para sistemas que possuem múltiplos dispositivos (como em configurações RAID), o Btrfs pode balancear dados entre os dispositivos, otimizando o desempenho e o uso do espaço.

  8. Escalabilidade: Btrfs é projetado para ser escalável, sendo uma boa escolha tanto para pequenos dispositivos móveis quanto para grandes servidores de armazenamento.

  9. Conversão Flexível: É possível converter um sistema de arquivos ext3 ou ext4 existente para Btrfs sem perder dados. Isso facilita a migração para quem deseja experimentar os recursos do Btrfs sem uma nova instalação.

Nos próximos artigos passaremos a analisar mais detalhadamente os recursos oferecidos pelo Btrfs.

Referências

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Rubens Queiroz de Almeida