Назад | Перейти на главную страницу

Что получает zfs -F делает?

Когда я читаю 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, я просто отправлю это на случай, если вы его не видели.

Использование этой опции может быть необходимо, когда файловая система изменяется между моментом отката и началом приема.

Из: Solaris - новая опция zfds receive -F