13

Может ли быть нарушена работа файловой системы NTFS в случае сбоя питания? Например, сломаться или вызвать повреждение файла? И гарантированно ли встроенное зеркальное отображение NTFS на динамических дисках позволяет сохранять файлы в согласованном состоянии в случае сбоя питания?

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

Несколько цитат из великой книги Microsoft Windows Internals:

NTFS

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

NTFS Design Цели и особенности

Требования к высокопроизводительной файловой системе

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

восстанавливаемость

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

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

Избыточность данных и отказоустойчивость

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

Избыточность данных для пользовательских файлов реализована с помощью многоуровневой модели драйверов Windows, которая обеспечивает отказоустойчивую поддержку дисков. Диспетчер томов может зеркалировать или дублировать данные с одного диска на другой, чтобы всегда можно было получить избыточную копию.

Поддержка восстановления NTFS

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

Восстанавливаемые файловые системы

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

3 ответа3

7

Если не принимать во внимание теорию, на этом сайте можно найти так много проблем, вызванных перебоями в работе NTFS, что ответ должен быть: НЕТ.

Я лично занимался на этом сайте проблемами, которые возникли от внезапно появившихся поврежденных секторов до полной установки Windows.

Компьютер - чрезвычайно сложное аппаратное обеспечение, и современные жесткие диски также стали маленькими компьютерами. У каждого есть свой процессор и память, поэтому каждый из них уязвим к сбоям питания, возникающим в неподходящий момент.

Даже если NTFS является отказоустойчивой (что я на самом деле не верю), компоненты, которые обрабатывают изменения на жестком диске, безусловно, не являются отказоустойчивыми. Таким образом, весь вопрос довольно академичен и не имеет отношения к реальному миру.

Тогда ответом должно быть то, что NTFS безопаснее, но не безопаснее.

3

NTFS только метаданные журналов, которые предотвращают повреждение файловой системы, но Бог поможет вам с данными, которые не записываются в журнал. Если во время записи происходит сбой питания, данные теряются.

1

После написания кода, который читает и пишет NTFS, я пришел к выводу, что функция восстановления NTFS разработана / реализована некорректно.

Журнал NTFS содержит запись в журнале для операции, которая вызвала запись, он обычно содержит достаточно информации, чтобы отменить / повторить эту операцию, однако, если сектор поврежден во время записи (из-за сбоя питания), запись в журнале не обязательно достаточно, чтобы восстановить все метаданные в этом секторе.

Разработчики драйвера Windows NTFS предполагают, что любая операция записи будет либо полностью успешной, либо не произойдет вообще (это справедливо только в некоторых корпоративных средах).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .