Pesquisar no site

Contato

Tecnologiadarede

fassisaraujo@gmail.com

Sistema de Arquivo NTFS

15/05/2010 01:53

New Technology File System (NTFS)

Os sistemas de arquivo FAT, incluindo FAT12, FAT16 e FAT32, tem sido o sistema de arquivos base dos sistemas operacionais da Microsoft desde os primeiros IBM PCs no começo dos anos 80.

No geral a família FAT faz um trabalho de gerenciamento de arquivo adequado pra PCs que não tenham um uso intenso, PCs domésticos ou de escritórios enquanto a FAT é aceitável para a maioria dos usuários, ela também é um sistema de arquivos muito velho, limitado e relativamente simplista tem poucas características relativas a segurança, capacidade e confiança que são necessárias a usuários avançados.

Com o intuito de fornecer um sistema de arquivos com flexibilidade, adaptabilidade, alta-segurança e alta-confiança, para ajudar a colocar o Windows NT como um sistema operacional "sério" para usuários comerciais e corporativos a Microsoft criou o New Technology File System, ou NTFS.

História do NTFS

A Microsoft no começo dos anos 90 decidiu criar um sistema operacional seguro, confiável, de alta-performance e alta-qualidade. O objetivo deste sistema operacional era permitir que a Microsoft conseguisse uma fatia do lucrativo mercado comercial e corporativo nesta época, os sistemas operacionais da Microsoft eram o MS-DOS e o Windows 3.x, nenhum dos quais tinha o poder ou as características necessárias para a Microsoft enfrentar o UNIX. Uma das grandes fraquezas do MS-DOS e do Windows 3.x era que eles contavam com o sistema de arquivos FAT. FAT fornecia poucas das características necessárias para armazenagem e gerenciamento de dados em um ambiente corporativo, dinâmico e distribuído. Para evitar problemas para o Windows NT, a Microsoft teve que criar para ele um novo sistema que não fosse baseado na FAT. O resultado foi o New Technology File System ou NTFS.

O NTFS é definitivamente "novo" do ponto de vista que ele não é baseado no velho sistema de arquivos FAT. A Microsoft projetou ele baseado em uma análise das necessidades do seu novo sistema operacional da época o Windows NT, e não baseado em algo com o que eles estivessem tentando manter a compatibilidade, por exemplo. Contudo, o NTFS não é inteiramente novo, porque alguns de seus conceitos foram baseados em outro sistema de arquivos que a Microsoft se envolveu na criação: o HPFS.

Antes de existir o Windows NT, havia o OS/2. O OS/2 era um projeto conjunto da Microsoft com a IBM no início dos anos 90; as duas companhias estavam tentando criar o próximo grande sucesso no mundo dos sistemas operacionais gráficos. Pode-se dizer que elas tiveram sucesso dependendo de como você mede o sucesso. O OS/2 tinha algumas inovações técnicas significantes, mas sofria de problemas de marketing e suporte. Eventualmente, a Microsoft e a IBM começaram a brigar, e a Microsoft saiu do projeto e começou a trabalhar no Windows NT. Quando eles fizeram isto, eles pegaram “emprestado” muitos conceitos chave do sistema de arquivos nativo do OS/2, o HPFS, na criação do NTFS.

Objetivos mais importantes alcançados pelo NTFS

Confiança: Uma característica importante de um sistema de arquivos é que ele deve ser capaz de se recuperar de problemas sem resultar em perda de dados. O NTFS implementa características específicas para permitir que transações importantes sejam completadas como um único bloco, para evitar perda de dados, e para melhorar a tolerância a falhas.

Segurança e Controle de Acesso: Uma das maiores fraquezas do sistema de arquivos FAT é que ele não inclui facilidades embutidas para controlar o acesso a pastas ou arquivos no disco rígido. Sem este controle, é quase impossível implementar aplicações e redes que necessitem de segurança e da capacidade de gerenciar quem pode ler ou escrever diferentes dados.

