Википедия сообщает: «RAID 2 - единственный стандартный уровень RAID, за исключением некоторых реализаций RAID 6, который может автоматически восстанавливать точные данные после однобитового повреждения данных».
Кто-нибудь знает, является ли реализация mdadm RAID 6 в Linux одной из таких реализаций, которая может автоматически обнаруживать и восстанавливать одноразрядные повреждения данных. Это относится к CentOS / Red Hat 6, если они отличаются от других версий. Я пробовал искать в Интернете, но безуспешно.
Поскольку частота ошибок SATA составляет 1 на 1E14 бит, а диск SATA 2 ТБ содержит 1,6E13 бит, это особенно важно для предотвращения повреждения данных.
ИЗМЕНИТЬ 17 июня 2015 г.
Я считаю, что это не так важно, как я думал изначально - см. Жесткий диск / SSD - обнаружение и обработка ошибок - надежно ли предотвращено тихое повреждение данных? Больше подробностей
Программный RAID Linux не защитит вас от битового повреждения, и незаметное повреждение данных является хорошо известной проблемой. Фактически, если ядро может читать данные с одного диска, оно никогда не узнает, что это плохо. RAID срабатывает только в случае ошибки ввода-вывода при чтении данных.
Если вас беспокоит целостность данных, вам следует подумать об использовании файловой системы, например Btrfs или ZFS которые обеспечивают целостность данных за счет хранения и проверки контрольных сумм. Эти файловые системы также заботятся о функциональности RAID, поэтому вам не понадобится рейд программного обеспечения ядра, если вы пойдете по этому пути.
RAID5 и RAID6 могут обнаружить и обычно исправить битовое повреждение, если вы проверите четность всего диска. Это называется «очисткой» или «проверкой четности» и обычно занимает от 24 до 48 часов в большинстве производственных RAID-систем. За это время производительность может значительно снизиться. (Некоторые системы позволяют оператору отдавать приоритет очистке, а не доступу для чтения / записи или ниже.) RAID6 имеет больше шансов исправить это, потому что он может исправить это, если у вас есть сбой двух дисков, тогда как RAID5 может обрабатывать сбой только 1 диска и сбои привода более вероятны при чистке из-за повышенной активности.
Все приведенные выше ответы неверны относительно возможностей RAID 6. Алгоритмы RAID 6 работают побайтно, как RAID 5, и если один байт на любом диске поврежден, даже если диск не указывает на ошибку, он может быть обнаруженными И ИСПРАВЛЕННЫМИ. Алгоритм этого полностью объяснен в
https://mirrors.edge.kernel.org/pub/linux/kernel/people/hpa/raid6.pdf
Чтобы выполнить эту проверку, диски с четностью P и Q также должны быть прочитаны вместе с дисками с данными. Если вычисленная четность P 'и Q' различается без ошибок дисковода, анализ может точно определить, какой из дисководов является неправильным, и исправить данные.
Вдобавок, если диск идентифицируется для диска, которого нет (например, диска 137, если имеется только 15 дисков), более одного диска предоставляют поврежденные данные ДЛЯ ЭТОГО БАЙТА, сигнализируя о неисправимой ошибке. Когда в наборе гораздо меньше 256 дисков, это обнаруживается с высокой вероятностью на каждый байт, а поскольку в блоке много байтов, с чрезвычайно высокой вероятностью на блок. Если идентификация диска не согласована для всех байтов в блоке RAID, опять же, более одного диска предоставляют поврежденные данные, и, как правило, можно отклонить условие, но до тех пор, пока все идентификаторы дисков действительны, блок не обязательно быть отклоненным.
Для выполнения этой коррекции требуется больше времени, чем обычная проверка, но ее нужно выполнить только с расчетом синдрома (P и Q), показывающим ошибку.
При всем этом, однако, я не исследовал код mdadm, чтобы определить, обрабатывается ли однобайтовое повреждение. Мне известно, что mdadm сообщает об ошибках синдрома RAID6 при ежемесячном сканировании, но из сообщения об ошибке неясно, исправляются ли они - он не останавливает массив дисков и не идентифицирует какой-либо конкретный диск в сообщении.
Я бы добавил это как комментарий, но у меня недостаточно репутации; Я хотел уточнить: RAID5 может ОБНАРУЖИТЬ повреждение бит, но он не знает, на каком диске есть повреждение, без ошибки чтения. В результате скраб не мог исправить это без ошибки чтения - он, скорее всего, просто зарегистрировал бы это и обновил бит четности для соответствия. Алгоритм RAID6 зависит от позиции, поэтому он может определить, на каком диске была ошибка, и исправить битовое повреждение.