Você está na página 1de 5

Sistema de arquivos suportado pelo Linux.

• Postado por Thiago Liberati em 5 junho 2014 às 22:02


• Exibir blog
#file -s partição – mostra o tipo de sistema de arquivo na partição.
O Linux é um sistema operacional que da suporte a diversos sistema de arquivos, neste artigo vou
listar os mais utilizados e suas principais características.
Atualmente o sistema de arquivos mais utilizado é o ext4 desenvolvido para ser o sucessor do ext3 a
partir de 2006.
Segue abaixo uma breve descrição sobre os sistemas de arquivos mais comuns disponíveis para o
Linux:

Sistema de arquivos EXT2

Projetado e implementado para corrigir as falhas do Ext e prover um sistema que respeitasse a
semântica UNIX. A influência do UNIX pode ser vista, por exemplo, na utilização de grupos de
blocos, que são análogos aos grupos de cilindros utilizados pelo FFS. O bloco, que consiste num
conjunto de setores (cada setor tem 512 bytes), é a menor unidade de alocação para o Ext2. O
tamanho pode ser de 1024, 2048 ou 4096 bytes e é definido na formatação.
Quando é realizada uma operação de escrita em um arquivo, o Ext2 tenta, sempre que possível,
alocar blocos de dados no mesmo grupo. Esse comportamento reduz o movimento da(s) cabeça(s)
de leitura e gravação da unidade de disco.
Em um sistema de arquivos ocorrem dois tipos de fragmentação, a fragmentação interna (ou de
espaço) é causada pelo fato do tamanho do arquivo geralmente não ser múltiplo do tamanho do
bloco (portanto o último bloco terá um espaço não utilizado) — a consequência é a perda de espaço;
e a fragmentação externa (ou de arquivo) decorre da impossibilidade do sistema determinar, a priori,
qual o tamanho do arquivo,por exemplo arquivos de texto e de logs são muito modificados, e o seu
tamanho pode aumentar ou diminuir — assim um arquivo pode alocar blocos não contíguos,
prejudicando o desempenho.
Para diminuir o impacto do primeiro tipo, existem duas estratégias básicas. A primeira, mais
simples, é determinar, na formatação, o menor tamanho de bloco possível. O Ext2 permite
tamanhos de blocos de 1024, 2048 e 4096 bytes. Um tamanho de bloco pequeno, como 1024 bytes,
diminui a fragmentação e perda de espaço, mas em contrapartida gera um impacto negativo no
desempenho, pois acarreta o gerênciamento de uma maior quantidade de blocos. O tamanho de
bloco padrão para volumes grandes é de 4096 bytes.
A segunda estratégia é alocar a parte final de um arquivo, menor que o tamanho de um bloco,
juntamente com pedaços de outros arquivos. O Reiserfs chama esse método de tail packing; o UFS
usa fragmentos, que são submúltiplos do tamanho do bloco. Apesar do Ext2 possuir, no superbloco,
a previsão para uso de fragmentos, esse método não foi implementado. Para diminuir o impacto da
fragmentação externa, o Ext2 pré-aloca (reserva) até oito blocos quando um arquivo é aberto para
gravação. Esses blocos reservados, quando possível, são adjacentes ao último bloco utilizado pelo
arquivo.

Sistema de arquivos EXT3

