Это очень легко настроить (разделение строк для облегчения просмотра структуры):
# 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%, но только гарантирует вам выжить один отказ диска.