quarta-feira, 7 de maio de 2008

Entendendo o ReiserFS ou Reiser3

Falarei hoje sobre o que é o ReiserFS, criado por Hans Raiser e mantido durante muito tempo por sua empresa, a Namesys. O ReiserFS, também chamado de Reiser3, possui uma atualização chamada Reiser4, com aprimoramento das características que falarei adiante, porém o mesmo não é suportado oficialmente pelo kernel do Linux.


A questão é que o ReiserFS é um dos sistemas de arquivos mais interessantes já lançados, não é a toa que o mesmo conseguiu uma grande abrangência poucos anos após seu lançamento, sendo inclusive adotado como filesystem padrão de algumas grandes distribuições, como a SuSE, durante algum tempo. Dentre essas características podemos citar logo de cara que o ReiserFS é um sistema jornalado, ou com suporte a journaling, ou loggin. Isso significa que antes de se realizar uma modificação em um arquivo no disco rígido, o Reiser escreve a alteração em um arquivo de log, para em seguida fazer a alteração no arquivo para só após o ok apagar o log. Isso garante a integridade dos dados em casos de, por exemplo, uma falta de luz.

Outro ponto positivo do sistema ReiserFS é a alocação dinâmica de blocos; enquanto em outros sistemas de arquivos (como o todo poderoso NTFS) o tamanho dos blocos é fixo, no reiser os mesmos são dinâmicos. Isso significa que, se em uam partição NTFS você salva um arquivo de 8K em uma partição com blocos de 64K, o arquivo ocupará 64K, já no reiser ele ocupará apenas os seus 8K.

Suporte a partições de 16 TiB, diferente de sistemas como ext3 que acima dos 8 TiB começam a apresentar problemas de performance.

Outra característica bem interessante do ReiserFS é a sua organização em árvore, chamada B+ Tree. Nessa organização, os dados são armazenados em folhas em sub-árvores, chamadas ponteiros, que por sua vez são ligados a raiz, ou árvore principal

Dentro dessa estrutura encontramos os dados, que são classificados como diretórios, dados diretos, dados indiretos e inodes. Os inodes são os metadados dos arquivos armazenados, os mesmos ficam armazenados junto as folhas, com os dados diretos, que são os arquivos de pequeno tamanho. Os arquivos de grande tamanho, por sua vez, são chamados de dados indiretos e são localizados fora da árvore através dos ponteiros.

Essa estrutura permite uma localização muito rápida de arquivos pequenos (como os usados pelo sistema) porém possuem como risco a fragmentação, que pode acabar por exigir uma maior processamento por parte do computador. Em linhas gerais, testes de performance feitos entre ReiserFS e ext3 sempre apontam por uma melhor performance do sistema Reiser.

Hoje o desenvolvimento do ReiserFS anda meio sombrio, devido ao fato de seu criador ter sido preso em meados de 2007, sob suspeita de assassinato da própria esposa. Apenas de curiosidade, esse é um caso deveras confuso, pois ao que parece a mulher possuía um amante que era assassino confesso de 8 pessoas, mas que negava veemente ter matado a mulher, enfim uma zona de pessoas suuuuper legais :S

Páginas de Referência:
http://www.guiadohardware.net/dicas/recuperando-arquivos-particoes-reiserfs.html
http://www.infowester.com/reiserfs.php
http://homes.cerias.purdue.edu/~florian/reiser/reiserfs.php
http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=2119&pagina=7
http://en.wikipedia.org/wiki/ReiserFS