Могут ли данные на жестком диске ухудшаться без предупреждения Windows о том, что это произошло, когда я пытаюсь получить доступ к данным?


30

Возможно ли, что физическая деградация жесткого диска может привести к тому, что биты будут «переворачиваться» в содержимом файла, если ОС не «заметит» и не сообщит вам об этом при чтении файла? например, может ли «p» в текстовом файле ASCII (двоичный код 0111000 0 ) измениться на «q» (0111000 1 ), и тогда пользователь (я) сможет открыть файл и увидеть «q», не зная, что произошел сбой произошло?

Я заинтересован в ответах, касающихся FAT, NTFS или ReFS ... если это имеет значение.

Я хочу знать, защищает ли меня ОС от этого, или я должен проверять свои данные на неизменность между копиями / с течением времени.


Специально не связано, но похоже: superuser.com/questions/613702/…
Майкл Фрэнк

Я полагаю, что поврежденная головка для чтения / записи могла бы случайно применить к диску неправильный заряд, хотя я никогда не видел искажения данных в таком маленьком масштабе. Кроме того, я бы не стал доверять Windows, чтобы сказать мне, если диск выходит из строя или нет (сообщение при входе в систему). Я видел диски медленно умирают с течением времени без какого-либо предупреждения от Windows.
CConard96

Конечно ... данные хранятся в виде битов с относительными значениями 0 или 1, энтропия возникает во всех системах, включая магнитное и твердотельное хранилище. Все данные со временем ухудшаются.
acejavelin

2
@Moab: я был бы более впечатлен вашим вторым («также ...») комментарием, если бы URL каким-либо образом отличался от URL в вашем первом комментарии.
TOOGAM

1
Если вы используете ReFS поверх зеркального тома (а не четности!) И правильно настроили его, он будет проверять как данные файла, так и метаданные файловой системы. Он будет проверен на чтение (и исправлен при необходимости), а также запланированное задание, которое будет периодически сканировать весь том на наличие обнаруженных ошибок.
Давидбак

Ответы:


24

Да , есть вещь, называемая немного гнилой.

Но нет , это не затронет вас незамеченным.

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

Когда привод считывает сектор, он проверяет эти коды ECC и восстанавливает данные, если это необходимо и возможно. Что будет дальше, зависит от обстоятельств и встроенного программного обеспечения привода, на которое влияет его назначение.

  • Если сектор может быть прочитан и у него нет проблем с ECC, он передается в ОС
  • Если сектор может быть легко восстановлен, восстановленная версия может быть записана на диск, считана и проверена, чтобы определить, была ли ошибка случайной (космические лучи ...) или существует ли систематическая ошибка с носителем
  • Если накопитель определяет, что произошла ошибка с носителем, он перераспределяет сектор
  • Если после нескольких попыток чтения сектор не может быть ни прочитан, ни исправлен, то на диске, который обозначен как диск RAID , диск откажется, перераспределит сектор и сообщит контроллеру о наличии проблемы. Он использует контроллер RAID для восстановления сектора из других участников RAID и записи его обратно на неисправный диск, который затем сохраняет его в перераспределенном секторе, который, как мы надеемся, не имеет проблемы.
  • Если сектор не может быть прочитан или исправлен на настольном диске , он сделает гораздо больше попыток его прочитать. В зависимости от качества привода это может включать в себя изменение положения головки, проверку наличия переворачивающихся битов при повторном чтении, проверку того, какие биты являются самыми слабыми, и некоторые другие вещи. Если любая из этих попыток будет успешной, накопитель перераспределит сектор и запишет восстановленные данные.

(Это одно из основных различий между дисками, которые продаются как диски «для настольных ПК», «NAS / RAID» или «видеонаблюдение». Дисковод RAID может просто быстро сдаться и заставить контроллер восстанавливать сектор, чтобы избежать задержки на пользовательская сторона. Диск настольного компьютера будет повторять попытки снова и снова, потому что пользователь, ожидающий несколько секунд, вероятно, лучше, чем сообщать ему, что данные потеряны. А видеодиск оценивает постоянную скорость передачи данных больше, чем восстановление после ошибок, поскольку поврежденный кадр обычно выигрывает. даже не заметили.)

В любом случае, накопитель узнает, не произошел ли гниль, как правило, восстановится после него, а если не сможет, он сообщит контроллеру, который, в свою очередь, сообщит драйверу, который сообщит ОС. Затем ОС должна представить эту ошибку пользователю и действовать в соответствии с ней. Вот почему Кибернард говорит

Я никогда не наблюдал ни единой ошибки, но видел множество жестких дисков, на которых выходили из строя целые сектора.

