Бэкап и восстановление ZFS на внешний USB носитель
Создание резервной копии
Сделать снапшот пула, резервную копию которого вы хотите сделать
zfs snapshot tank@backup-jan-2020
Найти путь внешнего диска
fdisk -l | grep 'Disk /dev'
[...]
Disk /dev/sdn: 62.4 GB, 62411243520 bytes, 121896960 sectors
В примерах дальше будет использоваться /dev/sdn
Создать zpool на внешнем диске
zpool create backup1 /dev/sdn
Отправить снапшот на внешний диск
zfs send tank@backup-jan-2020 | pv | zfs recv -F backup1
Проверить размер снапшота (Значение в столбце REFER должно совпадать)
zfs list -t snapshot | grep 'backup-jan-2020'
NAME USED AVAIL REFER MOUNTPOINT
tank@backup-jan-2020 392K - 1.79T -
backup1@backup-jan-2020 0B - 1.79T -
Экспортировать zpool
zpool export backup1
Извлечь внешний диск
udisksctl power-off -b /dev/sdn
Восстановление из резервной копии
Импортировать внешний zpool по имени или использовать zfs import
чтобы найти имя пула
zfs import backup1
Пул будет примонтирован по пути /backup1
, можно принудительно примонтировать командой zfs mount backup1
Проверить снапшот с резервной копией
zfs list -t snapshot | grep backup1
NAME USED AVAIL REFER MOUNTPOINT
backup1@backup-jan-2020 0B - 1.79T -
Отправить снапшот с внешнего диска на пул с данными
zfs send backup1@backup-jan-2020 | pv | zfs recv tank
Проверить размер снапшота (Значение в столбце REFER должно совпадать)
zfs list -t snapshot | grep 'backup-jan-2020'
NAME USED AVAIL REFER MOUNTPOINT
tank@backup-jan-2020 392K - 1.79T -
backup1@backup-jan-2020 0B - 1.79T -
Откатить снапшот чтобы сделать данные активными
zfs rollback tank@backup-jan-2020