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

历史