提议的新库 oslo.limit¶
这是一个创建新库的提议,旨在在 OpenStack 中实现更一致的配额和限制执行。
提议的库使命¶
在 OpenStack 中执行配额和限制一直是一个难以解决的问题。确定执行需要来自服务的配额知识,以及关于拥有资源的项目的相关信息。直到 Queens 版本发布之前,配额计算和执行都留给服务来实现,迫使它们理解 keystone 项目结构的复杂性。在 Pike 和 Queens PTG 期间,围绕重新设计当前的配额执行方法进行了几次富有成效的讨论。
由于 keystone 是项目结构的权威,因此让 keystone 持有资源限制与项目之间的关联是有意义的。这意味着服务仍然需要计算配额和使用量,但由于开发人员不需要重新实现项目及其相关限制的可能层次结构,因此服务实现问题应该更容易。相反,我们可以将部分工作卸载到一个公共库中,供服务使用,该库处理基于 keystone 中与项目关联的限制进行配额计算的执行。本提案是创建一个名为 oslo.limit 的新库来满足这一需求。
Consuming projects¶
使用这项工作的服务将是任何当前实现配额系统或计划实现配额系统的服务。由于 keystone 已经支持统一限制并将限制与项目关联,因此消费项目的实现更容易。与其必须重写该实现,开发人员需要确保将配额计算传递到 API 验证层中的 oslo.limit 库。此处描述的模式与当前利用 oslo.policy 进行授权决策的服务使用的模式非常相似。
替代库¶
看起来有一个现有的库试图解决这些问题,名为 delimiter。看起来 delimiter 可以用于与 keystone 讨论配额执行,而使用 oslo.limit 的现有方法是直接使用 keystone。
提议的采用模型/计划¶
keystone 中的 统一限制 API 目前标记为实验性的,但 keystone 团队正在积极收集和解决反馈,这将导致 API 的稳定。影响 oslo.limit 库的稳定更改将在 1.0.0 版本发布之前得到解决。从那时起,我们可以着手将该库合并到具有现有配额实现或具有配额要求但没有实现的各种服务中。
这将有助于我们完善服务与 oslo.limit 之间的接口,同时提供一个处理项目层次结构复杂性的外观。这将通过简化流程并使跨服务的配额实施更加一致,从而促进采用。
评审员活动¶
初步的想法是,在 oslo.policy 库之后对评审员结构进行建模,其中核心团队由不仅对限制和配额感兴趣的人员组成,还包括熟悉 keystone 统一限制 API 实现的人员。
实现¶
工作项¶
创建一个名为 oslo.limit 的新库
为该项目创建一个核心团队
定义在 oslo.limit 中执行配额计算的最低要求
提出一个实现,允许服务通过统一限制测试配额执行
参考资料¶
Rocky PTG etherpad 用于统一限制。我们讨论了服务与 keystone 之间的交互,最终同意包含一个库来处理配额执行。
修订历史¶
发布名称 |
描述 |
|---|---|
Rocky |
引入 |
注意
本作品采用知识共享署名 3.0 非移植许可协议授权。 http://creativecommons.org/licenses/by/3.0/legalcode