Solaris

NAS 上的 ZFS 快照(通過 Windows 以前的版本訪問)在重命名文件方面是否可以更加靈活?

  • April 27, 2016

我有一個在 OpenSolaris/illumos/OmniOS 上執行的 NAS,它具有多個共享 ZFS 文件系統,其中自動快照處於活動狀態以保存歷史記錄(保留 4 個 15 分鐘快照、24 小時快照、7 個每日快照等)。我可以使用 Windows 資源管理器以前的版本視窗訪問快照並恢復舊版本的文件或已刪除的文件,這工作正常。

重命名或移動文件時出現的問題:

  • 如果我Draft1.txt在一天內創建和修改它,歷史就會被保留。當我完成草稿並將其重命名為其他任何內容時,例如Letter.txt,甚至Draft2.txt,版本就會消失(只有在知道舊文件名或將文件重命名為舊名稱時才能通過目錄訪問它們)。
  • 如果我創建和修改Draft1.txt並稍後保存完成版本的另一個副本Letter.txt(現在有兩個文件),第一個有歷史記錄,第二個沒有(這沒關係)。如果我刪除Draft1.txt然後想恢復它,我可以在目錄中找到它,但恢復的版本現在已經失去了它的歷史。
  • 如果我將文件移動到另一個子目錄,歷史記錄就會失去。
  • 如果我(不小心)重命名文件,歷史記錄就會失去。

因此,如果我想保留以前版本的全部功能,在使用共享時我必須考慮幾件事:

  1. 永遠不要重命名文件,第一個選擇的名稱必須永遠存在
  2. 切勿移動或重新組織文件,除非在第一天(否則失去的更改會太大)
  3. 更改完成後,切勿使用新名稱保存文件(但先保存即可)
  4. 永遠不要合併或拆分目錄,因為所有內容都會失去所有歷史記錄,即使物理塊根本沒有改變

除了忍受它,我能做些什麼嗎?ZFS 在大多數事情(寫時複製、發送/接收、zvols、快照)上都對塊起作用,但在這種情況下對文件起作用,這似乎很奇怪。或者這是 SMB/CIFS 子系統而不是文件系統的限制?

我認為這可能只是它工作方式的限制。對我來說,它似乎只是掃描目前文件不同版本的快照,因此如果文件已重命名,則不會顯示任何版本。

但是,如果您將文件移動到另一個目錄,我不確定您所說的歷史失去是什麼意思。在我的 FreeBSD/Samba 系統上,我可以在共享本身上查看以前的版本。這為我提供了所有快照的完整列表,我可以瀏覽任何快照,顯示當時共享的全部內容。

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