Native Rest Block Driver¶
https://blueprints.launchpad.net/cinder/+spec/restblock-driver
我们 Scality 正在开发一个 Linux 原生内核驱动:Rest Block Driver。(它在 github 上,但目前是私有的,因为我们希望在发布之前达到一定的程度。)这是一个能够与基于 REST 的存储服务通信(我们计划最终支持多个 REST 后端),以便将该存储中的文件作为主机 Linux 上的原生块设备连接的内核驱动。关键点之一是,它允许基于 REST 的卷存储利用 Linux 的块驱动程序缓存。
问题描述¶
作为一家公司,我们有兴趣为我们的客户提供 Openstack 集成,因此,我们希望为 cinder 提供一个新的驱动程序,以驱动和利用上述 Rest Block Driver。
此块驱动程序目前提供以下简单功能
镜像服务器列表管理(故障转移和负载均衡)
配置(创建/扩展/删除)
自动附加/分离卷(在 cinder 中使用非常实用)
此外,我们计划在不久的将来增加一些功能
存储池管理,以从不同的存储池提供卷。每个池将拥有自己的镜像列表供选择。
真正的故障转移实现
多后端支持(用于多种 REST 样式的协议实现,我们的是一个 CDMI 实现)
原生快照管理
用例¶
提议的变更¶
Rest Block Driver 主要通过 /sys 文件系统进行控制。因此,大多数控制操作将使用 process utils 模块实现。对于通用功能实现,我们计划支持 Cinder 驱动程序所需的多个功能,如下所示
配置(创建/扩展/删除):由内核驱动程序原生支持
设置时自动附加卷:由内核驱动程序原生支持
快照(创建/删除):通过 LVM 工具类/函数支持
从镜像复制:通过 image_utils 支持
卷克隆(从卷或从快照):通过 copy utils 支持
请注意,这反映了内核驱动程序的当前状态,可能会发生变化。
将来它将提供一种方式来从驱动程序本身管理快照,但目前尚未支持。因此,驱动程序将使用 lvm 代码工具来管理精简快照配置并支持由我们的 Rest Block Driver 暴露的卷的快照。
备选方案¶
无
数据模型影响¶
无
REST API 影响¶
无
安全影响¶
由于此驱动程序通过 /sys 文件系统进行控制,因此需要管理员权限才能进行控制(即,读取/写入 /sys 文件)。
通知影响¶
无
其他最终用户影响¶
无
性能影响¶
无
其他部署者影响¶
由于这是一个第三方提供的驱动程序,因此意味着首先需要设置所述软件。除此之外,只会添加新的驱动程序特定配置值。
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
- 其他贡献者
无
工作项¶
提供一个 cinder 驱动程序,利用 LVM 处理未实现的功能,并利用驱动程序本身处理原生支持的功能。
依赖项¶
无
测试¶
该驱动程序不会对现有的 API 和行为进行任何修改。因此,根据我们的理解,不需要新的 tempest 测试。
由于此驱动程序依赖于供应商特定的软件,因此 gate 显然无法测试该驱动程序。我们目前正在为我们以前的驱动程序(Scality Sofs)和这个新的驱动程序设置第三方 CI 测试。
文档影响¶
无
参考资料¶
无