sexta-feira, 2 de setembro de 2016

PRINCIPAIS SISTEMAS DE ARQUIVO Tipos de arquivos: FAT/FAT32/NTFS/EXT4/HFS+



Introdução

Sistemas de Arquivos (File System)

Uma das formas de armazenamento de informações em microcomputadores (PC) ou em outros sistemas computacionais mais sofisticados, é a utilização de dispositivos com funções específicas para esse fim, conhecidos como discos rígidos ou HDs. Contudo por si só, esses dispositivos não tem a capacidade de organizar e gerenciar o espaço destinado ao armazenamento de dados.
Nesse ponto entram as funcionalidades do Sistema de Arquivos, também conhecido como File System, que atua como um intermediário entre o disco rígido e as informações a serem armazenadas e tem a função de gerenciar processos que determinam como os dados podem ser gravados, copiados, alterados e até apagados.

Em resumo, toda e qualquer manipulação de dados em um dispositivo de mídia, necessita de um Sistema de Arquivos para que essas ações sejam possíveis, se não houver uma estrutura de alocação arquivos e manipulação é impossível gravar dados.
Ao trabalharmos com discos rígidos ou HDs é necessário prepará-los, fazendo uma formatação física. Este processo divide o disco em trilhas (são círculos que começam no centro do disco e vão até a sua borda,) e setores (subdivisões de cada trilha, trechos regulares). Um conjunto de trilhas recebe o nome de cilindro (trilhas acessadas por varias cabeças de leituras, em vários discos empilhados). A formatação física já vem de fábrica e pode ser alterada se o usuário quiser dividir o disco em partições. Depois deve-se fazer uma formatação lógica, que nada mais é do que "instalar" o Sistema de Arquivos no dispositivo de armazenamento.
Cluster

Um cluster é a menor parcela do HD que pode ser acessada pelo sistema operacional. Cada cluster tem um endereço único, um arquivo grande é dividido em vários clusters, mas um cluster não pode conter mais de um arquivo, por menor que seja.
O tamanho dos clusters pode variar em relação ao sistema de arquivos que ele utiliza, quanto menores forem os clusters, menor será a quantidade de espaço desperdiçada no HD, sobretudo ao gravar vários arquivos pequenos, já que mesmo com apenas 1 byte de tamanho, qualquer arquivo ocupará um cluster inteiro.
Muitos usuários já ouviram falar em partições FAT ou FAT32 e NTFS, sem saber ao certo o que isso significa. Essas são siglas de Sistemas de Arquivos que possuem características estruturais e organizacionais, totalmente diferenciadas, que são utilizadas varias versões do sistema operacional Windows.
Os sistemas de arquivos é a parte do SO responsável pelo gerenciamento dos arquivos (estrutura, identificação, acesso, utilização, proteção e implementação). Ou seja, é um conjunto de tipos abstratos de dados que são implementados para o armazenamento, a organização hierárquica, a manipulação, navegação, acesso e recuperação de dados.
Entenda que um arquivo é um recipiente no qual os dados são armazenados, tendo ele um significado para o sistema ou usuário, e estes podem ser programas executáveis, texto, figura, etc. Todos os arquivos possuem um nome o qual o usuário faz referência a ele. Além do nome, cada arquivo possui uma série de outros atributos que são mantidos pelo sistema operacional como tipo de conteúdo, tamanho, data e hora do último acesso, data e hora da última alteração, lista de usuários que podem acessar o arquivo, etc.
A forma como os dados são dispostos dentro de um arquivo determina sua estrutura interna. Cada tipo de arquivo possui uma estrutura interna apropriada para a sua finalidade. Por exemplo, arquivos de texto são organizados em linha ou parágrafos.
Discos Rígidos
Os discos rígidos são compostos por vários discos internos, onde cada um deles é dividido em círculos concêntricos chamados de cilindros ou trilhas, e nestas trilhas temos uma certa quantidade de setores. Cada setor possui, normalmente, 512 bytes de informações. Para descobrir a capacidade total de um HD, basta multiplicar o tamanho do setor pela quantidade total de setores que ele tem.
Vale lembrar que 1 KB é representado por 1024 bytes, e não 1000 bytes como muitos pensam.

FAT16

