Introdução ao universo dos filesystems

Uma pequena introdução aos tipos de filesystems que o Linux tem suporte (ext2, ext3, ReiserFS, JFS, XFS, etc) e quais as vantagens e desvantagens de cada um.

[ Hits: 53.632 ]

Por: Rafael Leandro Breviglieri em 04/08/2004


Tipos de filesystem



Sem suporte a journaling


ext2 : é um sistema de arquivos muito rápido pelo fato de não possuir um journal, sendo assim os dados são gravados diretamente. Quando ocorre algum crash, o fsck é acionado para a verificação do sistema, sendo às vezes um processo lento e nem sempre com boas expectativas ocasionado quase sempre perda de dados.

Com suporte a journaling


ext3 : foi desenvolvido pelo doutor Stephen Tweedie e colaboradores na Red Hat, ele seria um ext2 com recurso de journaling e passou a ser suportado na versão 2.4 do Linux. No ext3 o journal usa uma camada chamada JDB (Journaling Block Device), que utiliza um método diferente na recuperação de dados, ao invés de armazenar bytes que devem ser gravados, ele armazena blocos modificados do sistema de arquivos na memória para poder rastrear as operações que ficaram pendentes, a vantagem é que ele não precisa lidar com a complexidade de gravar bytes no journal e a desvantagem é que o journal acaba ficando maior.

ReiserFS : criado por Hans Reiser especialmente para o Linux, atualmente ela é patrocinada pela SuSe e mantida pela empresa NameSys (sendo o filesystem padrão das distribuições GNU/Linux da SuSe), o ReiserFS não utiliza blocos de tamanho fixo, mas ajusta o tamanho de acordo com o arquivo, ele e muito rápido ao ler arquivos menores.

O ReiserFS possui suporte a arquivos maiores que 2GB, o acesso a árvore de diretórios é mais rápido que o ext3, utiliza uma eficiente estrutura de dados chamada "balanced tree" ou árvore equilibrada pois, trata toda a partição como se fosse uma única tabela de banco de dados contendo diretórios, arquivos e arquivos de meta-data, isso aumenta o desempenho de aplicativos que trabalham com arquivos pequenos (são lidos em apenas um I/O do HD), em um sistema de arquivo como ext2 o espaço no disco e alocado em blocos que variam de 512 a 4096 bytes ou até maior, se o arquivo exceder um múltiplo exato do tamanho do bloco ocorrerá desperdício de espaço no disco o ReiserFS não aloca em espaços fixos ou blocos ele aloca o tamanho exato que o arquivo precisa.

O ReiserFS infelizmente não trabalha perfeitamente com o sistema de arquivos de rede NFS (Network File System), existem alguns patches para resolver o problema, mas eles não o resolvem completamente.

JFS (Journaling File System) : criado pela IBM para uso em servidores corporativos, teve seu código liberado. O sistema de arquivos JFS também usa a estrutura I-node para armazenar a localização dos blocos de cada arquivo nas estruturas físicas do disco, a versão JFS2 armazena esses I-nodes em uma árvore binária para acelerar o acesso a essas informações, esses blocos podem variar de 512 a 4096 bytes, a alocação dos I-nodes é feita conforme vai sendo necessário.

XFS : desenvolvido originalmente pela Silicon Graphics e posteriormente disponibilizado o código fonte, o XFS possui vários patches e alguns bugs, mas é um sistema de arquivos muito rápido na gravação, possui um desfragmentador para arquivos.

Outros filesystems


Existem outros tipos de filesystems em testes, tais como BesFS, SquashFS, que utiliza compressão no fs, existem filesystem que utilizam encriptação para segurança de dados, reimplementações tais como o Reiser4, uma versão melhorada do ReiserFS.

Página anterior     Próxima página

Páginas do artigo
   1. O que são filesystems
   2. Tipos de filesystem
   3. Qual filesystem devo usar?
Outros artigos deste autor

Que tal criar uma mini-distro em 1 disquete?

Máquinas velhas a todo vapor

Leitura recomendada

Git - Ciclo básico de trabalho

Osiris - Integridade do sistema de arquivos

Instalando Linux em segundo HD IDE, Sata, USB ou Pendrive

Solucionando problemas no sistema de arquivos

O básico sobre RAID com mdadm e raidtools

  
Comentários
[1] Comentário enviado por agk em 04/08/2004 - 10:13h

Parabéns ótimo artigo, também utilizo reiserfs e particularmente estou muito satisfeito, muito melhor que o ext2, sem comparação. Quanto ao problema com o NFS, isso eu não sabia, o que acontece exatamente quando utilizo reiserfs com NFS? Posso perder arquivos? Onde posso encontrar informações a respeito?
Valeu!!!

[2] Comentário enviado por m4sk4r4 em 04/08/2004 - 11:18h


Muito legal o artigo, consegui até esclarecer os conceitos sobre filesystem, agora eu tenho uma noção básica de como funcionana. Muito bom.

Flwz

[3] Comentário enviado por internero em 04/08/2004 - 16:09h

Aeee Pisto!!

maravilha seu artigo!! curti a beça :)

[]'s

[4] Comentário enviado por fayet em 05/08/2004 - 00:24h

po .. algo que eu sempre quis saber e nunca tinha achado nada a respeito .. mto bom o artigo .. parabéns =D

[5] Comentário enviado por pistosbo em 05/08/2004 - 05:22h

