基于存储策略的管理 (SPBM)

https://blueprints.launchpad.net/nova/+spec/vmware-spbm-support

此特性将使 OpenStack 环境能够利用后端存储策略,为租户提供差异化服务。

问题描述

使管理员和租户能够利用后端存储策略。存储管理员首先基于存储供应商提供的能力和/或底层存储基础设施的基于标签的能力在 VC 中创建存储配置文件。请参阅 http://pubs.vmware.com/vsphere-55/topic/com.vmware.vsphere.storage.doc/GUID-A8BA9141-31F1-4555-A554-4B5B04D75E54.html 了解有关 VC 上存储配置文件的更多信息。

虚拟机的磁盘将放置在与存储策略匹配的存储上。例如,这可以为用户提供优先服务。例如,用户可以选择“黄金”、“白银”或“青铜”存储。“黄金”可用于需要快速可靠结果的应用程序。“青铜”可用于在晚上运行维护的后台虚拟机。

当前,启动方法会选择“最佳”数据存储来使用。管理员可以通过配置数据存储正则表达式来选择一个或多个数据存储。如果实例 flavor 包含与 SPBM 相关的额外规格信息,则不需要此逻辑。也就是说,SPBM 信息将用于数据存储选择。

提议的变更

为了使 Nova 提供 SPBM,我们需要解决以下问题

  • 启用租户使用存储策略。这里的目标是为管理员提供必要的工具,以向租户提供差异化存储服务。更具体地说,管理员将能够利用存储基础设施提供的功能。这有两个部分

    • 配置。管理员需要执行以下操作

      • 配置默认 SPBM 策略

      • 为租户创建 flavor,以使他们能够使用各种存储策略。

    • 租户使用。租户可以选择具有存储策略的 flavor。

  • 驱动程序对存储策略的支持。

    • 这涉及使用租户传递给驱动程序的信息。更具体地说,存储策略将作为 flavor 元数据传递。

驱动程序需要使用不同的端点来访问 VC 上的存储策略。这将需要一个新的配置变量,也就是说,需要定义 PBM WSDL 位置。

注意:所有节点将共享相同的存储,因此不会出现有关重新调度的问题。

此更改不会影响缓存的镜像。这只是虚拟机磁盘将被放置的位置。

flavor 额外规格 ‘image:storage_policy’ 将驱动数据存储选择。如果未出现此标志并且配置文件的 pbm_enabled 已设置,我们将使用配置的默认策略。也就是说,如果存在此标志,它将用于获取可以用于选择的数据存储列表。否则,我们将使用集群可以访问的数据存储列表。

如果存在此标志,我们将验证策略是否存在。如果不存在,将抛出异常。然后,我们将继续获取与此策略相关的数据存储的 moref 和数据存储

伪代码:

profile_ids = pbmServiceContent.profileManager.pbmQueryProfile() profiles = pbmRetrieveContent(profile_ids) profiles.find(name=profile_name)

查询匹配的“datastore”实体以获取配置文件。API :- pbmQueryMatchingHub

如果不存在,我们将继续像以前一样选择数据存储。

现有代码将处理数据存储列表,以选择最佳匹配项。

备选方案

目前,管理员无法为租户提供差异化存储服务。

数据模型影响

没有数据模型更改。信息通过 flavor 元数据(extraspecs)从租户传递到驱动程序。驱动程序反过来将使用此信息来分配正确的存储。

REST API 影响

安全影响

通知影响

其他最终用户影响

云提供商将向租户提供一个 flavor,使其能够具有优先存储能力。

性能影响

其他部署者影响

有 3 个新的配置变量(都在 vmware 部分):* pbm_wsdl_location - PBM 服务 WSDL 文件位置 URL。例如 file:///opt/SDK/spbm/wsdl/pbmService.wsdl。这将是可选的。此值为字符串。默认值为 None(未设置)。* pbm_enabled - 实例基于存储策略放置的状态。此值为布尔值。默认值为 False。* pbm_default_policy - PBM 默认策略。如果设置了 pbm_enabled 并且没有为特定请求定义存储策略,则将使用此策略。此值为字符串。默认策略由管理员在 Virtual Center 上以非同步方式定义。默认值为 None(未设置)。

管理员用户将通过仪表板或 CLI 创建一个新的 flavor。flavor 额外规格将具有一个键 ‘image:storage_policy’。管理员会将此与 VC 上的预定义存储策略关联。

开发人员影响

实现

负责人

主要负责人

garyk smurugesan

其他贡献者

rgerganov

工作项

代码在 Icehouse 周期中发布:* SPBM 支持(作为 oslo 集成的一部分)* 添加对默认 pbm 策略的支持* 从 flavor 获取存储策略* 在数据存储选择中使用存储策略* 将实例与存储策略关联

依赖项

测试

这需要第三方测试。当前 gate 无法进行测试。

文档影响

需要记录配置变量及其用法。还应讨论 flavor 创建和管理。也就是说,flavor 额外规格需要包含策略。键将是:‘image:storage_policy’,值可以是例如‘gold’、‘silver’等。

参考资料

https://docs.google.com/document/d/14Fr76WsFxBPfQJHRdy389IxlxZHXq-Kr83PeCXgDP1M/edit