Поделиться через


Как NTFS резервирует пространство для главной таблицы файлов (MFT)

В этой статье описывается, как NTFS резервирует пространство для основной таблицы файлов (MFT).

Исходный номер базы знаний: 174619

Итоги

Файловая система NTFS содержит в основном файл, называемый главной таблицей файлов (MFT). Существует по крайней мере одна запись в MFT для каждого файла в томе NTFS, включая сам MFT.

Так как служебные программы, которые дефрагментировать тома NTFS, не могут перемещать записи MFT, и поскольку чрезмерная фрагментация MFT может повлиять на производительность, NTFS резервирует пространство для MFT в попытке сохранить MFT как можно более непрерывным, как это возможно.

В Windows служебная программа дефрагментации дефрагментирует MFT.

Служебная программа дефрагментации

Операция дефрагментации mFT объединяет MFT-файл в 1 и предотвращает его хранение в нескольких местах, которые не являются последовательными на диске. В этом классе операций MFT-файл является более последовательным. Однако именно размер MFT-файла был до операции дефрагментации.

MFT может быть слишком большим, если том, используемый для удаления большого количества файлов. Удаленные файлы вызывают внутренние отверстия в MFT. Эти отверстия являются значительными областями, которые не используются файлами. Невозможно восстановить это пространство. Это по крайней мере верно в динамическом томе NTFS.

Дополнительная информация

NTFS использует записи MFT для определения файлов, к которым они соответствуют. Все сведения о файле, включая его размер, метки времени и даты, разрешения и содержимое данных, хранятся в записях MFT или во внешнем пространстве для MFT, но описаны записями MFT.

(Записи каталога, внешние для MFT, также содержат некоторые избыточные сведения о файлах. Но полное обсуждение всех структур в NTFS выходит за рамки этой статьи.)

При добавлении файлов в том NTFS дополнительные записи добавляются в MFT, поэтому MFT увеличивает размер. Если файлы удаляются из тома NTFS, их записи MFT помечены как бесплатные и могут использоваться повторно, но MFT не сжимается. Таким образом, пространство, используемое этими записями, не освобождается с диска.

Из-за важности MFT для NTFS и возможного влияния на производительность, если этот файл становится сильно фрагментированным, NTFS делает особые усилия, чтобы сохранить этот файл в непрерывном виде. NTFS резервирует 12,5 процента тома для эксклюзивного использования MFT, пока не будет использован оставшийся объем тома. Таким образом, пространство для файлов и каталогов не выделяется из этой зоны MFT, пока не будет выделено все остальное пространство.

Примечание.

Чтобы увеличить объем тома в Windows, можно изменить раздел реестра NtfsMFTZoneReservation . Дополнительные сведения о MFT см . в разделе "Основные элементы" в разделе процесса дефрагментации диска в разделе "Обслуживание пиковой производительности Windows 2000 с помощью дефрагментации".

В зависимости от среднего размера файла и других переменных зарезервированная зона MFT или незарезервированное пространство на диске может использоваться до того, как другой заполняется емкостью.

Тома с небольшим количеством относительно больших файлов сначала исчерпают незарезервированное пространство, а тома с большим количеством относительно небольших файлов сначала исчерпают пространство зоны MFT. В любом случае фрагментация MFT начинает происходить, когда один регион или другой становится полным. Если незарезервированное пространство становится полным, пространство для пользовательских файлов и каталогов начинает выделяться из зоны MFT, конкурирующей с MFT для выделения. Если зона MFT становится полной, пространство для новых записей MFT выделяется из оставшейся части диска, снова конкурируя с другими файлами.

Новый параметр реестра может увеличить процент тома, который NTFS резервирует для своей главной таблицы файлов. NtfsMftZoneReservation — это REG_DWORD значение, которое может принимать значение от 1 до 4, где 1 соответствует минимальному размеру зоны MFT и 4 соответствует максимальному значению. Если параметр не указан или указан недопустимое значение, NTFS использует значение по умолчанию 1 для этого параметра. Точные соотношения, соответствующие каждому параметру, являются незадокументированы, так как они не стандартизированы и могут измениться в будущих выпусках. Чтобы узнать, какой параметр лучше всего подходит для вашей среды, может потребоваться поэкспериментировать с различными значениями.

Чтобы определить текущий размер MFT на компьютере Windows, введите dir /a $mft команду в томе NTFS.

Чтобы определить текущий размер MFT на компьютере Windows, используйте дефрагментатор дисков для анализа диска NTFS и нажмите кнопку "Просмотреть отчет". Здесь отображаются статистические данные диска, включая текущий размер MFT и количество фрагментов.

Дефрагментатор диска отображает зеленый цвет для системных файлов и тома в формате NTFS, это просто сочетание MFT, pagefile.sys (если он существует в этом томе) и то, что называется "Зона MFT" или зарезервированное пространство для расширения MFT. Отчет дефрагментации отображает только сведения о файле страницы и MFT; Он не упоминает зону MFT, так как она не влияет на использование диска или емкость.

Зона MFT не вычитается из свободного места на диске, используемого для файлов данных пользователя, это только пространство, которое используется последним. Если MFT необходимо увеличить размер, например, вы создали новые файлы и каталоги, он сначала берется из зоны MFT, что снижает фрагментацию MFT и оптимизирует производительность MFT.

Зона MFT по умолчанию вычисляется и зарезервирована Ntfs.sys при подключении тома и зависит от размера тома. Вы можете увеличить зону MFT с помощью записи реестра, описанной ниже, но вы не можете сделать зону MFT по умолчанию меньше, чем то, что вычисляется Ntfs.sys. Увеличение зоны MFT не уменьшает дисковое пространство, которое может использоваться пользователями для файлов данных.

Примечание.

Результаты, возвращаемые командой dir, могут не быть текущими. Размер, сообщаемый командой dir, может отражать кэшированные данные, которые отражают размер MFT во время запуска системы после упорядоченного завершения работы.

Важно!

В этот раздел, описание метода или задачи включены действия, содержащие указания по изменению параметров реестра. Однако неправильное изменение параметров реестра может привести к возникновению серьезных проблем. Поэтому убедитесь, что вы внимательно выполните следующие действия. Для дополнительной защиты создайте резервную копию реестра перед его изменением. Так вы сможете восстановить реестр, если возникнет проблема. Для получения дополнительной информации о том, как создать резервную копию и восстановить реестр, см. статью Сведения о резервном копировании и восстановлении реестра Windows.

Чтобы добавить это значение, выполните следующие действия.

  1. Запустите редактор реестра (Regedt32.exe) и перейдите к следующему подразделу:

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem

  2. В меню "Изменить" нажмите кнопку "Добавить значение".

  3. Введите следующие сведения в диалоговом окне:

    • Имя значения: NtfsMftZoneReservation
    • Тип данных: REG_DWORD
    • Данные: (допустимый диапазон — 1–4)
  4. Закройте редактор реестра и перезапустите компьютер.

Примечание.

Это параметр времени выполнения и не влияет на фактический формат тома. Скорее это влияет на то, как NTFS выделяет пространство на всех томах в данной системе. Таким образом, чтобы быть полностью эффективным, параметр должен быть в действии с момента форматирования тома и в течение всей жизни тома. Если параметр реестра корректируется вниз или удаляется, зона MFT будет сокращена соответствующим образом, но это не повлияет на уже выделенное и используемое пространство MFT.