Come NTFS riserva spazio per la relativa tabella file master (MFT)

Questo articolo descrive in che modo NTFS riserva spazio per la relativa tabella file master (MFT).

Si applica a: Windows 10: tutte le edizioni, Windows Server 2012 R2
Numero KB originale: 174619

Riepilogo

Il file system NTFS contiene al suo interno un file denominato master file table (MFT). È presente almeno una voce in MFT per ogni file in un volume NTFS, incluso il MFT stesso.

Poiché le utilità che deframmentano i volumi NTFS non possono spostare le voci MFT e poiché un'eccessiva frammentazione del MFT può influire sulle prestazioni, NTFS riserva spazio per il MFT nel tentativo di mantenere il MFT il più contiguo possibile man mano che cresce.

In Windows l'utilità defrag defrag defrags the MFT.

Utilità defrag

Un'operazione di defrag sul MFT combina un file MFT in 1 e impedisce che venga archiviato in più posizioni non sequenziali su disco. In questa classe di operazione, il file MFT è più sequenziale. Tuttavia, è esattamente la dimensione che il file MFT era prima dell'operazione di defrag.

Un MFT può essere troppo grande se un volume usato per avere un sacco di file che sono stati eliminati. I file eliminati causano buchi interni nella MFT. Questi buchi sono aree significative che sono inutilizzati dai file. È impossibile recuperare questo spazio. Questo vale almeno per un volume NTFS in tempo reale.

Ulteriori informazioni

NTFS usa le voci MFT per definire i file a cui corrispondono. Tutte le informazioni su un file, incluse le dimensioni, i timestamp, le autorizzazioni e il contenuto dei dati, vengono archiviate in voci MFT o nello spazio esterno al MFT, ma descritte dalle voci MFT.

Le voci della directory, esterne al MFT, contengono anche alcune informazioni ridondanti relative ai file. Tuttavia, una discussione completa di tutte le strutture in NTFS esula dall'ambito di questo articolo.

Man mano che i file vengono aggiunti a un volume NTFS, vengono aggiunte più voci al MFT e quindi le dimensioni del MFT aumentano. Quando i file vengono eliminati da un volume NTFS, le relative voci MFT vengono contrassegnate come gratuite e possono essere riutilizzate, ma il MFT non viene ridotto. Di conseguenza, lo spazio usato da queste voci non viene recuperato dal disco.

A causa dell'importanza di MFT per NTFS e del possibile impatto sulle prestazioni se questo file diventa altamente frammentato, NTFS fa uno sforzo speciale per mantenere questo file contiguo. NTFS riserva il 12,5% del volume per l'uso esclusivo del MFT fino a quando e a meno che il resto del volume non venga utilizzato. Di conseguenza, lo spazio per file e directory non viene allocato da questa zona MFT fino a quando non viene allocato per primo tutto lo spazio.

Nota

È possibile modificare la chiave del Registro di sistema NtfsMFTZoneReservation per aumentare il volume in Windows. Per altre informazioni sul MFT, vedere la sezione Elementi chiave nel processo di deframmentazione del disco di Gestione delle prestazioni massime di Windows 2000 tramite deframmentazione.

A seconda delle dimensioni medie del file e di altre variabili, la zona MFT riservata o lo spazio non riservato sul disco può essere usato prima dell'altro mentre il disco si riempie di capacità.

I volumi con un numero ridotto di file relativamente grandi esauriscono prima lo spazio non riservato, mentre i volumi con un numero elevato di file relativamente piccoli esauriscono prima lo spazio della zona MFT. In entrambi i casi, la frammentazione del MFT inizia a essere eseguita quando un'area o l'altra diventa piena. Se lo spazio non riservato diventa pieno, lo spazio per i file utente e le directory inizia a essere allocato dalla zona MFT in competizione con il MFT per l'allocazione. Se la zona MFT diventa piena, lo spazio per le nuove voci MFT viene allocato dal resto del disco, nuovamente in competizione con altri file.

