Является ли гниль на жестких дисках реальной проблемой? Что с этим можно сделать?


32

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

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

Это настоящая проблема? И если так, что с этим можно сделать? Мой друг рекомендует zfs в качестве решения, но я не могу себе представить, как наши файловые серверы сгладят работу, установив Solaris и zfs ..



Я только что получил хорошую ошибку SMART на старом диске Seagate емкостью 200 ГБ. Биты, они гнили слишком много :-( Это шестимесячный срок от 5-летней гарантии, так что я, вероятно, получу замену без особых хлопот.
ThatGraemeGuy

Ответы:


24

Прежде всего: ваша файловая система может не иметь контрольных сумм, но ваш жесткий диск имеет их. Там SMART, например. Когда один бит слишком много перевернулся, ошибку, конечно, нельзя исправить. И если вам действительно не повезло, биты могут измениться таким образом, что контрольная сумма не станет недействительной; тогда ошибка даже не будет обнаружена. Таким образом, могут случиться неприятные вещи ; но утверждение о том, что случайное переключение битов мгновенно повредит ваши данные, является поддельным.

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

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

В любом случае: нет, это не невозможно обнаружить .

Но файловая система сама по себе никогда не может быть гарантией того, что любой сбой может быть восстановлен; это не серебряная пуля. У вас все еще должны быть резервные копии и план / алгоритм для того, что делать, когда обнаружена ошибка.


Итак, согласно википедии ( en.wikipedia.org/wiki/Error_detection_and_correction ) современные жесткие диски используют CRC для обнаружения ошибок и пытаются восстановить их с помощью восстановления на компакт-диске. Это достаточно хорошо для меня.
Скоби

1
Но если CRC хранится в том же месте (секторе), что и данные, это не поможет во всех случаях ошибок. Например, если есть ошибка позиционирования головы, данные могут быть записаны в неправильный сектор - но с правильной контрольной суммой => вы не сможете обнаружить проблему. Вот почему контрольные суммы в ZFS хранятся отдельно от данных, которые они защищают.
Knweiss

Есть ли у ZFS обслуживание, как у Windows сейчас? Это в основном переписывает данные регулярно, чтобы обновить магнитное кодирование.
TomTom

Современные жесткие диски не используют CRC, они используют код Хемминга, который сильно отличается. Это то же самое, что использует память ECC. Однобитовые ошибки переворачивания могут быть исправлены, двухбитовые ошибки переворачивания могут быть обнаружены, но не исправлены, три или более разрядов переворачиваются, и данные фактически повреждены. В любом случае, нет замены для резервных копий данных. ZFS и другие файловые системы не обеспечивают лучшую защиту, чем код Хемминга на дисках жесткого диска. Если данные повреждены, ZFS не спасет вас.
Джоди Ли Брухон

@JodyLeeBruchon У вас есть источник кода Хемминга, который используется преимущественно сейчас? То, что я собирал в последнее время, показало, что производители дисков все еще используют CRC-RS. 1 2
Ян Шуновер

16

Да, это проблема, в основном из-за увеличения размеров дисков. Большинство дисков SATA имеют скорость URE (неисправимая ошибка чтения) 10 ^ 14. Или для каждых 12 ТБ данных, считанных статистически, производитель диска говорит, что диск возвратит ошибку чтения (вы обычно можете посмотреть их в спецификациях диска). Привод продолжит нормально работать для всех остальных частей привода. Диски Enterprise FC и SCSI обычно имеют скорость URE 10 ^ 15 (120 ТБ) вместе с небольшим количеством дисков SATA, что помогает уменьшить его.

Я никогда не видел, чтобы диски перестали вращаться в одно и то же время, но я столкнулся с проблемой raid5 (5 лет назад с потребительскими дисками PATA 5400 об / мин). Сбой диска, он помечен как мертвый, и на резервном диске происходит восстановление. Проблема заключается в том, что во время восстановления второй диск не может прочитать этот маленький блок данных. В зависимости от того, кто совершает рейд, весь объем может быть мертвым или просто этот маленький блок может быть мертвым. Предполагая, что только один блок мертв, если вы попытаетесь прочитать его, вы получите сообщение об ошибке, но если вы запишете его, накопитель переназначит его в другое место.

Существует несколько способов защиты от: raid6 (или эквивалентный), который защищает от сбоя двойного диска, лучше всего, дополнительные - это файловая система с поддержкой URE, такая как ZFS, использующая меньшие группы raid, так что статистически у вас меньше шансов попасть на диск URE. ограничения (зеркальное отображение больших дисков или raid5 меньших дисков), очистка диска и SMART также помогает, но на самом деле не является защитой сама по себе, а используется в дополнение к одному из вышеуказанных методов.

Я управляю около 3000 шпинделей в массивах, и массивы постоянно чистят диски в поисках скрытых URE. И я получаю довольно постоянный поток из них (каждый раз, когда он находит тот, который исправляет это перед отказом диска и предупреждает меня), если бы я использовал raid5 вместо raid6, и один из дисков полностью отключился ... быть в беде, если он попал в определенные места.


2
В каких подразделениях вы говорите? «10 ^ 14» не является «скоростью».
Джей Салливан

2
Единицей будет, например, «10 ^ 14 бит чтения на ошибку», что равняется 12 ТБ чтения на ошибку.
Джо Лисс

2
И, конечно же, следует помнить, что частота ошибок обычно указывается в терминах ошибок полного сектора на считанные биты. Поэтому, когда производитель заявляет, что значения URE равны 10 ^ -14, они на самом деле имеют в виду, что вероятность любого случайного чтения сектора, попавшего в URE, составляет 10 ^ -14, и если это так, то весь сектор возвращается как нечитаемый. Это и тот факт, что это статистика; в реальном мире URE имеют тенденцию приходить партиями.
CVn

9

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

Если бит переворачивается, диск содержит достаточно избыточных данных, которые могут быть исправлены при следующем чтении этого сектора. Это можно увидеть, если вы проверите статистику SMART на диске как «Исправляемый уровень ошибок».

В зависимости от деталей диска, он может даже восстанавливаться после более одного перевернутого бита в секторе. Будет ограничение на количество перевернутых битов, которые могут быть скорректированы в автоматическом режиме, и, возможно, еще одно ограничение на количество перевернутых битов, которые могут быть обнаружены как ошибка (даже если для исправления уже нет достаточно надежных данных)

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


2
На самом деле, у меня регулярно возникают ошибки из-за гниения (в некоторых частях я мало читаю), которые система молча восстанавливает (неправильно). Если, по крайней мере, он уведомил меня о том, что произошла бит-гниль, я мог бы перечитать данные, чтобы восстановить их до того, как они станут невосстановимыми; и если это невозможно исправить, я смогу сравнить его с другим жестким диском.
Алекс

Алекс, пожалуйста, проверьте данные жесткого диска SMART и системную память, чтобы убедиться, что нет другой проблемы, вызывающей повреждение. Гниение / случайное повреждение крайне редки, поэтому на вашей машине может происходить что-то еще.
Брайан Д.

@BrianD. Одна проблема заключалась в том, что я держал жесткие диски внутри их (изолированного) упаковочного материала; это приводило к тому, что жесткие диски нагревались до 60 ° C во время работы в течение нескольких дней подряд. Похоже ли это на законную причину, по которой могла произойти небольшая гниль?
Алекс

Это определенно не рекомендуется, так как большинство жестких дисков имеют небольшие воздушные отверстия, которые не должны быть закрыты для правильной работы. Независимо от того, была ли у вас проблема с гниением, я бы запустил полную диагностику на ПК, чтобы убедиться, что все работает правильно.
Брайан Д.

4

Современные жесткие диски (начиная с 199х) имеют не только контрольные суммы, но и ECC, которые могут обнаруживать и исправлять довольно «случайные» биты гнили. Смотрите: http://en.wikipedia.org/wiki/SMART .

С другой стороны, некоторые ошибки во встроенном программном обеспечении и драйверах устройств также могут повредить данные в редких случаях (в противном случае QA может их обнаружить), что будет трудно обнаружить, если у вас нет контрольных сумм более высокого уровня. В ранних драйверах устройств для SATA и сетевых адаптеров были повреждены данные как в Linux, так и в Solaris.

Контрольные суммы ZFS в основном направлены на ошибки в программном обеспечении более низкого уровня. Более новые системы хранения / базы данных, такие как Hypertable, также имеют контрольные суммы для каждого обновления для защиты от ошибок в файловых системах :)


