segunda-feira, 9 de abril de 2012

SISTEMAS DE ARQUIVOS

Definição de Sistemas de Arquivos

Um sistema de arquivos é um conjunto de estruturas lógicas e de rotinas, que permitem ao sistema operacional controlar o acesso ao disco rígido. Diferentes sistemas operacionais usam diferentes sistemas de arquivos. Conforme cresce a capacidade dos discos e aumenta o volume de arquivos e acessos, esta tarefa torna-se mais e mais complicada, exigindo o uso de sistemas de arquivos cada vez mais complexos e robustos. Existem diversos sistemas de arquivos diferentes, que vão desde sistemas simples como o FAT16, que utilizamos em cartões de memória, até sistemas como o NTFS, EXT3 e ReiserFS, que incorporam recursos muito mais avançados.

No mundo Windows, temos apenas três sistemas de arquivos: FAT16, FAT32 e NTFS. O FAT16 é o mais antigo, usado desde os tempos do MS-DOS, enquanto o NTFS é o mais complexo e atual. Apesar disso, temos uma variedade muito grande de sistemas de arquivos diferentes no Linux (e outros sistemas Unix), que incluem o EXT2, EXT3, ReiserFS, XFS, JFS e muitos outros. Para quem usa apenas o Windows, estes sistemas podem parecer exóticos, mas eles são velhos conhecidos de quem trabalha com servidores, já que neles o Linux é que é o sistema mais popular.


Tipos de Sistemas de Arquivos

Na realidade, a escolha do sistema de arquivos faz-se em primeiro lugar, de acordo com o sistema operacional que utiliza. Geralmente, quanto mais recente é o sistema operacional, maior será o número de sistemas de arquivos suportados . Assim, sob DOS e nas primeiras versões do Windows 95, o FAT16 é um imperativo.

A partir do Windows 95 OSR2, pode escolher entre os sistemas de arquivos FAT16 e FAT32. Se por acaso a dimensão da partição for superior a 2Go, o sistema de arquivo FAT é excluído, deve por conseguinte utilizar o sistema FAT32 (ou alterar a dimensão da partição).

Abaixo deste limite, o FAT16 é recomendado para partições de uma capacidade inferior a 500Mo, noutro caso, a utilização de FAT32 é preferível.

No caso do Windows NT (até à versão 4) pode escolher entre o sistema FAT16 e NTFS, em contrapartida este não suporta o FAT32. Geralmente, o sistema NTFS é aconselhado porque oferece uma segurança maior, bem como desempenhos acrescidos em relação ao FAT. A Microsoft recomenda, com efeito, utilizar uma pequena partição (compreendida entre 250 e 500MB) de tipo FAT para o sistema de exploração, para poder começar a partir de um disquete DOS de arranque em caso de problema, e conservar os dados numa segunda partição para armazenar os seus dados.

Sob Windows NT5 o leque aumenta, dado que aceita partições de tipo FAT16, FAT32 e NTFS. Uma vez mais, o sistema de arquivos mais recentes (NTFS 5) é aconselhado, dado que oferece mais funcionalidades do que os sistemas FAT. Pelas mesmas razões que as anteriores, pode, contudo optar por uma partição de tipo FAT.


Sistema operacional
Tipos de sistema de arquivos suportados
Dos
FAT16
Windows 95
FAT16
Windows 95 OSR2
FAT16, FAT32
Windows 98
FAT16, FAT32
Windows NT4
FAT, NTFS (version 4)
Windows 2000/XP
FAT, FAT16, FAT32, NTFS (versions 4 et 5)
Linux
Ext2, Ext3, ReiserFS, Linux Swap(, FAT16, FAT32, NTFS)
MacOS
HFS (Hierarchical File System), MFS (Macintosh File System)
OS/2
HPFS (High Performance File System)
SGI IRIX
XFS
FreeBSD, OpenBSD
UFS (Unix File System)
Sun Solaris
UFS (Unix File System)
IBM AIX
JFS (Journaled File System)

























Curiosidade:

Microsoft anuncia novo sistema de arquivos para o Windows

Chamado de ReFS, serviço chega para substituir o envelhecido NTFS, usado em todas as versões do sistema atualmente.

O lançamento do Windows Server 8 trará um sistema de arquivos inteiramente novo, chamado ReFS (Resilient File System), que resolverá muitas das falhas do envelhecido NTFS (New Technology File System) usado atualmente em todas as versões atuais do Windows, segundo anunciou a Microsoft nesta terça-feira, 17/1, em seu blog.

