Назад | Перейти на главную страницу

Миграция на месте ZFS RAIDZ с 3 дисками на 4 диска, когда в пуле более 1/3 свободного места

Создавая свой пул RAID-Z на ZoL, я предполагал, что позже смогу просто вставить дополнительные диски. Между тем я узнал, что это пока невозможно.

Но ... У меня была аналогичная проблема при создании моего первоначального пула. Всего 4 свободных порта SATA, но старый RAID5 с тремя дисками по 2 ТБ и новый RAIDZ1 с тремя дисками по 4 ТБ. Решение заключалось в а) ухудшении RAID5 и б) создании начального RAIDZ с разреженным файлом в качестве «виртуального третьего диска», который был немедленно отключен после создания пула:

  1. Создать разреженный файл: dd if=/dev/zero of=/zfs1 bs=1 count=1 seek=4100G
  2. Создайте пул raidz: zpool create zfspool raidz /dev/disk1 /dev/disk2 /zfs1
  3. Сразу снимаем разреженный файл: zpool offline zfspool /zfs1
  4. Перенести данные в zfspool. Удалите старые диски RAID5, добавьте третий, новый диск емкостью 4 ТБ
  5. Замените и повторно обновите разреженный файл в пуле фактическим третьим диском:
    zpool replace zfspool /zfs1 /dev/disk3

Это сработало действительно здорово! Теперь я узнал, что, хотя ZFS не поддерживает напрямую добавление одного диска в RAIDz, он поддерживает замену дисков на диски большего размера.

Итак, вот мой план. Кто-нибудь видит в этом изъян?

Это сработает? Я знаю, что я более уязвим к потере данных из-за отсутствия избыточности во время процесса, но у меня будет резервная копия наиболее важных данных. На всю полезную нагрузку 6 ТБ не хватает.

И будет ли ZFS автоматически увеличивать пул до (3 + 1) x4TB = 12TB после последнего шага?

Уродливо, но это сработает.

За исключением тех случаев, когда этого не происходит;).

  • Будьте очень осторожны при указании разделов и замене дисков.
  • предварительно попробуйте его в виртуальной машине, настройте виртуальные диски, как ваше оборудование, и запустите его 1 или 2 раза.
  • сделайте скраб перед тем, как начать, и взгляните на информацию S.M.A.R.T с дисков. Вы бы не стали пробовать это с диском, который уже не работает.

Важно: перед тем, как попробовать, вам лучше иметь протестированную резервную копию на другом носителе или машине!

Да, ZFS увеличит пул, если последний диск или раздел размером 2 ТБ будет заменен на 4 ТБ (если для пула установлено autoexpand = on)

zpool get autoexpand $pool

zpool set autoexpand=on $pool

Замечание: вы не должны использовать RAID-Z на дисках размером более 2 ТБ. Ваш шанс получить ошибку при повторном обновлении при замене неисправного диска очень высок. Пожалуйста, рассмотрите RAID-Z2.

Звучит ужасно. Это ваши данные, так что вы можете делать что хотите ... Однако никто не поддержит решение.

Это действительно та ситуация, в которой вам следует просто начни сначала.

Перенесите данные куда-нибудь на время и восстановите.