Btrfs – O sistema de arquivos da próxima geração GNU/Linux

O sistema de arquivos Btrfs ou B-tree file system é um sistema de arquivos que teve seu desenvolvimento iniciado na Oracle Corporation por Chris Mason, um engenheiro chave que trabalhava na equipe (de outro sistema de arquivos) ReiserFS ligado a SUSE/Novell. Chris então, juntou-se à Oracle em 2007 para desenvolver um novo e robusto sistema de arquivos com recursos inovadores e não existentes em outros sistemas de arquivos.

Atualmente o Btrfs está sendo desenvolvido, não só pela Oracle, mas com participação de empresas de nomes impactantes, como Intel, SUSE, Red Hat e Fujitsu. O mesmo é considerado o sistema de arquivos da próxima geração para sistemas GNU/Linux.

Algumas de suas capacidades destinam-se a suprir a falta de pooling instantâneos, adição dinâmica de verificação integral em multi dispositivos, estes que são recursos altamente cruciais no Linux quando falamos de armazenamento em grande escala, muito comuns em empresas de grande porte.

O Btrfs na versão foi originalmente programado para o lançamento em 2008, e foi finalmente aceito no kernel Linux padrão, a partir de 2.6.29, em 2009. A partir da aceitação, várias distribuições GNU/Linux começaram a oferecer suporte ao sistema de arquivos Btrfs, sendo algo experimental, na escolha do sistema de arquivos raiz durante a instalação do sistema operacional GNU/LINUX.

Alguns dos principais objetivos deste novo sistema de arquivos é torná-lo 100% eficaz em tolerância de falhas e erros, inibindo perda de dados por problemas que podem vir acontecer, assim, como fazer um gerenciamento dos volumes criados com Btrfs, permitindo aumentar e diminuir seu tamanho com o sistema de arquivo montado, e ainda fazer com que o mesmo seja o mais veloz e tenha um poder de armazenamento muito grande.

Com estes recursos, entre outros, muitos adeptos do software livre o passaram a respeitá-lo sendo “um sistema de arquivos do futuro, à partir de agora“.

Tais recursos que os desenvolvedores implantaram já existiam em outros sistemas de arquivos como no caso do ZFS da Sun Oracle, proprietária dos SO Solaris e OpenSolaris. Por isso que muitos consideram o Btrfs, o ZFS para GNU/Linux.

Em 2011, características de desfragmentação foram anunciadas para a versão do kernel Linux 3.0. Além de Mason da Oracle, um desenvolvedor da Fujitsu contribuiu com mudanças de desempenho.

Com tantas variantes de sistemas de arquivos onde temos ext3/ext4/ Reiser etc, por que desenvolver um novo sistema de arquivos e não aperfeiçoar os sistemas de arquivos já existentes?

De acordo com o site do projeto, apesar do GNU/Linux ter uma grande variedade de sistemas de arquivos que podem ser usados, existem uma série de desafios com escala para os subsistemas de armazenamento de grande porte, que estão se tornando comum em centros de dados atuais.

Sistema de arquivos precisa de escala na sua capacidade de enfrentar e gerenciar o armazenamento de grande porte, e também na sua capacidade de detectar, reparar e tolerar erros nos dados armazenados no disco.

Estas necessidades em si dariam muito trabalho em implantar em um sistema de arquivos que foi desenvolvido com estes recursos, por isso que os desenvolvedores acharam melhor partir do zero.

Em 2008, o principal desenvolvedor do ext3 e ext4, sistemas de arquivos, Theodore , afirmou que, embora houvesse melhoras das características de ‘ext4’ , não teve um grande avanço, pois o mesmo utiliza tecnologia obsoleta, e é um tapa-buracos; Theodore acredita que Btrfs é a melhor direção de avanço porque “ele oferece melhorias em confiabilidade, escalabilidade e facilidade de gerenciamento“. Btrfs também tem “um mesmo número das ideias que o projeto Reiser3 / 4 teve um dia”.

Principais recursos do sistema de arquivos Btrfs:

  • Conversão do sistemas de arquivos ext3 e ext4 para Btrfs;
  • Desfragmentação com o sistema de arquivos montado;
  • Gerenciamento de volumes lógicos integrados no sistema de arquivos permitindo o aumento e diminuição do espaço total;
  • Suporte a RAID 0, RAID 1, RAID 5, RAID 6 e RAID 10;
  • Snapshots com sistema de arquivos montados, imagine que um ‘snapshot’ é uma imagem do volume lógico, fazer uma duplicata de um sistema congelando uma delas, ou seja, um backup em tempo real;
  • Backup incremental eficiente e espelhamento de FS;
  • Verificação do sistema de arquivos montado ‘on-line’ e desmontado ‘off-line’, ambas de forma muita rápida;
  • Checksums sobre os dados e metadados, isso é uma das garantias de manter a integridade dos dados armazenados;
  • Alocação dinâmica de inodes: com esse recurso (lembre-se o que inodes são estruturas que contém informações sobre os arquivos) haverá uma diminuição de desperdício de espaço. Outros sistemas de arquivos têm blocos de tamanho fixo para alocação, no Btrfs o tamanho do bloco (lembre-se que os dados no disco fica armazenado em blocos) será justamente do tamanho do arquivo a ser alocado;
  • Compressão com zlib e LZO;
  • Eficiência de organização de diretórios e arquivos;
  • Tamanho máximo de um arquivo é 16 Exabytes.
  • Criptografia

Justamente alguns destes recursos são ausentes em certos sistemas de arquivos atuais e serão ou já estão implementados no novo sistema de arquivos de acordo com os desenvolvedores do Btrfs. E como todo usuário, vem no mínimo um pouco de curiosidade de testar e ver como o sistema se comporta com Btrfs. – eu sendo um beta tester do SUSE Linux Enterprise team, fui informado que a próxima versão do SUSE Linux Enterprise 12 já terá o Btfs como sistema de arquivos por padrão.

Em 2013 muitos usuários do GNU/LINUX resolveram testar o sistema Btrfs em suas distros Ubuntu, Slackware, Fedora, Debian e etc, só por curiosidades, testes de benchmarks e outras análises para um futuro bem próximo, estar utilizando “de raiz” o sistema de arquivos perfeito para uma nova geração de sistemas operacionais Linux. 😉

Referências: [button color=”#000000″ background=”#91BF1D” size=”small” target=”blank” src=”http://www.vivaolinux.com.br/artigo/Apresentando-o-Btrfs-Nova-geracao-de-sistema-de-arquivos-para-GNU-Linux/”]VoL[/button] [button color=”#333333″ background=”#E14D43″ size=”small” target=”blank” src=”https://btrfs.wiki.kernel.org/index.php/Main_Page”]Btrfs Wiki[/button]

Add Comment