Возможна ли потеря данных без записи на диск?

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


person CauselessEffect    schedule 15.07.2012    source источник


Ответы (1)


Ой, "все зависит" ...

Короткий ответ - да, коррупция может произойти. В простейшем случае у вас есть жесткий диск с кеш-памятью 16 МБ. Программы записываются в «контроллер», и данные попадают в кэш устройства. Ваша программа считает, что все в порядке. Затем вы теряете силу. > некоторые ‹системы имеют достаточную емкость конденсатора, чтобы эти данные могли вытекать, но вы все равно можете получить частичную запись.

По моему опыту, потеря мощности во время этой отложенной записи также может привести к ошибкам носителя из-за неполных обновлений ECC. После перезагрузки HW может обнаружить это и объявить эту область диска (сектор / дорожку) плохой и переназначить ее из запасных.

Некоторые ОС будут обновлять временные метки последнего доступа к файлам, поскольку файл> прочитан ‹, что означает, что пока пользователь выполняет действия только для чтения, записи все еще происходят на диск.

person MJZ    schedule 14.11.2012
comment
Хороший момент о отметках времени последнего доступа. Другими примерами фоновых операций записи в ОС являются файлы thumbs.db в Windows и файлы .DS_Store OSX. Ради аргумента, если мы предположим, что ни одна из этих операций не происходит, является ли отложенная запись в контроллер результатом простого чтения диска? Имеет смысл, что кэш диска будет записан во время чтения диска, чтобы действовать как буфер, но подразумеваете ли вы, что при потере питания ECC все еще может интерпретировать эти частичные записи как поврежденные сектора? Разве он не должен знать разницу между кешем, записанным для ввода диска и вывода - person CauselessEffect; 10.12.2012