主要观点: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) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。