Рис. 3.7. Влияние размера кластера на потери дискового пространства
Хранение данных в файловой системе NTFS
Файловая система NTFS (New Technology File System) была разработана для операционной системы Windows NT, а ее обновленные версии используются в ОС Windows 2000/XP.
Поскольку в качестве «посредника» при работе с жестким диском NTFS использует все ту же BIOS, то физическая структура диска для нее безразлична.
А вот логическая структура диска, которая необходима NTFS для корректной работы, принципиально отличается от используемой файловыми системами из семейства FAT.
Все особенности NTFS обусловлены тем, что она изначально разрабатывалась как система повышенной надежности, предназначенная для использования в корпоративных (многопользовательских) системах. Соответственно, реализованные в ней технические решения направлены на повышение защищенности данных от несанкционированного доступа и на обеспечение отказоустойчивости системы. Кроме того, в ней учтены потребности работы с большими объемами данных. Учтена в NTFS также особенность организации вычислений в операционных системах семейства NT, основанная на понятии потока (stream) и на объектно-ориентированной идеологии. В частности, файл рассматривается в NTFS как объект с некоторым набором атрибутов. Например, имя файла – это его атрибут, содержимое файла – это также его атрибут. Приложение, работающее с файлом, может создавать для него любые дополнительные атрибуты.
Отказоустойчивость (а точнее, способность к самовосстановлению) NTFS основана на использовании понятия транзакции. Суть технологии восстановления состоит в следующем. Любая операция, связанная с модификацией данных, заносится в файл протокола. Если все действия, необходимые для выполнения операции, завершаются удачно, транзакция считается выполненной. В противном случае на основе протокола выполняется отмена частично выполненной операции.
Кроме того, с периодичностью в несколько секунд NTFS фиксирует текущее состояние системы, запоминая его основные параметры в так называемой контрольной точке. В случае возникновения серьезной ошибки производится возврат к состоянию, зафиксированному в последней контрольной точке.
Следует отметить и наличие специфических сервисов NTFS, непосредственно встроенных в эту систему: возможность шифрования файлов и возможность сжатия данных.
В силу перечисленных факторов логическая структура NTFS несколько сложнее по сравнению с FAT, однако некоторые общие черты все-таки имеются.
NTFS, как и FAT, распределяет дисковое пространство кластерами, но для адресации кластера в ней отводится не 32, а 64 разряда. Это дает возможность нумеровать свыше 16 миллиардов кластеров. Размер кластера в NTFS может меняться, но он не зависит жестко от размера диска (или раздела). Для маленьких дисков стандартным размером кластера считается 512 байт, для больших – 4 Кбайт.
ПРИМЕЧАНИЕ
Оптимальный размер кластера устанавливается автоматически стандартной утилитой форматирования FDISK NTFS при форматировании раздела, однако впоследствии пользователь может изменить этот размер с помощью одной из программ для работы с дисками.
Теперь непосредственно о логической структуре раздела, отформатированного под файловую систему NTFS.
В силу объектного подхода все элементы раздела, в том числе служебные, рассматриваются в NTFS как файлы с определенным набором атрибутов. Файлы со служебной информацией называются файлами метаданных, или метафайлами. К ним относятся (рис. 3.8):
загрузочный файл (Boot File), в котором находится код программы начальной загрузки операционной системы, параметры физического диска, на котором размещается раздел NTFS (тип носителя, число дорожек и головок), а также размер кластера данного раздела NTFS, адрес MFT и адрес ее копии; загрузочный файл размещается в первом секторе диска NTFS, а его резервная копия располагается в конце раздела (в NTFS-4 она начиналась с позиции, соответствующей логическому центру раздела);
главная таблица файлов, MFT (Master File Table); MFT расположена в самом начале раздела (после загрузочной записи) и состоит из записей, которые содержат атрибуты всех файлов тома, в том числе атрибуты метафайлов; первая запись MFT хранит атрибуты самой MFT; за ней следует запись, указывающая на расположение частичной копии MFT (она содержит записи, относящиеся только к метафайлам), записи с третьей по шестнадцатую отведены под атрибуты других метафайлов; семнадцатая и последующие записи главной файловой таблицы используются собственно файлами и каталогами на томе; при создании этого файла его размер составляет всего около 16 Кбайт, но он увеличивается по мере создания на диске файлов и папок. Для каждого нового файла в MFT добавляется запись размером 1024 байт (1 Кбайт);