1

У меня есть (ZOL) пул zfs (без зеркала и raidz) с именем primaryPool

# zfs list
NAME                     USED  AVAIL  REFER  MOUNTPOINT
primaryPool                 54.5G  41.9G    96K  /
primaryPool/ROOT            20.0G  41.9G    96K  none
primaryPool/ROOT/main_root    1.98G  59.9G  1.98G  /
primaryPool/application     1.26G  60.6G  1.26G  /opt
primaryPool/boot              96K  41.9G    96K  /boot
primaryPool/storage          275M  41.9G   275M  /opt/movies
primaryPool/swap            4.25G  43.4G  2.71G  -

У меня есть запасной диск объемом 1 ТБ /dev /sdb, можно ли просто добавить его в пул или добавить другой пул и назначить ему весь диск? при чтении рекомендаций zfs по настройке raidz или mirror не рекомендуется использовать диски разных размеров, но есть ли какие-либо отрицательные или положительные последствия использования дисков неравного размера в пуле с одним vdev(один диск)?

1 ответ1

2

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

  • Ваша рабочая нагрузка не критична к производительности. Если это так, используйте единый тип диска по всему пулу. В противном случае диски могут иметь разные характеристики производительности, что может создать очень тонкие проблемы с производительностью, которые трудно отследить. (Например, скажем, у вас есть два диска по 10K RPM, выпущенные одним и тем же поставщиком в одном году, один - 1 ТБ, другой - 2 ТБ. Нет проблем, верно? К сожалению, никто из них не получит удвоенную пропускную способность, хотя максимальное количество операций ввода-вывода в секунду будет одинаковым для дисков.)
  • Вы в порядке без дополнительной избыточности. Обратите внимание , что в любой ситуации чередования, вы увеличиваете вероятность потери всех данных, потому что вы пошли с вероятностью одного диска не удается, к вероятности любым диск А или диск B (или оба) неисправные. Даже если ZFS хранит несколько копий метаданных, а случайная ~ половина данных отсутствует, вам будет нелегко восстановить многие полные / пригодные для использования файлы из вашего пула.

Тем не менее, есть все еще неразумные способы установить это. Если один из дисков является SSD, а другой - HDD, чередование разрушит прирост производительности, полученный при использовании SSD, и, вероятно, приведет вас к печали. В этой ситуации я бы порекомендовал либо:

  1. Используйте больший жесткий диск в качестве "основного диска с данными", а затем разделите твердотельный диск на два раздела: один большой раздел, используемый в качестве устройства L2ARC (cache) для ускорения чтения часто читаемых данных, и один маленький раздел, используемый в качестве ZIL (log) устройства для ускорения синхронных задержек записи. Это хорошее решение, потому что оно автоматически кеширует самые полезные данные на SSD, так что вам не нужно слишком задумываться о его балансировке. Кроме того, вы потеряете все свои данные только в том случае, если потеряете жесткий диск в этом случае (вы можете потерять до нескольких секунд записи, если SSD умрет, но это намного лучше, чем все ваши данные, как в случае с чередованием выше) ,
  2. Создание отдельного пула для каждого диска и ручное сохранение содержимого, которое вы хотите быстро (ОС, исполняемые файлы, библиотеки, подкачка и т.д.) На SSD, и содержимого, которое нормально работает медленно (фильмы, фотоальбомы и т.д.) На жестком диске. Это лучше всего, если машина будет часто перезагружаться, потому что данные, кэшированные в L2ARC, не сохраняются при перезагрузках. (Это большая слабость в текущей истории L2ARC для персональных компьютеров IMO, но над ней активно ведется работа.) С точки зрения избыточности вы, очевидно, потеряете только то, что было на диске, который вышел из строя.

Редактировать, так как эти диски виртуализированы

Поскольку это виртуальная машина, если вы не указали специальные параметры для производительности дисков, ни один из приведенных выше критериев производительности / избыточности не должен препятствовать созданию пула с двумя несовпадающими размерами дисков. Однако управлять им будет намного проще, если вы просто используете свою платформу виртуализации для изменения размера исходного диска до суммы предлагаемых размеров диска. Чтобы использовать это дополнительное пространство в гостевой системе, вам нужно будет запустить zpool online -e <pool> <disk> , и, поскольку это ZoL, вам, возможно, придется сначала исправить таблицу разделов, как в инструкциях здесь.

Вы должны сильно предпочесть этот подход из-за простоты управления, но один очень незначительный недостаток заключается в том, что при изменении размера ZFS не может изменить размер метаслаба. Метаслабы - это внутренняя структура данных, используемая для распределения дискового пространства, и до недавнего времени ZFS всегда создавала 200 из них на диск независимо от размера диска (продолжается работа по его улучшению). Поэтому, когда вы увеличиваете размер диска с очень маленького до очень большого, вы можете получить очень большое количество метаслаб, которое использует немного больше оперативной памяти и немного больше дискового пространства. Это не заметно, если только размер диска не меняется очень сильно (например, 10G -> 1T), и даже тогда, только когда вы увеличиваете производительность своей машины. Влияние на производительность обычно можно обойти, предоставив вашей виртуальной машине немного больше оперативной памяти.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .