![ZFS 快照与“主”文件系统有差异吗,或者彼此之间有差异吗?](https://linux22.com/image/724632/ZFS%20%E5%BF%AB%E7%85%A7%E4%B8%8E%E2%80%9C%E4%B8%BB%E2%80%9D%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E6%9C%89%E5%B7%AE%E5%BC%82%E5%90%97%EF%BC%8C%E6%88%96%E8%80%85%E5%BD%BC%E6%AD%A4%E4%B9%8B%E9%97%B4%E6%9C%89%E5%B7%AE%E5%BC%82%E5%90%97%EF%BC%9F.png)
我正在使用 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 大小是每次快照与现在的差异大小吗?还是快照之间的差异大小?
我知道我可以通过删除快照来测试这一点,但这个问题不够重要,不值得这样做或设置测试场景。
答案1
来自 zfs 手册页:
创建快照(请参阅“快照”部分)时,其空间最初在快照和文件系统之间共享,并且可能与以前的快照共享。随着文件系统的变化,以前共享的空间变为快照独有的,并计入快照的使用空间中。此外,删除快照可以增加其他快照独有的(并被其他快照使用)空间量。
因此,USED
zfs list 输出中的列并不反映该快照与某些其他快照或数据集之间的差异,而是具体反映该快照唯一引用的数据。
这意味着,例如,如果两个快照引用同一个 100MB 文件,而该文件已从主数据集中删除,则这不会反映在USED
任一快照的列中。如果其中一个快照被删除,它将显示在USED
另一个快照的列中;因为它现在是唯一引用该文件的快照。
一个简单的思考方法是,该USED
列显示如果删除该数据集或快照,将释放多少空间。