O significado da palavra FAT é Tabela de Alocação de Arquivos (File Allocation Table) que seria um mapa de utilização do disco. Graças a isto, o SO saberá onde determinado arquivo está.
Normalmente é reconhecido por todos os Sistemas Operacionais, também é utilizado em cartões de memória de estado sólido, e não trabalham com setores, mas sim com unidades de clusters que são conjuntos de setores.
Uma característica marcante é a capacidade de nomear os arquivos somente com 8 caracteres + extensão. Caso seja excedido o valor de caracteres, os caracteres excedidos (do nome do ficheiro) desaparecerão e no lugar deles aparecerá ~1 ou ~2 (se já existir um outro arquivo com os 8 primeiros caracteres iguais).
Existe um inconveniente que quando ficheiros são apagados e novos ficheiros são escritos no suporte, as suas partes tendem a dispersar-se, fragmentando-se por todo o espaço disponível, tornando a leitura e a escrita um processo lento. Para isso, precisamos desfragmentar o disco para um melhor desempenho na sua função de leitura e gravação.
Outro problema é que o FAT16 não reconhece mais que 2GB por ser de 16 bits, utilizando clusters com no máximo 32 KB. Caso haja um disco com mais de 2GB, serão necessário particioná-lo em pedaços máximos de 2GB.


SISTEMAS DE ARQUIVOS FAT e FAT32


Significado


FAT é a sigla para File Allocation Table (ou tabela de alocação de arquivos).

Histórico:


O sistema de arquivos FAT32 é basicamente uma evolução do FAT convencional (também conhecido como FAT16). Sua primeira versão foi desenvolvida no ano de 1980, para atender às necessidades daquela época (MS-DOS). No início, ele trabalhava somente com 12 bits de endereçamento, valor que passou pra 16 e 1987. Finalmente não ano de 1996 passou a usar os 32 bits versão que é utilizada até hoje.

Características

A Tabela de Alocação de Arquivos é um mapa de utilização do disco. Graças a ele, o sistema operacional é capaz de saber exatamente onde um determinado arquivo está armazenado.
Uma diferença visível entre as duas versões é que FAT32 suporta nomes de arquivos longos (até 256 caracteres), enquanto o FAT16 suporta apenas nomes de arquivos curtos (até 8 caracteres + extensão).
Um dos maiores problemas do FAT diz respeito à segurança, pois neste sistema os arquivos podem ser lidos ou escritos por qualquer usuário do sistema.
O sistema de arquivos FAT não trabalha diretamente com cada setor, mas sim com um grupo de setores. Esse grupo é chamado de cluster (ou unidade de alocação). Se por exemplo, um disco com setor de 512 bytes, tiver 5 KB de tamanho, ele terá 10 setores e 5 clusters, se cada cluster ocupar dois setores. Sendo assim, quando o FAT precisar acessar um determinado setor, primeiro ele descobre em qual cluster ele se encontra. É válido citar que tanto o FAT quanto o FAT32 trabalham de acordo com este princípio.

FAT32

Já neste, suporta partições de até 2 TB, tamanho de arquivos de 4 GB e o nome dos arquivos passou de 8 para 256 caracteres e superou o antigo limite de 3 caracteres para a extensão, embora este padrão ainda seja largamente utilizado.
Com o FAT32, o desperdício em disco foi sensivelmente reduzido. O FAT16, seu antecessor, utilizava clusters de até 64 KB enquanto o FAT32 pode utilizar clusters de 4 KB. Se um arquivo ocupa 4 KB de espaço, tanto no FAT16 como no FAT32 a ocupação será de 1 cluster, porém, no caso do FAT16 os 60 KB restantes serão alocados, apesar de ficarem fisicamente vazios.
Tem a desvantagem de ser 6% mais lenta que FAT16 e a incompatibilidade com SO antigos.
Não possui recursos de segurança como o NTFS. Utiliza uma cópia backup da tabela de alocação como sistema de segurança para corrupções de arquivos. Este procedimento é ineficiente, pois uma queda de energia durante uma operação que modifique os metadados pode tornar a partição inacessível ou corromper severamente diversos arquivos.
Fonte: http://www.diegomacedo.com.br/sistemas-de-arquivos-ntfs-fat16-fat32-ext2-e-ext3/
NTFS
O NTFS (New Technology File System) é um sistema de arquivos que surgiu com o lançamento do Windows NT, e passou a ser bem aceito e utilizado nas outras versões do Windows posteriormente.
Uma dessas vantagens diz respeito ao quesito “recuperação”: em caso de falhas, como o desligamento repentino do computador, o NTFS é capaz de reverter os dados à condição anterior ao incidente. Isso é possível, em parte, porque, durante o processo de boot, o sistema operacional consulta um arquivo de log que registra todas as operações efetuadas e entra em ação ao identificar nele os pontos problemáticos. Ainda neste aspecto, o NTFS também suporta redundância de dados, isto é, replicação, como o que é feito por sistemas RAID, por exemplo.
Algumas características são:
Neste modelo, temos o tamanho limite do arquivo de acordo com o tamanho do volume;
Os nomes dos arquivos podem ter 32 caracteres;
Tem suporte a criptografia, indexação e compactação;
Seus clusters podem chegar a 512 bytes;
É mais seguro que o FAT;
Permite política de segurança e gerenciamento;
Menos fragmentação;
Melhor desempenho;
Recuperação de erros mais fácil;
Caso seja usado em mídias, podem se corromper mais facilmente;
É um pouco mais lenta que o FAT32 devido as diretivas de segurança que o FAT32 não tem e precisam ser acessados durante leitura e gravação de dados;
Utiliza a tabela MFT (Master File Table) para registrar a utilização de cada cluster de um disco;