O Ext3 (Third Extended file system) é um sistema de arquivos desenvolvido por Stephen C.
Tweedie para o Linux, que acrescenta alguns recursos ao Ext2, dos quais o mais visível é o
journaling, que consiste em um registro (log ou journal) de transações cuja finalidade é recuperar o
sistema em caso de desligamento não programado. Há três níveis de journaling disponíveis na
implementação do Ext3: Journal: os metadados e os dados (conteúdo) dos arquivos são escritos no
journal antes de serem de fato escritos no sistema de arquivos principal. Isso aumenta a
confiabilidade do sistema com uma perda de desempenho, devido a necessidade de todos os dados
serem escritos no disco duas vezes.
Writeback: os metadados são escritos no journal mas não o conteúdo dos arquivos. Essa opção
permite um melhor desempenho em relação ao modo journal, porém introduz o risco de escrita fora
de ordem onde, por exemplo, arquivos que são apensados durante um crash podem ter adicionados
a eles trechos de lixo na próxima montagem.
Ordered: é como o writeback, mas força que a escrita do conteúdo dos arquivos seja feita após a
marcação de seus metadados como escritos no journal. Esse é considerado um meio-termo aceitável
entre confiabilidade e performance, sendo, portanto, o nível padrão.
Embora o seu desempenho (velocidade) seja menos atrativo que o de outros sistemas de arquivos
(como ReiserFS e XFS), ele tem a importante vantagem de permitir que seja feita a atualização
direta a partir de um sistema com ext2, sem a necessidade de realizar um backup e restaurar
posteriormente os dados, bem como o menor consumo de processamento.
Enquanto em alguns contextos a falta de funções de sistemas de arquivos “modernos”, como
alocação dinâmica de inodes e estruturas de dados em árvore, poderia ser considerada uma
desvantagem, em termos de “recuperabilidade” isso dá ao ext3 uma significante vantagem sobre
sistemas de arquivos que possuem-nas. Os metadados do sistema de arquivos estão todos em locais
fixos e bem conhecidos, e há certa redundância inerente à estrutura de dados, que permite que
sistemas ext2 e ext3 sejam recuperáveis no caso de uma corrupção de dados significante, em que
sistemas de arquivos em árvore não seriam recuperáveis.

Sistema de arquivos EXT4

O ext4 trouxe, de acordo com seus desenvolvedores, alguns recursos que não existiam no ext3,
mantendo alguns que a versão anterior já possuía. Na verdade são recursos que estavam tentando
implantar na versão 3 do extFS (ext3), porém, devido a alguns problemas na implementação,
lançaram essa nova versão com as características descritas abaixo.
O Ext4 apresenta inúmeros novos aprimoramentos quanto a desempenho, escalabilidade e
confiabilidade. Mais especificamente, o ext4 suporta sistemas de arquivos de 1 exabyte.
Tem uma performance considerada muito boa, principalmente para o seu uso em máquinas de
grande porte, como é o caso de várias máquinas de empresas. O EXT4 supera a capacidade de
armazenamento do EXT3.

O novo sistema de Journaling do EXT4 melhora a quantidade de arquivos e processos suportados


pelo linux. Apresentando várias vantagens do gênero em relação ao EX3.
Graças a alocação tardia, existe uma considerável redução de fragmentação, por ele melhorar nas
decisões do sistema sobre o arquivo levando em consideração o tamanho do mesmo.

O Ext4 usa checksums no jornal para melhorar a confiabilidade, já que o jornal é um dos arquivos
mais utilizados do disco.Esta característica tem um lado benéfico, que pode evitar com segurança
um disco I / O esperar durante o processo diário, melhorando o desempenho ligeiramente.
O melhoramento na capacidade de armazenamento: O EXT4 tem aumento na capacidade de
suportar maior quantidade de atividades, maiores arquivos e maior quantidade de pastas.
Compatibilidade com Versões anteriores: o sistema de arquivos do EXT4 é compatível com as
versões EXT3 e EXT2 o que ajuda muito no desempenho.
Apresenta riscos de ocorrência de perda de dados: Isso ocorre pelo uso da alocação tardia, que ajuda
na redução da fragmentação e na decisão do que ocorrerá com o arquivo pelo seu tamanho.

Sistema de arquivos ReiserFS

O sistema de arquivos ReiserFS foi criado por Hans Reiser e pode ser usado pelas distribuições
GNU/Linux, sendo que algumas dão bom suporte durante a instalação e outras não. Sua versão
atual é a 3.6.x. O ReiserFS foi o primeiro sistema de arquivos com suporte a journaling incluído no
núcleo do GNU/Linux.

