Hyper-V 存储 QoS¶
https://blueprints.launchpad.net/nova/+spec/hyperv-storage-qos
Hyper-V 提供了指定每个虚拟磁盘镜像最大 IOPS 的选项。
通过利用此功能,本蓝图建议添加支持,以设置针对实例本地磁盘以及通过 SMB 导出卷的 QoS 规范。
问题描述¶
目前,Nova Hyper-V 驱动程序不支持设置存储 IOPS 限制。因此,某些实例可能会耗尽存储资源,影响其他租户。
用例¶
关联通过 SMB 导出卷的前端 QoS 规范,将在超visor端处理
使用 flavor 附加规范设置实例本地磁盘的 IOPS 限制
项目优先级¶
无
提议的变更¶
Cinder 卷可以分配 QoS 规范。当卷被附加时,Nova 应该应用前端 QoS 规范。这些规范是按卷应用的。
此外,本蓝图建议使用 flavor 附加规范指定实例级 QoS 规范。Hyper-V 驱动程序会将这些 IOPS 限制平均应用于所有本地实例磁盘。
例如,如果在 flavor 附加规范中指定了特定的 IOPS 限制,则此限制将平均应用于实例根磁盘、临时磁盘和 configdrive 磁盘。
只有在通过 SMB 导出卷的情况下,才支持前端卷规范。
用例示例
- 管理员为特定卷类型设置前端 QoS 规格
- cinder qos-create my-qos consumer=front-end
total_bytes_sec=20971520
cinder qos-associate my-qos <volume_type_id>
# 必须使用 SMB 作为卷后端,iSCSI 支持可能会在未来添加 cinder create <size> –volume-type <volume_type_id>
# 这些 QoS 规范在将卷附加到 Hyper-V 实例时应用 nova volume-attach <hyperv_instance_id> <volume_id>
- 管理员在 flavor 上设置实例存储 QoS 规范
- nova flavor-key <my_flavor> set
storage_local_qos:total_bytes_sec=20971520
- 可用的 QoS 规范
total_bytes_sec - 包括读/写
total_iops_sec
备选方案¶
Flavor QoS 规范不仅可以应用于实例本地磁盘,还可以应用于附加卷。在这种情况下,如果存在卷 QoS 规范,我们可以应用最低的 IOPS 限制。
此外,可以将限制分配给磁盘,但这可能不是期望的。
数据模型影响¶
无
REST API 影响¶
无
安全影响¶
设置存储 QoS 规范将防止实例耗尽存储资源,这可能会影响其他租户。
通知影响¶
无
其他最终用户影响¶
无
性能影响¶
防止实例耗尽存储资源可能会对性能产生重大影响。
其他部署者影响¶
无
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
plucian
工作项¶
在 Hyper-V SMB 卷驱动程序中添加前端 QoS 规范支持
添加 flavor 存储 QoS 规范支持
依赖项¶
无
测试¶
此功能将由 Hyper-V CI 进行测试。我们将添加 tempest 测试,以验证是否实际强制执行了 IOPS 限制。
文档影响¶
QoS 功能应在 Hyper-V 驱动程序文档中描述。
参考资料¶
Hyper-V 存储 QoS 参考:https://technet.microsoft.com/en-us/library/dn282281.aspx
历史¶
无