SISTEMA DE ARQUIVOS NTFS

Significado

NTFS é a sigla de New Technology File System (Nova Tecnologia de Sistema de Arquivos)

História

O Sistema foi desenvolvido no ano de 1993, com o objetivo de ser o Sistema de Arquivos do Windows NT, sua criação foi uma necessidade, pois os sistemas baseados em MS-DOS não eram estáveis o suficiente para a execução em servidores. O sistema passou a possuir novos recursos como a configuração de permissões em arquivos ou pastas, encriptação e compactação nativas e transparentes ao usuário, volumes extendidos e mais uma gama de funções que a maioria dos usuários nem chega a conhecer. Na década de 2000 os sistemas operacionais Windows passaram a usar o padrão NT, até hoje.

Características

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.

EXT2

Ext2 foi projetado e implementado para corrigir as deficiências 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 que contém o nó-i. Esse comportamento reduz o movimento da(s) cabeça(s) de leitura-gravação da unidade de disco.
Em um sistema de arquivos ocorrem dois tipos de fragmentação: (i) 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; (ii) a fragmentação externa (ou de arquivo) decorre da impossibilidade do sistema determinar, a priori, qual o tamanho do arquivo (p.ex., 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 gerenciamento 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. [CARD, TS’O e TWEEDIE, 1994]

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.
O que é Ext4 e Como funciona o sistema de arquivos ext4?
Introdução
Ext4 é a evolução do sistema de arquivos mais usados no Linux, o Ext3. De muitas maneiras, Ext4 é uma profunda melhoria sobre o  Ext3, sendo o Ext3, com muitas melhorias frente o Ext2. No Ext3 foi principalmente a adição de Journaling sobre o Ext2, mas Ext4 teve mudanças importantes na estrutura do sistema de arquivos destinado ao armazenamento de dados. O resultado é um sistema de arquivos com um designer aperfeiçoado, melhor performance, confiável e com muitos recursos.

Recursos do Ext4

Compatibilidade
Um sistema de arquivos Ext3 existente, pode ser migrado para Ext4 com um procedimento fácil, onde consiste a execução de um casal de comandos em modo “read-only” (descrito na próxima seção). Por meio disto você melhora a performance, limites de armazenamentos e recursos do sistema de arquivos corrente, com ou sem a “reformatação” e/ou reinstalação do SO e softwares “environment”. Se você precisa das vantagens do Ext4 em um sistema em produção, você pode atualizar o sistema de arquivos. O processo é seguro é não há riscos para seus dados (obviamente, fazer backup de dados críticos é recomendado, pois você está atualizando seu sistema de arquivos). O Ext4 vai usar uma nova estrutura de dados somente em novos dados, a estrutura antiga continuará intocada, é será possível para leitura/escrita se for preciso. Desta forma, é claro, assim que uma vez convertido o sistema de arquivos para Ext4, você não vai poder voltar para o Ext3 novamente (embora há uma possibilidade, descrita na próxima seção, montando um sistema de arquivos Ext3 com Ext4 com ou sem o uso de um novo disco formatado, e você poderá montar com o Ext3 novamente, porém você irá perder todas as vantagens do Ext4).
Sistema de arquivos ou arquivos grandes
Atualmente, Ext3 suporta 16TB de tamanho máximo no sistema de arquivos, e 2TB de tamanho máximo de um arquivo. Ext4 adiciona 48-bit endereçados, obtendo assim 1EB de tamanho máximo de sistema de arquivos e 16TB de tamanho máximo de arquivos. 1 EB = 1,048,576 TB (1 EB = 1024 PB, 1 PB = 1024 TB, 1 TB = 1024 GB). Porque 48-bit e não 64-bit? Há algumas limitações daquele que pode precisar que seja fixado antes da construção do Ext4 enchendo a capacidade de 64-bit, no qual não tem como ser endereçado no Ext4. A estrutura de dados do Ext4 tem que ser desenhada mantendo em mente, um recurso de atualização para o Ext4 implementando completamente suporte a 64-bit até algum ponto. 1EB pode ser suficiente (realmente enquanto isso acontecer). (Note: o código para criar sistemas de arquivos grandes como 16TB não é estável nas versões do e2fsprogs).
scabilidade de subdiretórios
Atualmente a possibilidade máxima de número de subdiretórios contendo um único diretório no Ext3 é 32.000. Ext4 quebra esse limite, e possibilita um número ilimitado de subdiretórios.

Extends

Os tradicionais sistemas de arquivos derivados do Unix como o Ext3, utilizam um esquema de mapeamento indireto de blocos para manter cada trilho do bloco usado correspondente no dado de um arquivo. Isto é ineficiente para arquivos grandes, especialmente um arquivo grande deletado e/ou operações “truncate”, porque o mapeamento mantém uma entrada para muitos blocos únicos, e grandes arquivos tem muitos blocos – > mapeamentos enormes, lentidão para o manuseio. Os sistemas de arquivos modernos usam uma abordagem diferente chamada “extends”. Um extends é basicamente um punhado de blocos físicos continuo. Isto pode ser basicamente definido: “Os dados no próximo bloco n”. Por exemplo, um arquivo de 100MB pode ser alocado em um único extends deste tamanho, em vez de precisar da criação de um mapeamento indireto para 25600 blocos ( 4KB por bloco). Arquivos grandes são divididos em diversos extends. Extends melhora a performance e também ajuda a reduzir a fragmentação, uma vez que incentiva o continuo “layouts” do disco.
Alocação multiblock
Quando o EXT3 precisa de nova escrita de dados no disco, há um alocador de blocos que decide quais blocos livres deverá ser usado para a escrita do dado. Mas o alocador de blocos do Ext3 somente alocar um bloco (4KB) em um momento. Esta forma que o sistema precisa para escrever 100MB de dados mencionado anteriormente em outro ponto, será necessário para chamar o alocador de blocos 25600 vezes (isto simplesmente para 100MB!). Não só isto é ineficiente, como também não permite que o bloco de alocação utilize a política de alocação porque ele não sabe como o total de muitos dados deve ter a alocação iniciada, ele apenas conhece sobre um simples bloco. Ext4 usa “multiblock allocator” (mballoc), no qual, aloca muitos blocos em uma simples chamada, em vez de um simples bloco por chamada, evitando um monte de overhead. Isto melhora a performance, e é especialmente útil com “alocação atrasada” e extends. Este novo recurso não afeta o formato do disco. Também, note que o Ext4 blocos/inode tem outras melhorias no alocador, descrição e detalhes neste documento (http://ols.fedoraproject.org/OLS/Reprints-2008/kumar-reprint.pdf).
Atraso na alocação
Atraso na alocação (http://en.wikipedia.org/wiki/Allocate-on-flush) é um recurso de performance (isto não muda o formato do disco) encontrado em poucos sistemas de arquivos modernos, tais como o XFS, ZFS, btrfs ou Reiser 4, que constitui em um atraso na alocação de blocos tanto quando possível, contrário aos tradicionais sistemas de arquivos (tais como o Ext3, Reiser3, etc) fazem: alocando os blocos com a maior brevidade possível. Por exemplo, em um processo de escrita, o código do sistema de arquivos irá atribuir imediatamente os blocos quando os dados forem coletados – mesmo se os dados não estiverem sendo escritos agora para o disco, eles vão ser mantidos em cache durante um tempo. Esta abordagem tem algumas desvantagens.Por exemplo, quando um processo esta escrevendo continuamente em um arquivo, crescente, sucessivamente sendo escritos atribuindo blocos para os dados, mas ele não sabe se o arquivo se manterá crescente. Atrasando a alocação, por outro lado, não afetaria os blocos imediatamente quando o processo de escrita, sim, ela atrasa a alocação dos blocos, enquanto o arquivo é mantido em cache, até que ele esteja realmente indo para escrito no disco. Isto da ao bloco de alocação a capacidade de alocar em situações em que sistemas antigos não poderia. Atraso na alocação trabalha muito bem com as duas características anteriormente mencionadas, extents e alocação multiblock, porque, em muitos casos um trabalho em que o arquivo é gravado para o último disco que será atribuído em blocos extends, cuja alocação é feita com o mballoc. O desempenho é muito melhor, e a fragmentação é muito melhorada em alguns workloads.
fsck rápido
Fsck é uma operação muito lenta, especialmente o primeiro passo: checagem de todos os inodes em um sistema de arquivos. No Ext4, até o fim de cada grupo da tabela de inode estará armazenado uma lista de inodes inutilizados ( com checksum, por segurança), assim o fsck não irá checar estes inodes. O resultado final é que o tempo do fsck melhorou de 2 a 20 vezes, dependendo do número usado de inodes (http://kerneltrap.org/Linux/Improving_fsck_Speeds_in_Ext4). Deve-se notar que é o fsck, e não o Ext4, que irá montar a lista de inodes inutilizados. Isso significa que você deve executar o fsck para obter a lista de inodes inutilizados construída, e só na próxima execução do fsck será mais rápida (você precisa passar o fsck, a fim de converter um ext3 filesystem para Ext4 de qualquer forma). Há também uma característica que ajuda a acelerar o fsck – “flexible block groups” – que também acelera as operações em arquivos.
Journal checksumming
O Journal é mais utilizado na parte do disco, construindo os blocos mais propensos a falhas de hardware. A recuperação de um  journal corrompido pode levar a uma corrupção massiva. Ext4 checksums do dados de journal verificando se os blocos de journal estão falhando ou corrompendo. Mas “journal checksumming” tem um bonus: ele permite para conversão e gravação em duas-fases, sendo no Ext3 o journal em única fase, acelerando a operação no sistema de arquivos para mais de 20% em alguns casos – assim a reabilitação e a performance são melhoradas ao mesmo tempo (Nota: parte dos novos recursos e melhorias de performance, e “asyncrhonous logging”, está desativada por padrão e será ativada em versões futuras).

Padrões de barreiras

Este é uma opção que melhora a integridade de um sistema de arquivos ao custo de cerca de desempenho (você pode desabilitar isso com “mount -o barrier=0″, recomendado que seja testado com um benchmarking). Neste artigo da LWN (http://lwn.net/Articles/283161/): “O código do sistema de arquivos tem, antes de escrever [journaling] e gravando o registro, ter certeza absoluta de todas as informações de operações para a criação do journaling. Apenas escrever, no bom sentido, é insuficiente; os dispositivos atuais mantêm grandes chache interno e reordenam operações para melhor performance. Portanto, os sistemas de arquivos devem explicitamente instruir o disco para obter todos os dados do journaling antes da escrita e gravação das alterações; se a gravação dos registros forem escritas em primeiro lugar, o journaling pode ser corrompido. No kernel, os subsistemas de blocos de I/O torna essa capacidade disponível através de uso de barreiras, na sua essência, uma barreira impede a escrita de qualquer bloco após a barreira até que todos os blocos escritos antes da barreira sejam gravados na mídia. Ao utilizar barreiras, o sistema de arquivos pode ter certeza que sua estrutura em disco permaneçam consistentes em todo o momento”.
HFS+
o HFS+ (Hierarchical File System plus, ou sistema de arquivos hierárquico estendido). Ele é a atualização do HFS, apresentado em 1985 pela Apple e usado por anos em seus sistemas operacionais.
O HFS+ também é conhecido como sistema de arquivos Mac OS X Extended, e supera o formato HFS em vários quesitos: pode trabalhar com endereços de bloco de arquivos de até 32bits, contra 16bits do sistema anterior; aceita nomes de arquivos com até 255 caracteres, em vez de apenas 31; tem formato de nome de arquivo Unicode, em vez do já antiquado MacRoman; e entre outros, o que mais gosto, que é a possibilidade de lidar com arquivos de até 8EB (Exabytes)! Para se ter uma idéia, um Exabyte dá mil Petabytes, um milhão de Terabytes, ou um bilhão de Gigabytes. Acredito que os editores de vídeo não teriam problemas para gravar seus clipes com esse formato…
Apesar disso, existe uma pequena diferença entre “poder” e “ser”. O formato NTFS que existe nos Windows NT, XP, 2003 e Vista, por exemplo, alcança o dobro esse valor como máximo tamanho de um único arquivo. Por outro lado, a implementação real só permite um limite de quase 16TB, ou aproximadamente 16.000GB. Isso dá um banho de água do Oceano Ártico nos antigos FAT16 e HFS. O limite de tamanho de arquivos para estes é de 2GB.
Podemos ver em que formato se encontra qualquer disco conectado a um Mac através do atalho de teclas Command-I sobre o mesmo. No caso do nosso querido sistema X, a opção de formato HFS+ já existe há algum tempo, então é provável que apareça a designação Mac OS X Extended no local onde indica o respectivo formato.
Além disso, ainda há outros termos. Por exemplo, quando vamos formatar um disco com o Disk Utility, vemos as seguintes opções:
Mac OS Extended (Journaled): de acordo com a Apple, o formato journaled foi apresentado no OS X 10.2.2 Server, e sua função é aumentar a segurança quanto ao armazenamento de dados, no que diz respeito a evitar falhas de integridade em casos extremos. Um disco com essa característica mantém registro de todas as suas atividades, e em caso de instabilidade ou travamento do sistema, esse registro — um journal, que pode ser entendido como “relatório” — é usado para restaurar o estado do sistema ao que tenha sido gravado, depois do reinicio do sistema. Conceito muito parecido ao rollback em Banco de Dados.
Mac OS Extended: é possível ter um disco HFS+ sem a opção de journaling. Também se pode desabilitar essa função, através de comandos via Terminal, para quem precise ganhar desempenho em computadores mais lentos. O risco de perda de dados aqui é maior que na opção anterior.
Mac OS Extended (Case-sensitive, Journaled): combinação da primeira opção, respeitando as diferenças entre maiúsculas e minúsculas. Algo parecido com o que acontece no UNIX.
Mac OS Extended (Case-sensitive): igual ao anterior, só que sem journaling.
MS-DOS (FAT): seria o FAT32, da Microsoft. Formatar um disco com essa especificação garante compatibilidade integral entre quaisquer sistemas operacionais, porém há a limitação de tamanho de arquivos a 4GB, o que pode ser um problema para editores de vídeo e outras pessoas que trabalhem com arquivos de tamanho grande. Também um problema para quem lida com imagens de DVD-DL, já que o dual-layer consiste exatamente em levar o tamanho de um DVD normal a quase 8,5GB.
Tirando a opção MS-DOS (FAT), todas as outras são algum tipo de HFS+, e ainda havia uma opção UFS (UNIX File System), para quem quisesse, por alguma razão, usar o formato do sistema UNIX. O journaling é sempre aconselhado, por aumentar a segurança na manipulação de dados, e diminuir o risco de perdas em caso de que o computador pare de funcionar, trave ou fique sem energia elétrica, por falta de luz, por exemplo.
Hoje em dia, para quem precise trabalhar com arquivos muito grandes, eu recomendaria o uso do formato HFS+ Journaled para qualquer disco, mesmo que ele seja utilizado depois em computadores com Windows. Existe um programa muito bom da MediaFour, chamado MacDrive, que é pago, mas pela função que tem, até sai barato. Permite ver e trabalhar com qualquer disco, dentro do Windows, com formatos HFS e HFS+, em todas as variações. Isso garante a possibilidade de abrir arquivos maiores que 4GB de tamanho nos sistemas operacionais da Microsoft e da Apple, sem qualquer problema.
Há que lembrar sempre que, de modo nativo, o Mac OS X não consegue permitir acesso completo a arquivos em discos com formato NTFS, usado nos Windows 2000, XP e Vista. Creio que também há soluções para isso, apesar de que eu não conheço nenhuma de fácil uso e que funcione de modo parecido ao MacDrive. Talvez algum dia HFS+ e NTFS se comuniquem, como já acontece com o formato da Apple e o FAT32.



Referencias









Nenhum comentário:

Postar um comentário