Если система RAID5 испытывает URE во время восстановления, все ли данные потеряны?

23

Я понимаю аргумент, касающийся увеличения вероятности появления URE на больших дисках во время перестройки, однако я не уверен, каковы реальные последствия для этого. Этот ответ говорит о том, что полное восстановление не удалось, но означает ли это, что все данные недоступны? С чего бы это? Конечно, один URE из одного сектора на диске может повлиять только на данные, относящиеся к нескольким файлам, в лучшем случае. Разве массив не будет перестроен, просто с небольшим повреждением нескольких файлов?

(Я особенно заинтересован в реализации RAID5 в ZFS здесь, но логика кажется одинаковой для любой реализации RAID5.)

process91
источник
1
В общем, когда «вероятность возникновения URE во время перестроения » обсуждается в контексте рисков RAID5, подразумевается, что более раннее повреждение уже произошло, что вызвало необходимость перестройки. Другими словами, «URE во время перестроения» является вторым URE, и действительно ВСЕ данные будут потеряны.
Кольт
1
@Colt - я понимаю, что это подразумевается, но я не понимаю, почему один URE (который при анализе того, почему RAID5 не рекомендуется, ссылается на плохой сектор) будет означать, что все данные будут Потерянный. В общем, если я потерял 1 диск массива RAID5, у меня все еще есть все данные. Если я дополнительно потеряю один сектор из любого из оставшихся дисков, то возможно, что я потерял данные, которые были сохранены в этом секторе, но если этот сектор был (например) свободным пространством, то мне все равно, и если этот сектор если есть данные, то это может повлиять только на несколько файлов.
process91
@Colt - Судя по приведенным ниже ответам, кажется, что неспособность перестроить массив в присутствии одного URE была выбрана производителями аппаратного RAID. На мой взгляд, это был неправильный выбор, но, к счастью, ZFS делает это по-другому.
process91
Смотрите ответ @ shodanshok для процесса. Что касается того, почему, RAID предназначен для обеспечения непрерывного доступа к надежным данным для других процессов, приложений и т. Д., А не для резервного копирования. Причина, по которой многие (большинство?) Аппаратные контроллеры прерывают работу после восстановления URE, заключается в том, что RAID больше не может делать то, что должен . На этом этапе необходимо использовать резервные копии для получения надежных данных. Другой способ использовать RAID - вообще не делать никаких перестроений, а просто использовать RAID для контроля времени восстановления из резервной копии. Кроме того, это позволяет сделать окончательное резервное копирование перед восстановлением.
Кольт
Обратите внимание, что «реализация ZFS RAID5» называется «raidz» или «zraid» и отличается от аппаратного RAID5. Как правило, вы получите более точные ответы о том, что «ZFS RAID5» задает вопрос о «raidz»
Джош

Ответы:

24

Это действительно зависит от конкретной реализации RAID:

  • большинство аппаратных RAID прервет реконструкцию, а некоторые также пометят массив как сбойный , что приведет к его отключению. Смысл заключается в том, что если URE происходит во время RAID5 восстановить это означает , что некоторые данные будут потеряны, так что лучше , чтобы полностью остановить массив , а что рискует беззвучное искажение данных. Примечание: некоторые аппаратные RAID (в основном на базе LSI) вместо этого будут пробивать массив, позволяя продолжить перестройку, помечая уязвимый сектор как нечитаемый (аналогично тому, как ведет себя программный RAID Linux).

  • В программном RAID-массиве Linux можно указать: а) прекратить перестройку массива (единственное поведение "древних" сборок MDRAID / ядер) или б) продолжить процесс перестройки, помечая некоторые LBA как плохие / недоступные. Обоснование состоит в том, что лучше позволить пользователю делать свой выбор: в конце концов, один URE может находиться в свободном пространстве, не затрагивая данные вообще (или затрагивая только несущественные файлы);

  • ZRAID покажет какой - то файл , как поврежденные, но она будет продолжать процесс перестроения (см здесь для примера). Опять же, обоснование заключается в том, что лучше продолжать и сообщать пользователю, что позволяет ему сделать осознанный выбор.

shodanshok
источник
@ process91 Просто, чтобы уточнить немного. Если реализация RAID не имеет дополнительных структур данных, необходимых для пометки отдельных секторов как плохих, она должна либо потерпеть неудачу в перестроении, либо ввести тихое повреждение. Маркировка отдельных секторов как плохих лучше, но все же может поставить под угрозу другие секторы из-за тех, кто разделяет паритетный сектор с плохим сектором.
Касперд
@kasperd Конечно, я предполагаю, что большинство реализаций RAID имели возможность предупреждать пользователя о плохих секторах. Я понимаю, если на одном диске есть поврежденный сектор, который после перестройки приведет к неправильному сектору на новом диске. Тем не менее, даже если реализация RAID не сделала ничего, кроме предупреждения пользователя: «Я восстановил диск настолько хорошо, насколько смог, но в процессе я испытал 1 URE», а затем продолжил разрешать попытки записи в этот сектор, я не делаю Посмотрите, как другие сектора могут быть в опасности. Единственными возможными неправильными секторами будут оригинал, новый и паритет.
process91
Одно пояснение, основанное на комментариях @Colt выше - в случае аппаратного RAID, когда он помечает массив как отказавший , он все еще разрешает доступ к данным? Даже, скажем, доступ только для чтения для целей восстановления?
process91
@ process91 Разрешение повреждения сектора не считается хорошей идеей, даже если этот факт был записан в файл журнала. Вы бы не знали, какой файл может быть поврежден. RAID должен убедиться, что при чтении этого файла вы получите ошибку. Также очевидно, что вы не хотите просто перезаписывать поврежденный сектор, потому что это означает, что вы просто потеряли последний шанс восстановить данные. Таким образом, у вас есть нечитаемый сектор на одном диске и сектор на новом диске, где вы не знаете, что писать. Это может быть два разных файла повреждены.
Касперд
1
@ process91 Я добавил примечание о массивах на основе LSI. Посмотри.
Shodanshok
8

