zfs中有一种方法可以找出特定文件的块在哪里存储? 我希望能够请求所有块的位置为一个文件,包括同上块。
(是的,我知道这是低级别的东西,通常不会暴露给用户。)
(v0.6.0.56-rc8,ZFS池版本28,ZFS文件系统版本5,Ubuntu 11.10)
这不是微不足道的,可能超出了SF问题/答案的范围,因为所需的工具没有出现很好的文档logging。 您可以将zdb(1m)与磁盘格式文件结合使用来查找所需的信息。 这里有一个博客如何做到这一点
实质上
使用ls -i获取最初的inode。
使用zdb -ddddd <inodenum>获取块信息并使用ODF解码
您可以使用ls -i查看最初的inode,之后我build议您阅读发布的源代码以了解磁盘上的数据结构。 完成之后,我会build议编写自己的工具来读取原始设备并汇总所有您感兴趣的块布局信息。有一个小型的ZFS API(libzfs)项目,它只提供基本的ZFSconfiguration像上市,创build等zpools。