logo
ZH ос 20 вопр 36 стр

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

Используется несколько типов записей. Это записи модификации и записи контрольной точки.

Записи модификации. Большинство записей в журнале – это запись модификации. Каждая запись модификации содержит два вида информации:

  1. Информация для повтора, которая содержит сведения о том, как вновь применить к тому подоперацию полностью запротоколированной подтверждённой транзакции. Если сбой системы произошёл до того, как транзакция была переписана из КЭШа на диск. Если какая-либо операция выполнена, то её надо повторить.

  2. Информация для отмены. Это сведения о том, как устранить изменения, вызванные первой операцией транзакции, которая в момент сбоя была запротоколирована лишь частично, то есть не подтверждена. Рассмотрим записи модификации в журнале транзакций для операции создания файла.

Область рестарта Область протоколирования. Записи журнала.

T1a

T1b

T1c

В журнал транзакций записано три модификации. Рассмотрим первую запись T1a.

T1a. Повтор. Выделить и инициализировать файловую запись в MFT.

Отмена. Освободить файловую запись в MFT.

T1b. Повтор. Добавить имя файла в каталог.

Отмена. Удалить имя файла из каталога.

T1c. Повтор. Установить биты 3-9 в битовой карте. Пометить кластеры как занятые.

Отмена. Очистить биты 3-9 в битовой карте. Пометить кластеры как свободные.

Транзакция была запротоколирована. После того как NTFS выполняет подоперации непосредственно над томом в КЭШе. По окончанию обновления КЭШа NTFS помещает в журнал ещё одну запись, которая помечает транзакцию записью, как завершённую. В журнале транзакций появляется ещё одна запись подоперации. После того как транзакция подтверждена NTFS гарантирует, что все вызванные ею модификации произойдут на томе, даже если после подтверждения будет сбой.

При восстановлении после сбоя NTFS просматривает журнал и восстанавливает все подтверждённые транзакции, то есть NTFS ещё раз повторяет подтверждённую транзакцию. Это сделано для большей надёжности. После повтора всех подтверждённых транзакций NTFS отыскивает транзакции, которые не были подтверждены в момент сбоя и откатывает каждую запротоколированную операцию.

NTFS организована как реляционная база данных. Отмена транзакций проводится в обратном направлении. Если повторение идёт в прямом, то откат идёт в обратном направлении.

Информация для повтора и отмены может быть выражена либо физически, либо логически. Физическое описание задаёт модификацию тома как диапазон байт. Логическое описание представляет модификацию в терминах операций, например удалить файл a.dat. NTFS генерирует записи модификации для каждой из следующих транзакций: создание файла (каталога), удаление файла (ката-лога), расширение файла (каталога), урезание файла (каталога), установка файловой информации, перенос, изменение прав доступа.