Файлы и потоки

Назначение метафайлов.

MFT зона. Структура.

MFT – общая таблица файлов. Каждый элемент файловой системы NTFS представляет собой файл. MFT тоже файл. MFT - специальный каталог всех остальных файлов на диске, состоящий из записей фиксированного размера. Каждая запись соответствует 1 файлу. Первые 16 файлов служебные – метафайлы. Они недоступны ОС.

MFT – метафайл. Метафайлы занимают фиксированное положение на диске. Каждый метафайл отвечает за какой-либо аспект работы файловой системы. Метафайлы находятся в корневом каталоге. Имена начинаются с $. Например 0 запись – главная таблица файлов содержит полный список файлов тома NTFS. Имя файла состоит из 4 символов $ MFT.

1 запись: копия главной таблицы файлов, содержит копии первых 3 записей. Имя: $ MFT MIRR

2 запись: файл журнала. Имя $ Logfile

3 запись: том. Содержание – имя тома, номер версии, информация о томе. Имя: $ volume

4 запись: таблица определения атрибутов

7 запись: загрузочный сектор разряда.

10 запись: таблица преобразования регистра символов. Имена файлов в файловой системе NTFS записываются 2 байта каждый символ.

Нулевая запись – главная таблица файлов, имя MFT это полный список файлов тома. Первая запись – копия главной таблицы файлов $MFTMIRR- зеркальная копия первых трех записей(находится в середине диска).

Вторая запись – файл журнала $LOGFILE – список транзакций (зарезервировано 11 записей, последние 5 резервные).

Таблица соответствия заглавных и прописных букв в именах файлов необходима потому, что имена файлов записываются в ЮНИКОДЕ.

Каждый файл и каталог состоит из набора атрибутов. Данные файла и имя файла рассматриваются как атрибуты. У файла ничего нет кроме атрибутов.

Каждый атрибут файла состоит из полей:

- тип атрибута

- длина атрибута

- значение

- возможно имя

1,2,4 – заголовок.

Системный набор атрибутов имеет фиксированные имена, коды типа и определенный формат, могут определяться атрибуты пользователя. Атрибуты упорядочены по убыванию кода. Два способа хранения атрибутов:

1) резидентный, т.е. в записях таблицы MFT.

2) хранение во внешних отрезках.

Системный набор атрибутов:

1) список атрибутов, из которых состоит файл; ссылки на номер записи основной таблицы файлов, где расположен каждый атрибут. Если атрибуты не размещаются в основной записи, то создается дополнительная запись в MFT (attribute list).

2) Имя файла - file name – содержит длинное имя в формате UNICDOD (255 символов). Номер ввода в таблице MFT для каталога. Если файл создается в нескольких каталогах, то у него будет несколько атрибутов file name, атрибут всегда резидентный.

3) MSDOC name – имя файла в формате 8:3 (имя - 8 символов расшир).

4) Версия (до 255)

5) Дескриптор безопасности – информация о защите файла – список прав доступа и поле аудита.

6) Версия тома – используется только в системных файлах тома.

7) Имя тома (дискета А)

8) Битовая карта MFT – карта использования блоков на томе.

9) Корень индекса – корень бинарного дерева, используемого для поиска файлов в каталоге.

10) Размещение индекса – нерезидентная часть индексного списка бинарного дерева.

11) Стандартная информация – хранит всю остальную стандартную информацию, которая не связана с другими атрибутами (дата создания, обновления).

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

Небольшие файлы.

Он целиком располагается в одной записи.

MFT атрибуты:

1) стандартная информация SI

2) имя файла FN

3) данные D

4) дескриптор безопасности SD

Если размер 2 КБ то поместится в 1 записи.

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

Данные не помещаются в 1 записи MFT, заголовок атрибута «данные» содержит признак, что атрибут не резидентный. Атрибут содержит адрес каждого отрезка данных.

Сверхбольшие файлы.

В атрибуте (системном), который называется «список атрибутов» можно указать несколько атрибутов, расположенных в дополнительных записях MFT. Можно использовать двойную косвенную адресацию, т.е. нерезидентный атрибут будет ссылаться на другие нерезидентные атрибуты.

Файлы, занимающие сотни байт, не занимают основную файловую область, так как все данные хранятся в MFT.

Файловые потоки.

Каждый файл имеет абстрактное строение. У него нет данных, есть потоки, большинство атрибутов файла в том числе и данные это потоки. Базовая сущность файла это номер в MFT, остальное – опции.

Каталоги в NTFS

Это специфический файл, который хранит ссылки на другие файлы и каталоги, создавая иерархическое строение информации на диске.

Файл каталога разделен на блоки. Блок содержит имя файла, базовые атрибуты и ссылку на запись основной таблицы файлов. Каждый каталог представляет собой один вход в таблицу MFT. Этот вход содержит атрибуты и корень индексов. Индекс содержит список файлов, входящих в каталог. Список может быть отсортирован по имени. Внутренняя структура каталога – бинарное дерево.

Существуют 2 формы хранения каталогов:

  1. н6ебольшие каталоги (как небольшие файлы в MFT). Если количество файлов в каталоге небольшое, то список файлов может быть резидентным в записи MFT. При этом используется 1 атрибут. Список файлов содержит значение атрибутов: по умолчанию, это имя файла, номер записи MFT, сод начальную запись файла.
  2. большие каталоги. При работе список файлов в каталоге может увеличиваться. Потребуется нерезидентная форма хранения. Начальная часть списка остается резидентной.

Журналирование в NTFS.

(ведение протокола событий)

Стратегия: неизменность быстродействия. В NTFS применяется журналирование логических структур, а не данных. Контролирует связь файлов, каталогов, кластеров. Журналируются операции дефрагментации. Для ускорения файловых операций используется кэширование. Используется отложенная запись – осуществляется на диск не сразу, а с задержкой по времени (пока не накопятся данные или выполнится чтение – более приоритетно чем запись).

Проблемы: рассогласование времени записи (когда работают сразу несколько приложений или несколько пользователей работают с одной базой данных).

NTFS интегрирует операции ведения журнала и отложенной записи. Положительное: требуемая запись с помощью журнала проверяется на наличие в КЭШЭ.

Контрольная точка – запись об удачном завершении предыдущих транзакций, это единственная задержанная операция, работа которой отличается от простой записи.

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

Сжатие файлов.

Любой файл или каталог может храниться в сжатом виде. Это ни как не влияет на работу приложения. Сжатие осуществляется с очень высокой скоростью. Имеется один недостаток – большая виртуальная фрагментация сжатых файлов. Сжатие осуществляется блоками по 16 кластеров. Используются виртуальные кластеры.

Фрагментация.

Дисковое пространство и файлы не подвержены фрагментации – так считалось, но NTFS препятствует фрагментации. Минимальную фрагментацию обеспечивает разумный размер кластера (4 КБ пи размере диска в 60 ГБ).

Файловая система сильнее всего фрагментирует файлы, когда заканчивается свободное место на диске. Когда заполняется весь диск, то зона MFT сокращается в 2 раза. Увеличивается фрагментация. При диске заполненном на 90% фрагментация значительно увеличивается. Диск заполненный больше чем на 88% деформировать практически невозможно. В ОС Win NT существует ограничение для перемещения блоков файлов. За один раз можно перемещать не менее 16 кластеров. Причем начинаться эти кластеры должны с позиции кратной 16-и кластерам в файле.

Проблемы, возникающие при деформации.

Порядок деформации:

1) вынимание файлов из MFT зоны.

2) Деформация файлов.

3) Деформация MFT зоны и каталогов.

Одноразовая деформация вредна, не реже раз в месяц.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: