Руководство по администрированию файловых систем ZFS Solaris

Отправка снимка ZFS

Можно использовать команду 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