ZFS: Зеркало против RAID-Z

14

Я планирую создать файловый сервер с использованием OpenSolaris и ZFS, которые будут предоставлять две основные службы - быть целью iSCSI для виртуальных машин XenServer и обычным домашним файловым сервером. Оборудование, на которое я смотрю, включает в себя 2 4-портовых контроллера SATA, 2 небольших загрузочных диска (по одному на каждый контроллер) и 4 больших диска для хранения. Это позволяет использовать один свободный порт на контроллер для обновления массива в будущем.

Меня немного смущает, как настроить накопители. Для производительности зеркальное отображение кажется королем. Мне трудно понять, какая польза от использования RAIDZ перед зеркалированием. При такой настройке я вижу два варианта - два зеркальных пула в одну полосу или RAIDZ2. Оба должны защищать от сбоев двух дисков и / или одного сбоя контроллера ... единственное преимущество RAIDZ2 заключается в том, что любые два диска могут выйти из строя. В обоих случаях объем хранилища должен составлять 50%, но первый должен иметь гораздо лучшую производительность, верно?

Другая вещь, которую я пытаюсь обернуть, это преимущество зеркальных массивов с более чем двумя устройствами. Что касается целостности данных, что, если таковые имеются, будет преимуществом RAIDZ по сравнению с трехсторонним зеркалом? Поскольку ZFS поддерживает целостность файлов, что RAIDZ вносит в таблицу ... разве проверки целостности ZFS не сводят на нет значение четности RAIDZ?

Джон Клейтон
источник

Ответы:

14

Простой ответ заключается в том, что для зеркального отображения чего-либо практически не требуется вычислительная мощность - он просто записывает на диск второй раз. Для RAID-Z2 вы должны вычислить совершенно новый блок контроля четности, который, хотя и небольшой, МОЖЕТ затормозить ЦП, когда вам нужно быстро записывать большие объемы данных.

Зеркалирование всегда является предпочтительным решением для высокоскоростных данных. Если это просто объемное хранилище без высоких скоростей записи, RAID-Z2 является хорошей альтернативой, которая позволяет любому из двух дисков умереть, как вы намекаете.

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

dotwaffle
источник
Но в ZFS, что дает блок четности RAIDZ? Обеспечивает ли это дополнительную целостность данных сверх того, что уже обеспечивает ZFS? Или просто нужно, чтобы умерли два любых диска? Если это единственное преимущество, то в трехстороннем сценарии RAIDZ не имеет преимуществ перед зеркалом, верно?
Джон Клейтон
1
RAID-Z позволяет умереть одному диску - если у вас есть 10 дисков, вы получите данные на 9 дисков. С RAID-Z2 у вас могут умереть два любых диска и 8 данных на диске. С зеркалом вы можете иметь половину дисков умереть, но только один из каждого набора из двух. Я подозреваю, что вы уже знаете это, но именно этот дополнительный случай 4 дисков, который дает два решения отказа двух дисков - RAID-Z2 и режим зеркалирования. Не существует дополнительных допусков целостности данных, которые являются «полезными» в обычном сценарии.
dotwaffle
Итак, чтобы было ясно, преимущество RAIDZ перед зеркалами - это немного больше защиты от сбоев оборудования? RAIDZ1 и зеркало с дисками X по сути эквивалентны?
Джон Клейтон
5
Контроль четности RAID-Z - это расширенный набор встроенных контрольных сумм ZFS. Вся контрольная сумма проверяет правильность считывания данных с дисков. Он предназначен для быстрой проверки с небольшими накладными расходами. Чётность RAID-Z дает вам возможность восстановить поврежденные данные в случае потери диска (или 2 для RAID-Z2). Но вычисления для генерации этих данных четности намного более ресурсоемки, чем простая контрольная сумма блока, и должны быть рассчитаны на всю полосу, даже если вы пишете только блок 4 КБ.
Размягчитель
4
@Джон Клейтон: уровень избыточности зависит от того, как вы настроили хранилище. Вы можете создать N-way зеркало, что означает, что ваша емкость данных равна размеру одного диска, но вы можете потерять диски N-1 без потери данных. Например, если у вас есть трехстороннее зеркало, все 3 диска содержат одинаковые данные, и вы можете потерять 2 диска без потери данных. Разница в том, что добавление дисков в N-way зеркало увеличивает избыточность (но ваша емкость всегда равна размеру 1 диска), в то время как добавление дисков в raidz2 увеличивает емкость (но ваша избыточность всегда составляет 2 диска).
ограбить
18

RAID-Z устраняет большинство потерь записи и проблем целостности данных, от которых страдают тома RAID 5/6, за счет некоторого процессорного времени. Как правило, системы имеют запасные циклы ЦП, поэтому тратить время ЦП на повышение производительности ввода-вывода и целостности данных - это хороший компромисс по сравнению с зеркалированием.

Вот подробное объяснение RAID-Z, которое может ответить на другие вопросы.

Кроме того, помните, что RAID является отказоустойчивым решением . Вы не используете RAID-Z2 для защиты от потери данных - вы делаете резервные копии или копируете их для этого. Вы выбираете реализацию RAID-Z2 против RAID-Z или RAID-10 против RAID-6 против RAID-5, чтобы сохранить работоспособность ваших систем в случае аппаратного сбоя.

duffbeer703
источник
1
Должен дать ответ dotwaffle, так как он помог мне понять техническую разницу. Хороший совет по назначению, хотя ... это действительно заставило меня остановиться и подумать.
Джон Клейтон
1
Важно отметить, что, хотя RAIDZ устраняет проблемы штрафов за запись , он создает проблемы штрафов за чтение из-за увеличения параллелизма для каждой операции чтения
the-wabbit