1

У меня есть пул RAID1 ZFS с 2x 5 ТБ зеркальными и 2 1 ТБ зеркальными дисками, и я хочу заменить два устройства 1 ТБ на 4 ТБ. Поскольку zpool add является отменяемым [1], необходимо уничтожить пул после его воссоздания в нужном макете.

Следовательно

  • Я zpool detach зеркальные устройства и создал с ними новый пул.
  • После того, как следующие команды потерпели неудачу из-за перекрывающихся точек монтирования, я удалил и повторно импортировал его с альтернативным корнем, используя zpool import -R /mnt/data1
  • Я создал снимок migrate1 для запуска sudo zfs send -R data@migrate1 | sudo zfs receive -F data1 которая в данный момент выполняется.

Теперь я хотел бы знать, что лучше всего сделать после завершения канала zfs send поскольку, насколько я понимаю, мне нужно получить старые data пула для монтирования в альтернативном корне и новый пул data1 без альтернативного корня после перезагрузки, чтобы иметь возможность удалить старый пул и сделать его доступным для подключения к новому. Может быть, есть другой способ.

Я использую ZFS 0.7.0-182_gc0daec32f8 и SPL 0.7.0-20_g35a44fcb, созданный из исходного кода на Ubuntu 17.10 с Linux 4.13.0-16-generic.

Я проверил

Я знаю, что это сложно и что не мешало бы держать устройства объемом 1 ТБ внутри пула, но это не является частью вопроса.


[1] Я запросил это как проблему ZFSOnLinux по адресу https://github.com/zfsonlinux/zfs/issues/6857, в которой содержатся ссылки на сложный план / план действий

1 ответ1

1

У меня есть пул RAID1 ZFS с 2x 5 ТБ зеркальными и 2 1 ТБ зеркальными дисками, и я хочу заменить два устройства 1 ТБ на 4 ТБ. Поскольку zpool add является отменяемым [1], необходимо уничтожить пул после его воссоздания в нужном макете.

Это больше похоже на полосатые зеркала (2x2), чем RAIDZ1 (минимум 3x1). В любом случае, вы можете увеличить обе конфигурации на месте, удаляя и заменяя один диск за раз. Дождитесь окончания работы каждого ресивера, затем замените следующий диск. Наконец, после замены всех дисков zpool offline пул от сети, а затем zpool online -e чтобы расширить его до нового размера (или установить autoexpand=true перед расширением):

    zpool online [-e] pool device...
         Brings the specified physical device online. This command is not
         applicable to spares.

         -e      Expand the device to use all available space. If the
                 device is part of a mirror or raidz then all devices must
                 be expanded before the new space will become available to
                 the pool.

Конечно, вы сначала должны снова подключить отсоединенные устройства в вашем случае, потому что замена возможна только при достаточной избыточности.


Кроме того, вы можете устанавливать и изменять точки монтирования на лету, а также уничтожать пулы с активными точками монтирования (если на них нет активных входов / выходов). Если это не работает, zpool export / zpool import выполняет большую часть времени, как и перезагрузка (если вы можете разрешить один, а это не корневой пул).

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