Como o NTFS reserva espaço para sua MFT (Tabela de Arquivos Mestre)

Este artigo descreve como o NTFS reserva espaço para sua MFT (Tabela de Arquivos Mestre).

Aplica-se a: Windows 10 — todas as edições, Windows Server 2012 R2
Número de KB original: 174619

Resumo

O sistema de arquivos NTFS contém em seu núcleo, um arquivo chamado MFT (tabela de arquivos master). Há pelo menos uma entrada no MFT para cada arquivo em um volume NTFS, incluindo o próprio MFT.

Como utilitários que desfragmentam volumes NTFS não podem mover entradas MFT e, como a fragmentação excessiva do MFT pode afetar o desempenho, o NTFS reserva espaço para o MFT em um esforço para manter o MFT o mais contíguo possível à medida que cresce.

No Windows, o utilitário de desfragmenta o MFT.

O utilitário de desfrag

Uma operação de desfragamento no MFT combina um arquivo MFT em 1 e impede que ele seja armazenado em vários lugares que não são sequenciais em disco. Nesta classe de operação, o arquivo MFT é mais sequencial. No entanto, é exatamente o tamanho que o arquivo MFT era antes da operação de desfrag.

Um MFT pode ser muito grande se um volume usado para ter muitos arquivos que foram excluídos. Os arquivos excluídos causam buracos internos no MFT. Esses buracos são regiões significativas que não são usados por arquivos. É impossível recuperar esse espaço. Isso é pelo menos verdadeiro em um volume NTFS ao vivo.

Mais informações

O NTFS usa entradas MFT para definir os arquivos aos quais correspondem. Todas as informações sobre um arquivo, incluindo seu tamanho, carimbos de data e hora, permissões e conteúdo de dados são armazenadas em entradas MFT ou no espaço externo ao MFT, mas descritas pelas entradas MFT.

(Entradas de diretório, externas ao MFT, também contêm algumas informações redundantes sobre arquivos. Mas uma discussão completa sobre todas as estruturas no NTFS está além do escopo deste artigo.)

À medida que os arquivos são adicionados a um volume NTFS, mais entradas são adicionadas ao MFT e, portanto, o MFT aumenta de tamanho. Quando os arquivos são excluídos de um volume NTFS, suas entradas MFT são marcadas como gratuitas e podem ser reutilizados, mas o MFT não diminui. Assim, o espaço usado por essas entradas não é recuperado do disco.

Devido à importância do MFT para o NTFS e ao possível impacto no desempenho se esse arquivo se tornar altamente fragmentado, o NTFS fará um esforço especial para manter esse arquivo contíguo. O NTFS reserva 12,5% do volume para uso exclusivo do MFT até e, a menos que o restante do volume seja usado. Assim, o espaço para arquivos e diretórios não é alocado dessa zona MFT até que todos os outros espaços sejam alocados primeiro.

Observação

Você pode alterar a chave do registro NtfsMFTZoneReservation para aumentar o volume no Windows. Para obter mais informações sobre o MFT, consulte os elementos-chave na seção processo de desfragmentação de disco de Manutenção do Desempenho de Pico do Windows 2000 por meio do desfragmentação.

Dependendo do tamanho médio do arquivo e de outras variáveis, a zona MFT reservada ou o espaço não reservado no disco podem ser usados antes do outro, pois o disco preenche a capacidade.

Volumes com um pequeno número de arquivos relativamente grandes esgotam primeiro o espaço não reservado, enquanto volumes com um grande número de arquivos relativamente pequenos esgotam primeiro o espaço da zona MFT. Em ambos os casos, a fragmentação do MFT começa a ocorrer quando uma região ou outra se torna cheia. Se o espaço não reservado ficar cheio, o espaço para arquivos e diretórios do usuário começará a ser alocado da zona MFT competindo com o MFT para alocação. Se a zona MFT ficar cheia, o espaço para novas entradas MFT será alocado do restante do disco, competindo novamente com outros arquivos.