Quebrar as Barreiras de Tamanho: No começo dos anos 90, a FAT estava limitada à versão FAT16 dos sistema de arquivos, o qual permitia apenas partições de até 4GB de tamanho. O NTFS foi desenvolvido para permitir tamanhos de partições muito maiores, em antecipação ao crescimento das capacidades dos HDs, bem como ao uso de arrays RAID.

Armazenagem Eficiente: Novamente, na época em que o NTFS foi desenvolvido, muitos PCs usavam a FAT16, que resulta em significante uso de espaço em disco. O NTFS evita este problema ao utilizar um método muito diferente de alocação de espaço para arquivos do que é feito na FAT.

Nomes de Arquivos Longos: O NTFS permite que nomes de arquivos sejam de até 255 caracteres, em vez da limitação de 8+3 caracteres da FAT convencional.

Networking: Enquanto o uso de redes é comum atualmente, ele ainda estava nos seus estágios relativamente iniciais no mundo dos PCs quando o Windows NT foi desenvolvido. Por volta daquela época, o mundo dos negócios estava apenas começando a entender a importância das redes, e o Windows NT estava dando algumas facilidades ao permitir comunicação em larga escala. (Algumas das características do NT que permitiam uma rede de comunicação não são estritamente relacionadas ao sistema de arquivos, apesar de algumas serem).

É claro, há também outras vantagens associadas com o NTFS; essas são apenas alguns dos objetivos principais do projeto do sistema de arquivos.

Por sua vez, a Microsoft não tem deixado o NTFS ficar estagnado. Ao longo dos anos, novas características têm sido adicionadas ao sistema de arquivos. Mais recentemente, o NTFS 5.0 foi introduzido como parte do Windows 2000. Ele é similar em muitos aspectos ao NTFS usado no Windows NT, mas apresenta muitas novas características e capacidades. A Microsoft também tem corrigido problemas com o NTFS, ajudando-o a tornar-se mais estável. Hoje, o NTFS está se tornando o sistema de arquivo mais popular para o os PCs mais avançados, estações de trabalho e implementação de servidores.

Versões do NTFS

O NTFS passou por algumas evoluções. Ao longo do tempo, a Microsoft fez alterações nele, por várias razões diferentes. Isto inclui correções no sistema, adição de suporte à novo hardware e permitir novas características no sistema operacional. A maior alteração no NTFS veio com a chegada do Windows 2000. As alterações do NTFS permitem algumas das mais importantes características deste sistema operacional.

As duas versões disponíveis do NTFS são:

NTFS 4.0: Esta é a versão 1.1 (ou versão 4.0) utilizada no Windows NT 4.0. Mesmo que suporte controle de acesso em arquivos e pastas, ele não suporta a maioria das funcionalidades do sistema de arquivo do Windows 2000 e Windows Server 2003.

 NTFS 5.0 foi a terceira versão de NTFS a ser introduzido ao mundo de Windows por Microsoft. Ele incluiu várias novas características: as quotas, suporte de arquivo escasso, pontos de reanálise, distribuíram o rastreamento de conexão e o Sistema de Arquivo que Encripta (EFS) permite a arquivos associar-se com mais de uma corrente de dados. As correntes alternativas não são detectáveis no tamanho do arquivo original mas são perdidas quando o arquivo original é eliminado, ou quando o arquivo é copiado ou movido a uma partição que não apoia ANÚNCIOS. Enquanto os ANÚNCIOS são uma característica útil, ele também pode acabar facilmente o espaço de disco rígido se não descoberto ou esquecido. As quotas de sistema de arquivo foram introduzidas em NTFS 5.

Eles permitem ao administrador de um computador que dirige uma versão do Windows que apoia NTFS para estabelecer um limiar do espaço de disco que os usuários podem utilizar. Ele também permite a administradores guardar uma pista de quanto espaço de disco cada usuário está usando. Um administrador pode especificar certo nível do espaço de disco que um usuário pode usar antes de que eles recebam um aviso, e logo neguem o acesso ao usuário uma vez que eles batem no seu limite superior do espaço.

Isto é chamado um jogo de dados escasso, e a maior parte de coisas que geram tais jogos de dados são aplicações científicas, e eles podem gerar jogos de dados escassos muito grandes. Por causa disto, Microsoft implementou o suporte de arquivos escassos por só alocando espaço de disco de regiões que não contêm blocos de dados nulos.

