При получении снимка файловой системы необходимо учитывать следующее:
Получены снимок и файловая система.
Файловая система и все дочерние файловые системы размонтируются.
Во время получения файловые системы недоступны.
Исходная файловая система, которая должна быть получена, не должна существовать во время передачи.
При наличии файловой системы с конфликтующим именем эту систему можно переименовать с помощью команды zfs rename.
Пример:
# zfs send tank/gozer@0830 > /bkups/gozer.083006 # zfs receive tank/gozer2@today < /bkups/gozer.083006 # zfs rename tank/gozer tank/gozer.old # zfs rename tank/gozer2 tank/gozer |
Также можно использовать сокращенный вариант zfs recv как псевдоним команды zfs receive.
В случае изменения исходной файловой системы и необходимости инкрементной передачи снимка сначала следует выполнить откат целевой файловой системы.
Например, предположим, что в файловую систему вносится следующее изменение:
host2# rm newtank/dana/file.1 |
Для выполнения инкрементной отправки снимка tank/dana@snap3 и получения нового инкрементного снимка сначала следует выполнить откат целевой файловой системы. Для исключения этапа отката можно использовать параметр -F. Пример:
host1# zfs send -i tank/dana@snap2 tank/dana@snap3 | ssh host2 zfs recv -F newtank/dana |
При получении инкрементного снимка целевая файловая система должна уже существовать.
При внесении изменений в исходную файловую систему без отката целевой файловой системы для получения нового инкрементного снимка, либо в случае отсутствия параметра -F появится следующее сообщение:
host1# zfs send -i tank/dana@snap4 tank/dana@snap5 | ssh host2 zfs recv newtank/dana cannot receive: destination has been modified since most recent snapshot |
Перед применением параметра -F выполняются следующие проверки:
Если новый снимок не соответствует инкрементному источнику, операции отката и получения не выполняются, и выводится сообщение об ошибке.
При непреднамеренном вводе в команде zfs receive имени другой файловой системы, не соответствующей инкрементному источнику, операции отката и получения не выполняются, и выводится следующее сообщение об ошибке.
cannot send 'pool/fs@name': not an earlier snapshot from the same fs |