Victor3D

Бэкап и восстановление 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