Журналирование

• NTFS - отказоустойчивая система, которая вполне может привести себя в корректное состояние при практически любых реальных сбоях. Любая современная файловая система основана на таком понятии, как транзакция - действие, совершаемое целиком и корректно или не совершаемое вообще. У NTFS просто не бывает промежуточных (ошибочных или некорректных) состояний - квант изменения данных не может быть поделен на до и после сбоя - он либо совершен, либо отменен.
• Пример 1: осуществляется запись данных на диск. В том месте, куда выполняется записи данных физическое повреждение поверхности. Поведение NTFS: транзакция записи откатывается целиком - система осознает, что запись не произведена. Место помечается как сбойное, а данные записываются в другое место - начинается новая транзакция.
• Пример 2: отключение питания в момент записи файла. На какой фазе остановилась запись, где есть данные, а где нет? Решение принимается на основании журнала транзакций. В метафайле $LogFile система отмечает намерение произвести запись. При перезагрузке этот файл изучается на предмет наличия незавершенных транзакций, которые были прерваны аварией и результат которых непредсказуем - все эти транзакции отменяются: место, в которое осуществлялась запись, помечается снова как свободное, индексы и элементы MFT приводятся в с состояние, в котором они были до сбоя, и система в целом остается стабильна.
• Журналирование - лишь средство существенно сократить число ошибок и сбоев системы. Система восстановления NTFS гарантирует корректность файловой системы, а не данных.
• Операции, которые журналируются системой - это операции со структурами самой системы, то есть с файлами и каталогами: добавление файлов, переименование, перенос, создание и удаление. Журналируются также и операции дефрагментации - то есть перемещения фрагментов файлов.

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: