Entendendo o ReiserFS

Esse artigo envolve as principais características desse sistema de arquivos que é padrão em algumas importantes distribuições Linux. O texto foi feito com o objetivo de demonstrar porque a performance do Reiser é tão boa e os motivos pelos quais esse filesystem tem bastante reputação no mundo Linux.

[ Hits: 80.289 ]

Por: Fernando Calheiros em 07/06/2006


Por que o Reiser FS é mais rápido e otimiza melhor o espaço em disco?



Velocidade e otimização do espaço em disco: Por que o Reiser FS é mais rápido e otimiza melhor o espaço em disco?

Como já explicado, um fator que melhora o desempenho do Reiser em relação ao EXT3 por exemplo é a opção de apenas utilizar os metadados no journal.

Porém outro fato importantíssimo é a facilidade na manipulação de pequenos arquivos. Isso acontece devido a utilização das arvores balanceadas B*, que organiza todos os dados no sistema de arquivo. É graças a essa estrutura que é possível termos quantos milhares de diretórios quisermos em um único diretório sem ter degradação na performance. Além disso existem outros recursos no Reiser que melhoram ainda mais a performance com a manipulação de arquivos de tamanho reduzido.

Uma característica importante é que o Reiser não aloca espaço em disco de acordo com os blocos disponíveis no HD, mas sim aloca o tamanho exato que é necessário para aquele arquivo. Se você grava n arquivos que no total de 100 bytes, esses são todos agrupados em único bloco, ao invés de por cada arquivo em seu próprio bloco, como acontece no EXT3.

Isso significa que além de mais rápido devido ao journal e a forma de organização dos arquivos, o Reiser também consegue armazenar mais em um HD do que conseguiria com o seu concorrente principal, o EXT3.

Um exemplo prático é instalar a distribuição Goblinx. Instalado em EXT3 o tamanho ocupado em disco é de 1 GB enquanto no Reiser a mesma instalação tem em uma partição Reiser 800 MB de espaço utilizado.

Por último, outro recurso que garante maior performance ao Reiser é que os arquivos em si e seus metadados são gravados muito próximos um do outro. Ou seja os arquivos podem ser lidos em uma única movimentação do cabeçote de leitura do HD, evitando assim, com que o mecanismo tenha que se deslocar diversas vezes.

Abaixo segue uma tabela sobre o tamanho máximo de um arquivo no ReiserFS, de uma partição, quantos diretórios ele pode ter.

Máximo de arquivos

232 - 3 => 4 Gi - 3

232 - 3 => 4 Gi - 3

Maximo de arquivos que um diretório pode ter

518701895,
mas na pratica esse valor é limitado pela função de hash. r5 hash permite em torno de 1 200 000 nomes de arquivos sem dar problema

232 - 4 => 4 Gi - 4
mas na pratica esse valor é limitado pela função de hash. r5 hash permite em torno de 1 200 000 nomes de arquivos sem dar problema

Tamanho máximo de um arquivo

231 - 1 => 2 Gi - 1

 

260 - bytes => 1 Ei

Maximo de links para um arquivo

216 => 64 Ki

232 => 4 Gi

Tamanho máximo para uma partição

232 (4K) blocos => 16 Ti

232 (4K) blocos => 16 Ti

Retirado do site:
Observe que até a versão 3.5, o Reiser suportava um arquivo com no máximo 2 GB. A partir da versão 3.6 essa limitação foi corrigida.

Benchmark


Há vários testes de benchmark interessantíssimos comparando o Reiser com diversos outros sistemas de arquivos. Para quem tiver curiosidade dêem uma olhada no seguinte endereço:
Página anterior     Próxima página

Páginas do artigo
   1. Objetivo
   2. Segurança e integridade dos dados
   3. Por que o Reiser FS é mais rápido e otimiza melhor o espaço em disco?
   4. Conclusão
   5. Referências bibliográficas
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Expandindo partição em LVM

Owncloud com autenticação no Active Directory

