Я бы рекомендовал изучить функцию репликации ZFS, которая использует подкоманды send
и receive
. С помощью этих инструментов вы можете сгенерировать поток данных на уровне блоков конкретного набора данных и сохранить этот поток в файл. Если вы создадите поток для корневого набора данных и включите все дочерние наборы данных, он будет захватывать все данные в пуле. Обратите внимание, что zfs send
работает со снимком, поэтому вам нужно заранее сделать рекурсивный снимок:
zfs snapshot -r tank@current
zfs send -R tank@current > ./stream.zfs
Тогда, когда вы хотите восстановить ваши данные:
cat ./stream.zfs | zfs receive tank