Только новые записанные (добавленные) данные разделяются между всеми текущими активными vdev, в ZFS нет явной операции перебалансировки.
Два возможных решения:
Чтобы быть более точным, я бы выбрал второе решение и переносил каждую файловую систему отдельно в моменты, когда нагрузка на систему низкая ( например, ночью):
zfs snapshot -r
) файловой системы приличного размера (и подчиненных файловых систем, рекурсивно) zfs send | zfs recv
с соответствующими параметрами для отправки моментального снимка во вновь созданную временную файловую систему (может находиться в том же пуле, если позволяет пространство);эта файловая система должна находиться в том же месте иерархии, что и старая. zfs уничтожает
старую снимок и старая файловая система zfs переименовать
временную систему в старое имя zfs mount
, изменив предыдущую ситуацию для вашей замененной файловой системы возможное 3-е решение (как упомянуто SirMaster на этом форуме FreeNAS сообщение ):
rm -rf original/
mv temp/ original/
Это работает, потому что ZFS пропорционально поместит записи в то, какой бы ни vdev имеет большую часть свободного пространства, в этом случае совершенно новые диски, которые были пусты. (с 0,7, zfs будет польза более быстрые диски для записей , но позволяет, предполагают, что Ваши 2 новых диска являются той же или большей производительностью, чем исходные диски)
, Это, вероятно, медленнее, чем zfs send | zfs recv
, но более просто, потому что Вы не должны создавать/уничтожать снимки.
можно работать zpool list -v
прежде и после видеть каждое vdev использование.
кроме того, нашел сценарий php , который делает скопировать/удалить/переименовать процедуру на основе файла файлом. Это было связано в ответ от подобного (но zvol) вопрос несколько более старых лет. (не протестировал этот сценарий лично)