19 fevereiro 2009

Tipo de Sistemas de Arquivos no LINUX

Um sistema de arquivos é um conjunto de estruturas lógicas e de rotinas, que permitem ao sistema operacional controlar o acesso ao disco rígido. Diferentes sistemas operacionais usam diferentes sistemas de arquivos. Os sistemas de arquivos do /Linux evoluem de forma constante, juntamente com o kernel e outros subsistemas. Muitas melhorias são introduzidas em todos os formatos de sistemas suportados pelo GNU/Linux, tornando os mesmos: mais seguros, rápidos e estáveis.

O sistema de arquivos é independente do hardware e da BIOS. É por meio de um sistema de arquivos que ocorre a gravação e a recuperação dos dados em um dispositivo de armazenamento em um computador. O sistema de arquivos é que define o modo como os arquivos são estruturados, nomeados, acessados, utilizados, protegidos e manipulados pelo sistema operacional.

Os arquivos são armazenados, no sistema de arquivos, em diretórios que são uma subdivisão lógica e que funcionam como repositórios de arquivos ou de outros diretórios.

O conjunto de diretórios e arquivos forma um sistema de arquivos raiz, ou "árvore" de diretórios, a mesma deve seguir um padrão estabelecido. O sistema de arquivos é hierárquico e admite que diversos dispositivos sejam mapeados e utilizados a partir do diretório raiz. Para o usuário toda essa estrutura é vista de forma única.

A característica de recuperação implementada em sistemas de arquivos é chamada de "journaling" (registro de ações). Sistemas que não possuem "journal" são mais suscetíveis às falhas e perdas de dados. Além disso, em caso de parada do sistema ou falta de energia, o tempo necessário para retomar as operações é elevado, já que uma verificação de integridade é realizada em cada arquivo do sistema. Nas partições que possuem milhares de arquivos essa verificação pode levar horas.

Os sistemas de arquivos com suporte a "journal" são recomendados por aumentarem a disponibilidade (High Availability - HA) em servidores GNU/Linux. A alta disponibilidade é medida pelo tempo em que o servidor se encontra fora de serviço por falhas no sistema operacional ou no hardware.

Quanto menor o tempo em que o sistema estiver indisponível, maior é o índice de disponibilidade, medido em uma escala de casas decimais que tende a se aproximar de 100%.

Características de alguns sistemas de arquivos:

EXT3

=> O sistema de arquivos EXT3 é uma versão do EXT2;

=> O ext3 tem as mesmas características do EXT2, mas com suporte journaling;

=> A evolução tornou o EXT3 um sistema de arquivos muito estável e robusto;

=> Podemos converter um sistema de arquivos EXT2 para EXT3, adicionado suporte a journaling, e também podemos converter um sistema de arquivos EXT3 para EXT2, removendo o suporte a journaling.

0BS: Hoje em dia já está existe o EXT4, sistema de arquivos veloz que está em seu estágio inicial de desenvolvimento. Ainda faz sentido permanecer um pouco mais com o EXT3.

ReiserFS

=> O sistema de arquivos ReiserFS foi criado recentemente;

=> Atualmente quase todas as distribuições Linux o suportam;

=> Sua performance é muito boa, principalmente para um número muito grande de arquivos pequenos;

=> ReiserFS também possui suporte a journaling.

JFS

=> O JFS (Journaling FileSystem) é um sistema de arquivos desenvolvido pela IBM, disponível em licença open-source, com o intuito de rodar nos "UNIXes" que a IBM vendia;

=> No início o JFS sofreu uma perda de credibilidade devido a constantes instabilidades e bugs, caso este que atualmente encontra-se resolvido e assim muito estável.

=> Extremamente rápido e permite trabalhar com uma quantia de dados muito superior aos demais sistemas de arquivos;

=> O sistema de arquivos JFS também usa a estrutura inode para armazenar a localização dos blocos de cada arquivo nas estruturas físicas do disco, a versão JFS2 armazena esses inodes 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 inodes é feita conforme vai sendo necessário.

=> Além de possuir journal ele permite que as partições do sistema sejam redimensionadas sem que seja necessário desligar o computador;

XFS

=> XFS é um sistema de arquivos muito rápido na gravação;

=> 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 de metadados que vem com um robusto conjunto de funções e é otimizado para escalabilidade;

=> É recomendado usar este sistema de arquivos em sistemas rodando Linux com equipamento SCSI de ponta e/ou armazenamento em canais de fibra e fonte de energia sem interrupção;

=> Pelo fato de o XFS criar muitos caches de dados em uso na memória RAM, programas mal desenhados podem perder uma grande quantidade de dados se o sistema for desligado sem aviso.

LVM

=> LVM é um acrônimo para a expressão inglesa Logical Volume Management para especificar um padrão de gerenciamento de partições em disco IDE/SCSI/FC;

=> Foi desenvolvido inicialmente pela IBM, e outras empresa e instituições, como: HP e a Open Group;

=> A implementação LVM cria um grande disco virtual, que pode inclusive ter mais de um dispositivo de armazenamento , e divide em partições virtuais;

=> A vantagem é permitir o redimensionamento das áreas de modo dinâmico, ou seja, com o sistema operacional sendo utilizado;

=> A desvantagem é que por ser um único disco virtual, a recuperação de dados em uma eventual pane no sistema de armazenamento é bastante prejudicada.

Inode

Um inode é um identificador único que um arquivo recebe, nele contém uma lista com 12 blocos diretos de dados que o arquivo deve ter, se ele possui mais de 12 blocos, ele segue uma regra para gravar esses blocos no disco e poder achar mais tarde.

Os dados do arquivo são armazenados em unidades chamadas 'blocos'. Estes blocos podem ser numerados seqüencialmente. Um arquivo também tem um inode. Como os blocos, os inodes são numerados seqüencialmente, embora tenham uma seqüência diferente. Uma entrada de diretório consiste do nome do arquivo e um número de inode. O inode também armazena o local dos blocos de dados.

* Os números dos blocos dos primeiros 12 blocos de dados estão armazenados diretamente no inode. Estes às vezes são chamados de blocos diretos.

* O inode contém o número do bloco de um bloco indireto. Um bloco indireto contém os números de blocos de 256 blocos de dados adicionais.

* O inode contém o número do bloco de um bloco duplamente indireto. Um bloco duplamente indireto contém os números de blocos de 256 blocos indiretos adicionais.

* O inode contém o número do bloco de um bloco três vezes indireto. Um bloco três vezes indireto contém os números de blocos de 256 blocos duplamente indiretos adicionais.

fonte: Clube do Hacker – www.clubedohacker.com.br

Postar um comentário