Sistema de Arquivo Adotado pelo SO Slackware
O Slackware suporta diferentes sistemas de arquivos sendo eles: ext2, ext3, ext4, XFS, ReiserFS entre outros, cada um com suas vantagens, desvantagens e características. Mas o qual vamos falar como ele trabalha é o ext3.
O ext3, é uma continuação do sistema de arquivos ext2, é um exemplo de um sistema de arquivos diários.
A ideia básica por trás desse tipo de sistema de arquivos é a manutenção de um diário que descreve todas as operações do sistema de arquivos em ordem sequencial. A escrita ordenada das alterações
nos dados ou metadados (i-nodes, superbloco etc.) do sistema de arquivos evita que as operações sofram com movimentos excessivos de cabeça de disco durante acessos aleatórios. Eventualmente, as alterações acabarão sendo escritas e gravados no local apropriado do disco e, nesse caso, as entradas correspondentes no diário podem ser descartadas.Se uma parada de sistema ou falha de energia acontecer antes de as mudanças serem gravadas, o sistema irá detectar, na próxima inicialização, que o sistema de arquivos não foi desmontado corretamente e, portanto, cruzará as informações do diário com as do sistema de arquivos e fará as alterações descritas no log do diário.
O ext3 foi projetado para ser altamente compatível com ext2 e, na verdade, todas as estruturas de dados principais e organizações de disco são as mesmas nos dois sistemas. Além disso, um sistema de arquivos que tenha sido desmontado como ext2 pode ser futuramente montado como ext3 e, assim, oferecer o recurso de diário.
O diário é um arquivo gerenciado como um buffer circular e que pode ser armazenado no mesmo dispositivo ou em um dispositivo separado daquele onde se encontra o sistema de arquivos principal. Como as operações de diário não são, elas mesmas, registradas em um diário, não são gerenciados pelo mesmo sistema de arquivos ext3. Em vez disso, um dispositivo de blocos para diário (journaling block device - JBD) separado é utilizado nas operações de leitura/escrita do diário.
O JBD dá suporte a três estruturas de dados principais: o regsistro do diário, o gerenciador de operações atômicos e a transação. Um registro do diário descreve uma operação de baixo nível do sistema de arquivos, que geralmente resulta em modificações em um bloco. Como as chamadas de sistema, como write, englobam alterações em diversos locais – i-nodes, blocos de arquivos existentes, novos blocos de arquivos, listas de blocos livres etc, os registros de log afins são agrumerados em operações atômicas. O ext3 notifica o JBD sobre o início e o final do processamento de uma chamada de sistema, de forma que o JBD possa garantir que todos os registros do diário em uma operação atômica sejam aplicados ou que nenhum deles seja considerado. Por fim, e principalmente por razões de eficiência, o JBD trata as coleções de operações atômicas como transações. Os registros do diário são armazenados consecutivamente dentro de uma transação. O JBD permite que partes do diário sejam descartados somente depois que todos os registros pertencentes a uma transação tenham sido seguramente gravados em disco.
Como a escrita de um registro do diário para cada modificação de disco pode ser cara, o ext3 pode ser configurado de forma a manter um diário com todas as alterações no disco, ou somente com as mudanças relacionadas aos metadados do sistema de arquivos (i-nodes, superblocos, mapas de bits etc.). A manutenção do diário de metadados apenas causa menos sobrecarga no sistema, o que resulta em melhor desempenho, embora não forneça garantia de que não existirão dados de arquivos corrompidos. Diversos outros sistemas de arquivos com diário mantêm registros sobre operações com metados (por exemplo, o XFS do SGI).
Vantagem:
O sistema de arquivos ext3 é uma versão do ext2 com suporte a journaling. Portanto, o ext3 tem as mesmas características do ext2, mas com suporte journaling.
Essa característica foi uma evolução e tornou o ext3 um sistema de arquivos muito estável e robusto.
Como no ext3 só foi adicionado o suporte a journaling, 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.
Desvantagens:
Funcionalidade
A estrutura da partição ext3 é semelhante à da ext2, pelo que a migração de um formato para o outro é simples. A adição do journaling é feita em um arquivo chamado.journal que fica oculto pelo código ext3 na partição (desta forma ele não poderá ser apagado, o que comprometeria o funcionamento do sistema). A estrutura idêntica da partição ext3 com a ext2 torna mais fácil a manutenção do sistema, já que todas as ferramentas para recuperação ext2 funcionarão sem problemas, sendo mesmo possível montar uma partição ext3 como se fosse ext2.
Como o ext3 visa uma grande compatibilidade com o ext2, muitas das estruturas on-disk são similares àquelas da ext2. Por causa disso, o ext3 não possui muitas das funções mais recentes como alocação dinâmica de inodes e tamanhos de blocos variáveis (fragmentos ou caudas).
Os sistemas de arquivos ext3 não podem ser checados enquanto são montados para escrita. Um dump do sistema de arquivos feito enquanto ele está sendo montado para leitura e escrita pode resultar em dados corrompidos dentro do arquivo de dump.
Desfragmentação
Não há uma ferramenta online de desfragmentação funcional em nível de sistema de arquivos. Um desfragmentador offline da ext2, e2defrag, existe mas requer que um sistema ext3 seja revertido previamente ao ext2. Mas, dependendo das funcionalidades ativadas no sistema de arquivos, o e2defrag pode destruir dados; ele não sabe lidar com muitas das novas funcionalidades do ext3.
Recuperação (Undeletion)
Diferentemente do ext2, o ext3 zera os ponteiros de blocos nos inodes de arquivos apagados. Ele faz isso para simplificar o acesso de leitura e escrita quando o journal está sendo utilizado após uma montagem "suja". Isso, no entanto, previne efetivamente que os arquivos sejam recuperados. O único recurso do usuário é fazer um " grep " no disco rígido para buscar por dados que sejam sinalizadores de início/fim de arquivo. Isso provê uma remoção de arquivos um
pouco mais segura que em sistemas ext2, o que pode ser tanto uma vantagem quanto uma desvantagem.
Compressão
Suporte a compressão transparente de dados (disponível como um patch extra-oficial para ext2) não está disponível no ext3.
O ext3 tem um tamanho máximo para arquivos e para o sistema de arquivos inteiro. Esses limites dependem do tamanho de bloco do sistema de arquivos; a tabela abaixo resume esses limites:
O ext3 tem um tamanho máximo para arquivos e para o sistema de arquivos inteiro. Esses limites dependem do tamanho de bloco do sistema de arquivos; a tabela abaixo resume esses limites:
Tamanho do bloco Tamanho máx. arquivo Tamanho máx. fs
1 KiB 16 GiB 2 TiB
2 KiB 256 GiB 8 TiB
4 KiB 2 TiB 16 TiB
8 KiB 2 TiB 32 TiB
O tamanho de bloco de 8 KiB está apenas disponível para arquiteturas (como a alpha ) que permitem paginação de 8 KiB.
Referências:
TANENBAUM, Andrew S . Sistemas Operacionais Modernos - 3º ed - São Paulo: Pearson Prentice Hall, 2009.
https://pt.wikipedia.org/wiki/Ext3
Comentários
Postar um comentário