云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

数据库_阿里云邮箱企业版登录_测评

小七 141 0

LibZFS的未来

上周,我们在门罗公园的Delphix总部举办了一次非常成功的Illumos会议。感谢所有参与的人!为了纪念ZFS成立10周年,我的同事chrissiden和johnkennedy就ZFS的特性标志和测试策略进行了精彩的演讲。我的贡献是为ZFS提供一个新的编程接口的计划。我在Delphix的工作中遇到了很多libzfs的问题,一般分为两类:修改libzfs和使用libzfs。自2005年10月31日集成以来,ZFS社区为libzfs添加了许多新功能。不幸的是,他们中的一些不适合原来的设计。例如,在当时只有"普通"属性——在zfs_prop帴t中静态定义的属性(例如quota、used、compression)。现在我们有几种动态属性:用户属性(例如com.delphix公司:dbname"),用户配额类型属性(例如"用户使用@mahrens", "用户配额@csiden")和书面道具(例如"写入@prevsnap"). 每种风格都需要在几个不同的地方添加特殊的案例代码。我们要把一个楼盘的所有处理"味道"都集中在一个地方。LibZFS已经超出了它最初的设计,以至于即使是简单的增强也过于复杂和危险。我们通过JNA使用Java堆栈中的libzfs。我们遇到了许多困难:libzfs不是线程安全的;接口不稳定;有不同的函数来处理属性的每个"风格"。为了解决这些问题以及更多的问题,我建议我们创建一个新的库libzfs_core,它通常是内核ioctl的一个薄包装。错误处理和线程安全问题将被下推到内核中,而用户界面问题将被推送到libzfs_核心消费者中。我们对libzfs_core的目标是:线程安全的避免全局数据(例如缓存)提交的接口消费者将在未来的版本中工作接口不会更改程序错误处理例程返回定义的错误号或错误nvlists不打印到stdout/stderr薄层通常只是从内核ioctl封送参数通常为1:1的libzfs_核心函数->;ioctl清晰原子性通常,每个函数调用都是原子的(因为ioctl通常是原子的)要了解更多细节,请查看我的幻灯片和演示文稿的视频。(在视频中,我将libzfs_core称为"libzfs2"。关于这个名字有一些讨论,我们决定把它改名为libzfs_core。)如果你在使用libzfs,我想听听你的意见!libzfs_core能满足您的需求吗?你有其他改进libzfs的想法吗?联系我或zfs@lists.illumos.org邮件列表。