|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Записи контрольной точкиПомимо записей модификации, NTFS периодически помещает в журнал транзакций запись контрольной точки, как показано на рис. 4-4. Запись контрольной точки помогает NTFS определить, какая обработка необходима для восстановления тома, если сбой произошел немедленно после помещения этой записи в журнал. Благодаря информации записи контрольной точки NTFS. например, знает, как далеко назад ей нужно пройти по журналу, чтобы начать восстановление. Добавив новую запись контрольной точки, NTFS записывает ее LSN в область рестарта, так что, начиная восстановление после сот системы, она может быстро найти самую последнюю запись контрольной точки
Рис. 4-4. Запись контрольной точки в журнале транзакций.
Хотя LFS и имитирует для NTFS бесконечность журнала транзакций, на самом деле он не бесконечен. Значительный размер журнала транзакций и часта” вставка записей контрольной точки (операция, которая обычно освобождает пространство в файле журнала) делают вероятность его переполнения достаточно малой. Тем не менее, LFS учитывает такую возможность, отслеживая несколько значений: · размер свободного пространства в журнале; · размер пространства, необходимого для помещения в журнал следующей записи и для отмены этого действия, если потребуется; · размер пространства, необходимого для отката всех активных (не подтвержденных) транзакций, если это потребуется. Если в журнале окажется недостаточно места для суммы последних двух пунктов, то LFS возвращает ошибку "переполнение журнала транзакций", и NTFS генерирует исключение. Обработчик исключений NTFS откатывает текущую транзакцию и помещает ее в очередь для рестарта через некоторое время. Чтобы освободить пространство в журнале транзакций, NTFS должна временно приостановить ввод-вывод в системе. Для этого она блокирует создание и удаление файлов, после чего запрашивает монопольный доступ ко всем открытым файлам. Постепенно активные транзакции либо успешно завершаются, либо получают исключение "переполнение журнала транзакций". Последние NTFS откатывает и помещает в очередь. Остановив ввод-вывод в системе путем получения монопольного доступа ко всем открытым файлам, NTFS вызывает диспетчер кэша для сброса на диск еще не записанных туда данных, в том числе не записанных данных журнала транзакций. После того, как все успешно помещено на диск, данные в журнале транзакций NTFS более не нужны. Она устанавливает начало журнала на текущую позицию, что делает журнал "пустым". Затем NTFS перезапускает транзакции, поставленные ранее в очередь. За исключением короткой паузы в обработке ввода-вывода, ошибка "переполнение журнала транзакций" не оказывает влияния на исполняющиеся транзакции. Описанный сценарий — это один из примеров того, как NTFS использует журнал транзакций не только для восстановления ФС, но и для исправления ошибок при нормальной работе.
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |