--------------------------- +-------+ --------
| |
| part | vdev 1
| | no redundancy
------------------ +-------+ +-------+ --------
| | | | vdev 2
| part | | part | mirroring
| | | | (2 mirrors)
-------- +-------+ +-------+ +-------+ --------
| | | | | | vdev 3
| part | | part | | part | mirroring
| | | | | | (3 mirrors)
+-------+ +-------+ +-------+ +-------+ --------
| | | | | | | | vdev 4
| part | | part | | part | | part | raidz2
| | | | | | | |
+-------+ +-------+ +-------+ +-------+ -------
Disk Disk Disk Disk
1TB 2TB 3TB 4TB
Допустим, у меня есть несколько дисков разного размера, и я хочу разбить их на разделы, чтобы использовать все доступное пространство, одновременно объединяя разделы в виртуальные устройства с разной степенью избыточности.
Я имею в виду конструкцию, похожую на лестницу, как показано выше.
Каждый диск с 1 по 4 разделен на 1,2,3 или 4 раздела соответственно, размером 1 ТБ. Каждый диск разделен между 1,2,3 или 4 vdev соответственно.
- vdev 1 предназначен для некритических данных (без избыточности)
- vdev 2 содержит данные, которые дублируются один раз
- vdev 3 хранит критически важные данные, которые дублируются дважды с помощью 3 зеркал.
- vdev 4 содержит критические данные, которые дублируются дважды, используя двойную четность. Это должно иметь ту же надежность, что и vdev 3, но более эффективно с точки зрения пространства.
Учитывая, что у меня нет четкого представления о том, как ZFS размещает данные внутри, мне интересно, будет ли разделение диска на несколько виртуальных устройств обычной практикой или это будет бессмыслицей с точки зрения производительности и надежности.
решение1
Производительность станет ужасной, если вы одновременно обратитесь к нескольким из этих пулов.
Трехстороннее зеркалирование вряд ли принесет вам какую-либо пользу, за исключением пустой траты дискового пространства.
RAIDZn имеет производительность IOPS, сопоставимую с производительностью одного диска.
С точки зрения надежности будьте осторожны, так как потеря любого, кроме самого маленького диска, приведет к деградации нескольких пулов. Деградированное состояние сопровождается падением производительности.
Также учтите свои накладные расходы. У вас 10 ТБ дисков, но 5 ТБ полезного пространства, из которых 1 ТБ не имеет избыточности.
Вероятно, вам будет лучше с договоренностью, где у вас есть два пула, 2+3 и 4+1, и вы используете sanoid/syncoid для регулярного (ежечасного) снимка и переноса данных из основного пула 2+3 в резервный пул 4+1. Это все еще дает вам 5 ТБ полезного пространства, все из которого резервируется, с гораздо менее искаженной настройкой.