Если произойдет URE, вы столкнетесь с некоторым повреждением данных в блоке размером 256 КБ-1 МБ, но это не означает, что ВСЕ данные на вашем томе будут потеряны. Что не так хорошо в RAID5, это совсем другое: сама перестройка вызывает стресс, и есть большие шансы, что вы получите второй сбой диска подряд. В таком случае все данные будут потеряны.

BaronSamedi1958
источник
2
Как восстановление RAID5 более напряженно на одном диске, чем восстановление RAID1? Я вижу, что это больше нагружает процессор, но для любого конкретного диска мы просто читаем все данные с него. Обычно опасность, которую люди приводят в связи с большими дисками, заключается в том, что они, вероятно, столкнутся с URE во время перестройки, но я согласен, если это просто означает, что один сектор будет поврежден.
process91
3
Это теория вероятностей. С N (где это число дисков) ваши шансы на отказ в N раз выше.
BaronSamedi1958
1
Это не совсем то, как будут работать вычисления, вы на самом деле хотите рассчитать 1 - вероятность отсутствия сбоя, но я понимаю эту часть. Кажется, я неправильно истолковал ваше утверждение как предполагающее, что процесс восстановления RAID5 как-то более напряжён на самом диске (который я читал в другом месте), что увеличивает вероятность URE, но если это не то, что вы повторяю, я согласен.
process91
2

Я бы объяснил это наоборот;

Если контроллер RAID не останавливается на URE, что может произойти?

Я жил на сервере, RAID никогда не замечал URE, и после восстановления началось повреждение на всем томе RAID.

После восстановления диск стал становиться более поврежденным, и данные начали повреждаться.

Диск никогда не был сброшен с тома RAID, сбой контроллера - это задача по защите целостности данных.

Этот пример написан, чтобы заставить вас думать, что контроллер вообще не может использовать том с URE для обеспечения целостности данных, так как том предназначен не для резервного копирования, а для устойчивости к отказу диска

yagmoth555 - GoFundMe Monica
источник
1
Я вижу, что все новые модераторы постоянно проверяют сайт, ищут, чем заняться ...
Уорд - Восстановить Монику
1
Почему один URE создает повреждение во всем томе RAID?
process91
2
Извините, я перечитал ваш ответ. Похоже, у вас был один плохой URE во время восстановления, но это не было проблемой. Проблема заключалась в том, что после восстановления сборки сектора продолжали работать плохо, и накопитель никогда не сообщал об этом. Однако это кажется отдельной проблемой, связанной с тем, замечает ли контроллер RAID URE во время перестройки. Контроллер RAID может заметить URE во время перестроения и предупредить вас об этом, но все же приступить к завершению перестроения. Некоторые данные всегда будут лучше, чем никаких данных.
process91
2
Меня интересует только анализ того, почему RAID5 был признан «мертвым» в 2009 году, что зависит от вероятности использования одного URE. Теперь я понимаю, что этот анализ был математически неверным и не совсем применим, например, к ZFS.
process91
1
@RobMoir Думаю, в вашем последнем утверждении я не согласен. Получение почти всех моих данных из массива может быть полезно, даже если у меня будет другая резервная копия. Возможно, этот файл не был важен, или (в случае аппаратного RAID) ошибка произошла в области свободного пространства. Я думаю, что для аппаратного RAID (где он не знает, какие именно файлы были затронуты) правильным решением было бы предупредить пользователя, завершить восстановление и перевести массив в режим только для чтения. Я не вижу никаких минусов в этом. (Очевидно, что файловые системы, такие как ZFS, могут работать даже лучше, поскольку они могут сообщать об уязвимых файлах.)
process91,
1

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

Когда кто-то говорит об этой ситуации, что «сбой RAID», это означает, что вы потеряли преимущество RAID - вы потеряли постоянный доступ к данным, из-за чего вы изначально создали RAID-массив.

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

Опека - Восстановите Монику
источник
1
Обычно вы используете RAID, когда ваша цель - минимизировать время простоя. Продолжение работы массива с неизвестным и не восстановленным повреждением обычно противоречит этой цели.
Дэвид Шварц
1
Спасибо, тот первый вопрос, с которым вы связались, был очень информативным. Почему я потерял бы постоянный доступ к данным? Массив все еще будет работать во время перестройки, и если он встретит URE во время перестройки, то я ожидаю, что он просто продолжит работу, хотя этот сектор данных теперь поврежден. Разве это не так?
process91