Я понимаю аргумент относительно повышенной вероятности возникновения URE во время восстановления, но я не уверен, каковы реальные последствия этого. Этот ответ говорит, что вся перестройка не удалась, но означает ли это, что все данные недоступны? Почему это могло быть? Разумеется, один URE из одного сектора на диске повлияет только на данные, относящиеся к нескольким файлам, самое большее. Разве массив не будет восстановлен, только с небольшим повреждением нескольких файлов?
(Меня особенно интересует реализация RAID5 в ZFS, но логика кажется одинаковой для любой реализации RAID5.)
Это действительно зависит от конкретной реализации RAID:
большинство аппаратных RAID прервут реконструкцию, а некоторые также помечают массив как не смогли, сбивая его. Обоснование состоит в том, что если URE происходит во время восстановления RAID5, это означает, что некоторые данные являются потерян, поэтому лучше полностью остановить массив, чем рисковать незаметным повреждением данных. Примечание: некоторые аппаратные RAID (в основном на основе LSI) вместо этого прокол массив, позволяя продолжить перестройку, отмечая затронутый сектор как нечитаемый (аналогично тому, как ведет себя программный RAID Linux).
Программному RAID Linux можно дать указание: а) остановить перестроение массива (единственное поведение "старых" сборок MDRAID / ядер) или б) продолжить процесс перестройки, пометив некоторые LBA как плохие / недоступные. Обоснование состоит в том, что лучше позволить пользователю сделать свой выбор: в конце концов, один URE может находиться на свободном пространстве, не затрагивая данные вообще (или затрагивая только неважные файлы);
ZRAID покажет, что какой-то файл поврежден, но продолжит процесс восстановления (см. Вот для примера). Опять же, причина состоит в том, что лучше продолжить и сообщить пользователю, что позволит ему сделать осознанный выбор.
Если произойдет URE, вы столкнетесь с некоторым повреждением данных в блоке, который обычно имеет размер от 256 КБ до 1 МБ, но это не означает, что ВСЕ данные на вашем томе будут потеряны. Что не так хорошо в RAID5, так это совсем другое: восстановление само по себе вызывает стресс, и высока вероятность того, что второй диск подряд выйдет из строя. В таком случае все данные будут потеряны.
Я бы объяснил это наоборот;
Что может случиться, если RAID-контроллер не остановится на URE?
Я жил на сервере, RAID никогда не замечал URE, и после восстановления коррупция начала накапливаться на всем томе RAID.
После перестройки на диске стало больше плохих секторов, и данные начали повреждаться.
Диск никогда не был отключен от тома RAID, сбой контроллера - это работа по защите целостности данных.
Этот пример написан для того, чтобы заставить вас думать, что контроллер вообще не может протолкнуть том с URE, это для целостности данных, поскольку том не предназначен для резервного копирования, а для устойчивости к отказу диска.
Я бы посоветовал прочитать этот вопрос и ответы для получения дополнительной информации. Тогда иди и перечитай вопрос, с которым вы связались очередной раз.
Когда кто-то говорит об этой ситуации, что «RAID отказал», это означает, что вы потеряли преимущества RAID - вы потеряли непрерывный доступ к данным, что и было причиной, по которой вы изначально установили RAID-массив.
Вы не потеряли все данные, но наиболее распространенный способ восстановления с одного неработающего диска плюс (некоторых) URE на (некоторых) оставшихся дисках - это полное восстановление массива с нуля, что будет означать восстановление всех ваших данных. из резервной копии.