在 Watcher 中添加新的动作“开启”和“关闭”¶
https://blueprints.launchpad.net/watcher/+spec/add-power-on-off
对于拥有大量虚拟机和物理主机的数据中心,总功耗是巨大的。当工作负载不高时,Watcher 可以通过触发请求关闭一些空闲主机(没有虚拟机)来降低功耗。当工作负载增加时,Watcher 将触发“开启”请求以满足服务需求。
此功能包括四个子功能
在 Watcher 中构建新的裸机数据模型。
在 Watcher 中添加新的动作“开启”和“关闭”。
实现一种基于“裸机”和“计算”数据模型的新策略,该策略可以触发“计算”和“裸机”动作。
通过 ironic 通知更新裸机数据模型。
此规范实现了第二个子功能:在 Watcher 中添加新的动作“开启”和“关闭”。
问题描述¶
电信网络流量潮汐[1]是电信领域的一个实际现象。例如,在白天,大量用户聚集在 CBD[2] 区域,网络流量系统的负载很高。当他们下班时,用户数量迅速下降,网络流量负载也随之下降。问题是如何在不断变化的网络流量负载下,以最小的能源消耗满足用户网络服务需求。
作为 ZTE 公司的真实案例,这个问题通过以下方式解决。首先,设置一个边界值来描述集群中空闲主机的最大百分比,该值可以由用户配置。当空闲主机比例高于边界值时,我们会关闭一些空闲主机,直到比例降低到边界值。相应地,当该比例低于预设值时,我们会开启一些主机,直到比例增加到边界值。
此规范中的功能仅实现“开启”和“关闭”动作,根据边界值决定哪些主机将被开启/关闭的功能将留作后续工作。
用例¶
作为部署者,我希望在 watcher 中有一个“关闭”动作,以帮助通过自动减少运行主机数量来降低能源消耗,尤其是在工作负载较低时。
作为部署者,我希望在 watcher 中有一个“关闭”动作,以便在工作负载增加并需要更多资源时自动增加运行主机数量。
提议的变更¶
给定目标主机,我们使用 Ironic Client 调用 IPMI 工具,通过以下 Ironic API 执行“开启”和“关闭”动作:https://developer.openstack.org/api-ref/baremetal/?expanded=change-node-power-state-detail
在执行电源开启/关闭审计之前验证主机状态。
备选方案¶
无
数据模型影响¶
无
REST API 影响¶
无
安全影响¶
无
通知影响¶
无
其他最终用户影响¶
无
性能影响¶
无
其他部署者影响¶
无
开发人员影响¶
使用单元测试测试此新动作。或者,作为替代方案,开发人员可以使用执行器策略来允许显式动作执行。此执行器策略在以下补丁集中描述:https://review.opendev.org/#/c/425110/。
实现¶
负责人¶
- 主要负责人
<li-canwei2>
- 其他贡献者
<alexchadin>,<yumeng-bao>
工作项¶
从 Watcher 裸机数据模型中获取目标主机。实现动作:’change_node_power_state’,该动作的输入参数为‘on’或‘off’。
依赖项¶
此功能依赖于以下蓝图:https://blueprints.launchpad.net/watcher/+spec/build-baremetal-data-model-in-watcher
测试¶
单元测试
Tempest 测试
文档影响¶
无
参考资料¶
[1]http://ieeexplore.ieee.org/abstract/document/7179335/ [2]https://en.wikipedia.org/wiki/Central_business_district [3]https://developer.openstack.org/api-ref/baremetal/?expanded=show-node-details-detail#Response
历史¶
无
发布名称 |
描述 |
|---|---|
Pike |
引入 |