Восстановление данных в NTFS.
При выполнении операций NTFS ведёт две таблицы, которые записываются в журнал транзакций одновременно с записью контрольной точки. Эти таблицы следующие:
1. Таблица транзакций. Предназначена для отслеживания транзакций, которые были начаты, но ещё не завершены. Подоперации этих транзакций при восстановлении должны быть удалены.
2. Таблица изменённых страниц. Содержит информацию о том, какие страницы кэша содержат изменения структуры файловой системы ещё не записанные на диск.
Каждые 5 секунд NTFS помещает в журнал транзакций запись контрольной точки, непосредственно перед контрольной точкой записываются эти таблицы. В начале процесса восстановления NTFS обращается к LFS для поиска последней контрольной точки, а следовательно, к последним копиям этих таблиц. Затем NTFS копирует эти таблицы в память. Обычно после последней записи контрольной точки в журнале находятся ещё несколько записей модификации. Эти записи в процессе восстановления надо учитывать. NTFS анализирует записи модификаций после последней контрольной точки и обновляет таблицу транзакций и таблицу изменённых страниц.
При восстановлении тома NTFS выполняет три прохода по журналу транзакций, загружая журнал транзакций в память при первом проходе. Проходы:
1. Анализ;
2. Повтор транзакций;
3. Отмена транзакций.
При проходе анализа осуществляется поиск до конца журнала. Если запись модификации– это запись подтверждения транзакции, то информация о соответствующей транзакции должна быть удалена из таблицы транзакций. Если запись модификации – это запись обновления страницы, т. е запись, которая изменяет структуру файловой системы, то следует внести поправку в таблицу изменения страниц, т. е на проходе анализа таблицы приводятся в актуальное состояние. Затем NTFS просматривает обе таблицы для того, чтобы найти номер LSN самой старой записи модификации, регистрирующая операцию, которая не была выполнена над диском.Надо просмотреть обе таблицы и найти LSN с соответствующим номером.
Проход анализа.
При проходе анализа (analysis pass) NTFS просматривает журнал транзакций в прямом направлении, начиная с последней операции контрольной точки, чтобы найти записи модификации и обновить скопированные ранее в память таблицы транзакций и измененных страниц. Операция контрольной точки помещает в журнал транзакций 3 записи, между которыми могут оказаться записи модификации. NTFS должна приступить к сканированию с начала операции контрольной точки.
Большинство записей модификации, расположенных в журнале после начала операции контрольной точки, представляет собой изменение либо таблицы транзакций, либо таблицы измененных страниц. Например, если запись модификации относится к фиксации транзакции, то транзакция, которую представляет данная запись, должна быть удалена из таблицы транзакций. Аналогично, если запись модификации относится к обновлению страницы, изменяющему структуру данных файловой системы, нужно внести соответствующую поправку в таблицу измененных страниц.
После того как таблицы в памяти приведены в актуальное состояние, NTFS просматривает их, чтобы определить LSN самой старой записи модификации, которая регистрирует операцию, не выполненную над диском. Таблица транзакций содержит LSN незафиксированных (незавершенных) транзакций, а таблица измененных страниц — LSN записей, соответствующих модификациям кэша, не отраженным на диске. LSN самой старой записи, найденной NTFS в этих двух таблицах, определяет, откуда начнется проход повтора. Однако, если последняя запись контрольной точки окажется более ранней, NTFS начнет проход повтора именно с нее.
Проход повтора.
На проходе повтора (redo pass) NTFS сканирует журнал транзакций в прямом направлении, начиная с LSN самой старой записи, которая была обнаружена на проходе анализа. Она ищет записи модификации, относящиеся к обновлению страницы и содержащие модификации тома, которые были запротоколированы до сбоя системы, но не сброшены из кэша на диск. NTFS повторяет эти обновления в кэше.
Когда NTFS достигает конца журнала транзакций, она уже обновила кэш необходимыми модификациями тома, и подсистема отложенной записи, принадлежащая диспетчеру кэша, может начать переписывать содержимое кэша на диск в фоновом режиме.
Проход отмены.
Откатывает неподтверждённые транзакции. В таблице транзакций для каждой незавершённой транзакции хранится LSN.
Транзакция 1 –
Транзакция 2 – – – – – –
Каждая запись отмены содержит LSN предыдущей транзакции.
43. Замена плохих секторов в NTFS. Файл плохих кластеров.
Переназначение плохих кластеров.
Когда NTFS получает ошибку о наличии плохого сектора, то она присоединяет кластер, содержащий этот сектор к своему файлу плохих кластеров. Это предотвращает повторное выделение этого кластера для другого файла. Затем NTFS выделяет для файла новый кластер и изменяет отображения VCN-LCN для файла так, чтобы это отображение указывало на новый кластер.