统一限制的工具和文档¶
https://blueprints.launchpad.net/nova/+spec/unified-limits-nova-tool-and-docs
在 Yoga 版本中,Nova 添加了对统一限制的支持,作为一个实验性功能,以便尽早获得反馈并修复运营商在使用过程中发现的问题。现在已经发布了几个版本,我们希望通过创建工具来帮助运营商将现有的传统配额限制从 Nova 复制到 Keystone 中的统一限制,在 Nova 配额文档中发布官方文档,并删除关于 [quota]driver=nova.quota.UnifiedLimitsDriver 配置选项的说明,该说明表明其实验状态。
注意
目前没有立即弃用 Nova 中传统配额系统的计划。这项工作的目标是为选择在 Nova 中使用统一限制的用户提供更好的体验。
问题描述¶
目前 Nova 文档中没有关于统一限制的文档,也没有任何自动化工具可以将现有的 Nova 传统配额限制生成 Keystone 中的统一限制。
用例¶
作为运营商,我希望使用工具自动将现有的传统配额限制从 Nova 复制到 Keystone 中的统一限制。
作为运营商,我希望提供关于统一限制配额的正式文档。
提议的变更¶
我们建议创建一个自动化工具,例如,nova-manage limits migrate_to_unified_limits,它将从 Nova 数据库和配置选项中读取现有的传统配额限制,并使用 Keystone REST API 为它们在 Keystone 中创建等效的统一限制。它将能够迁移默认限制和项目范围的限制。它不会迁移用户范围的限制,因为统一限制不支持它们。
nova-manage 命令将遵循 检查配额 的优先级,并
检查
nova_api.quotas数据库表,并为每一行调用 KeystonePOST /limitsAPI,其中包含 project_id、资源名称和资源限制。这些是项目范围的限制。检查
nova_api.quota_classes数据库表,查看是否有 class_name 为default的行。如果有,则为每一行 class_name 为default的行调用 KeystonePOST /registered_limitsAPI,其中包含 resource_name 和 default_limit。这些是适用于所有项目的默认限制。检查以下配置选项
[quota] instances cores ram metadata_items injected_files injected_file_content_bytes injected_file_path_length key_pairs server_groups server_group_members
对于每个配置选项,使用其设置值或默认值调用 Keystone
POST /registered_limitsAPI,其中包含 resource_name 和 default_limit,如果 Keystone 中资源名称尚未具有已注册的限制。这些是适用于所有项目的默认限制。nova_api.project_user_quotas数据库表将被忽略,因为统一限制不支持用户范围的限制。
我们将向 Nova 文档添加关于统一限制的正式文档,并删除关于 [quota]driver 配置选项的说明,该说明表明 nova.quota.UnifiedLimitsDriver 处于开发状态。
备选方案¶
运营商可以使用 openstack limit openstack 客户端命令,而无需提供的工具来创建统一限制。
数据模型影响¶
无
REST API 影响¶
无
安全影响¶
无
通知影响¶
无
其他最终用户影响¶
最终用户将能够阅读有关配额如何与统一限制一起工作的文档。
性能影响¶
无
其他部署者影响¶
部署者可以选择使用配额限制迁移工具将现有的 Nova 传统配额限制复制到 Keystone 统一限制,而不是使用 openstackclient 命令或手动调用 Keystone REST API。
开发人员影响¶
无
升级影响¶
配额限制迁移工具没有升级影响,运营商可以在任何时间运行该工具,不受升级限制。唯一的要求是 Keystone API 需要可用,并且 nova-manage 必须具有访问具有配置了 [api_database]connection 的 Nova 配置的权限,以便它可以访问 Nova 配额数据库表。
实现¶
负责人¶
- 主要负责人
melwitt
- 其他贡献者
无
功能联络人¶
- 功能联络人
melwitt
工作项¶
开发一个
nova-manage limits migrate_to_unified_limits命令,通过调用 Keystone REST API 将现有的 Nova 传统配额限制从 Nova 数据库和配置选项复制到统一限制编写 Nova 中统一限制的文档
删除关于驱动程序处于开发状态的
[quota]driver=nova.quota.UnifiedLimitsDriver的说明与 Keystone 团队合作,删除 https://docs.openstack.org/keystone/latest/admin/unified-limits.html 中关于统一限制 API 被标记为实验性的文档警告
依赖项¶
测试¶
将添加配额限制迁移工具的单元和/或功能测试。
我们还可以将配额限制迁移工具与现有的 nova/tools/hooks/post_test_hook.sh 统一限制覆盖一起在 nova-next CI 作业中进行测试。
文档影响¶
Nova 统一限制文档的添加将对运营商产生最大的影响。需要更新以下文档
参考资料¶
历史¶
发布名称 |
描述 |
|---|---|
2023.2 Bobcat |
引入 |