привод узнает, что с сектором что-то не так, но не знает, какие биты вышли из строя. (Один бит, который не удался, всегда будет перехвачен ECC).

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

Конечно, есть и другие причины, по которым данные могут быть повреждены. Например. Плохое ОЗУ на контроллере может изменить данные до того, как они будут отправлены на диск. В этом случае никакой механизм на диске не будет обнаруживать или восстанавливать данные, и это может быть одной из причин, почему структура файловой системы повреждена. Другие причины включают в себя простые программные ошибки, затемнение при записи на диск (хотя это решается путем журналирования файловой системы) или плохие драйверы файловой системы (драйвер NTFS в Linux долгое время по умолчанию оставался доступным только для чтения, поскольку NTFS была подвергнута обратному проектированию, не документирована). и разработчики не доверяли своему собственному коду).

У меня был такой сценарий, когда приложение сохраняло все свои файлы на двух разных серверах в разных центрах обработки данных, чтобы сохранить рабочую копию данных при любых обстоятельствах. Через несколько месяцев мы заметили, что в одной из копий около 0,1% всех файлов не соответствует сумме MD5, которую приложение хранит в своей базе данных. Оказалось, что неисправен оптоволоконный кабель между сервером и SAN.

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


2
+1 за указание на то, что другие проблемы с оборудованием, помимо ухудшения качества носителя, могут привести к чтению и записи поврежденных данных . У меня лично была проблема с плохими кабелями в случае. Кроме того, к сведению, в дополнение к ZFS, файловая система Windows ReFS (для Server 2012+) при правильной настройке и запуске поверх Storage Spaces будет проверять данные файла, а также метаданные файловой системы и восстанавливать их, а также периодически выполнять весь том. проверка целостности для выявления и исправления многих таких ошибок.
Давидбак

17

Да, жесткие диски могут и действительно ухудшаться без предупреждения от ОС. Это называется гниль . Я никогда не наблюдал ни единой ошибки, но видел множество жестких дисков, на которых выходили из строя целые сектора.

Windows не имеет встроенной защиты содержимого файла за пределами структуры файловой системы NTFS. Думайте о NTFS как о книге: она защищает только оглавление и проверяет соответствие. Однако, если повреждение находится в середине страницы, оно не предлагает никакой защиты. У ЖИРА нет ничего. Жесткие диски используют коррекцию ошибок ECC для каждого сектора, но диск не сообщает Windows. Некоторые типы файлов специально имеют хэши CRC, MD5 или SHA для обнаружения повреждений, но они ничего не исправляют .

Даже тогда хэш только говорит вам, что есть проблема, но он не знает, где находится ошибка.

Жесткий диск имеет SMART, который контролирует состояние жесткого диска, но если диск не находится на пороге смерти, BIOS не предупредит вас. Хуже всего то, что SMART часто отключается по умолчанию в вашем BIOS. Вы можете контролировать цифры с помощью программного обеспечения, но разные диски имеют разные проблемы. Если у вас есть куча перемещенных секторов, или ваши ошибки ECC постоянно увеличиваются. Если у вас есть 100 000 новых ECC каждый день, это плохой знак.

Многие типы файлов не имеют защиты от гниения . Мол, TXT и BMP, которые вообще не имеют защиты. Winrar имеет опциональную опцию для добавления данных о четности в архив, которая увеличивает размер файла, но он может обнаруживать (пропорционально количеству добавленных данных о четности) и исправлять ошибки такого рода.

Все другие программы сжатия, которые я знаю, обнаруживают ошибки, но ничего не могут с этим поделать.

В конце концов, ошибки в секторе будут настолько плохими, что ECC не сможет их исправить, и накопитель выдаст вам то, что он читает, даже если он неправильный.

Вы можете использовать QuickPar или аналогичный файл для создания файлов данных четности, но, насколько я знаю, нет способа автоматизировать его. Например, вы фактически изменяете файл самостоятельно, когда вам нужно вручную обновить паритет. Вы также можете иметь данные о четности для группы файлов, но вы изменяете 1 файл, и весь набор четности должен быть воссоздан. Это настоящая головная боль для всех, но небольшое количество файлов.


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

1
@Ramhound К сожалению, число пользователей, которые защищают свои данные с помощью зеркалирования RAID, уровня 5 или уровня 6, вероятно, меньше 0,01%
кибернард,

Я знаю, что я говорил в целом. Немного гниль! = Плохие перегородки
Ramhound

1
NOR = НЕ ИЛИ; используется в предложении означает, что это исключительный список;
Ramhound

