Infra - Linux

Sistema de arquivo: você está sabendo escolher bem?

Sistema de arquivo nada mais é do que a maneira de como o sistema operacional organiza e administra os dados em um disco. Então porque estudá-lo se todo o sistema operacional o tem?

por Elias Albuquerque



Bem pessoal, o nosso papo da semana refere-se a um assunto que todos conhecem, mas nem todos conseguem explicar com clareza o porquê.

Sistema de arquivo nada mais é do que a maneira de como o sistema operacional organiza e administra os dados em um disco. Então porque estudá-lo se todo o sistema operacional o tem?

Porque um sistema operacional precisa ter suporte ao tale isto reflete no desempenho.

O Linux é um dos sistemas operacionais que tem suporte à grande maioria dos sistemas de arquivos existente na face da terra digital.

Vamos ver a característica dos principais suportados:

FAT 16 (file alocation table)

Como todos sabem trata-se de um sistema de arquivos de 16 bits de endereçamento, não aceita LFN esuporta no Máximo 65526clusters que não podem ultrapassar 32 k. Cada partição pode ter no máximo 2 GB e se todos analisarem a perda de espaço no disco é muito grande. Imaginem 1000 arquivos com 400 bytes. Teríamos que usar 13 clusters de 32k para cada arquivo e perderíamos 16 bytes, todavia o Linux pode ler e gravar a vontade nele.

FAT32

Suporta LFN, e clusters menores de até 4 k, permitem uma econômia de 15 a 30 %de espaço em disco, porém é cerca de 6% mais lento que a FAT 16 e segundo diz a lenda é possível ter em um disco uma partição de até 2 TB.Outro problema é que alguns sistemas operacionais não enxergam este tipo de partição. Vale também ressaltar que a taxa de fragmentação é altíssima neste dois sistemas de arquivos.

ISO9660

Este é o formato do sistema de arquivos do cd-rom

NTFS

O NTFS é um sistema de arquivos super complexo, porém bastante sofistica e robusto.Original do NT este sistema foi aperfeiçoado e se encontra na versão 5 do w2k. Possui suporte a cotas de usuários (novo recurso), compactação de arquivos (coisa que já existia), suporte ao Active Directory, criptografia e ao LFS (Log File System, prove tolerância a falhas).Tem também um nível de fragmentação baixíssimo em relação aos ancestrais e teoricamente tem suporte de até 16 Hexabytes de espaço em disco (diz a Lenda).Como não existe hardware ainda para fazer a contra prova vale o que foi dito.Também ele consegue se recuperar de problema no disco sem resultar em perda de dados, suporte a LFN e caracteres UNICODE.

* Por defaullt o linux não lê NTFS você deve recompilar o kernel e ativar o suporte NTFS. Não se iluda só será possível ler NTFS!!! Mas trabalha-se para que o suporte a tecnologia seja total, pois como é um sistema proprietário fica mais lento chegar a este objetivo. Existe um projeto na Internet com este objetivo chamadoLINUX-NTFS, visite o site http://sourceforge.net/projects/linux-ntfs. Já existe uma versão estável, mas não totalmente finalizada.

VFS (Virtual File System)

Este realmente é um personagem importante no Linux, pois ele é o maestro que rege em harmoniaa integração de sistemas de arquivos tão diferentes.Sua função ébotar a mão na massa e traduzir via software todos os detalhes e estrutura do sistema de arquivo. Desta maneira apenas os dados são enviados ao kernel que os envia aos softwares do outro lado.Porém existem algumas desvantagens; ao ler estruturas complexas como fat32 o sistema ficará mais lento, pois ele tentará emular muita coisa que não existe neste sistema.

Sistema de arquivo nativo do Linux

Minix

Era uma versão miniatura de Unix para fins acadêmicos. Foi o primeiro sistema de arquivos a ser utilizado pelo Linux, porém era fraquinho, fraquinho! Suportava até 64 MB, máximo de 30 caracteres e algumas datas não apareciam.

EXT (extended)

Foi uma melhoria em relação ao minix, mas muitos problemas persistiam. Seu tamanho máximo era de 2 GB e suportava LFN.Era lento e devido a alguns problemas de manipulação dos Inodes ocorria fragmentação

EXT2 (second extend file system)

Foi uma grande vantagem em relação ao EXT, pois permite uma leitura e gravação mais rápida. Isto ocorre porque ele não é baseado em journaling, o que permite que o sistema operacional registre tudo o que esta sendo manipulado em disco.

Em contrapartida a cada desligamento incorreto o sistema de arquivo passa o fsck em toda a partição, o que permite até a perda de dados além da perda tempo. Porem ainda é bastante encontrado em servidores Linux afora.

ReiserFS

Este sistema de arquivo apresentado no Conectiva linux é bem melhor que o anterior porém mais lento pois apresenta o recurso de journaling. Seu log possui informações apenas em formato Metadata, ou seja, tamanho do arquivo, permissões etc. Caso ocorra uma queda de energia é possível recuperar as informações que não tenham sido completadas restaurando a consistência dos arquivos como faz o scandisk e o FSCK. Em compensação os dados que estiverem sendo gravados no momento da queda serão alterados o que permite dados truncados ou incompletos.

EXT3

Este é mais lento em operações normais mais apresenta journaling completo. Armazena tanto dados metadata quanto dados propriamente ditos em seus logs gerando um restore total.

Este sistema de arquivos é ideal para servidores em missão crítica onde nenhum dado pode ser perdido ou adulterado.Apesar da pequena queda de desempenho apresenta mais segurança.

Apartir do momento em que você começou a ler este artigo você deixou de ser a mesma pessoa, pois terá um entendimento mais profundo sobre a manipulação dos seus dados no seu servidor.

Aguardo a todos na próxima semana com a finalização desta matéria onde falaremos sobre conversões.

Elias Albuquerque

Elias Albuquerque - Consultor de TI e professor técnico de SQL, W2k e Segurança de Redes.
Consultor atualmente não atua mais com sistemas operacionais e redes.