Pure Storage FlashArray Cinder 卷驱动¶
包含您的 Launchpad 蓝图的 URL
https://blueprints.launchpad.net/cinder/+spec/pure-iscsi-volume-driver
本规范的目的是为 Pure Storage FlashArray 添加一个 Cinder 卷驱动。它将支持 iSCSI 协议,并包含 Juno 版本所需的至少一组最低功能。我们还将根据第三方 CI 要求策略,在 Pure Storage 维护的 OpenStack 集群上设置自动 CI 测试。
Pure Storage 构建全闪存存储阵列。其主动/主动控制器架构基于 Purity 操作系统,并提供可扩展、粒度为 512B 且受保护的自适应元数据结构。
问题描述¶
目前,Pure Storage FlashArray 无法用作 OpenStack 环境中的块存储后端。
用例¶
提议的变更¶
将 Pure Storage FlashArray Cinder 驱动程序添加到 OpenStack Cinder 包中。
Pure Storage 驱动程序将利用一个精简的 Python REST 客户端库。该客户端库与 FlashArray 上托管的 REST 服务交互,以执行阵列管理并满足 Cinder 驱动程序 API 要求。
Control Flow
+------------------+
| Cinder + |
| Cinder Volume |
+--------+---------+
|
v
+------------------+
| Pure Driver |
| |
+--------+---------+
|
v
+------------------+
| Pure REST Client |
| |
+--------+---------+
|
v
+------------------+
| Pure REST Server |
| (FlashArray) |
+------------------+
Cinder 驱动程序将使用 REST 客户端 API 来支持
卷创建/删除
卷附加/分离
快照创建/删除
从快照创建卷
获取卷统计信息
将镜像复制到卷
将卷复制到镜像
克隆卷
扩展卷
除了驱动程序实现的交付之外,拟议的更改还包括为驱动程序添加单元测试。Pure Storage 将创建专用的 Jenkins 作业,以支持在 Devstack 虚拟机上执行 CI 和 Tempest 测试,以持续证明驱动程序的功能。
备选方案¶
无。
数据模型影响¶
无。
REST API 影响¶
无。
安全影响¶
唯一与安全性相关方面是,驱动程序需要 API 令牌才能利用 REST 客户端并对 REST API 进行身份验证。
必须在 cinder.conf 配置文件中指定 API 令牌。
通知影响¶
无。
其他最终用户影响¶
此更改的影响是 OpenStack Cinder 将支持将 Pure Storage FlashArray 用作后端块存储设备。
性能影响¶
无。
其他部署者影响¶
利用 Pure Storage 驱动程序所需的配置包括
volume_driver - 指定 Pure Storage FlashArray 驱动程序模块。
pure_target - FlashArray 存储目标的地址。
pure_api_token - 在 FlashArray 上创建的 API 令牌,用于验证 REST 客户端,驱动程序将利用该令牌。
以及可选地
pure_host_name - FlashArray 上的主机对象的名称,用于与 IQN 和卷连接关联。如果未提供,则默认为名称“OpenStack”。
开发人员影响¶
无。
实现¶
负责人¶
- 主要负责人
victor-ying <victor.ying@purestorage.com>
- 其他贡献者
wes-w <wes@purestorage.com> zach-olstein <zach.olstein@purestorage.com>
工作项¶
完成 Cinder Pure Storage 驱动程序实现。
完成 Cinder Pure Storage 驱动程序单元测试。
通过自动 Tempest 测试来证明功能。
将 Devstack VM 和 Jenkins 作业集成到 Pure Storage Jenkins 系统中。
依赖项¶
该驱动程序依赖于 Pure Storage 提供的 REST 客户端库,该库允许开发人员轻松构建基于 REST API 功能的 Python 应用程序。
该库当前不可作为可使用 pip 安装的 Python 包,因此库模块将与驱动程序实现一起提交。
测试¶
如工作项中所述,驱动程序的交付将伴随一套驱动程序的单元测试(使用 Mock 将驱动程序代码与 FlashArray 隔离)。此外,通过 Jenkins 进行持续集成和自动 Tempest 测试运行是驱动程序被接受的必要条件。
文档影响¶
Pure Storage 应该在 CinderSupportMatrix 上列为具有受支持的 Cinder 驱动程序:https://wiki.openstack.org/wiki/CinderSupportMatrix
参考资料¶
无。