假设我有一个包含虚拟机磁盘映像的 ZFS 文件系统,例如
/tank/examplevm/examplevm-flat.vmdk
我们进一步假设我每天拍摄该 ZFS 文件系统的快照,例如
$ zfs snapshot tank@20120716
$ zfs snapshot tank@20120717
显然,在每个每日快照之间的时间间隔内,我的 examplevm-flat.vmdk 都会发生变化(大多数情况下,图像的大小保持不变,但虚拟磁盘中的块会被修改)。
因此,ZFS diff 命令现在将报告两个快照之间修改的文件:
$ zfs diff tank/@20120716 tank@20120717
M /tank/examplevm/examplevm-flat.vmdk
虽然知道文件已被修改是件好事,但我更感兴趣的是 vmdk 中已修改的字节数/块数。
因此,我对以下问题的任何提示都很感兴趣:
- ZFS 是否有任何功能可以报告两个快照之间特定文件中更改的块的数量?
- 有没有其他工具可以对两个文件系统映像进行二进制比较并报告更改的块或字节数?我知道它
cmp –l file1 file2 | wc –l
可以做到这一点,但是速度非常非常慢。