Algo muito interessante no ReiserFS é suporte ao journaling implantado desde o início e não depois
de ter sido desenvolvido (como foi feito no extFS). Isso garante que o ReiserFS trabalhe melhor
com o journal, possibilitando uma tolerância contra falhas mais eficaz.
Suporte a journaling, o mesmo foi integrado desde de seu desenvolvimento. Diferentemente do que
acontece no ext3 e ext4, que foi implementado em versões posteriores após o desenvolvimento da
primeira versão.
O extFS permite trabalhar em vários modos de operação, já no ReiserFS é importante frisar que as
técnicas de journaling limitam-se, por padrão, aos metadados (conjuntos de informação sobre
arquivos, como tamanho, proprietário, permissões, data de alteração etc). Contudo, o usuário poderá
alterar seu modo de operação para journal ou writeback, pois o ReiserFS também suporta os três
modos de operação assim como no extFS, versão 3 e 4. Como o journaling está presente desde o
inicio, faz com que esse sistema de arquivos seja eficiente na recuperação do sistema operacional
como um todo em caso de problemas.

No caso de um desligamento incorreto do sistema, o ReiserFS é capaz de recuperar a consistência


do sistema de arquivos em pouco tempo e a possibilidade de perda de pastas ou partições é
reduzida.

Em compensação, os arquivos que eventualmente estiverem sendo gravados no exato momento em


que acabou a energia, ficarão com seus dados corrompidos, haverá acesso aos arquivos
normalmente, mas o conteúdo estará truncado ou incompleto.

Organização dos objetos do sistema de arquivos em uma estrutura de dados


chamada B+Trees(árvores B+). Neste esquema, os dados são fixados em posições organizadas por
divisões denominadas folhas.

As folhas por sua vez são organizadas por nós, chamados de subárvores, que estão ligados a um nó
raiz. Esse processo organizacional é mais complexo, porém apresenta performance superior na
gravação e no acesso aos dados se comparado a outros sistemas de arquivos.

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.

ReiserFS tem progsreiserfs, que é um conjunto de utilitários para gerenciamento de sistema de


arquivos, para checagem, formatação, depuração etc.
A formatação em ReiserFS é muito rápida.
Uma desvantagem do ReiserFS é seu consumo de CPU muito elevado, chegando a usar até 99%
quando a atividade de disco é elevada.
O futuro do ReiserFS é atualmente dado como incerto, em virtude da prisão, em 10 de Outubro de
2006, de Hans Reiser, seu criador, e sua condenação em 28 de Abril de 2008 pelo assassinato de sua
mulher no início de Setembro de 2006.
Atualmente, devido à paralisação das atividades da Namesys, que é sua principal desenvolvedora
junto com Hans Reiser, o projeto ReiserFS está armazenado em kernel.org.

O ReiserFS tem um nova versão, que é a 4, mas a mesma ainda não está inclusa no kernel versão
3.x.x, que atualmente é 3.4.2 no momento da criação deste artigo, pois os desenvolvedores afirmam
que o Reiser4 não segue o padrão GNU/Linux de decodificação.
Sistema de arquivos XFS

