Друг говорит со мной о проблеме битовой гнили - биты на дисках беспорядочно переворачиваются, искажая данные. Невероятно редко, но со временем это может стать проблемой, и ее невозможно обнаружить.
Диск не будет считать, что это плохой сектор, а резервные копии будут просто думать, что файл был изменен. Контрольная сумма для проверки целостности не используется. Даже при настройке RAID разница будет обнаружена, но не будет способа узнать, какая зеркальная копия является правильной.
Это настоящая проблема? И если да, то что с этим делать? Мой друг рекомендует zfs в качестве решения, но я не могу представить себе, как можно выровнять наши файловые серверы на работе, установив Solaris и zfs ..
Во-первых: ваша файловая система может не иметь контрольных сумм, но они есть на вашем жестком диске. Например, S.M.A.R.T. Разумеется, после того, как перевернулось слишком много, ошибку уже нельзя исправить. И если вам действительно не повезло, биты могут измениться таким образом, что контрольная сумма не станет недействительной; тогда ошибка даже не будет обнаружена. Итак, гадости жестяная банка случиться; но утверждение, что случайное переключение битов мгновенно испортит ваши данные, является подделкой.
Однако да, если вы поместите триллионы бит на жесткий диск, они не останутся такими навсегда; вот настоящая проблема! ZFS может выполнять проверку целостности каждый раз при чтении данных; это похоже на то, что ваш жесткий диск уже делает сам, но это еще одна гарантия, ради которой вы жертвуете небольшим пространством, поэтому вы повышаете устойчивость к повреждению данных.
Когда ваша файловая система достаточно хороша, вероятность возникновения ошибки без обнаружения становится настолько низкой, что вам больше не нужно об этом заботиться, и вы можете решить, что наличие контрольных сумм, встроенных в формат хранения данных, который вы используете. ненужный.
В любом случае: нет, это не невозможно обнаружить.
Но файловая система сама по себе никогда не может быть гарантией того, что каждый сбой можно исправить; это не серебряная пуля. У вас по-прежнему должны быть резервные копии и план / алгоритм действий при обнаружении ошибки.
Да, это проблема, в основном из-за увеличения размеров дисков. Большинство дисков SATA имеют коэффициент URE (неисправимая ошибка чтения) 10 ^ 14. Или для каждых 12 ТБ данных, считанных статистически, поставщик диска сообщает, что диск вернет ошибку чтения (обычно вы можете найти их в спецификациях диска). Привод продолжит нормально работать со всеми остальными частями привода. Накопители Enterprise FC и SCSI обычно имеют коэффициент URE 10 ^ 15 (120 ТБ) вместе с небольшим количеством дисков SATA, что помогает его уменьшить.
Я никогда не видел, чтобы диски перестали вращаться в одно и то же время, но у меня была проблема с томом raid5 (5 лет назад с потребительскими дисками PATA со скоростью 5400 об / мин). Диск выходит из строя, он помечается как мертвый, и происходит восстановление резервного диска. Проблема в том, что во время восстановления второй диск не может прочитать этот маленький блок данных. В зависимости от того, кто совершает рейд, может быть мертв весь том или мертв только этот маленький блок. Предполагая, что мертв только один блок, если вы попытаетесь его прочитать, вы получите ошибку, но если вы напишете в него, диск переназначит его в другое место.
Существует несколько методов защиты от: raid6 (или аналогичный), который защищает от двойного сбоя диска, лучше всего, дополнительные - файловая система, поддерживающая URE, такая как ZFS, с использованием меньших групп рейдов, поэтому статистически у вас меньше шансов поразить диск URE Ограничения (зеркальное копирование больших дисков или меньших дисков raid5), очистка диска и SMART также помогают, но на самом деле не являются защитой сами по себе, но используются в дополнение к одному из вышеперечисленных методов.
У меня около 3000 шпинделей в массивах, и массивы постоянно чистят диски в поисках скрытых URE. И я получаю их довольно постоянный поток (каждый раз, когда он находит один, он исправляет его перед отказом диска и предупреждает меня), если бы я использовал raid5 вместо raid6, и один из дисков полностью отключился ... быть в беде, если он попадет в определенные места.
Жесткие диски обычно не кодируют биты данных как отдельные магнитные домены - производители жестких дисков всегда знали, что магнитные домены могут переворачиваться, и встраивают в диски обнаружение и исправление ошибок.
Если бит переворачивается, диск содержит достаточно избыточных данных, которые могут быть исправлены при следующем чтении этого сектора. Вы можете увидеть это, если проверите статистику SMART на диске, как «Частота исправимых ошибок».
В зависимости от характеристик диска, он даже должен иметь возможность восстановления после более чем одного перевернутого бита в секторе. Будет ограничение на количество перевернутых битов, которые можно беззвучно исправить, и, вероятно, еще одно ограничение на количество перевернутых битов, которые могут быть обнаружены как ошибка (даже если больше нет достаточно надежных данных для ее исправления)
Все это сводится к тому, что жесткие диски могут автоматически исправлять большинство ошибок по мере их возникновения и надежно обнаруживать большую часть остальных. У вас должно быть большое количество битовых ошибок в одном секторе, которые произошли до того, как этот сектор был снова прочитан, и ошибки должны быть такими, чтобы коды обнаружения внутренних ошибок снова видели их как действительные данные, прежде чем вы когда-нибудь случится тихая неудача. Это не невозможно, и я уверен, что компании, управляющие очень большими центрами обработки данных, действительно видят, как это происходит (или, скорее, это происходит, и они не увидеть, как это произойдет), но это, конечно, не такая большая проблема, как вы думаете.
Современные жесткие диски (начиная с 199x) имеют не только контрольные суммы, но и ECC, который может обнаруживать и исправлять довольно немного "случайного" битового гниения. Видеть: http://en.wikipedia.org/wiki/S.M.A.R.T.
С другой стороны, определенные ошибки в прошивке и драйверах устройств могут также приводить к повреждению данных в редких случаях (иначе QA обнаружит ошибки), что было бы трудно обнаружить, если у вас нет контрольных сумм более высокого уровня. Ранние драйверы устройств для SATA и сетевых карт приводили к повреждению данных как в Linux, так и в Solaris.
Контрольные суммы ZFS в основном нацелены на ошибки в программном обеспечении нижнего уровня. Более новая система хранения / базы данных, такая как Hypertable, также имеет контрольные суммы для каждого обновления для защиты от ошибок в файловых системах :)
Теоретически это повод для беспокойства. Фактически, это одна из причин того, что мы храним резервные копии детей / родителей / дедушек и дедушек. Ежегодные резервные копии должны храниться не менее 5 лет, ИМО, и если у вас есть случай, когда это происходит раньше, файл, очевидно, не так важен.
Если вы не имеете дело с битами, которые могут потенциально ликвидировать чей-то мозг, Я не уверен, что соотношение риска и вознаграждения вполне подходит для изменения файловой системы.
Да, это проблема.
Это одна из причин, по которой сейчас в моде RAID6 (а также увеличение размеров HD увеличивает время восстановления массива). Наличие двух блоков четности позволяет создать дополнительную резервную копию.
Системы RAID теперь также выполняют очистку RAID, которая периодически считывает блоки диска, проверяет четность и заменяет ее, если обнаруживает, что блок неисправен.
Что касается заявления OP о том, что RAID не понимает, какие данные хорошие, а какие плохие.
Контроллеры RAID используют как минимум биты четности (четность / нечетность) на каждой полосе данных. Это для всего; полосы данных на диске и полосы данных четности (резервной копии).
Это означает, что для любого типа RAID, который имеет чередование для избыточности (RAID 5/6), контроллер может точно определить, изменилась ли исходная полоса данных, а также изменилась ли полоса данных избыточности.
Если вы вводите вторую избыточную полосу, такую как RAID6, у вас должно быть 3 полосы данных, на трех разных дисках будут повреждены, и все они будут соответствовать одним и тем же фактическим данным файла. Помните, что в большинстве систем RAID используются относительно небольшие полосы данных (128 Кбайт или меньше), поэтому вероятность того, что "битовая гниль" выровняется до тех же 128 Кбайт того же файла, практически невозможна.
Да, это проблема реального мира, но вопрос в том, стоит ли вам об этом беспокоиться или нет.
Если у вас есть только жесткий диск с фотографиями, это может не стоить усилий. Он полон важных научных данных, это может быть другая история, вы поняли.