A empresa espera usar o sistema para substituir o NTFS em desktops e outras versões do Windows, disse o presidente da divisão do sistema na Microsoft, Steven Sinofsky.

O sistema de arquivos está sendo desenvolvido para funcionar com uma ampla variedade de aparelho “desde as menores máquinas até os maiores data centers, afirma o gerente de desenvolvimento da companhia, Surendra Verma. O ReFS poderá suportar nomes e caminhos de arquivos com até 32.000 caracteres. Ele pode hospedar páginas com até 18 quintilhões de bytes e um máximo de 18 quintilhões de arquivos.

O ReFS vai manter a compatibilidade inversa, na maior parte, com o NTFS, mas adiciona novos recursos para suportar um número maior de usos. Por exemplo, o novo sistema não exigirá operações periódicas de verificação de disco, que pode reduzir a velocidade de boot de discos muito grandes.

Ele também pode ser reparado sem deixar todo o sistema offline, o que é algo útil para serviços críticos. O novo sistema ainda poderá corrigir automaticamente dados que foram escritos incorretamente no disco.

“O que eu vejo aqui é que a Microsoft está pegando muito do que aprendemos sobre como os sistemas de arquivos são usados e levando isso além”, afirmou o analista da consultoria IDC, Al Hilwa.

“O foco parece ser tempo produtivo e capacidade de recuperação. A principio, essas técnicas já estão sendo usadas por empresas de armazenamento, mas integrá-las ao sistema de arquivos torna possível oferecer serviços ainda mais flexíveis para os usuários e empresas.”

O novo sistema de arquivos estará disponível primeiramente no lançamento do Windows Server 8. A Microsoft não revelou quando o ReFS chegará a outras versões do Windows 8.

Ext2

É usado em distribuições baseadas no kernel série 2.2.X e sem sombra de dúvidas é o mais rápido (em termos de operações de escrita/leitura) das três opções. Isso ocorre porque o Ext2 não é baseado no recurso de Journaling, que faz com que o sistema de arquivos em questão mantenha um journal (um log) onde são armazenadas todas as mudanças feitas em arquivos do disco. A ausência deste recurso torna o Ext2 mais rápido em operações cotidianas dentro do sistema operacional, afinal de contas, não existe a aparente “perda” de tempo no geramento de um log refente a modificações nos arquivos. Em contrapartida, a cada desligamento incorreto do sistema (queda de energia, desligamento acidental) o sistema de arquivos Ext2 encarrega-se de passar um FSCK (uma espécie de scandisk do Linux) em toda a partição, o que acarreta uma enorme perda de tempo (imagine uma partição de 15 GB lotada de arquivos), além de ser sucetível a perda de arquivos, talvez mais do que partições FAT 16/32 usadas no Windows.

ReiserFS

O ReiserFS, por sua vez, trabalha com o conceito de Journaling. Contudo armazena em log apenas informações metadata, ou seja, informações referentes ao tamanho (espaço ocupado) do arquivo e suas permissões. É mais rápido que o Ext3 e mais lento (obviamente) que o Ext2. No caso de um desligamento incorreto é possível localizar todas as operações que não haviam sido completadas, restaurando a consistência do sistema de arquivos sem a necessidade de vascular arquivo por arquivo, como faz o scandisk do Windows ou o FSCK no Linux. Isso significa dizer que o ReiserFS consegue recuperar o sistema de arquivos em fração de segundos (caso ocorra algum sinistro) e a perda de pastas e arquivos é praticamente nula. Em compensação, os arquivos que eventualmente estiverem sendo gravados no exato momento em que acabou a energia ficarão com seus dados alterados. Você continuará tendo acesso aos arquivos normalmente, mas o conteúdo estará truncado ou incompleto. Na realidade isso pode ocorrer porque o ReiserFS não armanena as informações em si dos arquivos, apenas suas informações metadata.

EXT3

O Ext3 é o sistema de arquivos mais lento (em operações normais) das três opções. Todavia, trabalha com o recurso de Journaling completo. Armazena tanto as informações metadata quanto os dados dos arquivos em si em seus logs. Isso possibilita a recuperação total de eventuais danos causados ao sistema de arquivos. É importante frisar que atualmente a grande maioria das distribuições Linux do mercado, baseadas no kernel série 2.4.X, suportam qualquer um dos três sistemas de arquivos e, sendo assim, você pode ficar bem a vontade para optar por qual opção lhe é mais agradável/viável em um determinado momento