Com intenção original de ser um sistema de arquivos para o sistema operacional IRIX, a SGI
iniciou o desenvolvimento do XFS no começo de 1990. A ideia por trás do XFS era criar um
sistema de arquivos de registro em diário de 64 bits de alto desempenho para atender aos altos
desafios de computação de hoje. O XFS é muito bom na manipulação de arquivos grandes e tem
bom desempenho em hardware de ponta. Entretanto, até mesmo o XFS tem uma desvantagem.
Assim como o ReiserFS, o XFS cuida bastante da integridade dos metadados, mas nem tanto da
integridade dos dados.
Uma rápida análise dos recursos fundamentais do XFS explica por que ele pode ser um forte
concorrente para outros sistemas de arquivos de registro em diário em computação de ponta.
No momento de criação de um sistema de arquivos XFS, o dispositivo de bloco subjacente ao
sistema de arquivos é dividido em oito ou mais regiões lineares do mesmo tamanho. Elas são
denominadas grupos de alocação. Cada grupo de alocação gerência seus próprios inodes e espaços
liberados em disco. Praticamente, os grupos de alocação podem ser vistos como sistemas de
arquivos dentro de um sistema de arquivos. Como grupos de alocação são independentes uns dos
outros, mais de um pode ser abordado pelo kernel ao mesmo tempo. Esse recurso é a chave da
grande escalabilidade do XFS. Naturalmente, o conceito de grupos de alocação independente
corresponde às necessidades dos sistemas com multi processadores.
O espaço em disco e os inodes são controlados por árvores equilibradas B+ dentro dos grupos de
alocação. O uso de árvores equilibradas B+ contribui muito para o desempenho e a escalabilidade
do XFS. O XFs usa a alocação atrasada. Ele lida com a alocação dividindo o processo em duas
partes. Uma transação pendente é armazenada em RAM e o espaço necessário é reservado. O XFS
ainda não decide exatamente onde (tratando-se do bloco do sistema de arquivos) os dados devem
ser armazenados. Essa decisão é atrasada até o último momento possível. Alguns dados temporários
de vida curta talvez nunca cheguem no disco, pois podem ficar obsoletos devido ao tempo que o
XFS leva para decidir onde gravá-los. Portanto, o XFS aumenta o desempenho de gravação e reduz
a fragmentação do sistema de arquivos. Como a alocação atrasada resulta em eventos de gravação
menos frequentes do que em outros sistemas de arquivos, é provável que a perda de dados depois de
uma falha durante a gravação seja mais severa.
Antes de gravar os dados no sistema de arquivos, o XFS reserva (pré-aloca) o espaço livre
necessário para um arquivo. Portanto, a fragmentação do sistema de arquivos é amplamente
reduzida. O desempenho aumenta porque o conteúdo dos arquivos não é distribuído em todo o
sistema de arquivos.

Sistema de arquivos JFS

O JFS foi criado com o propósito principal de ser utilizado em servidores que deveriam usar poucos
recursos do processador, e ser capaz de ser redimensionado mesmo em uso. JFS é um sistema de 64
bits, assim como XFS, onde existem duas versões: JFS1 e JFS2. No pinguim é usada a versão 2.
JFS está disponível na maioria das distros, assim como outros, mas durante a instalação o FS padrão,
em sua maioria, é o ext4.

Reparação muito eficaz de um disco com badblocks, ele consegue marcar os setores defeituosos
com muita precisão, algo que outros sistemas de arquivos para Linux não fazem.

Criação do sistema de arquivos muito rápida, desde que não inclua para marcar os badblocks
existentes do disco, pois se fizer isso vai demorar bastante.
Possui vários utilitários para gerenciar o sistema de arquivos, todos eles inclusos no jfsutils, para
aplicação e verificação de integridade do sistema de arquivos.
Baixo consumo do processador.
Suporte a journaling: O JFS usa um journal para manter somente a consistência dos metadados, ou
seja, grava somente os metadados dos arquivos que sofrerão ações como modificação, por exemplo.
Assim, apenas consistência de metadados (e não o conteúdo de arquivo) pode ser assegurado no
caso de desligamento inadequado. Este é também o comportamento de XFS . Ext3 e ext4, por outro
lado, usam o journal para gravar os metadados e os dados, apesar de ter outros modos de operação.
Alocação dinâmica de inodes: JFS aloca dinamicamente espaço em disco.
Taxas de transferências baixas, nunca espere transferências com alta velocidade, pois o mesmo é
lento.
Foi desenvolvido com o propósito principal de trabalhar com arquivos grandes e não trabalha bem
com arquivos pequenos. Na criação e desempacotamento de arquivos sua velocidade é baixa.
O tamanho de uma partição e arquivo com o sistema de arquivos JFS aplicado só abriga 2 terabytes
de espaço no total
Quando o assunto é sistema de arquivos no Linux, é inevitável as comparações entre o ReiserFS,
XFS, ext4 e o ext3, além do JFS, que é menos usado. Nada mais natural, afinal, cada administrador
de sistemas e ou redes e até mesmo usuários busca qual é o melhor para suas necessidades.

Apontar qual realmente é melhor não é uma tarefa fácil. Há vários comparativos na Internet que
tentam oferecer esta resposta, mas na minha opinião, a melhor coisa a fazer é testar os sistemas de
arquivos que lhe atraíram para definir qual mais lhe agrada.

Você também pode gostar