为 IBM Storwize 驱动程序添加 QoS 功能

https://blueprints.launchpad.net/cinder/+spec/cinder-storwize-driver-qos

Storwize 驱动程序可以通过 IO 限制参数提供 QoS 功能,从而限制接受的 I/O 量。此蓝图建议为 Storwize 驱动程序添加 QoS 支持。

问题描述

可以通过限制特定卷的 I/O 量来启用 Storwize 后端存储的 QoS 支持。QoS 已为一些 cinder 存储驱动程序实现,因此 Storwize 驱动程序也可以添加此功能。

用例

提议的变更

要为 storwize 驱动程序启用 QoS,需要将 IOThrottling 作为键的额外规范绑定到卷类型。以下所有更改均适用于 Storwize 驱动程序代码。

创建卷

  • 如果启用了 QoS 并且 IOThrottling 作为 QoS 键可用,则将卷的 I/O 限制设置为指定的 IOThrottling 值。

创建克隆卷

  • 如果原始卷设置了 QoS,则目标卷需要设置为相同的 QoS。

创建快照

  • QoS 属性将被复制到快照。

从快照创建卷

  • 如果启用了 QoS 并且 IOThrottling 作为 QoS 键可用,则将卷的 I/O 限制设置为指定的 IOThrottling 值。

重新设置卷类型

  • 如果更改了卷类型,不同的 IOThrottling 值将应用于该卷,并且需要将该卷的 I/O 设置为新的 I/O 限制。

备选方案

提议的更改遵循其他驱动程序实现 QoS 功能的模式。

数据模型影响

无。

REST API 影响

无。

安全影响

无。

通知影响

无。

其他最终用户影响

无。

性能影响

无。

其他部署者影响

Storwize 驱动程序的 QoS 可以通过 cinder.conf 中的配置选项进行配置。可以将 IOThrottling 作为键的额外规范绑定到卷类型,以便保证具有此卷类型的卷具有 I/O 限制速率。

开发人员影响

无。

实现

负责人

主要负责人

Vincent Hou

其他贡献者

待定

工作项

  • 添加一个配置选项,允许用户为 Storwize 驱动程序使用 QoS。

  • 在创建卷中添加 QoS 启用检查并设置 I/O 限制。

  • 在从快照创建卷中添加 QoS 启用检查并设置 I/O 限制。

  • 在创建克隆卷中,根据原始卷设置新卷的 I/O 限制。

  • 在创建快照中将 QoS 属性复制到快照。

  • 如果更改了卷类型,则更改卷的 I/O 限制。

依赖项

无。

测试

  • 需要添加单元测试来测试 Storwize 驱动程序的 QoS。

文档影响

  • 在文档中添加如何配置 Storwize 驱动程序的 QoS。

参考资料