Início > Diversos > Sistemas de Arquivo

Sistemas de Arquivo

Artiguinho rápido: Sistemas de Arquivo

Hi folks =)

Eu tava meio sem idéia de post, quase terminei um de AiGLX, quase terminei um sobre kérnels, mas nada que tava valendo mesmo o meu empenho. Então, a pedido da comunidade Linux vs. Windows, organizei rapidamente um artigo sobre uma apresentação de faculdade que eu fiz (era a minha parte no grupo): Sistemas de arquivos usados no Linux. Fiz numa linguagem fácil e não muito técnica, pra ninguém morrer de sono (como eu agora), dando foco pros sistemas de arquivo mais comumente utilizados: EXT3 e ReiserFS. Sim, eu sei que o Hans Reiser matou a mulher (ele diz que não, mas é o que dizem =) e provavelmente o ReiserFS e Reiser4 não terão atualização tão cedo. Mas, dos sistemas de arquivo que estudei, foi o que achei mais interessante, e provavelmente usarei no Linux para desktop por muito tempo =). Postarei também sobre o pré-histórico Fat32 e o gambiarra NTFS. Lets go!

 

Linux EXT2

O EXT2 na verdade é um EXT3 sem journaling, pra poupar explicações (já disse que tô com sono), leia a próxima parte que tu vai entender. Ele é praticamente igual ao Fat, também. =)

Linux EXT3

Foi desenvolvido pelo doutor Stephen Tweedie e colaboradores na Red Hat. O Sistema de arquivos EXT3 veio como evolução ao EXT2. A estrutura do sistema de arquivos é a mesma do EXT2, com a exceção que o EXT3 possui suporte ao Journaling.

O quê é o Journaling? -> Eu explico. O Journaling é um algoritmo que gera um “journal”, que é na bem verdade um arquivo de log. Esse arquivo de log registra as alterações à serem feitas no corpo do FS para depois faze-las e apagar o registro. Isso é extremamente interessante, pois em caso de interrupção súbita (como uma falta de energia) não sobram dados incompletos ou à serem gravados. Durante a inicialização, ele verifica se há algum dado não-sincronizado (logado mas não gravado) e, caso tenha, executa. Assim, dados não se perdem.

Isso faz o sistema de arquivos EXT3 ser confiável para interrupção súbita, fornecendo também uma rápida e confiável recuperação. Uma partição EXT2 pode ser convertida em EXT3, basta criar-se um Journaling. Do mesmo jeito que uma partiçao EXT3 pode ser transformada em EXT2, retirando o tal do Journaling.

O tamanho do inode do EXT3 é padronizado e pode ser escolhido. Ao aumentar o tamanho do Inode (4KB por exemplo), um arquivo de 1KB iria desperdiçar 3KB. Mas, usar um inode pequeno (512B, tamanho mínimo, por exemplo), ia castigar o cabeçote de leitura. O padrão é usar 4KB. O EXT3 não suporta arquivos individuais maiores que 2GB e eu não tive nem a curiosidade de tentar descobrir o motivo.

ReiserFS

Criado por Hans Reiser e mantido pela empresa The Naming System Venture (patrocinado pela Novell e Linspire), o ReiserFS é um dos sistemas de arquivos mais rápidos atualmente, e é um sistema de arquivos alternativo ao EXT2/3.

Entre suas principais características, estão que ele possui tamanho de blocos (inode) variável, suporte a arquivos maiores que 2 Gigabytes, estabilidade, suporte a quota, rápida velocidade de gravação e trabalha muito bem com arquivos pequenos, vou explicar. A principal sacada do ReiserFS é a alocação dinâmica de inodes, já que esse sistema de arquivos não os aloca em espaços fixos ou blocos e sim, aloca o tamanho exato que o arquivo precisa. Como assim? Exemplo, um arquivo é de 1MB, ele cria um inode de 1MB pra gravar o arquivo! Desperdício zero.

A leitura e escrita de arquivos grandes são limitadas pela velocidade do dispositivo de armazenamento e pelo canal de entrada e saída da controladora de discos. Já o acesso a arquivos pequenos, como scripts do Shell, é limitado pela eficiência do projeto do sistema de arquivos. A razão disso é que a abertura de um arquivo requer a leitura dos metadados sobre ele que estão armazenados no inode do diretório em uma área distinta dos dados. Após localizar a entrada referente ao arquivo no diretório é que o sistema realiza a leitura dos setores que contêm os dados.

No caso de um desligamento incorreto do sistema, o ReiserFS é capaz de recuperar a consistência do sistema de arquivos em pouco tempo (a verificação dura alguns segundos) e a possibilidade de perda de pastas ou partições é muito pequena. Em compensação, os arquivos que eventualmente estiverem sendo gravados no exato momento em que acabou a energia ficarão com seus dados corrompidos, haverá acesso aos arquivos normalmente, mas o conteúdo estará truncado. Isso por que os metadados estarão alterados, e o journal estará sincronizado.