Uma aplicação que lê um arquivo escasso lê-o na maneira normal com o sistema de arquivo que calcula que dados devem ser devolvidos baseados sobre a compensação de arquivo. Assim a última versão NTFS 5 fornece o sistema NTFS a ser invocado e estar preparado para o último avanço do seguinte no sistema.

Funções alcançadas pela versão 5.0

Reparse Points: Arquivos e diretórios dentro do sistema de arquivos podem ter ações associadas a eles, de forma que quando o objeto do sistema de arquivos é acessado de uma forma particular, a ação é executada.

Permissões e Segurança Melhoradas: O mecanismo para gerenciamento da segurança do sistema de arquivos e atribuição de permissões foi melhorado.

Diários de Alterações: Volumes de disco podem ser ajustados para rastrear todas as operações efetuadas nos arquivos e diretórios que eles contém.

Codificação: O NTFS 5.0 permite que você codifique e decodifique arquivos automaticamente a medida que eles são lidos.

Quotas de Disco: Administradores podem determinar quanto do espaço em disco está sendo usado pelos usuários ou grupos de usuários, e até limitar o uso do espaço em disco se necessário.

Suporte a Arquivos Esparsos: Para economizar espaço em disco, o suporte foi adicionado para uma armazenagem mais eficiente de arquivos esparsos, que são arquivos grandes que estão na sua maior parte vazios.

Desfragmentador de Disco: O Windows 2000 inclui um programa de desfragmentação de disco, coisa que o NT não tinha. (Se bem que, esta é uma característica do sistema operacional Windows 2000, e não um melhoramento do sistema de arquivos, mas resolvemos mencioná-lo já que ele está obviamente relacionado ao sistema de arquivos.)

 

