Когда я читаю man zfs
для zfs receive
я вижу
-F Force a rollback of the file system to the most recent snap-
shot before performing the receive operation. If receiving an
incremental replication stream (for example, one generated by
"zfs send -R -Fi -iI"), destroy snapshots and file systems
that do not exist on the sending side.
но я не совсем понимаю что -F
на самом деле подойдет.
Если я zfs receive tank/pool
затем полученный снимок откатывается в файловой системе на стороне назначения, чего я и хочу.
В каких ситуациях я хочу использовать -F
?
Ключ -F пригодится, если вы испортили целевой набор данных после его получения. После того, как вы внесете в него какие-либо изменения (в том числе сделаете что-то столь же невинное, как список каталогов, который бы иногда менялся), он больше не находится в том состоянии, в котором находился после первоначальной передачи. Пытаясь запустить равнину zfs receive
из инкрементного потока данных, созданного другой стороной zfs send -i tank/dataset@old tank/dataset@new
приведет к ошибке. В этом случае у вас есть два варианта на стороне приемника:
zfs rollback
-F
переключиться на zfs receive
чтобы он справился с этим за вас автоматическиКонечно, это может быть деструктивная операция, поэтому вы должны понять, что она делает, прежде чем ее использовать. Но если все, что вы делаете, это копируете моментальные снимки в неактивное «резервное» место назначения, где никакие другие данные не записываются, вы можете пропустить, это должно быть безопасно.
Другие специалисты по ZFS, я просто отправлю это на случай, если вы его не видели.
Использование этой опции может быть необходимо, когда файловая система изменяется между моментом отката и началом приема.