Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы ОС FINAL.doc
Скачиваний:
4
Добавлен:
01.04.2025
Размер:
3 Мб
Скачать
☆

7. Защита целостности данных.

Система восстановления NTFS гарантирует корректность файловой системы, а не ваших данных.

NTFS является восстанавливаемой ФС и поддерживает следующие технологии защиты целостности данных:

Тома с аппаратной или программной поддержкой RAID 0, RAID 4, RAID 5 и пр.

Горячая фиксация – позволяет файловой системе при возникновении ошибки из-за плохого кластера записать информацию в другой кластер и отметить сбойный в качестве плохого.

Механизм транзакций – каждая операция ввода-вывода, которая изменяет файл на разделе NTFS, рассматривается файловой системой как транзакция и может выполняться только как неделимый блок.

Восстанавливаемость файловой системы в NTFS обеспечивается при помощи техники обработки транзакций, называемой протоколированием (logging). В процессе протоколирования, прежде чем выполнить над содержимым диска какую-либо подоперацию транзакции, изменяющей важные структуры файловой системы, NTFS записывает ее в файл журнала транзакций. При восстановлении после сбоя системы NTFS просматривает журнал и повторяет все подтвержденные транзакции. После повтора всех подтвержденных транзакций NTFS отыскивает в журнале такие, которые не были подтверждены к моменту сбоя, и откатывает (отменяет) каждую запротоколированную подоперацию.

Примеры транзакций:

  • создание файла

  • удаление файла

  • расширение файла

  • урезание файла

  • установка файловой информации

  • переименование файла

  • изменение прав доступа к файлу

В состав средств протоколирования NTFS входят следующие компоненты:

    • журнал транзакций (log file) – это системный файл, создаваемый командой format;

    • сервис журнала операций (log file service, LFS) – набор системных процедур, которые NTFS использует для доступа к журналу транзакций, например, для открытия файла журнала, помещения в журнал записей, считывания записей журнала в прямом и в обратном порядке, сброса записей журнала и т.д. NTFS никогда не выполняет чтение-запись транзакций в журнал напрямую.

    • диспетчер кэша (cache manager) – это системный компонент Windows, поддерживающий кэширование для NTFS и драйверов других файловых систем (FAT32).

Файл журнала состоит из двух частей:

    • область рестарта (restart area) – в этой области NTFS хранит информацию о том, откуда начинать чтение области протоколирования при восстановлении после сбоя системы. Для повышения отказоустойчивости LFS создает копию области рестарта.

    • область протоколирования (logging area) – в которой находятся записи транзакций, обеспечивающие NTFS восстановление после сбоя. LFS создает иллюзию бесконечности журнала транзакций путем ее циклического повторного использования с использованием механизма разреженных файлов.

Для идентификации записей, помещенный журнал, LFS использует номера логической последовательности (logical sequence number, LSN).

В файле журнала различают 3 вида записей:

    • записи модификации (большинство записей в журнале транзакций – записи модификации);

Структура записи модификации:

    • Информация для повтора (redo info)

как вновь применить к тóму одну подоперацию полностью запротоколированной транзакции, если сбой системы произошел до того, как транзакция была переписана из кэша на диск.

    • Информация для отмены (undo info)

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

    • записи подтверждения транзакции;

после протоколирования транзакции NTFS выполняет ее подоперации непосредственно над томом – в кэше. По окончании обновления кэша NTFS помещает в журнал еще одну запись – подтверждение транзакции (committing a transaction). После того как транзакция подтверждена, NTFS гарантирует, что все вызванные ею модификации будут отражены на томе, даже если после подтверждения произойдет сбой системы.

    • записи контрольной точки.

Периодически (5 сек.) NTFS помещает в журнал транзакций записи контрольной точки: запись контрольной точки помогает NTFS определить, какая обработка необходима для восстановления тома, если сбой произошел “сразу” после помещения этой записи в журнал. LSN контрольной точки записывается в область рестарта.

Контрольная точка содержит две таблицы восстановления:

    • Таблица транзакций (transaction table) предназначена для отслеживания транзакций, которые были начаты, но еще не подтверждены. Их надо удалить в процессе восстановления.

    • В таблицу измененных страниц (dirty page table) записывается информация о том, какие изменения структуры файловой системы еще не записанные на диск. Эти данные в процессе восстановления должны быть сброшены на диск.

При восстановлении тома NTFS загружает журнал транзакций в оперативную память и выполняет три прохода:

    • анализ;

    • повтор транзакций;

    • сканирование журнала транзакций в прямом направлении, начиная с LSN самой старой записи, которая была обнаружена на проходе анализа;

    • поиск записей "обновление страницы", содержащие модификации тома, которые были запротоколированы до сбоя системы, но не сброшены из кэша на диск;

    • повторение найденных обновлений в кэш.

    • отмена транзакций.

    • откат всех транзакций, не подтвержденных к моменту сбоя системы, с протоколированием в журнале транзакций;

    • поскольку отмена транзакций изменяет структуру ФС на томе, NTFS должна протоколировать операцию отмены в журнале транзакций;

    • сброс на диск изменений кэша;

    • запись пустой области рестарта

Потом NTFS начинает проход отмены (undo pass), откатывая все транзакции, не подтвержденные к моменту сбоя системы. В таблице транзакций NTFS для каждой незавершенной транзакции хранится LSN записи модификации, которая была помещена в журнал последней. Каждая запись модификации содержит информацию двух видов: как повторить подоперацию и как отменить ее.

Поскольку отмена транзакций изменяет структуру ФС на томе, NTFS должна протоколировать операцию отмены в журнале транзакций. В конце концов, во время восстановления может снова произойти сбой питания, и NTFS придется выполнить повтор операций отмены! Когда проход отмены завершен, целостность тома восстановлена. В этот момент NTFS сбрасывает на диск изменения кэша, чтобы гарантировать правильность содержимого тома. Далее NTFS записывает пустую область рестарта.

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