Рейтинг:8

Разрушает ли один неисправный диск + один поврежденный сектор весь RAID 5?

флаг in

Во время планирования настройки RAID на Synology Disk Station я много читал о различных типах RAID, и это отличное чтение: Уровни RAID и важность URE (неисправимая ошибка чтения).

Однако одно остается для меня неясным:

Допустим два сценария:

  1. Массив — это RAID 1 из 2 дисков
  2. Массив — это RAID 5 из 3 дисков

Одни и те же предположения для обоих сценариев:

  • Пусть на массиве RAID будет 100 000 файлов.
  • Отказ одного диска (требуется замена)
  • Во время перестроения массива случается один поврежденный сектор (URE).

Что происходит? Восстанавливается ли RAID с 99,999 файлами в порядке и 1 потерянный файл? Или я потеряю все 100 000 файлов?

Если для ответа требуется знание типа файловой системы, предположим, что файловой системой является BTRFS или ZFS.

djdomi avatar
флаг za
Логичный ответ: это зависит. Raid 1 — это прямая копия другого диска.Raid 5 требует для работы как минимум 3 диска, тогда как Raid 1 нужно только 2, но с тем фактом, что вы теряете емкость. И это зависит от того, какая ошибка. В случае ZFS может быть больше шансов снова получить правильный файл. Тем не менее, рейд никогда не станет решением для отказа от создания резервных копий.
флаг in
pts
Вы можете различать эти режимы отказа: 1. сектор недоступен для чтения и записи; 2. сектор не читается, но его можно перезаписать, и тогда он снова читается.
Andrew Henle avatar
флаг ph
*Что происходит? Восстанавливается ли RAID с 99,999 файлами в порядке и 1 потерянный файл? Или я потеряю все 100 000 файлов?* Может случиться и то, и другое. Вот почему у вас есть резервные копии. RAID - это не резервная копия! Тот факт, что ваши файлы находятся на массиве RAID, не делает их безопасными. Если кто-то запустит `rm -f -r /all/my/important/files`, они ***пропадут*** с каждого диска в RAID-массиве. Единственное, что делает RAID, — это повышает доступность ваших данных.
adamsfamily avatar
флаг in
@AndrewHenle Не могли бы вы подробнее рассказать о части «может случиться и то, и другое»? Спасибо
Andrew Henle avatar
флаг ph
Вы предполагаете, что ошибка чтения возникает только в данных файла. Это может произойти и в метаданных файловой системы. В зависимости от вашей файловой системы это может привести к потере всего, что хранится в файловой системе. Никогда не полагайтесь на RAID для защиты данных. Все, что он делает, это защищает вашу способность *доступа* к вашим данным от нескольких типов отказов диска.
J... avatar
флаг jp
RAID 5 абсолютно бесполезен для больших (т.е. современных) дисков потребительского класса - просто *не используйте его*. Конец истории. Согласно чистой статистике, подавляющая вероятность состоит в том, что у вас *будет* иметься хотя бы один URE во время перестроения, так что в большинстве случаев он обречен на неудачу. Даже в корпоративных условиях, где вероятность появления ошибок чтения на дисках обычно в 10 раз меньше, это все еще сомнительное решение. RAID 6 все еще работает, поэтому, если вы хотите использовать RAID с четностью, используйте его.
J... avatar
флаг jp
Dupe: [Если система RAID5 испытывает URE во время восстановления, все ли данные потеряны?] (https://serverfault.com/q/937547/221656)
Рейтинг:13
флаг ca

Краткий ответ заключается в том, что это зависит.

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

Некоторые другие контроллеры (в первую очередь от LSI) вместо этого прокол массив, помечая некоторые LBA как нечитаемые, но продолжая перестройку. Если нечитаемые LBA находятся в свободном пространстве, фактически никакие реальные данные не теряются, так что это лучший сценарий. Если они влияют на уже записанные данные, некоторая информация (надеюсь, малоценная) неизбежно будет потеряна.

Linux MDADM очень универсален: в последних версиях есть выделенная «область переназначения» для такого перфорированного массива. Кроме того, всегда можно использовать дд или же спасение сначала скопировать диск с нечитаемыми секторами на новый диск и использовать этот диск для повторной сборки массива (конечно, с некоторой потерей данных).

BTRFS и ZFS, благодаря большей интеграции со слоем распределения блоков, могут определять, находятся ли потерянные данные в пустом или выделенном пространстве, с подробным отчетом о затронутых файлах.

флаг jp
Однажды мне пришлось вернуть важный файл с шестидискового массива RAID-0 с двумя неисправными дисками в Solstice Disk Suite. Я обнаружил, что `ufsdump` по-прежнему считывает данные, но останавливается каждый раз, когда доходит до блока, который не может прочитать, и спрашивает, следует ли продолжить. `да | ufsdump` дал мне поток данных, который я мог передать в `ufsrestore`, и, поскольку мой важный файл был намного меньше, чем размер полосы RAID, я решил, что у меня есть шанс ~ 5/6 вернуть мой файл. Что я и сделал, вызвав огромную радость среди разработчиков — ах, хорошие времена!
J... avatar
флаг jp
Проблема с перфорациями заключается в том, что у вас нет простого способа узнать, были ли важные данные повреждены или нет, без полной проверки целостности, и вы не можете сделать это, если у вас нет хорошей резервной копии для проверки, и если вы Если у вас есть хорошая резервная копия для проверки, то нет веских причин для проверки целостности, когда вы можете просто восстановить данные из резервной копии и покончить с этим. Экономит много проверок. Вот почему контролеры предприятия считают все это тостом за прокол.
adamsfamily avatar
флаг in
@shodanshok Имеет ли смысл реализовать RAID с 2 избыточными копиями (3 диска, содержащих точно такие же данные), чтобы, если один диск выйдет из строя, а два других будут иметь несколько поврежденных секторов, статистически почти невозможно, чтобы эти поврежденные сектора перекрывались, поэтому надежность такой установки будет 99,99999%+?
флаг pl
Да, это называется RAID 6.
shodanshok avatar
флаг ca
@J ... проколотый массив точно не лучшая ситуация. Однако вы *можете* определить, какие данные затронуты: поскольку проколотый блок практически не читается, вы можете просто прочитать/выгрузить важные данные и проверить наличие ошибок копирования. Если вы не видите таких ошибок, ваши данные в порядке. В качестве альтернативы можно прочитать весь массив, проверить LBA первой ошибки чтения и отсюда идентифицировать затронутый файл. Это действительно сложная работа...
shodanshok avatar
флаг ca
@adamsfamily то, что вы описываете, - это трехсторонний RAID1. Это прекрасно выполнимо как с Linux MDRAID, так и с ZFS, но не все аппаратные контроллеры поддерживают его из-за очень больших затрат на пространство (пользователю доступно только 33% пространства). Если вы имеете дело с RAID с четностью, вам нужен RAID6 для двойного резервирования.
J... avatar
флаг jp
@shodanshok Да, это много работы. Проще всего восстановить из резервной копии. Если этого не сделать, есть риск, что вы пропустите потерю данных из-за прокола, а затем ваши неверные данные в конечном итоге вытеснят хорошие данные в вашей цепочке резервного копирования. Если у вас вообще нет резервных копий (серьезно?!), редко бывает веская причина прибегать к таким низкоуровневым методам восстановления данных.
shodanshok avatar
флаг ca
@J ... как и многое другое, это зависит: нечитаемый блок, обнаруженный во время резервного копирования, должен немедленно предупредить системного администратора, потому что сама резервная копия будет неполной (а не поврежденной). Более того, если вы можете быть уверены, что прокол находится на свободном месте, потери данных не произошло. Наконец, вы должны учитывать, что восстановление из резервной копии сопряжено с определенными рисками. Опять же, я не утверждаю, что перфорированный массив — это хорошо; это действительно плохая ситуация. Но мне также не нравятся поставщики оборудования, которые полностью уничтожают массив объемом 100 ТБ, потому что небольшие 512-битные сектора вышли из строя в неподходящее время...
J... avatar
флаг jp
@shodanshok Мне не нравятся системные администраторы, которые не учитывают риски запуска массива объемом 100 ТБ в RAID5, а затем бегут в слезах, когда все их данные повреждены ...
shodanshok avatar
флаг ca
@J... Я не защищаю большие массивы RAID5. Я только подчеркиваю, что я предпочитаю гибкую реализацию RAID, где я могу предпринять наиболее подходящие действия в зависимости от среды, вместо того, чтобы быть вынужденным внезапно справляться с уничтоженным и недоступным массивом, может быть, в рабочее время ... Но эй - не стесняйтесь не согласиться ;)
J... avatar
флаг jp
@shodanshok Конечно, я только хочу сказать, что если вы проснулись однажды утром с проколом в массиве RAID5 объемом 100 ТБ, лучшее, что вы могли бы сделать, это восстановить из резервных копий на RAID6 и покончить с этим. Может быть, вы сможете залатать этот прокол, но это только отбросит все проблемы, потому что это произойдет снова, и в следующий раз все может быть хуже.
adamsfamily avatar
флаг in
@AntonTykhyy Отвечая на: * Да, это называется RAID 6. * - Хорошо, просто поясню: в RAID6 после сбоя одного диска, а затем сбойного сектора на втором диске массив сможет успешно восстановиться, потому что он будет источником плохой сектор с другого диска? Ссылаясь на это чтение: https://www.zdnet.com/article/why-raid-6-stops-working-in-2019/
adamsfamily avatar
флаг in
@shodanshok Отвечая на: * То, что вы описываете, это трехсторонний RAID1. Это вполне выполнимо как с Linux MDRAID, так и с ZFS* — это отличная новость! У меня есть один сильный аргумент против «Лучше восстанавливаться из резервной копии» — я бы сказал, что это не потому, что если у вас есть живая система, работающая 24/7 (почти все в настоящее время), то восстановление из резервной копии означает простои, и это ужасно. . Я думаю, что гораздо лучше жить со штрафом 33/66% от 3-way RAID1, который окупится довольными клиентами и обслуживанием без простоев. Мне просто нужно выяснить, возможно ли это на Synology DS.
adamsfamily avatar
флаг in
@shodanshok Похоже, что Synology (с использованием Linux MDADM) поддерживает 3-сторонний, а также 4-сторонний RAID1, что может означать, что при ежегодной замене 1 жесткого диска система может работать почти вечно. (https://www.synology.com/en-global/company/news/article/Synology_Showcases_Full_featured_NAS_Server_the_DiskStation_and_its_System_Software_DiskStation_Manager_2_3_at_DSE_2010/Synology)
флаг pl
Да, это будет. Личный опыт.
J... avatar
флаг jp
@adamsfamily `восстановление из резервной копии означает простои` Если у вас есть прокол **вы уже отключены**, и продолжать использовать массив небезопасно, пока вы не сможете проверить его целостность. И да, RAID6 может допустить один неисправный диск и любое количество ошибок чтения, если два оставшихся диска не вызывают ошибок в одном и том же секторе. RAID5 — это абсолютный мусор в 2021 году, и это не самое правильное решение почти во всех случаях.
adamsfamily avatar
флаг in
@J...- *Если у вас есть прокол, вы уже не работаете * - Если у меня есть 3-сторонний RAID 1, и один диск выходит из строя, а на другом есть плохие сектора здесь или там, пока они не перекрываются, я должен быть в порядке с нулевое время простоя. Затем я могу заменить все неисправные диски один за другим и при этом оставаться в рабочем состоянии в течение 100% времени. Я что-то упустил?
J... avatar
флаг jp
@adamsfamily Единственное, чего вам не хватает, так это того, что описанная вами ситуация * не прокол *. Это *деградированный массив*, что означает, что он частично или полностью утратил свою избыточность, но оставшиеся данные остались нетронутыми. Массив RAID5 с плохим диском не прошивается — он деградирует. Если во время перестроения вы сталкиваетесь с URE, **тогда** ваш массив перфорирован (т. е. не все данные могут быть сохранены).
J... avatar
флаг jp
@adamsfamily Я предполагаю, что *в случае перфорированного RAID5* восстановление из резервной копии является лучшим вариантом, но особенно восстановление на *другой уровень RAID*, поскольку это дает вам возможность отказаться от RAID5 и восстановить резервную копию к более разумной архитектуре, которая не так подвержена проколам в будущем (например, RAID6, 3-way RAID1 и т. д.). RAID6 более эффективен с пространством, но медленнее и менее производительен. Любой из них будет лучше, чем RAID5, которому не хватает достаточной избыточности, чтобы действительно работать по назначению.
флаг jp
Если ваши данные действительно важны, рассмотрите возможность использования массива RAID-1 из 4 или более дисков. Ленивые аппаратные «рейдовые» контроллеры часто не поддерживают массивы RAID-1 размером более 2 дисков, хотя я не могу придумать серьезной причины, почему бы и нет. Но ИСТИННЫЙ рейд, сделанный в ядре linux с помощью mdadm, легко и без усилий его поддерживает. Кроме того, если вы используете btrfs, вы должны прочитать о том, как btrfs реализует методы, подобные рейдам, и дублирование на уровне тома. По сути, одна файловая система btrfs может охватывать несколько блочных устройств. И действительно аккуратно, он может делать два копирования raid1 на ТРИ диска, чередуя какие диски несут какие файлы
adamsfamily avatar
флаг in
@J... справедливое замечание, согласен.
adamsfamily avatar
флаг in
@Билли С. Интересно, никогда не слышал об этой возможности `btrfs`, которая может заменить RAID.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.