Является ли горизонтальное разбиение групп дисков на разные виртуальные устройства ZFS хорошей идеей?

Является ли горизонтальное разбиение групп дисков на разные виртуальные устройства ZFS хорошей идеей?
 ---------------------------  +-------+ --------
                              |       |
                              | 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 ТБ полезного пространства, все из которого резервируется, с гораздо менее искаженной настройкой.

Связанный контент