1
У меня был этот жесткий диск на 750 ГБ, который делал подобные вещи. Во-первых, компьютер работал медленно и все время зависает. Когда я некоторые текстовые файлы часть его обнуляется или искажен. Компьютер позже перестал загружаться. Получил новый жесткий диск (я получил HDD, а не SSD. Я думаю, что я должен был получить SSD), и проблема пошла, и компьютер работает быстро
Suici Doga

2

Да, это возможно. Windows это просто программное обеспечение. Программное обеспечение представляет собой серию инструкций для компьютера.

Подумайте о другом типе серии инструкций: книга. Что могут выполнить эти инструкции, если они написаны в книге, которая лежит на полке, и никто не потрудится открыть книгу и прочитать эти инструкции?

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

Теперь ReFS может быть спроектирован с намерением, чтобы программное обеспечение сохраняло детали о данных, и чтобы программное обеспечение сравнивало эти детали позже. Простым понятием является «контрольная сумма», в которой программное обеспечение добавляет определенные значения и обеспечивает соответствие этих значений ожидаемому результату. Когда аппаратное обеспечение реализует это программное обеспечение, тогда могут быть обнаружены определенные плохие результаты. Это может даже быть очень вероятно, чтобы работать. Однако, поскольку число потенциальных проблем, которые теоретически могут существовать, в основном бесконечно, нет гарантии, что программное обеспечение обязательно обнаружит каждую проблему. (Имейте в виду, что программное обеспечение представляет собой серию инструкций, которые были созданы заранее.)

Жир особенно низок на функциях. FAT12 был разработан для дискет, а FAT16 - для систем объемом до 4 ГБ (хотя большая часть реализации Microsoft FAT16, как правило, не работала выше 2 ГБ). Без расширения VFAT ни одно из них не поддерживало имена файлов длиннее 11 символов (некоторые из которых были бы в части, называемой «расширением»). FAT был просто разработан для хранения данных в то время, когда способность хранить данные была новой концепцией, о которой нужно было учить взрослых. Когда FAT считалась «передовой» технологией, компьютерные технологии еще не были достаточно распространенными и сложными, чтобы люди беспокоились о расширенных функциях.

В NTFS добавлена ​​поддержка некоторых дополнительных функций, возможно, в первую очередь благодаря возможности операционной системы легко отслеживать разрешения пользователей. Существуют разные версии NTFS. Например, Moab отмечает, что в Windows Server 2008 добавлена ​​поддержка самовосстановления NTFS., который может обнаружить некоторые вещи. Тем не менее, эта функция была новой для Windows Server 2008, так что она совсем не поддерживается Windows XP (или Windows Server 2003 или более ранними версиями). Тем не менее, просматривая список функций, кажется, что это связано с некоторыми метаданными, которые помогают операционной системе замечать проблемы, настолько серьезные, что диск не может быть смонтирован, или другие ключевые области диска, влияющие на ядро ​​операционной системы. Это не выглядело так, как будто каждая отдельная часть данных в каждом отдельном файле подвержена влиянию этой конкретной функции.

Программное обеспечение для таких операционных систем вряд ли заметит такие вещи, если только они не вызывают заметных проблем для операционной системы для выполнения задач. Могут быть некоторые исключения, такие как части операционной системы, которые проверяют диски (CheckDsk / ChkDsk / ScanDisk / ScanDskW, в зависимости от операционной системы), но даже они будут довольно ограничены в том, что они могут обнаруживать, в основном потому, что файловые системы не не хранить очень большое количество данных, которые были предназначены для проверки диска.

(RAID5 может быть более склонным к обнаружению таких вещей, так как каждый бит имеет бит четности, который поможет заметить что-то необычное. Даже в этом случае реализация RAID должна быть выполнена для обнаружения проблемы. Если проблема возникла на часть диска, с которой не ведется активная работа, проблема может остаться незамеченной, пока кто-то не попытается начать использовать эти данные.)

В более поздние времена большее количество битов означало, что небольшие вероятности, такие как шансы «1 на 10 миллионов», с большей вероятностью влияли на вещи. Широкая публика также узнала о «космических лучах», которые могут оказывать небольшое влияние на вещи. Поскольку биты так плотно уложены в новых устройствах, физические требования для представления бита меньше, поэтому даже небольшие удары с большей вероятностью могут повлиять на то, как бит распознается. ReFS имеет некоторые функции, разработанные, чтобы помочь с их обнаружением. В статье Википедии о ReFS это называется «автоматической проверкой целостности». Поскольку это описано как заметная особенность этой файловой системы, такие функции, вероятно, более развиты, чем с NTFS (и, конечно, больше, чем FAT, который был сравнительно простым по своей природе,

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.