Montando um servidor Linux com sshfs no SuSE

O básico sobre RAID com mdadm e raidtools

Cotas de Disco

  
Comentários
[1] Comentário enviado por angeloshimabuko em 07/06/2006 - 20:06h

O Reiserfs versão 3 não garante a integridade dos dados, apenas dos metadados (informações referentes aos arquivos: permissões, donos, datas, etc.). O único dos principais sistemas de arquivos para Linux que preserva a integridade dos dados é o Ext3 (opção data=journal). O XFS e o JFS também fazem o journaling apenas de metadados. A otimização do uso de espaço em disco no Reiserfs v3 acarreta perda de desempenho; os principais testes de benchmark realizados utilizam a opção notail; além disso, sem a opção notail o consumo de CPU é muito grande. Mesmo com a opção notail o desempenho do Reiserfs v3 é muito bom com arquivos pequenos (o termo pequeno é muito vago na literatura atual: alguns dizem até 10 KB, outros 20 KB); tem sido superior aos outros 3 sistematicamente com arquivos menores que 10 KB, e o XFS tem vencido os testes com arquivos maiores que 100 KB; não encontrei dados para compará-los com arquivos na faixa intermediária. O grande problema do Reiserfs v3 é o índice de fragmentação e a ausência de ferramenta para desfragmentação (o Hans prometeu uma para o Reiser4). O XFS possui uma (xfs_fsr) e o JFS aparentemente também tem. Para desfragmentar volumes com o Ext3 e o Reiserfs v3 deve-se fazer um backup (ou dump), apagar (ou reformatar) e restaurar tudo. Finalmente, o Reiserfs não utiliza a estrutura de árvore para armazenar os arquivos, exceto quando são menores que 4 KB; para arquivos maiores são utilizados ponteiros para alocação de blocos não-formatados (indirect items), de forma análoga ao Ext3 (ambos são ditos usar alocação por blocos). O XFS e o JFS usam alocação por extensão (extents), i.e., utilizam uma estrutura, também em árvore, para ordenar (decrescentemente) e alocar conjuntos de blocos contíguos para diminuir a fragmentação de arquivos.

[2] Comentário enviado por fernoliv em 07/06/2006 - 20:49h

Muito bom o artigo xará! Você está de parabéns pela iniciativa e pelos esclarecimentos realizados.

Abraço,

Fernando.

[3] Comentário enviado por removido em 08/06/2006 - 06:46h

gostei tb valew

[4] Comentário enviado por DooM em 08/06/2006 - 08:45h

Obrigado pelos esclarecimentos Angelo, você poderia citar algum link ou outra fonte que eu pudesse dar uma olhada? Como dito no inicio, esse artigo foi feito com base nos links relacionados na referencia bibliografica o que inclui o próprio site da Namesys.
Obviamente não encontrei os defeitos que você citou sobre a performance do disco, a não segurança a integridade dos dados e os locais que pesquisei todos citam a utilização de arvore.
Onde poderia checar mais informações como as prestadas por você?
Obrigado pela ajuda e possível esclarecimento.

[5] Comentário enviado por flipe em 08/06/2006 - 09:29h

muito bom artigo, fiquei mais esclarecido, eu uso o xfs, mas, todos tem suas vantagens e desvantages!

falo!

[6] Comentário enviado por angeloshimabuko em 08/06/2006 - 12:27h

Um excelente artigo que li sobre o Reiserfs foi do Florian Buchholz em: <http://homes.cerias.purdue.edu/~florian/reiser/reiserfs.php>. Veja o benchmark feito por Hans Ivers em 2006 (<http://www.debian-administration.org/articles/388>), que cita outros 2 testes. Um bom artigo de referência sobre os principais sistemas de arquivos e sua escalabilidade, embora desatualizado, foi escrito por Bryant, Forester e Hawkes: "Filesystem performance and scalability in Linux 2.4.17"; para a Usenix de 2002.

[7] Comentário enviado por agk em 08/06/2006 - 14:24h