Uma desvantagem do ReiserFS é o seu consumo de CPU muito elevado, ele utiliza no mínimo 7% da CPU, chegando a usar até 99% por cento, quando a atividade de disco é muito alta.

XFS

XFS é um sistema de arquivos muito rápido na gravação. Foi desenvolvido originalmente pela Silicon Graphics e posteriormente disponibilizado o código fonte. Considerado um dos melhores sistemas de arquivos para banco de dados.

Possui journaling que vem com um robusto conjunto de funções e é otimizado para escalabilidade. Entretanto é recomendado usar este sistema de arquivos em sistemas rodando Linux com controladoras SCSI e/ou armazenamento em canais de fibra e fonte de energia sem interrupção. Eu também explico, o XFS tem grande agilidade pois faz muito cache de disco em memória ram e caso haja um desligamento incorreto: A memória RAM é volátil, bye bye informações. =)

Ele também usa journaling, e foi adicionado ao Linux recentemente.

Fat32

O Fat32 utiliza 32bits pra armazenamento de arquivos (2^32), o que faz que cada arquivo não possa ultrapassar 4GB. Fat32 é um sistema de arquivos rápido porém sem controle nenhum de permissão, quota e etc. Facilmente é fragmentado, é instável, dá bad cluster e todas as facilidades que a Microsoft te oferece.

NTFS

O NTFS (New Technology File System) foi feito baseado no HPFS, que a IBM usava no OS/2 (High Performance File System, que na verdade não tem tanta performance assim). Em ambiente Windons ele é o nirvana dos file systens, visto que a Microsoft anunciou, anunciou, anunciou e matou o WinFS antes mesmo do lançamento. Foi desenhado para acompanhar os Microsoft Windons série NT (3.5, 4, 2000, ChisPê, 2003 e Vista).

O NTFS não tem uma Fat (tabela de alocação de arquivos). Afinal, haviam vários virus que destruiam a Fat do Fat16 e Fat32. Então, cada arquivo tem sua própria Fat ao invés de haver uma só pra partição.

FAT, eu explico outra vez: File Alocation Table (Tabela de Alocação de Arquivos). A grosso modo é um índice, onde mostra a localização de cada arquivo no corpo da partição para o cabeçote ir buscar, ao invés de ter que procurar em um por um. Quando a Fat era apagada por vírus ou algum outro problema, o conteúdo do HD continuava no corpo das partições, mas sem o índice ele não encontrava nada, tchau arBquivos! Muitos usavam o File Recover, eu nunca tive tanta sorte.

Enfim, isso é interessante, mas baixa o desempenho do sistema de arquivos. Se aliar outras perfumarias que há no NTFS e em outros file systens, como compactação de dados, encriptação, quota pra usuários e cia, usar o seu ChisPê exigirá uma dose de paciência, e caso um vírus ataque o HD como de praxe, recuperar os dados será uma coisa ainda mais complicada.

Algumas outras informações sobre o NTFS: Os blocos são de 512B (sim, não desperdiça espaço e quase não fragmenta, contrariamente ao Fat32) e castiga o cabeçote do HD, não há limite para tamanho de arquivos e a cada “grande versão” do Microsoft Windons há uma atualização do mesmo file system, e chega por hoje😛

 

 

Então é isso. Vou descansar um pouco pois tô meio cansado do trabalho. Abraço pra todos e agradeço aos comentários que tenho recebido, apesar de eu não ter tido tempo pra responder eles costumam me inspirar. =)

Stay safe,
Lucas Timm.

Categorias:Diversos
  1. Phantom X
    7 de janeiro de 2007 às 3:36 am

    Muito bom artigo, também gosto do reiserfs, mas uso também o ext3. Nunca perdi UM arquivo com eles, mesmo com desligamentos fatais (nobreak com defeito é foda…).

    “EXT3 veio como evolução ao EXT3”
    Corrija o segundo EXT3 dessa frase – é EXT2.🙂

    Valeu!

  2. 17 de novembro de 2007 às 7:35 pm

    eeee ta otimo to cansado de ler tudo isso mais valeu apena

  3. Edgard
    2 de julho de 2008 às 9:48 pm

    Prezado Lucas,

    ao contrário do comentário “EXT3 não suporta arquivos individuais maiores que 2GB…”, o tamanho máximo de um arquivo no ext3 é 2 Terabytes (não 2 Gigabytes; ref. “Linux ext3 FAQ” em http://batleth.sapienti-sat.org/projects/FAQs/ext3-faq.html.

    Atenciosamente,
    Edgard

  1. No trackbacks yet.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: