Sistemas de arquivos para GNU/Linux
Neste artigo abordarei os principais sistemas de arquivos usados em distribuições GNU/Linux atuais, tais como ext3, ext4, XFS, JFS e ReiserFS.
Introdução
Antes de começar a falar sobre os sistemas de arquivos, temos que ter em mente o que é um sistema de arquivos.
Sistema de arquivos é uma estrutura lógica aplicada à um meio físico de armazenamento, que permite armazenar informações em massa e de forma bem organizada, permitindo que um Sistema Operacional ou aplicações possam ser usadas pelo computador, assim como gravar novas informações, e essas informações possam ser acessadas posteriormente.
Um sistema de arquivos depende de estruturas de dados sobre os arquivos. Uma dessas estruturas são os metadados de dados que mantém informações dos objetos (arquivos/diretórios) armazenados no dispositivo de bloco. Cada arquivo está associado com um inode, o qual é identificado por um número inteiro.
Inodes armazenam informações sobre arquivos e diretórios (pastas), tais como a propriedade do arquivo, permissões (ler, escrever, executar), data de acesso, data de modificação, localização, tipo de arquivo e etc. Em muitos tipos de implementações de sistemas de arquivos, o número máximo de inodes é fixado no momento da criação do sistema de arquivos, limitando o número máximo de arquivos que o sistema de arquivos pode conter.
- Posso usar Sistema Operacional, ou alguma aplicação, sem ter que aplicar um sistema de arquivos?
Não, o disco rígido que irá armazena as informações é formatado fisicamente pelo fabricante, e esse tipo de formatação não é o suficiente para que o disco possa armazenar informações, porém, não se consegue utilizar o mesmo, pois ainda precisa de uma estrutura lógica para utilizar todo o espaço que o disco disponibiliza.
O mesmo não impede que sua estrutura de dados fique corrompida ou danificada após um desligamento inesperado causado por falta de energia, ou por travamento no sistema ou aplicação, fazendo com que você seja obrigado a usar o botão de desligamento ou de reinicialização.
E após desligar ou reinicializar desta forma, pode ter certeza que seu HD logo ficará com badblocks, principalmente se este tipo de situação acontecer constantemente. Não se impressione se o seu sistema, após um acontecimento destes, não conseguir mais ser acessado, ou precisar de reparos manuais para poder ser usado novamente.
O único sistema que ouvi falar bem quanto à tolerância de falhas, mas não cheguei a usar e nem a testar, foi o ZFS, desenvolvido pela Sun Microsystems.
Aí você pode se perguntar:
- Mas o que é um 'badblock' e por quê o sistema pode ficar corrompido, caso aconteça o que você citou acima?
1° - Um 'badblock' é uma área danificada de um disco que não pode ser mais utilizada, pois o dano é permanente.
Este tipo de dano pode ser causado por desligamentos forçados, como por exemplo, apertar o botão de desligamento da máquina, assim como reinicialização forçada, formatações erradas, esbarrões no HD, falta de energia etc.
Quando há muitos 'badblocks', seu HD está próximo do fim de sua vida útil, pois o mesmo está com muitos problemas.
2° - O sistema de arquivos pode ficar corrompido e o SO ficar inacessível, porque algum, ou alguns dados que estejam sendo utilizados pelo sistema no momento em que acontece o que foi citado anteriormente ainda não foram salvos, fazendo com que o mesmo fique incompleto, sendo assim corrompido. E se um arquivo deste for importante para o sistema, pode fazer com que o sistema fique inacessível.
Porém, muitos dos sistemas de arquivos tem tolerância de falhas, alguns mais consistentes e robustos que os outros.
Para os sistemas de arquivos usados no GNU/Linux, toda essa consistência tem ajuda do recurso muito utilizado que é o Journaling.
Sistema de arquivos é uma estrutura lógica aplicada à um meio físico de armazenamento, que permite armazenar informações em massa e de forma bem organizada, permitindo que um Sistema Operacional ou aplicações possam ser usadas pelo computador, assim como gravar novas informações, e essas informações possam ser acessadas posteriormente.
Um sistema de arquivos depende de estruturas de dados sobre os arquivos. Uma dessas estruturas são os metadados de dados que mantém informações dos objetos (arquivos/diretórios) armazenados no dispositivo de bloco. Cada arquivo está associado com um inode, o qual é identificado por um número inteiro.
Inodes armazenam informações sobre arquivos e diretórios (pastas), tais como a propriedade do arquivo, permissões (ler, escrever, executar), data de acesso, data de modificação, localização, tipo de arquivo e etc. Em muitos tipos de implementações de sistemas de arquivos, o número máximo de inodes é fixado no momento da criação do sistema de arquivos, limitando o número máximo de arquivos que o sistema de arquivos pode conter.
- Posso usar Sistema Operacional, ou alguma aplicação, sem ter que aplicar um sistema de arquivos?
Não, o disco rígido que irá armazena as informações é formatado fisicamente pelo fabricante, e esse tipo de formatação não é o suficiente para que o disco possa armazenar informações, porém, não se consegue utilizar o mesmo, pois ainda precisa de uma estrutura lógica para utilizar todo o espaço que o disco disponibiliza.
Objetivo do artigo
Não faz parte do objetivo do artigo fazer um estudo aprofundado sobre cada sistema de arquivos abordado, mas sim, abordar as características dos mesmos, permitindo conhecer mais de cada um.Esclarecimentos
Todo e qualquer sistema de arquivos não é ANTI-FALHAS.O mesmo não impede que sua estrutura de dados fique corrompida ou danificada após um desligamento inesperado causado por falta de energia, ou por travamento no sistema ou aplicação, fazendo com que você seja obrigado a usar o botão de desligamento ou de reinicialização.
E após desligar ou reinicializar desta forma, pode ter certeza que seu HD logo ficará com badblocks, principalmente se este tipo de situação acontecer constantemente. Não se impressione se o seu sistema, após um acontecimento destes, não conseguir mais ser acessado, ou precisar de reparos manuais para poder ser usado novamente.
O único sistema que ouvi falar bem quanto à tolerância de falhas, mas não cheguei a usar e nem a testar, foi o ZFS, desenvolvido pela Sun Microsystems.
Aí você pode se perguntar:
- Mas o que é um 'badblock' e por quê o sistema pode ficar corrompido, caso aconteça o que você citou acima?
1° - Um 'badblock' é uma área danificada de um disco que não pode ser mais utilizada, pois o dano é permanente.
Este tipo de dano pode ser causado por desligamentos forçados, como por exemplo, apertar o botão de desligamento da máquina, assim como reinicialização forçada, formatações erradas, esbarrões no HD, falta de energia etc.
Quando há muitos 'badblocks', seu HD está próximo do fim de sua vida útil, pois o mesmo está com muitos problemas.
2° - O sistema de arquivos pode ficar corrompido e o SO ficar inacessível, porque algum, ou alguns dados que estejam sendo utilizados pelo sistema no momento em que acontece o que foi citado anteriormente ainda não foram salvos, fazendo com que o mesmo fique incompleto, sendo assim corrompido. E se um arquivo deste for importante para o sistema, pode fazer com que o sistema fique inacessível.
Porém, muitos dos sistemas de arquivos tem tolerância de falhas, alguns mais consistentes e robustos que os outros.
Para os sistemas de arquivos usados no GNU/Linux, toda essa consistência tem ajuda do recurso muito utilizado que é o Journaling.
Quanto aos filesystems, venho usando o reiserfs para o sistema raiz e o xfs para /home e não tenho do que me queixar, exceto o fato do Debian não incluir o reiserfs como opção no Debian Installer, em relação a isso fiz uma dica a respeito:
http://gnu2all.blogspot.se/2012/06/instalacao-do-debian-em-particao.html
Como sugestão, você poderia solicitar a adição do esquema de particionamento para cada um dos sistemas de arquivos junto a moderação do VOL, o que facilitaria a vida daqueles que vierem a criar novas partições.
Um abraço.