Nova 中的请求特性¶
https://blueprints.launchpad.net/nova/+spec/request-traits-in-nova
该蓝图旨在利用资源提供者特性来标准化所需定性属性的请求。
问题描述¶
云管理员目前需要处理自由格式的 flavor extra_specs 和镜像元数据,以便在启动请求中指定能力。缺乏能力标准化意味着无法实现 OpenStack 云的互操作性。我们已经在 Placement 中引入了特性来管理 ResourceProviders 的定性部分 [1]。管理员应该能够将一组所需的特性与 flavor 关联起来。
用例¶
针对管理用户
允许管理员指定 flavor 所需的一组特性。
提议的变更¶
我们建议将特性存储在 flavor extra_specs 中,并在启动请求中从 flavor 中收集特性。镜像元数据关联不在该蓝图的范围内。调度器会将特性传递给 Placement API 中的 GET /allocation_candidates 端点,以过滤掉缺少任何所需特性的资源提供者。
flavor extra_specs 中的特性语法如下所示
trait:HW_CPU_X86_AVX2=required
trait:STORAGE_DISK_SSD=required
在 extra spec 的键中使用特性是为了避免 extra spec 值的长度限制。唯一有效的值是 required。任何其他值都将被视为无效。
备选方案¶
与其将特性存储在 flavor extra_specs 中,我们可以将特性作为 flavor 模型的一个字段添加并将其保存到数据库中。但是,由于 flavor 的概念将来可能会从 Nova 中移除,因此应避免向 flavor 添加新字段。
关于特性偏好,我们目前有一些关于“在哪里指定偏好”和“如何排序偏好”的想法,但这些想法可能尚未在该规范中确定。
数据模型影响¶
无。
REST API 影响¶
没有直接的 API 变更。但是,当 flavor extra spec 中存在无效特性,或者特性 extra spec 中的值无效时,使用该 flavor 启动的服务器将失败。服务器将进入 error 状态,就像调度失败一样。这不需要新的 microversion,因为它被视为当前的 API 行为,即调度失败的情况。
安全影响¶
无。
通知影响¶
无。
其他最终用户影响¶
无。
性能影响¶
无。
其他部署者影响¶
无。
开发人员影响¶
无。
实现¶
负责人¶
- 主要负责人
Lei Zhang <lei.a.zhang@intel.com>
- 其他贡献者
Alex Xu <hejie.xu@intel.com> Ed Leafe <ed@leafe.com> cyx1231st <yingxin.cheng@intel.com>
工作项¶
从 flavor extra_specs 中提取特性。
依赖项¶
依赖于一个蓝图,为 allocation candidates API 添加特性支持 [2],该蓝图使 Placement 服务能够根据特性查询资源提供者。
测试¶
需要添加单元测试和功能测试来构建请求。功能测试将是 Nova 和 Placement 之间特性集成的端到端测试,该测试应包括启动和迁移用例。
文档影响¶
需要记录在 flavor 中指定特性的用户指南。
参考资料¶
历史¶
发布名称 |
描述 |
|---|---|
Queens |
引入 |