Я думаю, что это было недоразумение в старой теме. Я сравнивал вероятность сбоя для двух дисков подряд при использовании либо рейда с проверкой четности 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, чтобы вы получали информацию о контрольной сумме и быстрее восстанавливали время при неисправимых сбоях.
В любом из вышеперечисленных случаев вам необходимо иметь резервную копию. Если вы не можете или не хотите позволить себе какую-либо резервную копию, это то, что вам удобнее потерять - некоторые части пула с большей вероятностью или все с меньшей вероятностью. Я лично выбрал бы первый вариант, но вы можете решить иначе.