【发布时间】:2017-04-26 21:03:18
【问题描述】:
是否可以读取/访问 zfs 数据集的校验和?我想访问它以验证它在引导之间没有变化。 阅读https://en.wikipedia.org/wiki/ZFS#ZFS_data_integrity:是否可以从用户空间访问类似于 zfs 中的校验和方案的 Merkle 树的顶部校验和?
【问题讨论】:
-
我希望您不要认为每次系统重新启动时 ZFS 都会重新计算 ZFS 文件系统中所有文件的校验和。即使确实如此,您会将校验和与什么进行比较?如果你随后发现了不同之处,你怎么知道你保存的校验和是正确的值?
-
不,我希望有一些不断更新的竞争数据集的校验和。可以提供“dd if=/dev/sda of=/tmp/a ; md5sum /tmp/a”的功能,但不是在整个高清上进行校验和,而是可能有一个不断更新的校验和。我问这个是因为我记得一些幻灯片显示了分层更新的校验和。
-
en.wikipedia.org/wiki/ZFS#ZFS_data_integrity 我想问题是天气可以从用户空间访问 Merkle Tree 顶部校验和。
-
zdb -uuu poolname是否为您提供了足够的信息?我想你可以在之后阅读特定的块。如果您知道要查找的内容,也许 ZFS 源代码也会有所帮助。 -
不确定“zdb -uuu”的 chsum 实际反映了什么。即使它包含的所有数据集都标记为只读并且除了安装数据集之外我不访问任何文件,chsum 条目似乎在重新启动之间发生了变化。我幼稚的想法会假设 chsum 是持久的,并且将数据集标记为只读会保护它,但也许元数据还是会被写入。反正rdb是个有趣的工具……