Un nuovo parametro del Registro di sistema può aumentare la percentuale di un volume che NTFS riserva per la tabella dei file master. NtfsMftZoneReservation è un valore REG_DWORD che può assumere un valore compreso tra 1 e 4, dove 1 corrisponde alla dimensione minima della zona MFT e 4 corrisponde al valore massimo. Se il parametro non è specificato o viene specificato un valore non valido, NTFS usa il valore predefinito 1 per questo parametro. I rapporti esatti che corrispondono a ogni impostazione non sono documentati perché non sono standardizzati e possono cambiare nelle versioni future. Per sapere qual è l'impostazione migliore per l'ambiente, potrebbe essere necessario sperimentare con valori diversi.

Per determinare le dimensioni correnti di MFT in un computer Windows, digitare il dir /a $mft comando in un volume NTFS.

Per determinare le dimensioni correnti di MFT in un computer Windows, usare Deframmentatore dischi per analizzare l'unità NTFS e quindi fare clic su Visualizza report. Vengono visualizzate le statistiche sull'unità, incluse le dimensioni correnti di MFT e il numero di frammenti.

L'utilità di deframmentazione dischi viene visualizzata in verde per i cosiddetti file di sistema e in un volume formattato NTFS si tratta semplicemente della combinazione di MFT, pagefile.sys (se presente in questo volume) e di quello che viene chiamato "zona MFT" o spazio riservato per l'espansione MFT. Il report di deframmentazione visualizza solo le informazioni sul file di paging e MFT; non menziona la zona MFT perché non influisce in alcun modo sull'utilizzo o sulla capacità del disco.

La zona MFT non viene sottratta dallo spazio di unità disponibile (gratuito) usato per i file di dati utente, è solo lo spazio usato per ultimo. Quando l'MFT deve aumentare di dimensioni, ad esempio, sono stati creati nuovi file e directory, viene preso prima dalla zona MFT, riducendo così la frammentazione MFT e ottimizzando le prestazioni MFT.

La zona MFT predefinita viene calcolata e riservata da Ntfs.sys quando monta il volume e si basa sulle dimensioni del volume. È possibile aumentare la zona MFT tramite la voce del Registro di sistema documentata di seguito, ma non è possibile rendere la zona MFT predefinita inferiore a quella calcolata da Ntfs.sys. L'aumento della zona MFT non diminuisce in alcun modo lo spazio su disco che può essere usato dagli utenti per i file di dati.

Nota

I risultati restituiti dal comando dir potrebbero non essere correnti. Le dimensioni segnalate dal comando dir possono riflettere i dati memorizzati nella cache che riflettono le dimensioni del MFT al momento dell'avvio del sistema dopo un arresto ordinato.

Importante

In questa sezione, metodo o attività viene illustrata la procedura per modificare il Registro di sistema. Poiché l'errata modifica del Registro di sistema può causare seri problemi, Di conseguenza, attenersi scrupolosamente alla procedura indicata. Per una maggiore protezione, eseguire il backup del Registro di sistema prima di modificarlo. In questo modo sarà possibile ripristinare il Registro di sistema se si verifica un problema. Per ulteriori informazioni su come eseguire backup e ripristino del Registro di sistema, vedere Backup e ripristino del Registro di sistema in Windows.

Per aggiungere questo valore, seguire questa procedura:

  1. Eseguire Editor del Registro di sistema (Regedt32.exe) e passare alla sottochiave seguente:

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem

  2. Dal menu Modifica fare clic su Aggiungi valore.

  3. Digitare le informazioni seguenti nella finestra di dialogo:

    • Nome valore: NtfsMftZoneReservation
    • Tipo di dati: REG_DWORD
    • Dati: (intervallo valido compreso tra 1 e 4)
  4. Uscire dal Registro di sistema Editor e riavviare il computer.

Nota

Si tratta di un parametro di runtime e non influisce sul formato effettivo di un volume. Influisce invece sul modo in cui NTFS alloca spazio in tutti i volumi in un determinato sistema. Pertanto, per essere completamente efficace, il parametro deve essere attivo dal momento in cui un volume viene formattato e per tutta la durata del volume. Se il parametro del Registro di sistema viene regolato verso il basso o rimosso, la zona MFT verrà ridotta di conseguenza, ma questo non avrà alcun effetto sullo spazio MFT già allocato e usato.