Ocata 项目优先级

Nova 开发团队在 Ocata 版本中优先处理的评审工作列表(顺序不限)。

优先级

主要联系人

Cells V2

Dan Smith Melanie Witt

资源提供者

Jay Pipes Sylvain Bauza Chris Dent

API 改进

Alex Xu Kevin Zheng

感知网络的调度

John Garbutt

Cells v2

在 Newton 版本中,已经实现了单个 cells v2 部署,并添加了 CI 测试,但截至 Newton,cells v2 仍然是可选的。

在 Ocata 中,目标是在部署中支持多个 cells v2 单元。 为了实现这一目标,有几个优先处理的工作。

  • cells v2 的调度器交互:这将实例创建移动到 nova-conductor 服务,以便当调度器选择主机时,实例将在特定的单元中构建。 在 Ocata 中,我们没有计划支持在单元之间重建或其他实例移动操作,例如迁移。

  • API 单元中的配额:配额表已移动到 API 数据库,但我们希望避免在处理配额提交和回滚时从计算单元到 API 的“向上调用”。 通过 cells v2,我们有机会重新思考 Nova 如何支持资源计数和配额跟踪,因此这项工作旨在将配额处理移动到更简化的解决方案,该解决方案更具最终一致性,并且通过设计避免无效的超额故障。

  • 在排序和/或过滤跨多个单元的实例列表时,支持简单的 python 合并操作。 从长远来看,这应该由 Searchlight 处理,但对于 Ocata,我们将有一个简单但性能较低的解决方案。

  • 使用默认启用 cells v2 的持续集成测试。 我们旨在使 cells v2 在 Ocata 部署中成为必需的,为了实现这一目标,我们需要让社区 CI 作业运行 cells v2。 这需要对 grenade 进行更改以进行升级测试,并使用多节点作业测试多个 cells v2 单元。

资源提供者

  • Placement / 调度器交互:Nova Filter Scheduler 将向 placement API 发出请求,以获取简单的计算节点资源,例如 VCPU、RAM 和磁盘。 这允许调度器将这项工作卸载到 placement 服务,而不是从 Nova 数据库查询所有计算节点,然后将这些潜在主机通过所有 python 过滤器进行迭代。 placement 服务可以通过直接使用 SQL 查询执行计算节点资源提供者过滤来优化。

  • 处理聚合资源:这是 Newton 中正在进行的工作,我们需要能够为共享存储和 IP 分配池等资源提供者聚合建模。 然后,计算节点中的资源跟踪器可以在对计算节点内的特定聚合中的共享存储发出请求时,从 placement 服务中提取此信息。 然后,资源声明是在资源提供者而不是计算节点上进行的。

  • 自定义资源类:将提供一个 REST API 用于处理资源类和创建自定义资源类,这些资源类将在创建 Ironic 节点的库存和分配记录时使用。

API 改进

这些改进是优先事项,因为它们与跨多个单元排序和过滤实例有关。

  • 查询参数验证:v2.1 API 已经使用 json schema 验证请求体,但请求参数在代码中进行验证,有时不一致,并且没有微版本支持。 这项工作将添加 json schema 验证到请求查询参数,并允许 schema 随时间使用微版本进行更改。

  • 限制实例排序/过滤参数:对于管理员,排序和过滤参数会传递到 DB API。 这存在许多问题,例如过滤参数可能位于未索引的列上,因此查询性能可能较差。 这些列也可能位于排序和过滤没有意义的连接表上。 因此,这项工作是限制在列出实例时排序和过滤参数到已知良好的集合,以后可以使用微版本进行扩展。

感知网络的调度

在 Newton 中,我们开始重构内部 Neutron v2 API 代码,以便端口创建和更新操作解耦。 端口更新是主机绑定发生的地方。 目标是将这些操作从 nova-compute 服务移动到 nova-conductor 服务,以便 placement 服务最终可以与 IP 分配池(用于 Neutron 路由网络)一起使用,并且还可以使端口绑定或构建失败的恢复成本降低,因为它将在 conductor 服务中集中管理,而不是在每个计算节点上进行管理。 支持 Neutron 路由网络是使用多个单元的 Neutron 的依赖项。