Eu utilizo reiserfs há bastante tempo e nunca tive problemas.
Quanto a utilizar reiserfs e nfs há vários relatos de que o sistema fica instável, mas não é o meu caso.
Sem contar que o reiserfs tem suporte a partições criptografadas (os outros tipos de sistemas de arquivos também devem ter, mas eu desconheço) e isso aumenta bastante a segurança local do sistema.

[8] Comentário enviado por removido em 09/06/2006 - 08:28h

Ótimo artigo.
eu passei para ReiserFS, e gostei das definições aqui encontradas. Veio a reforçar o que eu havia ouvido sobre este filesystem.
muito bom.

[9] Comentário enviado por coffnix em 09/06/2006 - 22:59h

Perfect!!!

Gostei do artigo. Realmente, discutir sobre o melhor sistema de arquivos é como discutir qual a melhor distro a se usar: "depende da utilização e necessidade de cada um"

Para o que eu uso, que é meu pc doméstico, realmente, ganhei mais desempenho, velocidade e segurança de dados armazenados.
Agora, na empresa onde trabalho, os vários servidores usam EXT3 e reiserFS. Pergunta, pra que os 2? NECESSIDADE!

Então é isso. Parabéns DooM e continue contribuindo com a nossa comunidade.

[10] Comentário enviado por rodrigo_leonel em 10/06/2006 - 03:04h

Faz muito tempo que eu estava querendo um material sobre isso... muito obrigado!

[11] Comentário enviado por pedemesa em 22/06/2006 - 13:58h

Muito bom... muito bom...

[12] Comentário enviado por juniormardoque em 17/05/2007 - 23:43h

Estava procurando por algum artigo sobre filesystem e encontrei este seu, muito interessante. e me deixou com vontate de pesquizar mais a fundo tudo isso. Valeu DooM continue contribuindo com a comunidade.

[13] Comentário enviado por felipemartinsss em 19/05/2007 - 13:18h

Alguém sabe exatamente quando surgiu o ReiserFS?

[14] Comentário enviado por felipemartinsss em 19/05/2007 - 14:09h

Dei uma pesquisada aqui e parece que foi em 2001. Por favor me corrijam se eu estiver errado.
Valeu!

[15] Comentário enviado por brennobr em 11/06/2007 - 15:41h

Pô! Tô fazendo um trabalho na facul... e esse artigo me ajudou muito... estou apenas começando, mas... já deu pra ter uma boa idéia!!!!

xD

[16] Comentário enviado por leoh em 12/08/2007 - 10:54h

Para aqueles que precisam ver pra crer, segue um simples passo a passo para testarem a eficiencia do reiserfs no tratamento de arquivos pequenos:

#Crie um disco virtual de 10M para cada fs
dd if=/dev/zero of=disco.reiserfs bs=1k count=10000
dd if=/dev/zero of=disco.ext3 bs=1k count=10000

#Crie o fs nos discos
mkfs.reiserfs -f -b 512 disco.reiserfs
mkfs.ext3 disco.ext3

#Monte os discos
mount -o loop disco.reiserfs /mnt/reiser
mount -o loop disco.ext3 /mnt/ext3

#Crie 10.000 arquivos pequenos em cada um
for i in `seq 1 10000`
do
touch $i
done

----------------
O ext3 vai conseguir criar por volta de 5.000 arquivos. O reiser criará 10.000 arquivos sem qualquer problema

Motivo: o ext3 atribui um inode pra cada arquivo. O reiser nao tem essa caracteristica.

Abracos,

[17] Comentário enviado por mauriciotaveira em 20/10/2009 - 12:41h

Olá gostaria de contribuir com o assunto, outra desvantagem do reiserfs que não foi abordada é em relação ao consumo de CPU...
Gostaria se possivel de abrir esse parentese, para comentários e experiencias... Atualmente estou fazendo estudos do uso do reiserfs em cache para o squid3, o que tenho lido é que realmente o desempenho é muito bom...


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts