StorPool 卷附件

https://blueprints.launchpad.net/nova/+spec/libvirt-storpool-volume-attach

目前有各种 Nova 卷驱动程序,它们使用特定类型的存储(例如 LVM、RBD 等)来访问 Cinder 卷。此蓝图的目的是添加一个驱动程序,以支持在 StorPool 集群中定义的卷。

问题描述

StorPool 是一种在标准 x86 服务器上运行的分布式数据存储软件。StorPool 将所有驱动器的性能和容量聚合到共享存储池中,该存储池分布在服务器之间。在此存储池内,用户创建薄配置卷,这些卷以块设备的形式暴露给客户端。StorPool 由一个包中的两部分组成 - 服务器和客户端。StorPool 服务器允许虚拟机监控程序充当存储节点,而 StorPool 客户端允许虚拟机监控程序节点访问存储池并充当计算节点。从 OpenStack 的角度来看,StorPool 解决方案允许每个虚拟机监控程序节点同时充当存储和计算节点。

用例

作为部署者,我希望能够将由 Cinder 管理的 StorPool 卷附加到我的实例,以实现持久存储,并在实例操作期间利用 StorPool 的性能和可扩展性,在实例启动时即时附加卷到虚拟机监控程序,以及无缝迁移实例到不同的虚拟机监控程序。

项目优先级

无。

提议的变更

建议的驱动程序将使用 StorPool API(基于通过 HTTP 的 JSON)来附加和分离在 StorPool 集群中定义的并且 Cinder 已经知道的卷。

备选方案

无。

数据模型影响

无。

REST API 影响

无。

安全影响

无。

通知影响

无。

其他最终用户影响

无。

性能影响

将把附加或分离卷的请求传递给 StorPool 基于 HTTP 的 JSON API。

其他部署者影响

无。

开发人员影响

无。

实现

负责人

主要负责人

Peter Penchev <openstack-dev@storpool.com>

其他贡献者

工作项

  • 编写 nova.virt.libvirt.storpool 驱动程序来附加和分离卷。

  • 为 StorPool 驱动程序编写测试。

  • 为 StorPool 驱动程序提供 CI 设置。

依赖项

用于处理 StorPool 卷的 Cinder 的 StorPool 驱动程序:https://blueprints.launchpad.net/cinder/+spec/storpool-block-driver

测试

由于测试设置需要一个可运行的 StorPool 集群,因此单元测试将主要使用模拟来模拟操作。StorPool 将设置一个单独的持续集成环境,并提供对其的访问权限以运行自动 CI 测试。

文档影响

将记录使用 StorPool 驱动程序的方法。

参考资料

StorPool 分布式存储软件:http://storpool.com/