ZFS 快照是否与“主”文件系统存在差异,还是彼此之间存在差异?

fad*_*bee 3 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
Run Code Online (Sandbox Code Playgroud)

这些快照的使用大小是否是每个快照与现在之间的差异大小?或者它们是快照之间差异的大小?

我知道我可以通过删除快照来测试这一点,但这不是一个足够重要的问题来执行此操作或设置测试场景。

Mik*_*lan 5

从 zfs 联机帮助页:

创建快照(请参阅“快照”部分)时,它们的空间最初在快照和文件系统之间共享,并且可能与以前的快照共享。随着文件系统的变化,之前共享的空间成为快照独有的空间,并计入快照的已用空间。此外,删除快照可以增加其他快照独有的(并由其使用的)空间量。

因此,USEDzfs list 输出中的列不反映该快照与某个其他快照或数据集之间的差异,而是具体反映该快照唯一引用的数据。

这意味着,例如,如果两个快照引用了从主数据集中删除的同一个 100MB 文件,这将不会反映在USED任一快照的列中。如果其中一个快照被删除,它将显示在USED另一个快照的列中;因为它现在是唯一引用该文件的快照。

一个简单的思考方法是,该USED列显示如果删除该数据集或快照将释放多少空间。

  • @fadedbee 它将显示在数据集本身的 `USED` 列中,但不会显示在快照中。所以你会看到数据集有 100MB,每个快照有几 KB。 (2认同)