Amgiow e o seguinte atualmente no kernel 2.6 esse problema já foi sancionado (pelo menos não consta nada nos emails do kernel) os problemas foram apresentados nas versões 2.2.14 a 2.4.8-ac5 existem patches para essas versões o principal problema apresentado e na hora de exportar os arquivos ele apresentava erros de tamanho isso ocorria pela gravação de block/inode que apresentava erros.

Aqui estão algumas fontes seguras que relatam esses problemas:

http://mandrakeuser.org/docs/connect/cnfs2.html
http://www.spinics.net/lists/newbies/msg00033.html

Pesquise no google por "ReiserFS and NFS" ou "ReiserFS+NFS" existem varios sites relatando problemas com o uso dos dois, eu tinha um site (um FAQ) e português que apenas falava que existia o problema entre os dois infelizmente perdi o site do FAQ, por favor verifique e se apresentar erros nas informações que eu te passei aqui por favor me corrija.

PiStO


[6] Comentário enviado por y2h4ck em 05/08/2004 - 09:37h

cara nao sei se vc sabe oq ocorre ... eu utilizo ext2 ...
tentei usar ext3 e reisefs ... porem se eu uso ext3 ou reiserfs o sistema nem siquer instala direito ... vai dando inumeros erros na instalação ... como por exemplo

"este pacote nao pode ser instalado" e assim vai ...
e uma vez que consegui instalar ... o sistema ocasionava inumeros Seg Fault

sabe oq pode ser
meu processador e um cyrix II - 233
tenho 256 mb de ram

[7] Comentário enviado por engos em 05/08/2004 - 13:57h

O que ocorre com o y2h4ck também já ocorreu muito comigo... nunca consegui resolver e acabei ficando com o que funcionasse (já ocorreu o inverso comigo) em várias máquinas diferentes. Acho que tem alguma coisa a ver com a bios, talvez uma atualização resolvesse, mas nunca tive a oportunidade de testar (não dava tempo).

Gostei muito do artigo, infelizmente achei um pouco bagunçado e poderia ter sido melhor dividido.

Você comenta sobre i-node, mas o que eles são? Você disse que usa o ReiserFS devido ao tamanho dos arquivos e utilizar árvores balanceadas. O que são essas árvores balanceadas? Quando deve-se preferir utilizar o ext2, ext3 e outros?

[8] Comentário enviado por ice2642 em 06/08/2004 - 23:04h

bem legal seu artigo, não ssabia destes detalhes do jornal.
acho q é uma boa opção tb o ext3

[9] Comentário enviado por jllucca em 07/08/2004 - 12:08h

Opa,

cara achei bem legal seu artigo... Não sei se foi o primeiro, mas se foi também tá tudo bem. Eu cometo tambem alguns erros e adoro quando os outros apontam nos meus artigos porque dá pra ter o conflito de idéias que é o que faz a pessoa se desenvolver. :)

Assim, espero que voce não fique chatiado com o que vou falar. Como o engos disse tu fala sobre inodes como se nos já soubessemos o que eles são e pra que servem quando se escreve um artigo tem que pensar em quem está lendo... como o artigo parece se voltado para iniciantes seria legal ter falado essas coisas até se fosse para veteranos relembrar os conceitos é sempre bom. No ReiserFS tu fala que usa ele por poder ter arquivos de até 4GB, mas não comenta sobre as limitações dos outros "file system" que permitem até a metade no caso dos ext2 e ext3. Fora isso em alguma parte tu comenta sobre árvores binarias, mas não fala sobre o conceito. Nem todo mundo sabe que uma "árvore" é parecida com árvores genealogicas("arvore binaria" seria uma arvore onde cada elemento pode ter até dois filhos). Esses detalhezinhos são minusculos porem importantes! :)

Outra coisa que espero que o autor saiba é que todos os linux no kernel utilizam o VFS e é esse "fulaninho" que permite nos termos suporte a inumeros FS diferentes durante a utilização do sistema :) Então dizer que o ext2, é padrão não tá errado.

[]'s

[10] Comentário enviado por Grobsch em 25/11/2004 - 10:00h

Parabéns pelo artigo...
Curiosamente sempre usei o reiserfs pq iniciei já com o Slackware 9.0...
Outro dia precisava testar o script de instalação do GoblinX, então apaguei uma partição e formatei em ext3... Depois que instalei o GoblinX vi que os 304Mb do cd-rom ocuparam 954Mb no HD, enquanto que em uma partição reiserfs ocupavam somente 775Mb.
Diferença grande a meu entender.

[11] Comentário enviado por esmorais em 21/03/2005 - 17:00h

Ai valeu pelo artigo, ajudou muito no meu trabalho de escola valeu.

[12] Comentário enviado por pr02nl em 26/01/2006 - 15:40h

Parabéns pelo artigo...
Agora acho que você pode me ajudar com uma dúvida, tem como eu migrar meu sistema de arquivos do ext2 para o RaiserFS, sem ter que reinstalar todo o sistema?

[13] Comentário enviado por kakashi_kun em 05/10/2007 - 22:18h

muito bom mesmo cara eu nao sabia oque era journaling.
vlw pelo tuto

[14] Comentário enviado por israel_miranda em 19/03/2008 - 16:13h

O reiserfs é supremo. Mas tem sua desvantagem....
Recuperar arquivo nele é muito mais complicado, se acontecer alguma coisa grave com o hd
se sua máquina desligar, ou reiniciar, reze para não ter que executa
fsck.reiserfs --rebuild-tree
se você tiver que reconstruir a árvore, com certeza perderá dados
experiência própria :-(


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts