关于新的 OWNER_NOVA 特性

https://blueprints.launchpad.net/nova/+spec/owner-nova-trait-usage

该规格文档是关于新的 OWNER_NOVA 特性的使用。

问题描述

目前在 Placement 中,每个资源类通常只被单个服务使用。随着 Cyborg 中 VGPU 支持的引入,Nova 和 Cyborg 现在共享 VGPU 资源类的所有权或使用权。这产生了一个使用问题,即根据创建库存的服务,需要不同的工作流程才能正确地消耗 VGPU 资源类。

由于 Nova 和 Cyborg 项目都可以报告 VGPU 资源,我们应该能够通过每个服务记录他们创建或“拥有”资源提供者来解决共享 VGPU 资源类的问题,但是目前还没有这样做。

用例

作为操作员,我希望能够部署多个可以共享相同资源类名称的服务,而不会产生调度冲突。

作为操作员,我希望有一种方法能够在 OpenStack 服务之间迁移资源管理,使用简单的操作,例如将从消耗 Nova 提供的 VGPU 的 flavor 调整大小到使用 Cyborg 提供的 VGPU 的 flavor。

作为最终用户,我希望能够在单个实例中消耗来自 Nova 和 Cyborg 的资源,而无需理解 Placement 或调度的细节。

提议的变更

该规格文档建议添加一个新的 OWNER_NOVA 特性和预过滤器。Nova 将在它创建的每个 ResourceProvider 上标记一个 OWNER_NOVA 特性,这意味着库存仅由该服务提供。Nova 将提供一个预过滤器,主动请求它自己的 OWNER_NOVA 特性,而 Cyborg 将通过其设备配置文件要求 OWNER_CYBORG 特性来过滤它们自己管理的资源。

备选方案

数据模型影响

无。

REST API 影响

安全影响

无。

通知影响

其他最终用户影响

性能影响

其他部署者影响

操作员将看到所有 Resource Providers 的新特性。

开发人员影响

升级影响

我们需要确保在滚动升级到引入 OWNER_NOVA 特性的 Nova 版本期间,Nova 的 VGPU 功能仍然有效。因此,为了确保 Nova 计算服务版本将被提升以指示何时升级了计算服务,从而在其 RPs 上报告 OWNER_NOVA 特性。 过滤 OWNER_NOVA 特性的预过滤器仅在最小计算服务版本指示所有计算服务都已升级并因此报告 OWNER_NOVA 特性时才启用。 这样,在旧计算服务仍然存在的情况下进行滚动升级,预过滤器将不会启用,Nova VGPU 功能将像今天一样工作。 但是,一旦所有计算服务都升级,预过滤器将自动开始强制执行所有 Nova VGPU 功能请求的 OWNER_NOVA 特性。

实现

负责人

主要负责人

wenpingsong

其他贡献者

brinzhang

功能联络人

功能联络人

wenpingsong

工作项

  • 为 os_traits 项目添加 OWNER_NOVA。

  • 用 OWNER_NOVA 特性标记 Nova 创建的每个 ResourceProvider。

  • 为每个 Nova 请求组添加预过滤器特性。

  • 添加相关的单元和功能测试。

依赖项

测试

需要相关的单元和功能测试。

文档影响

修改相关文档,添加 OWNER_NOVA 特性,用于更新可用资源和预过滤器调度器。

参考资料

历史

修订版

发布名称

描述

瑜伽

引入