As principais diferenças entre 4.0 e NTFS NTFS 5.0 são resumidos a seguir:

  • Volume máximo tamanho:
    • NTFS 4.0: 32 GB
    • NTFS 5.0: 2 terabytes no Master Boot Record (MBR), discos rígidos, e 18 exabytes em GUID Partition Table (GPT) discos.
  • Tamanho máximo do arquivo:
    • NTFS 4.0: 32 GB
    • NTFS 5.0: Com o NTFS 5.0, o tamanho do arquivo é limitado pelo tamanho do volume.
  • Suporte avançado para arquivo permissões de acesso:
    • NTFS 4.0: Sim
    • NTFS 5.0: Sim
  • Suporte para arquivo compressão:
      • NTFS 4.0: Sim
      • NTFS 5.0: Sim
    • Suporte para criptografia, cotas de disco arquivos esparsos, armazenamento remoto e Active Directory estruturas:
      • NTFS 4.0: Não
      • NTFS 5.0: Sim

    Funcionamento do NTFS

    Quando os dados são armazenados no disco, o sistema grava os eventos de E/S em um arquivo especial (log). Se o sistema parar ou encontrar uma interrupção, o WNT pode usar este log para restaurar o volume e prevenir corrupções em um programa que não foi concluído normalmente ou queda geral do sistema (shutdown). O sistema NTFS não submete uma ação para disco até que ele verifique o sucesso completo da ação. Esta precaução ajuda a prevenir corrupções de um volume e torna o NTFS especificamente para armazenamento de dados em sistemas independentes (standalone) e servidores de arquivos de redes (NFS) .

    O sistema de arquivos NTFS também suporta hot-fixing para setores do disco, onde o sistema operacional automaticamente bloqueia setores defeituosos e realoca os dados destes setores. Isto acontece em background. Uma aplicação atendendo a leitura ou escrita de dados em uma área hot-fixed não necessita saber que o disco tem um problema.

    O NTFS é um sistema de arquivos eficiente. Os arquivos são acessados através de ponteiros de 8 bytes, o que significa que um único arquivo ou tabela poderia ter 264 bytes de dados. Na prática, isto significa que não existe limitação no tamanho de arquivos. O NTFS manipula grandes arquivos sem degradação e armazena os dados de maneira que um acesso ao disco é suficiente.

    De modo geral, o sistema NTFS fornece um impressionante desempenho de E/S em discos com volumes grandes, assim como em servidores de arquivos e estações de trabalho avançadas. Tal desempenho é alcançado somente para volumes maiores que 400 MB devido ao overhead causado pelas características de segurança e confiabilidade.

    O sistema NTFS utiliza uma estrutura de árvore binária para todos os diretórios do disco, reduzindo o número de vezes que o sistema leva para acessar o disco para localizar arquivos. Este sistema é o melhor para diretórios grandes, e o WNT supera facilmente a FAT nestas situações.

    Outra característica de desempenho é a resistência do NTFS para fragmentação de arquivos. Neste ponto, um processo especial de escrita de arquivos no disco é utilizado. Este processo minimiza a fragmentação de arquivos pela escolha inteligente sobre onde armazenar o arquivo no disco. Em contraste ao método do sistema FAT, o método do NTFS de escrita de arquivos reduz, mas não elimina, o problema da fragmentação de arquivos em volumes NTFS.

    Outra importante característica do NTFS é a habilidade de comprimir seletivamente arquivos individuais e pastas em um disco. Pode-se também comprimir todo o volume NTFS pela compressão da pasta root do volume. 

    O gerenciador de disco (windisk.exe) e o comando de linha format são duas ferramentas que podem ser usadas para criar partições NTFS e drives lógicos. Nos dois casos deve-se informar o tamanho dos clusters. Caso não seja informado, um tamanho default é assumido de acordo com o tamanho do disco. A escolha é feita de acordo com a quantidade disponível do disco, podendo resultar em clusters maiores, ou de acordo com o overhead gerado com o gerenciamento de clusters menores.

    O NTFS utiliza vários arquivos para armazenar dados relacionados ao gerenciador de disco. 

    Os dados armazenados dentro destes arquivos e alguns dados do NTFS armazenados em arquivos e diretórios de usuários são conhecidos como metadata. Quando se inicializa um disco NTFS, 11 arquivos metadata são criados, como mostra a tabela a seguir.

    NOME MFT

    REGISTRO

    DESCRIÇÃO

    $MFT

    0

    Master File Table – comando central do NTFS.

    $MFTMIRR

    1

    Cópia dos 16 primeiros registros do MFT.

    $LOGFILE

    2

    Arquivo de registro de transação.

    $VOLUME

    3

    Contém número de série, data de criação e flag.

    $ATTRDEF

    4

    Definição de atributos.

    $ATTRDEF

    5

    Diretório raiz do disco.

    $BITMAP

    6

    Contém o mapeamento dos clusters do drive.

    $BOOT

    7

    Registro de boot do drive.

    $BADCLUS

    8

    Lista de clusters danificados no drive.

    $QUOTA

    9

    Contém informações de quotas de usuarios.

    $UPCASE

    10

    Mapeia caractere minúsculo para  o correspondente maiúsculo.

    O Comando central do NTFS é a  MFT – Master File Table, análoga à tabela de alocação de arquivos da FAT por mapear todos os arquivos e diretórios num drive, incluindo arquivos metadata do NTFS. É dividida em unidades conhecidas por registros, onde é armazenado o metadata que descreve as características de um arquivo ou diretório e sua localização no disco. O MFT é também um arquivo que o NTFS mapeia usando registros dentro da MFT.

    NTFS identifica internamente arquivos e diretórios utilizando a posição na MFT do registro descrevendo o começo do seu metadata.

    Ponto crítico

    O acesso à MTF é o ponto crítico na performance global de um drive NTFS. Por ser um arquivo pode tornar-se fragmentado por aumentar ou diminuir de tamanho, dificultando seu acesso. O acesso rápido a arquivo ocorre quando uma operação seqüencial de disco pode ler todo o bloco do arquivo, mas uma MFT fragmentada significa que NTFS pode necessitar de operações múltiplas de disco para ler um registro, podendo diminuir a performance. Para prevenir a fragmentação da MFT, o NTFS cria uma região de clusters ao redor da MFT para outros arquivos e diretórios, conhecida como zona MFT.