Sistema de arquivos FAT

FAT é a sigla para File Allocation Table (traduzindo: Tabela deAlocação de Arquivos). A primeira versão do FAT surgiu em 1977, para trabalhar com o sistema operacional MS-DOS, mas foi padrão até o Windows 95.

Trata-se de um sistema de arquivos que funciona com base em uma espécie de tabela que indica onde estão os dados de cada arquivo. Esse esquema é necessário porque o espaço destinado ao armazenamento é dividido em blocos, e cada arquivo gravado pode ocupar vários destes, mas não necessariamente de maneira sequencial: os blocos podem estar em várias posições diferentes. Assim, a tabela acaba atuando como um "guia" para localizá-los.

Com o surgimento de dispositivos de armazenamento mais sofisticados e com maior capacidade, o sistema FAT foi ganhando revisões, identificadas pelos nomes FAT12 e FAT16, sendo o primeiro quase um desconhecido e o último padrão dos sistemas operacionais da Microsoft por muito tempo.

Entendendo os sistemas de arquivos FAT

Em um disco rígido, a área de armazenamento é dividida em trilhas. Cada trilha é subdividida em setores cada um com 512 bytes, geralmente. Desse modo, é de se presumir que os sistemas de arquivos FAT trabalhem diretamente com esses setores. Mas não é bem assim.

Na verdade, o FAT trabalha com grupos de setores, onde cada um recebe a denominação cluster (ou unidade de alocação). No caso do FAT16, cada cluster pode ter, comumente, um dos seguintes tamanhos: 2 KB, 4 KB, 8 KB, 16 KB e, por fim, 32 KB. A definição desse tamanho é uniforme, ou seja, não pode haver tamanhos variados de clusters em uma mesma unidade de armazenamento.

Cada arquivo gravado utiliza tantos clusters quanto forem necessários para cobrir o seu tamanho. Se, por exemplo, tivermos um arquivo com 50 KB, é possível guardá-lo em dois clusters de 32 KB cada. Se sobrar espaço, este permanecerá vazio, sendo esse um dos problemas do sistema FAT: o desperdício.

Normalmente, o tamanho dos clusters é definido no procedimento de instalação do sistema operacional, na etapa de formatação da unidade de armazenamento.

FAT16

O FAT16 é uma espécie de "pau pra toda obra", já que é compatível com praticamente todos os sistemas operacionais e também dispositivos como câmeras, palmtops, celulares e MP3players. Ele é o sistema de arquivos usado por padrão nos cartões SD e também nos pendrives de até 2 GB. Só recentemente os cartões passaram a utilizar FAT32, com a introdução do padrão SDHC.

Como já foi comentado anteriormente, no sistema FAT, o HD é dividido em clusters, que são a menor parcela do HD vista pelo sistema operacional. Cada cluster possui um endereço único, que permite ao sistema localizar os arquivos armazenados. Um grande arquivo pode ser dividido em vários clusters, mas não é possível que dois arquivos pequenos sejam gravados dentro do mesmo cluster. Cada cluster pode ser composto por de 1 a 64 setores (ou seja, de 512 bytes a 32 KB), de acordo com o tamanho da partição.

A principal limitação é que, como o nome sugere, o FAT16 usa endereços de 16 bits para endereçar os clusters dentro da partição, permitindo um máximo de 65536 clusters, que não podem ser maiores que 32 KB. Isso resulta num limite de 2 GB para as partições criadas.

FAT32

O sistema de arquivos FAT-32, presente no windowns 95 OSR2 (“Windows 95 B”) e Windows 98 permite romper algumas limitações do tradicional sistema FAT-16. As duas principais são o limite de 2GB por partição existente no sistema FAT-16 (no sistema FAT-32 cada partição pode ser de até 2 Terabytes) e a diminuição de desperdício em disco.

O desperdício em disco, também conhecido como slack space, são áreas marcadas cmo sendo usadas porém fisicamente estão vazias. Isso ocorre porque o sistema FAT armazena arquivos em unidades lógicas chamadas cluster (ou aglomerados). Caso o arquivo não tenha um tamanho múltiplo do tamanho do cluster que estiver sendo utilizado, o arquivo ocupa mais espaço em disco do que é necessário.

