Zfs
ZFS 快照是針對“主”文件系統的差異,還是彼此之間的差異?
我正在使用 ZFS 快照來維護對備份文件系統歷史版本的訪問。
fadedbee@backup:/backups$ sudo zfs list -t snapshot NAME USED AVAIL REFER MOUNTPOINT bpool/backups@2018-06-01 96.8M - 18.3G - bpool/backups@2018-06-18 96.8M - 18.3G - bpool/backups@2018-06-19 96.8M - 18.3G - bpool/backups@2018-06-20 96.4M - 18.3G - bpool/backups@2018-06-21 96.2M - 18.3G - bpool/backups@2018-06-22 63.3M - 18.3G - bpool/backups@2018-06-23 62.1M - 18.3G - bpool/backups@2018-06-24 62.1M - 18.3G - bpool/backups@2018-06-25 96.1M - 18.3G - bpool/backups@2018-06-26 96.0M - 18.3G - bpool/backups@2018-06-27 97.1M - 18.3G - bpool/backups@2018-06-28 96.2M - 18.3G - bpool/backups@2018-06-29 62.7M - 18.3G - bpool/backups@2018-06-30 63.4M - 18.3G - bpool/backups@2018-07-01 63.0M - 18.3G - bpool/backups@2018-07-02 96.5M - 18.3G - bpool/backups@2018-07-03 96.6M - 18.3G - bpool/backups@2018-07-04 96.2M - 18.3G - bpool/backups@2018-07-05 96.7M - 18.3G - bpool/backups@2018-07-06 62.5M - 18.3G - bpool/backups@2018-07-07 62.8M - 18.3G - bpool/backups@2018-07-08 63.9M - 18.3G - bpool/backups@2018-07-09 97.3M - 18.3G - bpool/backups@2018-07-10 96.3M - 18.3G - bpool/backups@2018-07-11 97.6M - 18.3G - bpool/backups@2018-07-12 98.3M - 18.3G - bpool/backups@2018-07-13 63.1M - 18.3G - bpool/backups@2018-07-14 62.6M - 18.3G - bpool/backups@2018-07-15 63.3M - 18.3G - bpool/backups@2018-07-16 97.5M - 18.3G - bpool/backups@2018-07-17 0 - 18.3G - fadedbee@backup:/backups$ sudo zfs list NAME USED AVAIL REFER MOUNTPOINT bpool 21.0G 3.49T 96K /bpool bpool/backups 21.0G 3.49T 18.3G /backups
這些快照的 USED 大小是否是每個快照與現在之間的差異大小?或者它們是快照之間差異的大小?
我知道我可以通過刪除快照來測試它,但這並不是一個足夠重要的問題來執行此操作或設置測試場景。
從 zfs 手冊頁:
創建快照(請參閱“快照”部分)時,它們的空間最初在快照和文件系統之間共享,並且可能與以前的快照共享。隨著文件系統的變化,以前共享的空間對快照來說變得唯一,併計入快照的已用空間。此外,刪除快照會增加其他快照獨有的(和使用的)空間量。
因此,
USED
zfs 列表輸出中的列並不反映該快照與其他一些快照或數據集之間的差異,而是專門針對該快照唯一引用的數據。這意味著,例如,如果兩個快照引用同一個 100MB 文件,該文件已從主數據集中刪除,則這不會反映在
USED
任一快照的列中。如果其中一個快照被刪除,它將顯示在USED
另一個快照的列中;因為它現在是唯一引用該文件的快照。一個簡單的考慮方法是,該
USED
列顯示如果刪除該數據集或快照將釋放多少空間。