Шрифт:
• Эффективное хранение разреженных файлов. Встречаются файлы, в которых содержится большое количество последовательных пустых файлов. Так файловая система NTFS позволяет оптимизировать их хранение.
• Использование журнала изменений — позволяет регистрировать все операции доступа к файлам и томам.
И еще одно нововведение NTFS — точки монтирования. С помощью точек монтирования вы можете определить различные, не связанные между собой папки и даже диски в системе как один диск или папку. Это имеет большую важность для определения в одном месте разнородной информации, находящейся в системе.
Рис. 3.1. Чего только не придумают производители флешек
Как и любая другая файловая система, NTFS делит все полезное место на кластеры — минимальные блоки данных, на которые разбиваются файлы. NTFS поддерживает почти любые размеры кластеров — от 512 байт до 64 Кбайт. Однако общепринятым стандартом считается кластер размером 4 Кбайт. Именно он используется по умолчанию. Принцип существования кластеров можно проиллюстрировать следующим примером.
Если у вас размер кластера составляет 4 Кб (что скорее всего), а вам нужно сохранить файл размером 5 Кб, то реально под него будет выделено 8 Кб. Так как в один кластер он не помещается, а под файл дисковое пространство выделяется только кластерами.
Для каждого NTFS-диска имеется специальный файл — MFT (Master Allocation Table — главная таблица файлов). В этом файле содержится централизованный каталог всех имеющихся на диске файлов. При создании файла NTFS создает и заполняет в MFT соответствующую запись, в которой содержится информация об атрибутах файла, содержимом файла, имени файла и т.п.
Помимо MFT имеется еще 15 специальных файлов (вместе с MFT — 16), которые недоступны операционной системе и называются метафайлами. Имена всех метафайлов начинаются с символа $, но стандартными средствами операционной системы просмотреть их и вообще увидеть не представляется возможным. Далее для примера представлены основные метафайлы:
• $MFT — сам MFT;
• $MFTmirr — копия первых 16 записей MFT, размещенная посередине диска;
• $LogFile — файл поддержки журналирования (см. ниже);
• $Volume — служебная информация — метка тома, версия файловой системы и т.д.;
• $AttrDef — список стандартных атрибутов файлов на томе;
• $ — корневой каталог;
• $Bitmap — карта свободного места тома;
• $Boot — загрузочный сектор (если раздел загрузочный);
• $Quota — файл, в котором записаны права пользователей на использование дискового пространства;
• $Upcase — файл-таблица соответствия заглавных и прописных букв в именах файлов на текущем томе. Нужен в основном потому, что в NTFS имена файлов записываются в Unicode, что составляет 65 тысяч различных символов, искать большие и малые эквиваленты которых очень нетривиально.
Что касается принципа организации данных на диске NTFS, то он условно делится на две части. Первые 12% диска отводятся под так называемую MFT-зону — пространство, в которое растет метафайл MFT.
Запись каких-либо пользовательских данных в эту область невозможна. MFT-зона всегда держится пустой — это делается для того, чтобы самый главный, служебный файл (MFT) не фрагментировался при своем росте. Остальные 88% диска представляют собой обычное пространство для хранения файлов.
Однако при нехватке дискового пространства MFT-зона может сама уменьшаться (если это возможно), так что никакого дискомфорта вы замечать не будете. При этом данные уже будут записываться в бывшую MFT-зону.
В случае последующего высвобождения дискового пространства MFT-зона снова будет увеличиваться, однако в дефрагментированном виде (то есть не единым блоком, а несколькими частями на диске). В этом нет ничего страшного, просто считается, что система более надежна, когда MFT-файл не дефрагментирован. Кроме того, при недефрагментированном MFT-файле вся файловая система работает быстрее. Соответственно, чем более дефрагментированным является MFT-файл, тем более медленно работает файловая система.
Что касается размера MFT-файла, то он примерно вычисляется исходя из 1 Мб на 1000 файлов.
Точно узнать размер и степень фрагментации MFT-файла можно с помощью стандартной утилиты Дефрагментация диска (Disk Defragmenter), входящей в состав Windows. Вызывается эта утилита следующим образом: Пуск→Все программы→Стандартные→Служебные→Дефрагментация диска.
Далее в появившемся окне программы выберите NTFS-диск и нажмите на кнопку Анализ (Analyze), а по прошествии некоторого времени — Вывести отчет (View Report). Прокрутив полученную информацию чуть вниз, вы получите исчерпывающие сведения о вашем MFT-файле (рис. 3.2).