Sistema de arquivos Ext3
Projeto de pesquisa: Sistema de arquivos Ext3. Pesquise 862.000+ trabalhos acadêmicosPor: filfil • 6/6/2014 • Projeto de pesquisa • 1.496 Palavras (6 Páginas) • 215 Visualizações
Sistema de arquivos ext3
Introdução
Usuários experientes de Linux sabem que o sistema possui excelente performance no gerenciamento de dados, tanto no que diz respeito ao armazenamento, quanto nas alocações e atualizações de informações. Dentre vários, um dos grandes responsáveis por tanta eficiência é o sistema de arquivo (ou filesystem) ext3 (sigla para third extended file system), que passou a ser integrado definitivamente ao Linux (kernel) a partir da versão 2.4. Este artigo mostrará as características mais importantes do ext3, além das razões de sua alta performance.
Sistema de arquivos?
É importanter entender o que é um sistema de arquivos antes de prosseguir no assunto. De maneira resumida, um sistema de arquivos é 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.
Funcionamento padrão dos sistemas de arquivos em Linux
Os sistemas de arquivos são criados em partições do disco, de forma que seja possível armazenar programas e dados em formato de arquivos e diretórios (pastas). O Linux, assim como praticamente todos os sistemas operacionais baseados em Unix, usa um sistema de arquivos que possue uma hierarquia, composta de arquivos e diretórios, que podem conter outros diretórios ou arquivos.
Os arquivos/diretórios (sistemas baseados em Unix tratam os diretórios como arquivos específicos) em um sistema de arquivos para Linux são disponibilizados (ou montados) para manipulação através do comando "mount", geralmente acionado no processo de startup (inicialização), que ocorre quando o computador é ligado e começa a carregar o sistema operacional. O Linux consegue trabalhar com vários sistemas de arquivos em um mesmo disco (situação comum à usuários que possuem Windows e Linux em suas máquinas, por exemplo) e, para "enxergá-los", armazena a lista de sistemas de arquivos disponíveis no arquivo /etc/fstab (repare que /etc/ indica um caminho de diretório). No entanto, há uma lista de sistemas de arquivos que estão efetivamente em uso, disponível no arquivo /etc/mtab, também conhecido como "tabela mount". Esta lista é atualizada no processo de startup, para indicar ao sistema operacional quais sistemas de arquivos ele poderá acessar.
Para cada sistema de arquivos montado no startup, um bit no cabeçalho do sistema de arquivos é zerado para indica que o sistema de arquivos está em uso a partir daquele momento e que as estruturas de dados usadas para o alocação e organização de arquivos/diretórios podem sofrer mudanças (atualizações).
Quando o usuário decide desligar o computador e usa comandos para encerrar o Linux, os sistemas de arquivos são desmontados, fazendo com que o bit citado acima seja modificado para indicar que o sistema de arquivos está consistente, ou seja, não pode mais sofrer mudanças.
Erros e corrompimento do sistema de arquivos
Os sistemas de arquivos para Linux já sofreram muitos tipos de tratamentos e reescrita de código para eliminar o corrompimento causado por aplicações ou pelo próprio kernel. No entanto, eliminar o corrompimento de dados em arquivos causados, por exemplo, pela queda de energia ou pelo desligamento incorreto por parte do usuário, sempre foi uma tarefa praticamente impossível. Quando o sistema é desligado incorretamente o bit do cabeçalho do sistema de arquivos não é ajustado. A solução foi fazer com que, no próximo processo de carregamento do Linux, seja verificado se o cabeçalho está com o bit de cabeçalho setado para indicar que o sistema de arquivos está consistente e não manipulável. Caso não esteja, a ferrramenta "fsck" verifica o sistema na busca de erros.
Journaling
O fsck consegue prover resultados satisfatórios, mas a correção de erros pode levar muito tempo, algo inaceitável em aplicações críticas. Além disso, se o desligamento incorreto do computador ocorreu quando dados estavam sendo gravados no disco, o fsck não conseguirá completar esses processos, ocasionando a perda das informações que estavam sendo gravadas.
Diante desses problemas, foi apresentada uma solução viável: a utilização de sistemas de arquivos com a tecnologia "Journaling", que possuem a capacidade de acompanhar as mudanças que serão feitas no sistema de arquivos (por exemplo, gravações/atualizações de dados) antes que realmente sejam feitas. Essas informações que o Journaling captura são então armazenadas em uma parte separada do sistema de arquivos, denominada "Journal" (mas também conhecida por "registros de log"). Quando as informações são armazenadas no Journal, o sistema de arquivos aplica as mudanças registradas nele e então, remove as informações do Journal.
Agora, entenda o porquê do Journaling ser uma solução eficiente para os problemas de erro. Os registros de log são escritos antes que as mudanças efetivamente ocorram no sistema de arquivos e esses registros somente são eliminados quando as mudanças são feitas. Assim, se o computador é indevidamente desligado, o processo de montagem no próximo startup verificará se há mudanças gravadas no Journal "marcadas" como não feitas. Se houver, tais mudanças são então aplicadas ao sistema de arquivos. Isso faz com que os riscos de perda de dados sejam reduzidos drasticamente.
Sistema de arquivos ext3
Existem vários sistemas de arquivos disponíveis com a tecnologia Journaling, como o XFS, desenvolvido originalmente pela Silicon Graphics e posteriormente disponibilizado com código aberto, o ReiserFS,
...