Filesystems

zfs 收到 -F 做什麼?

  • November 15, 2020

當我閱讀時man zfszfs 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讓它自動為您處理

當然,它可能是一種破壞性的操作,所以在使用它之前你必須了解它在做什麼。但是,如果您所做的只是將快照複製到非實時“備份”目的地,沒有其他數據寫入您可能會失去,那麼它應該是安全的。

引用自:https://serverfault.com/questions/511664