SO - Linux - ReiserFS

Introdução ao sistema de arquivos ReiserFS


Introdução

Partições mais comuns em Linux: ext3 e ReiserFS(seu sucessor ReiserFS4) (sendo a default Ext2)

O que é um sistema de arquivos?
Em poucas palavras, trata-se de uma estrutura que indica como os dados devem ser gravados em dispositivos de gravação. É de acordo com os recursos oferecidos por essa estrutura que é possível determinar o espaço disponível e ocupado em disco, e gerenciar como partes de um arquivo podem ficar "distribuídas" nas áreas de armazenamento. É também o sistema de arquivos que determina como os dados podem ser acessados, copiados, movidos, renomeados, protegidos e eliminados. Portanto, sem um sistema de arquivos, é impossível utilizar um disco rígido (e outros dispositivos) para armazenamento de informações.

O sistema de arquivos ReiserFS - Principais características
1) Criador - Hans Reiser (equipe - NAMESYS).
2) Sistema de arquivos seguro, eficiente, rápido e confiável.
3) Journaling - ajuda a manter a integridade dos dados em caso de erros no sistema causados por desligamento incorreto ou determinadas falhas de hardware, por exemplo. 4) Suporte a arquivos com mais de 2 GB (limitação existente em alguns filesystems);
5) Organização dos objetos do sistema de arquivos em uma estrutura de dados chamada B+Trees (árvores B+ - Nesse esquema, os dados são fixados em posições organizadas por divisões denominadas folhas. Por sua vez, as folhas são organizadas por nós ou ponteiros chamados de sub-árvores, que estão ligados a um nó raiz - ver ilustração abaixo para entender melhor). Esse processo organizacional exige algoritmos mais complexos, porém apresenta performance superior na gravação e no acesso aos dados, se comparado a outros sistemas de arquivos;

6) Alocação dinâmica de inodes (em poucas palavras, inodes são estruturas que contém informações sobre os arquivos), diminuindo o desperdício de espaço. Outros sistemas de arquivos têm blocos de tamanho fixo para alocação, assim, se não for necessário usar um bloco inteiro, o espaço restante fica em desuso. No ReiserFS, a alocação é feita com base no tamanho do arquivo.


Organização
a) O ReiserFS tem como referência o já mencionado esquema B+Trees para organizar e localizar os itens que compõem, em sua essência, todo o sistema de arquivos, isto é, os dados em si e as informações associadas (data de criação, permissões de acesso, proprietário, etc).

b) Basicamente, todos esses itens são classificados em diretórios (directory items), blocos de dados diretos e indiretos (direct items / indirect items) e inodes (stat data items).

Nos inodes é que são classificadas as informações referentes a cada arquivo, isto é, os metadados.
Os direct items são os arquivos em si, mas quando armazenados nas "folhas" das sub-árvores e, embora tenham tamanho variável, são compostos por blocos de dados pequenos. Os direct items ficam próximos aos metadados, já que tanto um como o outro são organizados nas árvores.
Já os blocos maiores, isto é, os indirect items, não são incluídos nas árvores (por isso recebem esse nome) e são "localizáveis" por ponteiros que indicam onde estão armazenados.

Possíveis Problemas:
a) fragmentação de dados
b) Exigir mais recursos de processamento.

O que é Journaling?
O sistema de arquivos passa a registrar em uma área especial chamada "journal" ou "log" as ações que serão feitas nos arquivos (gravação ou alteração de dados, por exemplo) antes da execução em si.
Após a execução, as operações registradas no log são tidas como concluídas e, portanto, eliminadas. Note que todo esse procedimento acontece de maneira extremamente rápida.
Mas, no que, exatamente, o Journaling se mostra vantajoso? Os registros de log são escritos antes que as mudanças efetivamente ocorram no sistema de arquivos. Esses registros somente são eliminados quando as mudanças são executadas. Se, por exemplo, o computador for desligado repentinamente (como ocorre em falta de energia elétrica), o sistema de arquivos verificará os registros existentes no journal e executará aquilo que estiver marcado como não realizado. Isso faz com que o risco de perda de dados diminua drasticamente, já que o sistema operacional saberá "onde parou".

É importante frisar que, no caso do ReiserFS, as técnicas de Journaling se limitam aos metadados (conjuntos de informação sobre arquivos, como tamanho, proprietário, permissões, data de alteração, etc), fazendo com que esse filesystem seja eficiente na recuperação do sistema operacional como um todo em caso de problemas. Por outro lado, o sistema de arquivos ext3 é capaz de usar Journaling preservando metadados e as informações dos arquivos em si, mas isso pode fazer com que o desempenho do sistema de arquivos diminua.

Reiser4
O Reiser4 é uma nova implementação do ReiserFS, ou seja, é seu sucessor natural. Sua proposta é a de oferecer, entre outros recursos, o seguinte:

- Journaling mais eficiente;
- Melhor suporte a grandes quantidades de arquivos pequenos;
- Gerenciamento mais rápido de diretórios com muitos arquivos (na casa dos milhares);
- Estrutura de arquivos dinamicamente otimizada;
- Transações atômicas na modificação do sistema de arquivos. Neste caso, uma operação só pode ser tida como concluída se executada por completo, ou seja, não há meio termo: ou está feito ou não está.

O Reiser4 é um projeto que demorou alguns anos para ser concretizado e, embora já tenha uma versão estável disponível para uso, sua adoção é muito lenta devido a alguns entraves, sendo um deles, a demora de sua inclusão no kernel. Essas questões ainda estão sendo tratadas.

Comentários

Postagens mais visitadas deste blog

Redação Ti Nota 10 - Klauss

Prova Discursiva nota 10 - Banca Cespe

Portugues - Orações