Файловая система NTFS

       

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


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

Пример 1: осуществляетсязапись данных на диск. Вдруг выясняется, чтов то место, куда мы только что решилизаписать очередную порцию данных, писать неудалось - физическое повреждениеповерхности. Поведение NTFS в этом случаедовольно логично: транзакция записиоткатывается целиком - система осознает,что запись не произведена. Место помечаетсякак сбойное, а данные записываются в другоеместо - начинается новая транзакция.

Пример 2: более сложныйслучай - идет запись данных на диск. Вдруг,бах - отключается питание и системаперезагружается. На какой фазеостановилась запись, где есть данные, а гдечушь? На помощь приходит другой механизмсистемы - журнал транзакций. Дело в том, чтосистема, осознав свое желание писать надиск, пометила в метафайле $LogFile это своесостояние. При перезагрузке это файлизучается на предмет наличия незавершенныхтранзакций, которые были прерваны аварией ирезультат которых непредсказуем - все этитранзакции отменяются: место, в котороеосуществлялась запись, помечается сновакак свободное, индексы и элементы MFTприводятся в с состояние, в котором они былидо сбоя, и система в целом остаетсястабильна. Ну а если ошибка произошла призаписи в журнал? Тоже ничего страшного:транзакция либо еще и не начиналась (идеттолько попытка записать намерения еёпроизвести), либо уже закончилась - то естьидет попытка записать, что транзакция насамом деле уже выполнена. В последнемслучае при следующей загрузке система самавполне разберется, что на самом деле всё итак записано корректно, и не обратитвнимания на "незаконченную"транзакцию.

И все-таки помните, что журналирование - неабсолютная панацея, а лишь средствосущественно сократить число ошибок и сбоевсистемы. Вряд ли рядовой пользователь NTFSхоть когда-нибудь заметит ошибку системыили вынужден будет запускать chkdsk - опытпоказывает, что NTFS восстанавливается вполностью корректное состояние даже присбоях в очень загруженные дисковойактивностью моменты. Вы можете дажеоптимизировать диск и в самый разгар этогопроцесса нажать reset - вероятность потерьданных даже в этом случае будет очень низка.Важно понимать, однако, что системавосстановления NTFS гарантируеткорректность файловой системы, ане ваших данных. Если вы производили записьна диск и получили аварию - ваши данныемогут и не записаться. Чудес не бывает.



Содержание раздела