Пул ZFS RAID 10 со смешанным диском

552
Artico

У меня есть 4 диска: 2x2TB и 2x1TB. Все тот же RPM 7200 и производитель. ОС Ubuntu 16.04. Я хочу создать пул RAID 10, но я слышал, что смешивание дисков по размеру не подходит для ZFS - поправьте меня, если я ошибаюсь ... Итак, какой из этих трех вариантов лучше («m» означает зеркало ):

  1. Зеркала целые диски: (2 ТБ м 2 ТБ) + (1 ТБ м 1 ТБ).
  2. Разделите диски по 2 ТБ на разделы по 1 ТБ: (1 ТБ м 1 ТБ) + (1 ТБ м 1 ТБ) + (1 ТБ м 1 ТБ).
  3. Два отдельных пула: (2 ТБ м 2 ТБ) и (1 ТБ м 1 ТБ).

Лично мне не очень нравится третий вариант, но, может быть, он самый стабильный? Я новичок в ZFS, поэтому, пожалуйста, предложите.

Я сделал изображение, чтобы проиллюстрировать второй вариант:

image of option 2

3

1 ответ на вопрос

1
Dan

Прежде чем ответить на ваш вопрос, откажитесь от ответственности: очевидно, что проще всего использовать дублирующееся оборудование. Стоит отметить, что даже если ваши устройства одного и того же производителя и имеют одинаковое количество оборотов в минуту, пропускная способность между ними будет разной для данного размера ввода-вывода (поскольку диски емкостью 2 ТБ, вероятно, имеют более высокую плотность байтов на кольцо), а число количество операций ввода-вывода в секунду будет одинаковым между ними, даже если в случае случайного чтения накопители на 2 ТБ будут удваиваться в два раза чаще. В принципе, в любом случае вы будете иметь асимметричную производительность: диски объемом 2 ТБ работают в ~ 2 раза лучше при больших вводах-выводах, а диски емкостью 1 ТБ - в ~ 2 раза лучше при коротких случайных ввода-выводах.

Я собираюсь ответить, предполагая, что вы не хотите продавать свои диски емкостью 1 ТБ, чтобы купить еще один диск емкостью 2 ТБ. По твоему вопросу я не могу точно сказать - какой у тебя желаемый уровень репликации? Несмотря ни на что, есть два правила, которым вы должны следовать:

  1. Вам лучше позволить ZFS сконфигурировать полные диски в zpool, потому что семантика сбоя, когда один диск выходит из строя, намного проще, чем если два раздела могут выйти из строя вместе (когда диск, на котором они оба находятся, выходит из строя).
  2. Проще добавить новые диски в пул позже, если ваш узел верхнего уровня в пуле является чередующимся vdev. Таким образом, вы всегда можете добавлять группы дублирующихся новых устройств одновременно, и не имеет значения, соответствуют ли их размеры размерам существующих устройств в пуле.

Если вы хотите зеркало с двумя дисками, ваш вариант 1 кажется мне лучшим. Если вы когда-нибудь купите другой диск, купите секунду того же типа и добавьте их как новое зеркало под полосатым узлом в этом дереве:

striped mirror 2TB 2TB mirror 1TB 1TB 

Если вы хотите зеркало с 3 дисками, вы можете сделать зеркало, как это, но добавить устройства к нему позже сложнее (добавить их как другое зеркало? Добавить их как еще одну полосу в области 1 ТБ?):

mirror 2TB 2TB striped 1TB 1TB 

Если вы хотите использовать RAID-Z, я бы порекомендовал просто не использовать устройства разных размеров, или вы можете купить еще несколько устройств по 2 ТБ и 1 ТБ и распределить их по нескольким группам RAID-Z.

Альтернативным методом репликации данных в ZFS является copies=Nпараметр, который вы можете установить для файловых систем в пуле. Это может быть заманчиво для вашего варианта использования, но учтите, что это не помогает при всех проблемах с потерей данных - сбой на уровне устройства все равно приведет к невозможности использования всего пула. (Основным вариантом использования для этого являются повреждения на диске.)

Похожие вопросы