Por exemplo, se o disco rígido estiver utilizando cluster de 32KB, um arquivo de 100KB obrigatoriamente ocupará 128KB (4 clusters de 32KB), pois não é possível alocar “metades” de cluster, somente o cluster inteiro. Nesse nosso exxemplo, 28KB seriam desperdiçados.

O tamanho do cluster utilizado pelo HD é decidido pelo sistema operacional na hora da formatação do disco, como já mencionado anteriormente e como mostra as tabelas abaixo. Por exemplo, um HD de 1,6GB formatado em FAT-16 utilizará clusters de 32KB. Esse esmo disco formatado no sistema FAT-32 utilizará clusters de 4KB, diminuindo consideravelmente o desperdício.







NTFS

NTFS (New Technology File System - Systema de Arquivos de Nova Tecnologia) foi desenvolvido quando a Microsoft decidiu criar o Windows NT: como o WinNT deveria ser um sistema operacional mais completo e confiável, o FAT não servia como sistema de arquivos por causa de suas limitações e falta de recursos.

Na época, o que a empresa de Bill Gates queria era abocanhar uma fatia do mercado ocupada pelo UNIX. Anteriormente, ela já havia tentado fazer isso em parceria com a IBM, lançando o OS\2 - no entanto as duas empresas divergiam em certos pontos e acabaram quebrando a aliança. O OS\2 usava o sistema de arquivos HPFS (High Performance File System - Sistema de Arquivos de Alta Performance), cujos conceitos acabaram servindo de base ao NTFS.

O NTFS é o sistema de arquivos mais utilizado por computadores baseados em Windows NT, incluindo o 2000 e o XP. Muito mais completo que o FAT (File Allocation Table - Tabela de Alocação de Arquivos), o NTFS permite a configuração de permissões em arquivos ou pastas, encriptação e compactação nativas e transparentes ao usuário, volumes extendidos e etc.

Duas versões do NTFS são amplamente utilizadas:

NTFS 1.1 (ou 4.0)

O nome oficial desta versão do NTFS é "NTFS 1.1", no entanto, como é usada geralmente em conjunto com o Windows NT4, acabou sendo chamada de versão 4.

As principais características desta versão do NTFS são:

Confiabilidade: O NTFS foi criado para ser o mais confiável possível e necessitar do mínimo possível de manutenção ao sistema de arquivos.

Segurança: Através de permissões de arquivos e pastas, o NTFS permite controlar o acesso aos dados.

Expansibilidade: Um sistema de arquivos feito para servidores não pode se dar ao luxo de suportar apenas os discos rígidos mais comuns. Ao contrário do FAT, que somente suporta partições de 4Gb, o NTFS foi desenhado para suportar discos de até (pasmem!) 16 exabytes (264 bytes).

Eficiência: O FAT desperdiçava enormes quantidades de espaço em disco. Com o NTFS, esses desperdícios foram evitados ao máximo.

Nomes de arquivos: Ao contrário do FAT (16 bits), o NTFS suporta nomes de arquivos e pastas com até 255 caracteres.

O NTFS 4.0 também era utilizado pelo Windows NT 3.51.




NTFS 5.0

O NTFS 5.0 é a versão utilizada no Windows 2000. Muitas das funcionalidades do Win2000 dependem do NTFS (como o Active Directory, por exemplo). Todas as funcionalidades do NTFS 4 estão presentes nesta versão, com algumas modificações, além de novas ferramentas, como a encriptação nativa de dados.


Conclusão

Existem vários sistemas de arquivos, uns mais complexos, outros mais simples dependendo da capacidade do disco e do volume de arquivos e acessos. Focaremos nossa conclusão no sistema de arquivos do linux por ser o tema do blog.

No linux o sistema EXT2 é o mais rápido em relação a operações de escrita e leitura, por não trabalhar com Journaling, mas ao ocorrer um desligamento incorreto o sistema faz uma espécie de scandisk em toda a partição perdendo , com isso, algum tempo . Temos o RaiserFS que armazena de acordo com o tamanho do arquivo. É mais lento que o EXT2 por trabalhar com Journaling, porém, é possível recuperar arquivos após uma queda de energia, anulando quase todas as possibilidades de perda de arquivos.

Por fim, temos o EXT3 o mais lento, porém trabalha com o conceito Journaling completo, ou seja, armazena tanto em metadata quanto os arquivos em seu log. Tornando-o mais lento, porém mais eficiente em relação a algum desligamento incorreto do sistema ou imprevistos.

Nenhum comentário:

Postar um comentário