Liberty 项目优先级¶
Nova 开发团队在 Liberty 版本中优先处理的优先级列表(顺序不限)。
优先级 |
负责人 |
|---|---|
缺乏明确计划的优先级¶
以下是一些我们希望优先处理的事情,但目前缺乏明确的计划或领导者。
制定风味(flavors)、镜像属性和宿主机聚合的未来计划。
风味扩展规格导致 API 体验不佳。难以发现某个特性是否可用,并且经常泄露实现细节。
镜像创建者在尝试为镜像获得最佳性能时,会接触到许多特定于超visor的镜像属性。我们需要一种更好的处理方式。
许多私有云用户希望比风味提供的更灵活的配置。主要的权衡是失去风味严格配置带来的容量规划简化。
喜欢风味的用户面临着风味爆炸式增长的问题,可能可以通过某种可选的附加组件来更好地处理。对于某些特性,用户被迫创建镜像以设置某些镜像属性,才能激活他们想要的功能。
这与我们所有部署都具有相同 API 的使命背道而驰。
API 触发操作的任务
用户通常很难确定他们的 API 请求触发的操作是否已实际完成。
虽然我们有实例操作,但它们尚未涵盖所有操作。
我们有请求 ID,但它们隐藏在标头中,并且没有很好地记录为跟踪操作的方式。
强制重启 nova-compute 时,操作的错误处理混乱且不标准,需要更一致性。
理想情况下,应该有一个更异步的 API,具有 Web 回调或更友好的事件协议,但这方面的努力是完全独立的。
简化配额
当前的配额代码已被证明不可靠。
已经识别出一种过早的优化,导致数据库级别的竞争,我们应该尝试删除该优化。
配额预留和提交系统很复杂,如果可能,我们应该考虑删除这种复杂性。
这项工作应该更容易添加新功能,例如嵌套配额。
重新审视我们与 Glance、Neutron 和 Cinder API 的交互方式
Cinder 创建了 os-brick,这应该使 Nova 更容易支持新的卷驱动程序,并停止重复代码。
Nova 中的 Neutron VIF 驱动程序代码存在与卷驱动程序类似的问题。随着 Neutron 变得更加分散,我们需要在 Nova 的 VIF 驱动程序逻辑中模拟相同的模式。已经提出了一种新的库。
更普遍地说,我们在创建端口代码中遇到了许多竞争问题,该代码位于 Neutron 网络 API 中。理想情况下,我们可以创建一些新的 Neutron API,以减少阻抗失配并减少竞争。
对于 Glance,在 Cinder 和 Nova 中都有重复的代码来访问 Glance 中的数据,包括对 v2 API 的支持。拥有一个库来减少这种重复会很好。
功能测试分类
我们的用户也应该清楚哪些功能是实验性的,哪些功能经过测试并准备好投入生产,哪些功能已被弃用并计划删除。
我们应该重新审视超visor 支持矩阵,并研究如何深入了解我们的测试差距并填补它们。无论是缺少 Tempest 测试,还是缺少测试环境/组合。
理想情况下,这应该包括填补任何文档差距,特别是围绕 API 文档的差距。
修复更多错误
我们需要完成所有待处理的错误修复的审查。
需要更好地了解所有没有修复的错误。
着眼于识别关键主题,例如配额错误,以识别需要关注的领域。
Cells v2¶
我们在 Kilo 中启动了 cells v2 工作。在 Liberty 中,我们专注于使默认设置成为单个 cells v2 部署。
在 M 版本中,我们希望支持 cells v2 部署中的多个 cells,包括一种将现有的 cells v1 部署迁移到 cells v2 的方法。
V2.1 API¶
完成围绕 API 微版本的工作,特别关注文档、Tempest 覆盖率和 python-novaclient 支持。我们还需要定义在何时增加 API 微版本以及在微版本增加中允许哪些更改的策略。
我们明确排除将任何来自先前 v3 API 努力的装饰性更改移植到新的 API 微版本中的工作。
调度器¶
在 Kilo 期间,我们在清理调度器与 Nova 剩余部分之间的接口方面取得了很大进展。
在 Liberty 中,我们希望完成围绕请求规范和资源对象的工作。我们还希望开始研究服务组 API,以及资源跟踪器方面的更多工作。
升级¶
虽然我们在过去几个版本中在升级方面取得了很大的进展,但仍有几个与数据库迁移相关的问题需要完成。
首先,我们需要充分记录我们在 Kilo 期间测试的新的在线数据迁移方法,以执行从系统元数据到实例扩展的风味迁移。此外,我们应该整理文档,说明如何在发布边界上增加 RPC 和对象版本,以消除技术债务。
其次,我们必须完成朝着我们拥有在线模式迁移迈出的第一步,即将模式迁移分为扩展和收缩阶段。
第三,我们必须完成将所有代码转换为通过 DB 对象访问数据库的最后一部分。
DevRef 更新¶
能够扩展 Nova 团队的关键部分是更好地共享有关 Nova 社区如何运作、Nova 架构如何运作、我们正在使用的基本设计原则、Nova 的范围等信息。
主要目标是使新 Nova 贡献者更容易上手,并更容易发现社区已经做出的任何决定。