резервное копирование на уровне блоков пула хранения zfs - PullRequest
2 голосов
/ 11 июля 2011

Можно ли сделать резервную копию пула хранения zfs? Если FS находится на сыром диске, мы можем открыть и прочитать интерфейс символьного устройства, чтобы скопировать диск в файл. Мы можем смонтировать файл, используя интерфейс устройства цикла. Возможно ли сделать это в zpool программно, используя системные вызовы open, read?

1 Ответ

3 голосов
/ 20 июля 2011

Я бы рекомендовал изучить функцию репликации ZFS, которая использует подкоманды send и receive. С помощью этих инструментов вы можете сгенерировать поток данных на уровне блоков конкретного набора данных и сохранить этот поток в файл. Если вы создадите поток для корневого набора данных и включите все дочерние наборы данных, он будет захватывать все данные в пуле. Обратите внимание, что zfs send работает со снимком, поэтому вам нужно заранее сделать рекурсивный снимок:

zfs snapshot -r tank@current
zfs send -R tank@current > ./stream.zfs

Тогда, когда вы хотите восстановить ваши данные:

cat ./stream.zfs | zfs receive tank
...