3

Теоретически, это повод для беспокойства. Практически говоря, это одна из причин того, что мы храним резервные копии детей / родителей / бабушек и дедушек. Ежегодное резервное копирование должно храниться не менее 5 лет, ИМО, и если у вас есть случай, когда дело пойдет дальше, файл, очевидно, не так важен.

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


1
Я не вижу, как помогает резервное копирование детей / родителей / бабушек и дедушек. В этой системе нет способа узнать, перевернут ли бит, потому что пользователь намеревался его изменить, или накопитель сделал это самостоятельно. Не без какой-то контрольной суммы.
Скоби

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

1
Резервные копии, которые возвращаются дольше, чем на неделю / месяц, увеличивают ваш шанс получить хорошую копию файла. Я, наверное, мог бы быть яснее об этом.
Кара Марфия

1
Проблема в том, откуда вы знаете, что у вас плохая копия? И как вы узнаете, какая из резервных копий является хорошей? Автоматизированным способом.
scobi

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

2

Да, это проблема.

Это одна из причин, почему RAID6 сейчас в моде (а также увеличение размеров HD увеличивает время восстановления массива). Наличие двух блоков четности позволяет создать дополнительную резервную копию.

Системы RAID теперь также выполняют очистку RAID, которая периодически считывает дисковые блоки, проверяет их на четность и заменяет их, если обнаруживает, что блок неисправен.


