Можно использовать команду zfs send для отправки копии снимка в другой пул и получения снимка из другого пула на той же системе или из пула на другой системе, которая используется для сохранения архивных данных. Например, чтобы отправить снимок в другой пул на той же системе, используется синтаксис, аналогичный следующему:
# zfs send tank/data@snap1 | zfs recv spool/ds01 |
Если потоковое представление моментального снимка отправляется в другую систему, выходные данные команды zfs send передаются с помощью команды ssh. Пример:
host1# zfs send tank/dana@snap1 | ssh host2 zfs recv newtank/dana |
При передаче полного потока целевая файловая система не должна существовать.
Для сохранения инкрементных данных используется команда zfs send с параметром -i. Пример:
host1# zfs send -i tank/dana@snap1 tank/dana@snap2 | ssh host2 zfs recv newtank/dana |
Обратите внимание, что первый аргумент представляет более ранний снимок (snap1), а второй – более поздний (snap2). В этом случае для успешного выполнения инкрементной передачи должна существовать файловая система newtank/dana.
В качестве последнего компонента имени снимка можно указать инкрементный источник snap1. Это означает, что достаточно указать имя после знака @ для снимка snap1, который, как предполагается, находится в той же файловой системе, что и snap2. Пример:
host1# zfs send -i snap1 tank/dana@snap2 > ssh host2 zfs recv newtank/dana |
Этот синтаксис является эквивалентом приведенного выше примера инкрементного синтаксиса.
При попытке генерации инкрементного потока из другой файловой системы snapshot1 отображается следующее сообщение:
cannot send 'pool/fs@name': not an earlier snapshot from the same fs |
При необходимости сохранения нескольких копий можно выполнить сжатие потокового представления моментального снимка ZFS с помощью команды gzip. Пример:
# zfs send pool/fs@snap | gzip > backupfile.gz |