Могут ли два отдельных zpools существовать на одних и тех же физических устройствах?

5

Коротко: я могу разделить диск между двумя отдельными zpools?

Долго: я хочу массив raidz2, но я не могу позволить себе все это сразу. Мое возможное решение - начать с двух дисков. Я бы создал зеркало, используя только половину емкости каждого диска. Если бы я мог позволить себе больше дисков, я бы создал новый zpool с одним raidz2 vdev, используя новые диски и 50% неиспользуемого пространства на исходных дисках. Затем я планирую скопировать данные из одного zpool в другой, удалить zpool, содержащий зеркало, и расширить zpool с помощью raidz2 vdev.

Будет ли это работать?

Ссылки и ссылки будут оценены.

Alex
источник

Ответы:

6
  1. Да, вы можете создать пул, который состоит из зеркального vdev между двумя разделами.
  2. Да, у вас может быть два пула, каждый из которых использует один диск, используя свой собственный раздел.
  3. Да, при увеличении всех размеров дисков в raid-z2 vdev это увеличит доступную емкость.

Но ты не должен этого делать. ZFS лучше всего подходит, когда вы отдаете ему весь диск и, хотя разделы «работают», ваш мир намного легче / лучше с целыми дисками. Если вы действительно хотите сделать переход по зеркалу -> raid-z2 по дороге и готовы жить в пределах 50% использования вашего зеркала, у меня есть альтернативная идея:

  1. Купить 2 диска (например, 2x2TB)
  2. Создайте зеркальный zpool: zpool create yourPool mirror cXt1d0 cXt2d0
  3. Купите более 3 дисков одинакового размера. (например, 4x2TB)
  4. Создайте новую файловую систему: zfs create yourPool/fake
  5. Создайте два разреженных файла: mkfile -n 1TB /yourpool/fake/fakehda
  6. Создайте двойную четность zpool: zpool create yourNewPool raidz2 cXt3d0 cXt4d0 cXt5d0 cXt6d0 /yourpool/fake/fakehda /yourpool/fake/fakehdb
  7. zfs отправляет / возвращает ваши файловые системы из одного пула в другой.
  8. Отсоедините один диск от вашего зеркала zpool detach yourPool cXt1d0
  9. Замените ваш фальшивый диск реальным диском zpool replace yourNewPool /yourpool/fake/fakehda cXt1d0
  10. Дождитесь завершения переноса. Мониторинг прогресса с zpool status yourNewPool.
  11. Когда оно закончится, убей зеркало zpool destroy yourPool
  12. Повторно использовать второй старый диск zpool replace yourNewPool /yourpool/fake/fakehda cXt2d0

В течение всего этого процесса вы сможете пережить любой сбой одного диска без потери данных.

notpeter
источник