Будьте осторожны, целостность данных не является характеристикой всех систем RAID.
duffbeer703

1
С терабайтными дисками существует так много битов, которые разделяют судьбу, а физическая область хранения битов настолько мала, что эта проблема становится более важной. В то же время вероятность сбоя увеличивается с терабайтными дисками, поэтому RAID6 недостаточно, если вы не помещаете много дисков в пул, скажем, 8 или больше. При меньшем количестве дисков лучше использовать череду зеркал RAID 10. RAID 1 (raidz2) и RAID 10 (zpool create mypool mirror c0t1d0 c0t2d0 mirror c0t3d0 c0t4d0) возможны в ZFS.
Майкл Диллон

RAID не может определить, какие данные хороши, а какие нет, поэтому он не может исправить ошибки, он просто может их обнаружить.
Amok

Amuck: Не как часть «стандарта RAID», как такового, но продвинутые системы RAID (прошивки и т. Д.)
Делают

@ Michael Dillion - надежность RAID6 не увеличивается с увеличением количества дисков. Для всех данных есть только исходные данные + 2 паритета. Увеличение числа дисков ухудшает надежность, поскольку увеличивает вероятность отказов дисков без увеличения избыточности любых данных. Единственная причина увеличить количество дисков, это увеличить доступный объем хранилища.
Брайан Д.

1

Что касается заявления ОП о том, что RAID не понимает, какие данные хороши против плохих.

Контроллеры RAID используют как минимум (четные / нечетные) биты четности на каждой полосе данных. Это для всего; полосы данных на диске и полосы данных четности (резервной копии).

Это означает, что для любого типа RAID с чередованием для избыточности (RAID 5/6) контроллер может точно определить, изменилась ли исходная полоса данных, а также изменилась ли полоса данных избыточности.

Если вы вводите вторую избыточную полосу, такую ​​как RAID6, у вас должно быть 3 полосы данных на трех разных дисках, которые повреждены, и все они соответствуют одним и тем же фактическим данным файла. Помните, что большинство RAID-систем используют относительно небольшие полосы данных (128 КБ или меньше), поэтому шансы «битой гнили», выстилающей до тех же 128 КБ, одного и того же файла, практически невозможны.


0

Да, это проблема реального мира, но вопрос в том, стоит ли беспокоиться об этом или нет.

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

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