Структура больших файлов в ntfs

Файлы NTFS в зависимости от способа размещения делятся на небольшие, большие, очень большие и сверхбольшие.

Большие файлы (large).

Если данные файла не помещаются в одну запись MFT, то файл отражается в заголовке атрибута Data, который содержит признак того, что этот атрибут является нерезидентным, т. е находится в отрезках вне таблицы MFT. В этом случае атрибут Data содержит адресную информацию (LCN, VCN, k) каждого отрезка данных, как показано на рисунке.

Индексация файлов в NTFS.

Здесь мы будем говорить о структуре каталогов NTFS. Каталог в NTFS представляет собой индекс имён файлов, т. е список имён, упорядоченных по любому признаку. В настоящий момент упорядочивание файлов происходит только по имени. Для индексации или упорядочивания используется b+ дерево.

В случае больших каталогов списки файлов располагаются в отрезках. Атрибут корень индекса содержит первый уровень структуры b+ дерева и указывает на индексные буферы, содержащие следующий уровень (т. е в данном случае корень индекса создаёт только несколько имён). Атрибут корень индекса и каждый отрезок, содержащий список файлов, содержащий имя файла, файловую ссылку на запись MFT, метку времени и информацию о размере файла. Эта информация дублируется из соответствующих записей. Дублируется для того, чтобы ускорить просмотр. Атрибут размещения индекса содержит отображение VCN-LCN для индексных буферов.

Битовая карта.

Используется для отслеживания того, какие VCN в индексных буферах заняты, а какие свободны. Каждый индексный буфер размером 2 Кб может содержать около 15 записей для имён файлов. Это 3-4 записи на кластер, размером 512 байт. Рассмотрим пример. Файл f4 – это элемент первого уровня b+ дерева, он указывает на индексный буфер, содержащий имена файлов, которые меньше чем f4 (в смысле символа). Например, мы создали файл с именем f31. Он будет расположен раньше, чем f4.

Хранение имён файлов в виде b+ дерева даёт следующие преимущества:

1. Поиск в каталоге выполняется быстрее.

2. Так как b+ дерево имеет тенденцию к росту в ширину, а не в глубину, то скорость поиска не уменьшается с ростом каталогов.

40. Восстанавливаемость NTFS. Протоколирование транзакций. Журнал транзакций.

Восстанавливаемость NTFS.

NTFS представляет собой останавливающуюся файловую систему. Файловые системы делятся на:

1. Файловые системы с точной записью.

2. Файловые системы с отложенной записью или останавливающиеся файловые системы.

Файловые системы с точной записью организованы таким образом, чтобы после сбоя были повреждены некритические участки структуры файловой системы. Например: любая файловая операция распадается на ряд подопераций.

Например, авария произошла при копировании файлов:

1. Производится запись в кластеры диска.

2. Кластеры помечаются как занятые.

3. Записывается информация о файле в подкаталог.

Т. е в этом случае если будет сбой, то максимальный урон, который может быть – это будет потерян доступ к части кластеров. Запись на диск производится сразу же. Пример файловой системы с точной записью – это файловая система DOS.

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

Средства протоколирования NTFS состоят из двух компонент, это:

1. Журнал транзакций.

2. Сервис журнала транзакций (LFS – Log File Service).

Сервис журнала транзакцийпредставляет собой набор программ. Сервис журнала транзакций отделён от файловой системы NTFS. Это сделано для того, чтобы производители программного обеспечения могли создавать свои сервисы. В качестве параметра NTFS передаёт LFS. LFS делит журнал транзакций на две части: область рестарта и бесконечную область протоколирования.

Область рестарта содержит указатель на контрольную точку. Контрольная точка – это точка, с которой надо восстанавливать файловую систему. Копия контрольной точки создаётся для надёжности. Для идентификации записи, помещённой в журнал транзакций, LFS использует номера логических последовательностей LSN (Logical Sequence Numbers). Номер LSN постоянно увеличивается. Область протоколирования используется циклически. После восстановления эта область становится доступной. В процессе восстановления NTFS вызывает LFS для чтения-записи журнала в прямом направлении, чтобы просмотреть все транзакции, которые были запротоколированы, но не были записаны на диск в момент сбоя и в обратном направлении, чтобы откатить транзакции.



Наши рекомендации