实现资源组的批量创建和更新¶
https://blueprints.launchpad.net/heat/+spec/resource-group-batching
添加批量创建和更新资源的可能性
问题描述¶
Heat 不允许批量创建资源,这可能导致云端对于大量资源产生不必要的负载。特别是,在创建/更新虚拟机和轮询这些资源的状态时,nova 可能会在部署大型 Sahara 集群时失败,因为存在大量的并发请求。此外,Heat 部分支持批量更新(仅针对 AutoscalingGroup)
提议的变更¶
将类似于 rolling_update 结构的 batching_policy 属性添加到 ResourceGroup
res_group:
type: OS::Heat:ResourceGroup
properties:
count: 5
...
batching_policy:
min_in_service:1
max_batch_size: 2
pause_time: 10
batch_actions: ['CREATE', 'UPDATE_EXISTING', 'UPDATE']
...
Where
max_batch_size、pause_time、min_in_service 的含义与 rolling_update 中的含义相同,但有一个例外:min_in_service 不能应用于批量 CREATE 操作,将被忽略。
batch_actions 是将被批处理的操作,可用的选项如下
CREATE:在堆栈创建时应用批量处理,即每次批量添加 max_batch_size 个资源,除了最后一个批量外。
UPDATE_EXISTING:与滚动更新完全相同
UPDATE:常规更新,现有资源将批量更新,如果需要添加一些资源,它们也将批量添加。
建议将旧的 rolling_update 属性弃用,以支持 batching_policy,因为 batching_policy 具有更广泛的可能性,包括旧的 rolling_update。
备选方案¶
无
实现¶
负责人¶
ochuprykov
里程碑¶
- 完成目标里程碑
Liberty-2
工作项¶
将 batching_policy 属性添加到 ResourceGroup
添加必要的单元测试和功能测试用例
依赖项¶
无