主要观点:OpenZFS 有好用工具但处理复杂存储等情况时会遇难题,人们寻求更好编程方式但常失望。近期在每周 OpenZFS 生产用户电话会议中尝试确定常见用例并找出从现有到有用编程接口的路径,BSD 基金赞助探索libzfs及libzfs_core。文中介绍了 OpenZFS 的内核接口ioctl()、应用接口libzfs、新应用接口libzfs_core及其存在的问题,还提到其他与 OpenZFS 相关的接口如 pyzfs、通道程序、JSON 输出等,探讨了若不用libzfs该怎么做,目前正在努力巩固libzfs_core等内容。
关键信息:
- OpenZFS 工具在复杂存储场景下的不足及后续探索。
ioctl()接口结构简单但功能多样。libzfs虽提供便利但抽象混乱、文档不足等问题。libzfs_core旨在成为ioctl()的轻量级封装,但仍有不足。- 其他相关接口及其现状。
重要细节:
- OpenZFS 约有 100 个可能的请求编号,
ioctl()payload 格式较复杂。 libzfs实现zfs list代码复杂,config参数格式特殊。libzfs_core未实现一些有用的ioctl()命令,过度使用 nvlists。- 正在努力巩固
libzfs_core,并计划对其进行文档编写和示例程序编写。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。