Это очень легко настроить (разделение строк для облегчения просмотра структуры):
# zpool create <poolname> \
mirror <disk1> <disk2> \
mirror <disk3> <disk4>
Это создаст пул с двумя полосами, каждая из которых является зеркалом между двумя дисками. Это хорошая гибкая настройка (легко добавлять новые диски, легко понять). Чтобы добавить еще одно зеркало в будущем, вы просто делаете:
# zpool add -n <poolname> \
mirror <disk5> <disk6>
would update '<poolname>' to the following configuration:
<poolname>
mirror
<disk1>
<disk2>
mirror
<disk3>
<disk4>
mirror
<disk5>
<disk6>
(При использовании опции -n
сначала выполняется пробный прогон и печатается конфигурация пула, которую вы можете проверить, что я всегда рекомендую, чтобы избежать неправильной конфигурации, от которой трудно / невозможно отказаться после свершившегося факта!)
Однако обратите внимание, что эта настройка "неэффективна" в том смысле, что она гарантирует безопасность данных только для одного сбоя диска: вы безопасны только для двух отказов, когда они происходят на разных полосах, что происходит в ~ 67% сценариев сбоя двух дисков. Кроме того, избыточные данные по-прежнему используют 50% вашего пула.
Существует менее гибкий формат ZFS для RAID, который называется RAID-Z и позволяет объединять все диски и обеспечивать эффективную защиту данных. (Я говорю менее гибко, потому что в будущем трудно добавить больше дисков в пул, хотя эта функция в настоящее время работает.) Есть raidz1
и raidz2
варианты, которые позволяют потерять до 1 или до 2 -х дисков , соответственно, независимо от того , какие диски терпят неудачу. Для 4 дисков одинакового размера вариант raidz2
прежнему будет использовать 50% вашего хранилища для резервирования, но гарантирует, что вы переживете два отказа диска; вариант raidz1
уменьшит ваши затраты на избыточность с 50% до всего лишь 25%, но только гарантирует, что вы выживете после одного отказа диска.