Uma breve introdução aos sistemas de arquivos

Propaganda
Uma breve introdução aos sistemas de arquivos
Introdução
Sistema de arquivos = Banco de dados
Partição
Formatação
Clusters
Clusters x Espaço x Desempenho
Fragmentação
Quotas
Journaling
Transações Atômicas
Introdução
Este artigo tem por objetivo mostrar algumas técnicas utilizadas nos sistemas de arquivos, também
conhecidos como file systems. Os sistemas de arquivos são transparentes para o usuário. Toda vez que você
salvar um arquivo, na realidade o seu sistema operacional solicita ao seu sistema de arquivos os recursos
necessários para gravar o seu arquivo, ou seja, o sistema de arquivos aloca o espaço físico e também se
encarrega de colocar uma entrada nova numa tabela que você não tem acesso e apontando para o seu arquivo
salvo. São exemplos de sistemas de arquivos: File Allocation Table – FAT 12/16/32, New Tecnology File
System – NTFS, Second/Third Extended File System – EXT 2/3, REISERFS, REISER4, XFS, JFS, ZFS.
Sistema de arquivos = Banco de dados
Um sistema de arquivos é um banco de dados. Mas o que é um banco de dados? Um banco de dados
é uma coleção de dados que estão relecionadas com um domínio. Independente dos dados que houverem no
seu computador, todos os seus arquivos constituem um banco de dados pois, você é o "domínio" do banco de
dados. Todos os seus dados constituem um banco de dados por que eles pertencem a você. O domínio é neste
caso o usuário.
Partição
A partição é uma divisão criada por softwares para distinguir os limites de um conjunto de dados. Ou
seja, é o tamanho físico definido para ser utilizado pelo seu sistema de arquivos (banco de dados). Cada
sistema de arquivos usa um padrão de partição e formatação, portanto, faz-se necessário a utilização de
softwares específicos para cada sistema de arquivos. Embora hajam casos onde podemos utilizar um software
único para os tipos mais comuns de partição que são o FAT 16/32, NTFS, EXT 2/3, REISERFS, REISER4.
Formatação
A formatação é a preparação do espaço alocado para a inserção, remoção e atualização de dados. Na
prática, a formatação é a tarefa de dizer ao sistema de arquivos que uma parte do seu disco rígido está
preparada (indexada) para alocar dados (ou arquivos, conjuntos de zeros e uns).
Clusters
O que são clusters?
Os clusters ou ainda inodes são espaços de tamanhos variados que são criados pela formatação para
alocar os seus dados. Quando o sistema de arquivos é formatado, o software formatador é encarregado de a
partir do espaço disponível para a partição, identificar o tamanho do cluster do sistema de arquivos. É
importante citar que os clusters dos sistemas de arquivos não tem relação alguma com sistemas distribuídos.
Clusters x Espaço x Desempenho
Com a alta capacidade dos discos rígidos atuais (e que aumentam de tempos em tempos), notamos
que alguns sistemas de arquivos não estavam preparados para os dias de hoje. Por que alguns sistemas de
arquivos tem sérias limitações quanto a sua capacidade de armazenamento e além disso também há um outro
problema sério com relação ao espaço e ao desempenho, como os clusters precisam ser maiores para poder
permitir a utilização total do espaço em disco, o software que formata o sistema de arquivos, usa um cluster
maior e isso acaba fazendo com que uma porcentagem pequena (ainda sim considerável em alguns casos) do
espaço do seu disco rígido seja desperdiçada. Em compensação, há um ganho de velocidade com um cluster
maior. Pois o disco rígido não necessita ler pequenos pedaços. Por outro lado, clusters pequenos diminuem o
desempenho do sistema de arquivos.
Fragmentação
A fragmentação também é fruto de um projeto de sistemas de arquivos que resolviam apenas as
necessidades passadas (discos rígidos pequenos). A fragmentação nada mais é que uma alocação de arquivos
desordenada. Isto é, quando salvamos um arquivo, ao invés do sistema de arquivos colocar todos os clusters
juntos, em ordem sequencial, o sistema de arquivos coloca em qualquer outro lugar do disco rígido fazendo
com que os dados fiquem espalhados pelo disco rígido, demorando mais para acessar o arquivo. Por isso há os
famosos "desfragmentadores". Eles são os responsáveis pela reordenação dos dados contidos no disco rígido.
O problema da fragmentação é encontrado nos seguintes sistemas de arquivos (embora não seja exclusividade
deles): FAT 16/32, NTFS.
Quotas
Em sistemas de arquivos modernos, temos este recurso chamado quota. Este recurso nos permite
definir o quanto de espaço deve estar disponível para um determinado usuário, permitindo assim, um maior
controle do espaço que um usuário pode utilizar para guardar seus arquivos. Para implementar um sistema de
quota, o sistema operacional deve trabalhar em conjunto com o sistema de arquivo para prover este serviço. O
sistemas operacionais que suportam quotas são: Windows 2000, XP, 2003, Linux, entre outros.
Journaling
O termo "journaling" vem de "journal" que neste caso significa “log”, de registro. Na realidade, o
journaling é neste caso uma técnica onde sistemas de arquivos modernos podem gravar o foi feito no sistema
de arquivos. Por exemplo, você clicou em salvar, neste momento o sistema de arquivos registra num arquivo
(que nós não temos acesso) a operação salvar foi ativada para o arquivo “xyz.txt”. Por que o journaling é um
recurso importante? Por que ele permite uma rápida recuperação dos arquivos que foram eventualmente
danificados por queda de energia ou algum outro evento onde ocorra a perda de dados. Além disso,
percebemos que o journaling é uma técnica com estreita relação com técnica de transação atômica. O
Journaling está disponível nos seguintes sistemas de arquivos: NTFS, EXT3, REISERFS, REISER4, XFS,
JFS, ZFS, entre outros.
Transações Atômicas
A transação atômica é um recurso que já existia em bancos de dados tradicionais (Oracle, ...). O
objetivo das transações atômicas é garantir a consistência de um sistema de arquivos. Isto é, garantir que
nenhum arquivo foi gravado de errado. Então, quando um arquivo é salvo, o próprio sistema de arquivos
verifica se o arquivo salvo com sucesso.
Download