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).
Número original do KB: 174619
Resumo
O sistema de arquivos NTFS contém em seu núcleo um arquivo chamado MFT (tabela de arquivos mestre). Há pelo menos uma entrada no MFT para cada arquivo em um volume NTFS, incluindo o próprio MFT.
Como os 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 ele cresce.
No Windows, o utilitário de desfragmentação desfragmenta o MFT.
O utilitário de desfragmentação
Uma operação de desfragmentação no MFT combina um arquivo MFT em 1 e impede que ele seja armazenado em vários locais que não são sequenciais no disco. Nessa classe de operação, o arquivo MFT é mais sequencial. No entanto, é exatamente o tamanho que o arquivo MFT tinha antes da operação de desfragmentação.
Um MFT pode ser muito grande se um volume costumava ter muitos arquivos que foram excluídos. Os arquivos que foram excluídos causam falhas internas no MFT. Esses buracos são regiões significativas que não são usadas pelos arquivos. É impossível recuperar esse espaço. Isso é pelo menos verdadeiro em um volume NTFS ativo.
Mais informações
O NTFS usa entradas MFT para definir os arquivos aos quais elas 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 em espaço externo ao MFT, mas descrito pelas entradas MFT.
(As entradas de diretório, externas ao MFT, também contêm algumas informações redundantes sobre arquivos. Mas uma discussão completa de todas as estruturas do 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 livres e podem ser reutilizadas, mas o MFT não é reduzido. 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 faz 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 a seção Elementos-chave no processo de desfragmentação de disco de Mantendo o desempenho máximo do Windows 2000 por meio da 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 pode ser usado antes do outro à medida que o disco é preenchido até a capacidade.
Volumes com um pequeno número de arquivos relativamente grandes esgotam o espaço não reservado primeiro, enquanto volumes com um grande número de arquivos relativamente pequenos esgotam o espaço da zona MFT primeiro. Em ambos os casos, a fragmentação do MFT começa a ocorrer quando uma região ou outra fica 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 do Registro pode aumentar a porcentagem de um volume que o NTFS reserva para sua tabela de arquivos mestre. NtfsMftZoneReservation é um valor REG_DWORD que pode assumir um valor entre 1 e 4, em que 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 esse parâmetro. As proporções exatas que correspondem a cada configuração não estão documentadas porque não são padronizadas e podem mudar em versões futuras. Para saber qual configuração é melhor para o seu ambiente, pode ser 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 o Desfragmentador de Disco para analisar a unidade NTFS e clique em Exibir Relatório. Isso exibe as estatísticas da unidade, incluindo o tamanho atual do MFT e o número de fragmentos.
O Desfragmentador de disco é exibido em verde para o que é chamado de arquivos de sistema e, em um volume formatado em NTFS, isso é simplesmente a combinação do MFT, pagefile.sys (se houver um neste 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 arquivo de paginação e o MFT; ele não menciona 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 em disco disponível (livre) usado para arquivos de dados do usuário, é apenas o espaço que é 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 assim a fragmentação do MFT e otimizando o desempenho do MFT.
A Zona MFT padrão é calculada e reservada por Ntfs.sys quando ele 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 o calculado pelo Ntfs.sys. Aumentar a 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, certifique-se de seguir essas etapas com atenção. Para proteção acrescida, faça backup do Registro antes de modificá-lo. Em, é possível restaurar o Registro caso ocorra um problema. Para obter mais informações sobre como fazer backup e restaurar o Registro, consulte Como fazer backup e restaurar o Registro no Windows.
Para adicionar esse valor, execute as seguintes etapas:
Execute o Editor do Registro (Regedt32.exe) e vá para a seguinte subchave:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem
No menu Editar , clique em Adicionar valor.
Digite as seguintes informações na caixa de diálogo:
- Nome do valor: NtfsMftZoneReservation
- Tipo de dados: REG_DWORD
- Dados: (intervalo válido é de 1 a 4)
Saia do Editor do Registro e reinicie o 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 maneira 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 durante toda a 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 afetará o espaço MFT já alocado e usado.