Мой друг говорит со мной о проблеме разбитых битов на дисках, которые случайным образом переворачивают и портят данные. Невероятно редко, но с достаточным количеством времени это может быть проблемой, и это невозможно обнаружить.
Диск не будет считать, что это плохой сектор, а резервные копии просто подумают, что файл изменился. Там нет контрольной суммы для проверки целостности. Даже в настройке RAID разница будет обнаружена, но не будет способа узнать, какая зеркальная копия является правильной.
Это настоящая проблема? И если так, что с этим можно сделать? Мой друг рекомендует zfs в качестве решения, но я не могу себе представить, как наши файловые серверы сгладят работу, установив Solaris и zfs ..
raid
hard-drive
zfs
scobi
источник
источник
Ответы:
Прежде всего: ваша файловая система может не иметь контрольных сумм, но ваш жесткий диск имеет их. Там SMART, например. Когда один бит слишком много перевернулся, ошибку, конечно, нельзя исправить. И если вам действительно не повезло, биты могут измениться таким образом, что контрольная сумма не станет недействительной; тогда ошибка даже не будет обнаружена. Таким образом, могут случиться неприятные вещи ; но утверждение о том, что случайное переключение битов мгновенно повредит ваши данные, является поддельным.
Однако, да, когда вы помещаете триллионы бит на жесткий диск, они не будут такими вечными; это настоящая проблема! ZFS может выполнять проверку целостности каждый раз, когда данные читаются; это похоже на то, что ваш жесткий диск уже делает сам, но это еще одна защита, ради которой вы жертвуете некоторым пространством, поэтому вы повышаете устойчивость к повреждению данных.
Когда ваша файловая система достаточно хороша, вероятность возникновения ошибки без обнаружения становится настолько низкой, что вам больше не нужно об этом заботиться, и вы можете решить, что наличие контрольных сумм, встроенных в используемый вами формат хранения данных, ненужным.
В любом случае: нет, это не невозможно обнаружить .
Но файловая система сама по себе никогда не может быть гарантией того, что любой сбой может быть восстановлен; это не серебряная пуля. У вас все еще должны быть резервные копии и план / алгоритм для того, что делать, когда обнаружена ошибка.
источник
Да, это проблема, в основном из-за увеличения размеров дисков. Большинство дисков 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, и один из дисков полностью отключился ... быть в беде, если он попал в определенные места.
источник
Жесткие диски обычно не кодируют биты данных как единые магнитные домены - производители жестких дисков всегда знали, что магнитные домены могут перевернуться, и встроить обнаружение и исправление ошибок в накопители.
Если бит переворачивается, диск содержит достаточно избыточных данных, которые могут быть исправлены при следующем чтении этого сектора. Это можно увидеть, если вы проверите статистику SMART на диске как «Исправляемый уровень ошибок».
В зависимости от деталей диска, он может даже восстанавливаться после более одного перевернутого бита в секторе. Будет ограничение на количество перевернутых битов, которые могут быть скорректированы в автоматическом режиме, и, возможно, еще одно ограничение на количество перевернутых битов, которые могут быть обнаружены как ошибка (даже если для исправления уже нет достаточно надежных данных)
Все это сводится к тому, что жесткие диски могут автоматически исправлять большинство ошибок по мере их появления и надежно обнаруживать большинство остальных. У вас должно быть большое количество битовых ошибок в одном секторе, которые произошли до того, как этот сектор будет прочитан снова, и ошибки должны быть такими, чтобы внутренние коды обнаружения ошибок снова увидели его как действительные данные, прежде чем вы когда-либо будет молчаливая неудача. Это не невозможно, и я уверен, что компании, эксплуатирующие очень большие центры обработки данных, видят, что это происходит (или, скорее, это происходит, и они не видят, что это происходит), но это, конечно, не такая большая проблема, как вы думаете.
источник
Современные жесткие диски (начиная с 199х) имеют не только контрольные суммы, но и ECC, которые могут обнаруживать и исправлять довольно «случайные» биты гнили. Смотрите: http://en.wikipedia.org/wiki/SMART .
С другой стороны, некоторые ошибки во встроенном программном обеспечении и драйверах устройств также могут повредить данные в редких случаях (в противном случае QA может их обнаружить), что будет трудно обнаружить, если у вас нет контрольных сумм более высокого уровня. В ранних драйверах устройств для SATA и сетевых адаптеров были повреждены данные как в Linux, так и в Solaris.
Контрольные суммы ZFS в основном направлены на ошибки в программном обеспечении более низкого уровня. Более новые системы хранения / базы данных, такие как Hypertable, также имеют контрольные суммы для каждого обновления для защиты от ошибок в файловых системах :)
источник
Теоретически, это повод для беспокойства. Практически говоря, это одна из причин того, что мы храним резервные копии детей / родителей / бабушек и дедушек. Ежегодное резервное копирование должно храниться не менее 5 лет, ИМО, и если у вас есть случай, когда дело пойдет дальше, файл, очевидно, не так важен.
Если вы не имеете дело с кусочками, которые потенциально могут сжечь чей-то мозг , я не уверен, что риск и вознаграждение вполне достижимы для изменения файловых систем.
источник
Да, это проблема.
Это одна из причин, почему RAID6 сейчас в моде (а также увеличение размеров HD увеличивает время восстановления массива). Наличие двух блоков четности позволяет создать дополнительную резервную копию.
Системы RAID теперь также выполняют очистку RAID, которая периодически считывает дисковые блоки, проверяет их на четность и заменяет их, если обнаруживает, что блок неисправен.
источник
Что касается заявления ОП о том, что RAID не понимает, какие данные хороши против плохих.
Контроллеры RAID используют как минимум (четные / нечетные) биты четности на каждой полосе данных. Это для всего; полосы данных на диске и полосы данных четности (резервной копии).
Это означает, что для любого типа RAID с чередованием для избыточности (RAID 5/6) контроллер может точно определить, изменилась ли исходная полоса данных, а также изменилась ли полоса данных избыточности.
Если вы вводите вторую избыточную полосу, такую как RAID6, у вас должно быть 3 полосы данных на трех разных дисках, которые повреждены, и все они соответствуют одним и тем же фактическим данным файла. Помните, что большинство RAID-систем используют относительно небольшие полосы данных (128 КБ или меньше), поэтому шансы «битой гнили», выстилающей до тех же 128 КБ, одного и того же файла, практически невозможны.
источник
Да, это проблема реального мира, но вопрос в том, стоит ли беспокоиться об этом или нет.
Если у вас есть только жесткий диск с фотографиями, это может не стоить усилий. Он полон важных научных данных, это может быть другая история, вы поняли.
источник