Сверхбольшие файлы (extremely huge)
В сверхбольших файлах для адресации всех отрезков используется несколько дополнительных записей MFT.
Каталоги NTFS
Каталоги – это специальный файл, хранящий ссылки на другие файлы и каталоги.
Внутренняя структура файла – это бинарное дерево.
Каталоги в NTFS делятся на:
Небольшие ( small ).
Большие ( large ).
Корневой каталог имеет ссылку из метафайла.
Каждый каталог имеет:
* имя;
* базовые атрибуты;
* ссылки на элемент MFT, который содержит информацию об элементах каталога.
Небольшие каталоги
Файлы небольших каталогов описываются в одной записи, называемой резидентным списком.
Для описания резидентных списков используется один атрибут Index Root.
Список файлов содержит имя файла и номер записи MFT.
Числа, это адреса отрезков, с информацией о файле.
Большие каталоги
В больших каталогах используются резидентные списки файлов и нерезидентные.
Начальная часть списка файлов (резидентная ) находится в корневом каталоге – в записи таблицы MFT.
Нерезидентные списки находятся вне таблицы MFT – в отрезках.
Имена файлов упорядочены в алфавитном порядке.
Имена файлов резидентного списка (поля IR –index root ) являются узлами дерева файлов каталога, которые делят файлы на группы.
В первую группу попадают файлы, имена которых меньше имени первого узла резидентного списка.
Во вторую группу входят файлы, расположенные между первым и вторым узлами и так далее.
|
|
В поле IA – index allocation указываются адреса отрезков, в которых размещаются файлы каждой группы.
Восстанавливаемость файловой системы NTFS
Причины нарушения целостности файловых систем
Примеры нарушения целостности файловых систем:
1. Возможные последствия сбоя при удалении файла в файловой системе FAT.
Для выполнения этой операции требуется:
* пометить как недействительную запись об этом файле в каталоге;
* обнулить все элементы FAT, которые соответствуют кластерам удаляемого файла.
Если сбой питания произошел после объявления недействительной запись в каталоге и обнуления нескольких (не всех) элементов FAT удаляемого файла, то вэтом случае после сбоя файловая система сможет продолжать нормальную работу, но несколько последних кластеров удаленного файла «навечно» оказываются помеченными как занятые.
Хуже было бы, если бы операция удаления начиналась с обнуления элементов FAT, а корректировка каталога происходила бы после.
Файл в каталоге существует, а на самом деле его нет.
2. Некорректность файловой системы может возникать в результате прерывания операций ввода-вывода, выполняемых непосредственно с диском, и в результате нарушения работы дискового КЭШа.
|
|
Для повышения производительности файловая система NTFS использует дисковый кэш.
Однако кэширование повышает риск разрушения файловой системы.
Все изменения файлов, каталогов и управляющей информации выполняются сначала с копиями соответствующих блоков в буферах оперативной памяти и только спустя некоторое время переносятся на диск.
Для согласования содержимого КЭШа и дискавремя от времени выполняется запись всех модифицированных блоков, находящихся в КЭШе, на диск.
Вэтих буферах оседают данные из пользовательских файлов и служебная информация файловой системы, такая как каталоги, индексные дескрипторы, списки свободных, занятых и поврежденных блоков и т. п.
Когда происходит сбой по питанию или крах ОС, все данные, находящиеся в оперативной памяти, теряются, в том числе и модифицированные блоки данных, которые менеджер дискового кэша не успел перенети на диск.
Кэширование данных с диска предполагает, что в течение некоторого времени результаты операций ввода-вывода никак не сказываются на содержимом диска - все изменения происходят с копиями блоков диска, временно хранящихся в буферах (т.е. в ОЗУ, данные в которой исчезли после сбоя питания).
|
|
Таким образом, незавершенная операция с диском также несет угрозу целостности файловой системы.
Выталкивание блоков из КЭШа на диск может выполняться:
1. Либо по инициативе менеджера дискового КЭШа.
2. Либо по инициативе приложения.
Менеджер дискового КЭШа вытесняет блоки из КЭШа в следующих случаях:
* если необходимо освободить место в КЭШе для новых данных;
* если к менеджеру поступил запрос от какого-либо приложения или модуля ОС на запись указанных в запросе блоков на диск;
* при периодическом сбросе всех модифицированных блоков КЭШа на диск.
* Кроме того, в распоряжение приложений обычно предоставляются средства, с помощью которых они могут запросить у подсистемы ввода-вывода операцию сквозной записи.
При ее выполнении данные немедленно и практически одновременно записываются и на диск, и в КЭШ.
Для восстановления некорректных файловых систем, использующих механизм кэширования диска, в операционных системах предусматриваются специальные утилиты, такие как fsck для файловых систем s5/uf, ScanDisk для FAT и Chkdsk для HPFS.
Однако объем несоответствий может быть настолько большим, что восстановление файловой системы после сбоя с помощью стандартных системных средств становится невозможным.
|
|
Для борьбы с нарушением целостности данных применяются так называемые восстанавливаемые файловые системы,которые обладают определенной степенью устойчивостик сбоям и отказам компьютера (при сохранении работоспособности диска, на котором расположена данная файловая система).
Восстанавливаемость файловой системы - это свойство, которое гарантирует, что в случае отказа питания или краха системы, когда все данные в оперативной памяти безвозвратно теряются, все начатые файловые операции будут либо успешно завершены, либо отмененыбезо всяких отрицательных последствий для работоспособности файловой системы.
Любая операция с файлом (создание, удаление, запись, чтение и т. д.) может быть представлена в виде некоторой последовательности подопераций.
Последствия сбоя питания или краха ОС зависят от того, какая операция ввода-вывода выполнялась в этот момент, в каком порядке выполнялись подоперации и до какой подоперации продвинулось выполнение операции к этому моменту.
Файловая система NTFS является восстанавливаемой файловой системой, однако восстанавливаемость обеспечивается только для системной информации файловой системы, то –есть:
* каталогов;
* атрибутов безопасности;
* битовой карты занятости кластеров;
* и других системных файлов.
Сохранность данных пользовательских файлов, работа с которыми выполнялась в момент сбоя, в общем случае не гарантируется.
Пользовательские данные, которые в момент краха находились в дисковом кэше и не успели записаться на диск, в NTFSне восстанавливаются.
NTFS обеспечивает отказоустойчивость с помощью технологии протоколирования транзакций и восстановления системных данных.
В системе должны быть определены транзакции (transactions) – неделимые работы, которые не могут быть выполнены частично.
Они либо выполняются полностью, либо вообще не выполняются.
Единственный способ восстановить утерянные изменения данных - это повторить все завершенные транзакции, которые участвовали в модификации этих блоков.
Чтобы обеспечить возможность повторения транзакций, система должна включать в протокол не только данные, которые могут быть использованы для отката транзакции, но и данные, которые позволят в случае необходимости повторить всю транзакцию.
Журнал регистрации транзакций в NTFS делится на две части:
* область рестарта;
* и область протоколирования.
Область рестарта
Область рестартасодержит информацию о том, с какого места необходимо будет начать читать журнал транзакций для проведения процедуры восстановления системы после сбоя или краха ОС.
Эта информация представляет собой указатель на определенную запись в области протоколирования.
Для надежности в файле журнала регистрации хранится две копии области рестарта.
Область протоколирования
Область протоколированиясодержит записи обо всех изменениях в системных данных файловой системы, произошедших в результате выполнения транзакций в течение некоторого достаточно большого периода.
Все записи идентифицируются логическим порядковым номером (Logical Sequence Number, LSN).
Записи о подоперациях, принадлежащих одной транзакции, образуют связанный список: каждая последующая запись содержит номер предыдущей записи.
Заполнение области протоколирования идет циклически: после исчерпания всей памяти, отведенной под область протоколирования, новые записи помещаются на место самых старых.
Процесс восстановления файловой системы включает следующие шаги:
1. Чтение области рестарта из файла журнала транзакций и определение номера самой последней по времени записи контрольной точки.
2. Чтение записи контрольная точка и определение номеров записей таблицы незавершенных транзакций и таблицы модифицированных страниц.
3. Чтение и корректировка таблиц незавершенных транзакций и модифицированных страниц на основании записей, сделанных в журнале транзакций уже после сохранения таблиц в журнале, но еще до записи журнала на диск.
4. Анализ таблицы модифицированных страниц, определение номера самой ранней записи модификации страницы.
5. Чтение журнала транзакций в прямом направлении, начиная с самой ранней записи о модификации, найденной при анализе таблицы модифицированных страниц.
При этом система выполняет повторение завершенных транзакций, в результате которого устраняются все несоответствия файловой системы, вызванные потерями модифицированных страниц в кэше во время сбоя или краха операционной системы.
6. Анализ таблицы незавершенных транзакций, определение номера самой поздней подоперации, выполненной в рамках незавершенной транзакции.
7. Чтение журнала транзакций в обратном направлении.
Дата добавления: 2018-08-06; просмотров: 359; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!