Каждая наука лишь тогда достигает своего совершенства, когда породнится с математикой. Кант СИСТЕМНОЕ И ПРИКЛАДНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ Тема лекции: Файловая система NTFS. Автор-составитель: к.ф.-м.н., доцент каф. ВМ и И СамГУ, Ширяева Л.К.
2 Структуры файловой подсистемы NTFS Файловая подсистема NTFS была развита из файловой системы HPFS, разработанной совместно компаниями IBM Microsoft для проекта OS/2. Она начала использоваться с первой половины 90- х годов. Как и в различных версиях FAT, для NTFS логической записью является кластер. NTFS поддерживает различные размеры кластеров – от 512 байт до 64 Кбайт. Размер кластера всегда равен целому числу секторов. Стандартным считается кластер размером 4 Кбайт. Диск NTFS условно делится на две части: 1) 12% диска отводится под MFT -зону (MFT-Master File Table) 2) Остальные 88% диска – пространство для размещения файлов
3 Запись каких-либо данных в MFT -зону невозможна. Это делается для того, чтобы главный служебный файл (MFT) не фрагментировался при своем расширении. Механизм использования MFT –зоны таков: Когда файлы уже нельзя записать в обычное пространство, MFT –зона сокращается, тем самым освобождается место для записи файлов. После освобождения участка обычной области MFT –зона может снова расширяться. MFT -зона
4 Структура MFT Каждый элемент файловой подсистемы NTFS представляет собой файл- даже служебная информация. Главный файл NTFS называется MFT - главная таблица файлов. Она размещается в MFT-зоне и представляет собой централизованный каталог всех остальных файлов диска. Файл MFT поделен на записи фиксированного объема (обычно 2 Кбайт), и каждая запись соответствует какому-либо файлу.
5 Первые 16 элементов MFT носят служебный характер и недоступны ОС. Эти элементы называются мета-файлами. Самый первый из метафайлов называется MFT. Эти первые 16 элементов MFT – единственная часть диска, имеющая фиксированное положение. Остальная часть MFT может располагаться, как и любой другой файл, в произвольных частях диска. Восстановить ее положение можно с помощью него самого, используя за основу первый элемент MFT.
6 Таким образом, главная таблица файлов MFT содержит по крайней мере одну запись для каждого файла тома, включая одну запись для самой себя. Все файлы на томе идентифицируются номером файла, который определяется позицией файла в MFT. Каждый файл и каталог на диске определяется набором атрибутов. Базовая единица распределения дискового пространства для файловой системы NTFS - кластер. В качестве адреса файла файловая подсистема NTFS использует номер кластера, а не физическое смещение в секторах или байтах.
7 Загрузочный сектор тома NTFS располагается в начале тома, а его копия - в середине тома. + Загрузочный сектор Стандартный блок параметров BIOS Количество секторов в томе Начальный логический номер кластера основной копии MFT Начальный логический номер кластера зеркальной копии MFT
8 АТРИБУТЫ ФАЙЛА NTFS Тип атрибута Длина атрибута Значение атрибута
9 Имеется набор системных атрибутов, определяемых структурой тома NTFS. Системные атрибуты имеют фиксированные имена и коды их типа, а также фиксированный формат. Способы хранения атрибутов файла РЕЗИДЕНТНОЕ ХРАНЕНИЕ (т.е. в исходной записи таблицы MFT ) НЕРЕЗИДЕНТНОЕ ХРАНЕНИЕ (т.е. вне в исходной записи таблицы MFT
10 Пример атрибутов файла
11 Размещение файлов 1. Случай небольших файлов. Если файл имеет небольшой размер, то он целиком внутри одной записи MFT размером 2 Кбайта.
12 2. Случай больших файлов
13 3.Случай очень больших файлов
14 4. Случай сверхбольших файлов
15 1.Случай небольших файлов. Из-за того, файл может иметь переменное количество атрибутов, а также из-за переменного размера атрибутов нельзя наверняка утверждать, что файл уместится внутри записи. Однако обычно файлы размером менее 1500 байт помещаются внутри записи MFT. 2.Случай больших файлов. Если файл не вмещается в одну запись MFT, то это отображается в значении атрибута данные. Этот атрибут содержит признак того, что файл является нерезидентным и находится вне таблицы MFT. В этом случае атрибут данные содержит номер кластера для первого кластера каждого фрагмента данных, а также количество непрерывных кластеров в каждом фрагменте. 3.Случай очень больших файлов. Если файл настолько велик, что его атрибут данных не помещается в одной записи, то этот атрибут становится нерезидентным, т.е. размещается в другой записи таблицы MFT, ссылка на которую помещена в исходной записи о файле. Эта ссылка называется внешним атрибутом. Нерезидентный атрибут содержит указатели на фрагменты данных. 4.Случай сверхбольших файлов. Для сверхбольших файлов внешний атрибут может указывать на несколько нерезидентных атрибутов. Кроме того, внешний атрибут может храниться в нерезидентной форме.
16 КАТАЛОГИ Каждый каталог NTFS представляет собой один вход в таблицу MFT, который содержит список файлов специальной формы, называемый индексом. Индексы позволяют сортировать файлы для ускорения поиска по определенному атрибуту. NTFS позволяет использовать для сортировки любой атрибут, если он хранится в резидентной форме. Имеются две формы списка файлов. формы списка файлов Небольшие списки файлов Большие списки файлов
17 1. Небольшие списки файлов Если количество файлов в каталоге невелико, то список файлов может быть резидентным в записи MFT, являющейся каталогом. Небольшой список содержит значения атрибутов файла. По умолчанию это имя файла, а также номер записи MFT, содержащей начальную запись файла.
18 2. Большие списки файлов По мере того, как каталог растет, список файлов может потребовать нерезидентной формы хранения. Однако начальная часть списка всегда остается резидентной в корневой части каталога в таблице MFT. Имена файлов резидентной части списка являются узлами B-дерева. Остальные части списка файлов размещаются вне MFT. Для их поиска используется специальный атрибут- Index Allocation (IA, размещение списка). Он представляет собой набор номеров кластеров, которые указывают на остальные части списка.
19 Одни части списка называются листьями, а другие промежуточными узлами. Промежуточные узлы содержат наряду с именами файлов атрибут Index Allocation, указывающий на списки файлов более низких уровней.
20 Имена файлов в NTFS NTFS поддерживает имена длиной до 255 символов. Имена файлов NTFS используют набор символов UNICODE с 16-битовыми символами. NTFS автоматически генерирует поддерживаемое MS-DOS имя для каждого файла. В результате файлы NTFS могут использоваться и ОС MS-DOS и ОС OS /2. Поскольку NTFS использует набор символов UNICODE для имен файлов, существует возможность использования некоторых запрещенных в MS-DOS символов. Для генерации короткого имени файла в стиле MS-DOS NTFS удаляет все запрещенные символы, и усекает имя файла до 6 символов, добавляя знак ~ и номер.
21 Журналирование в NTFS Журналирование – средство, позволяющее существенно сократить число ошибок и сбоев системы. Каждая операция ввода-вывода, которая изменяет файл на томе NTFS рассматривается файловой системой как транзакция. При модификации файла специальная компонента файловой системы- сервис регистрации файлов (Log File Service)- фиксирует всю информацию, необходимую для повторения (redo) или отката (undo) транзакции в специальном файле с именем $LogFile. Если транзакция не завершается нормально, то NTFS пытается закончить транзакцию (повторить) или производит ее откат.
22
23 Таким образом, NTFS ведет журнал изменений метаданных путем протоколирования транзакций, поэтому целостность структур файловой системы может быть восстановлена без потери информации о структуре файлов или каталогов. Однако данные файлов могут быть потеряны.
24