Um novo parâmetro de registro pode aumentar o percentual de um volume que o NTFS reserva para sua tabela de arquivos master. NtfsMftZoneReservation é um valor REG_DWORD que pode assumir um valor entre 1 e 4, onde 1 corresponde ao tamanho mínimo da zona MFT e 4 corresponde ao máximo. Se o parâmetro não for especificado ou um valor inválido for fornecido, o NTFS usará um valor padrão de 1 para este parâmetro. As taxas exatas que correspondem a cada configuração são não documentadas porque não são padronizadas e podem ser alteradas em versões futuras. Para saber qual configuração é melhor para seu ambiente, talvez seja necessário experimentar valores diferentes.

Para determinar o tamanho atual do MFT em um computador Windows, digite o dir /a $mft comando em um volume NTFS.

Para determinar o tamanho atual do MFT em um computador Windows, use Desfragmenter de Disco para analisar a unidade NTFS e clique em Exibir Relatório. Isso exibe as estatísticas de unidade, incluindo o tamanho atual do MFT e o número de fragmentos.

O Desfragmentador de Disco exibe verde para o que é chamado de arquivos do sistema e em um volume formatado de NTFS, essa é simplesmente a combinação do MFT, pagefile.sys (se existir nesse volume) e o que é chamado de "Zona MFT" ou espaço reservado para Expansão MFT. O relatório de desfragmentação exibe apenas informações sobre o pagefile e o MFT; ela não menção a Zona MFT porque não afeta de forma alguma a utilização ou a capacidade do disco.

A Zona MFT não é subtraída do espaço de unidade disponível (gratuito) usado para arquivos de dados do usuário, é apenas o espaço usado por último. Quando o MFT precisa aumentar de tamanho, por exemplo, você criou novos arquivos e diretórios, ele é retirado da Zona MFT primeiro, diminuindo a fragmentação do MFT e otimizando o desempenho do MFT.

A Zona MFT padrão é calculada e reservada por Ntfs.sys quando monta o volume e é baseada no tamanho do volume. Você pode aumentar a Zona MFT por meio da entrada do registro documentada abaixo, mas não pode tornar a Zona MFT padrão menor do que a calculada por Ntfs.sys. O aumento da Zona MFT não diminui de forma alguma o espaço em disco que pode ser usado pelos usuários para arquivos de dados.

Observação

Os resultados retornados pelo comando dir podem não ser atuais. O tamanho relatado pelo comando dir pode refletir dados armazenados em cache que refletem o tamanho do MFT no momento em que o sistema foi iniciado após um desligamento ordenado.

Importante

Esta seção, método ou tarefa contém etapas que descrevem como modificar o Registro. Entretanto, sérios problemas poderão ocorrer caso você modifique o Registro incorretamente. Portanto, siga essas etapas cuidadosamente. Para mais proteção, faça o backup do registro antes de modificá-lo. Em seguida, você poderá restaurar o registro se ocorrer um problema. Para saber mais sobre como fazer o backup e restaurar o registro, consulte Como fazer o backup e restaurar o registro no Windows.

Para adicionar esse valor, execute as seguintes etapas:

  1. Execute Editor de Registro (Regedt32.exe) e vá para a seguinte subchave:

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem

  2. No menu Editar , clique em Adicionar Valor.

  3. Digite as seguintes informações na caixa de diálogo:

    • Nome do valor: NtfsMftZoneReservation
    • Tipo de dados: REG_DWORD
    • Dados: (intervalo válido é 1-4)
  4. Saia do Registro Editor e reinicie seu computador.

Observação

Esse é um parâmetro de tempo de execução e não afeta o formato real de um volume. Em vez disso, afeta a forma como o NTFS aloca espaço em todos os volumes em um determinado sistema. Portanto, para ser completamente eficaz, o parâmetro deve estar em vigor a partir do momento em que um volume é formatado e ao longo da vida útil do volume. Se o parâmetro do registro for ajustado para baixo ou removido, a zona MFT será reduzida de acordo, mas isso não terá nenhum efeito no espaço MFT já alocado e usado.