1

В этом вопросе Михаэль Кьёрлинг и user121391, похоже, утверждают, что RAIDZ1 (эквивалент ZFS для RAID5) ненадежен и что мне следует использовать RAIDZ2 (эквивалент ZFS для RAID6). user121391 комментирует там:

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

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

Мой вопрос - является ли RAIDZ1 постепенным улучшением отсутствия отказоустойчивости, учитывая, что я не хочу жертвовать более чем 25-33% от общего размера пула на службу отказоустойчивости, или это резко увеличит шансы, что в случае сбоя одного диска весь пул полностью выйдет из строя, что приведет к полной потере данных.

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

2 ответа2

1

В ответе, который вы цитировали, подразумевается, что с увеличением емкости хранилища вероятность сбоя увеличивается соответственно не только для восстановления работы, но и для нормальной работы. Так что, говоря статистически, RAIDZ1 не более отказоустойчив, чем Raid 0, когда речь идет о современных накопителях емкостью 4 ТБ, даже если это доказано на первый взгляд.

Поэтому некоторые утверждают, что RAIDZ1, на самом деле, не увеличивает защиту от потери данных на жестких дисках большой емкости. Это имеет меньшее отношение к механическому отказу привода (ов) или, по крайней мере, к критическому отказу. URE, проще говоря (и очень упрощенно), - это неспособность читать. Будь то из-за длительного чтения из поврежденного сектора диска, из-за отсутствия диска в резервных секторах - или по любой другой причине - это на самом деле не проблема. Это произойдет, нравится вам это или нет. Затем давайте рассмотрим пример с плохим сектором. Обычно это обрабатывается внутренним накопителем, но если их достаточно, или накопителю потребуется время, чтобы исправить, что контроллер RAIDZ может интерпретировать задержку как сбой накопителя и извлечь его. Теперь давайте представим, что это ВТОРОЙ жесткий диск в пуле, и это произошло при восстановлении ... Единственное жизнеспособное решение - очистить массив от этих ошибок - если обнаружится раньше, ошибка будет просто отрыжкой - пул легко восстановит данные. Но это означает, что нагрузка на накопители довольно велика, что резко увеличивает статистические шансы URE (помните: возраст, записи, объем данных - все это значительно увеличивает его, не увеличивая чтения на порядок при обычных операциях; все для каждого диска отдельно).

Таким образом, ответ на ваш вопрос (is a RAIDZ1 an incremental improvement on no fault tolerance): не совсем. Если мы используем логику цитаты, вы сталкиваетесь с 50% -ной вероятностью (я думаю) достаточного количества сбоев диска для того, чтобы данные невозможно было восстановить в течение первых двух лет работы диска.

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

1

Я думаю, что это было недоразумение в старой теме. Я сравнивал вероятность сбоя для двух дисков подряд при использовании либо рейда с проверкой четности Z1, либо без RAID (как вы указали в комментариях в другом потоке). На мой взгляд, это никогда не касалось Z1 против полосатого пула базовых vdevs, потому что эта игра, по сути, окончена после первой ошибки, так что Z1, конечно, лучше.

Но если вы просто сравниваете несколько независимых пулов с одним пулом с одним vdev Z1, то проблема увеличения нагрузки при пересчете информации о четности остается.

При сравнении Z1 против Z2, о котором в основном говорил Михаил, применимы два других пункта. Я должен был быть более четким в комментариях, но, к сожалению, они ограничены в пространстве. Я надеюсь, что этот ответ кое-что прояснит.

Я думал о том же, но я не осознавал, что URE - это не просто переворот, это портит весь пул.

Если мы упростим все это, у вас будет диск с микросхемой контроллера снизу и ваше оборудование (контроллер RAID) или программное обеспечение (например, ZFS) на вершине.

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

Некоторые диски имеют функцию под названием TLER (восстановление с ограничением по времени), которая является жестким тайм-аутом, который ограничивает это время исправления ошибок до 6-9 секунд, потому что традиционно большинство аппаратных RAID-контроллеров сбрасывали весь диск через 9 секунд, поэтому один плохой сектор не должен делать весь диск недоступным, но должен исправляться "хорошим" сектором на других дисках (функция, на которую не может положиться один диск в настольной системе, поэтому предпочтительным будет длительный тайм-аут).

Теперь давайте посмотрим на сторону программного обеспечения: если вы сконфигурируете свой raid-контроллер или файловую систему ZFS с избыточностью, например, используя зеркальные диски или зеркало vdev в качестве основы для вашего пула, ваш URE можно исправить. Если вы не используете избыточность, данные по этому сектору исчезнут. Это могут быть данные, которые вас интересуют, или просто случайные старые временные данные или ничего, в зависимости от вашей удачи. То же самое относится и к битовым переворотам, хотя вероятность их возникновения, по-видимому, больше зависит от внешних эффектов (таких как космическое излучение).

Поскольку RAID0 не подлежит URE, вопрос заключается в том, что более вероятно: URE в RAIDZ или сбой диска в RAID0?"

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

Я предлагаю вам прочитать базовое объяснение структуры пула ZFS. Подводя итог наиболее важных битов:

  • Вы можете создавать виртуальные устройства (vdevs) из дисков, разделов или файлов. Каждый vdev может быть создан с разной избыточностью: базовая (без резервирования), зеркальная (от 1 до N дисков может выйти из строя), рейд контроля четности Z1/Z2/Z3 (1/2/3 диски могут выйти из строя). Все резервирование работает на уровне vdev.
  • Вы создаете пулы хранения из одного или нескольких vdevs. Они всегда чередуются, поэтому потеря одного vdev означает потерю всего пула.
  • Вы можете иметь любое количество независимых пулов. Если один пул потерян, другие пулы продолжают функционировать.

Поэтому вы можете обосновать следующее:

  • Если возможно, предпочтите Z2 вместо Z1 из-за увеличенной нагрузки и большого (отрицательного) шанса при восстановлении больших дисков (большие из которых больше чем 1 ТБ приблизительно)
  • Если вам нужно выбрать между Z1 и несколькими базовыми vdevs, предпочтите Z1 из-за исправления битовой ошибки, что невозможно с базовыми vdevs
  • Если вы можете принять частичную потерю пула, сегментируйте свой пул на несколько меньших пулов, каждый из которых поддерживается одним vdev, чтобы вы получали информацию о контрольной сумме и быстрее восстанавливали время при неисправимых сбоях.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .