声明:
本博客欢迎转发,但请保留原作者信息!
博客地址:http://blog.csdn.net/halcyonbaby
内容系本人学习、研究和总结,如有雷同,实属荣幸!
最近一个哥们在openstack邮件列表提出来做动态调度,引出很热烈的讨论。
这里分析一下openstack动态调度功能当前的现状。
目前openstack并未提供DRS、DPM的功能。属于openstack功能缺失的一部分。
实现思路
通过nova周期性任务或者独立的项目完成。 社区更倾向于通过单独的项目完成。
原因主要基于两点:
1. 实现比较复杂,放在nova中不合适
2. nova负责的计算资源管理,动态调度不应该放在nova中。
(类似于linux设计思想中的机制和策略)
目前动态调度相关的项目
Gantt项目
一个刚从nova分离出来的Scheduler as a service。
目前仍是初始阶段,尚未真正开始,至少juno版本仍无法使用。
初步目标仍是初始放置,未来也许有可能将动态放置放进来。
https://github.com/openstack/gantt
neat项目
似乎目前已经废弃,不再更新。
http://openstack-neat.org
Apache2.0 licence,部分代码使用了专利技术。
商业使用必须获得专利许可。
IBM PRS项目(非开源)
IBM PRS (Platform Resource Scheduler) 项目
http://www-01.ibm.com/common/ssi/cgi-bin/ssialias?infotype=AN&subtype=CA&htmlfid=897/ENUS213-590&appname=USN
heat+ceilometer方式实现
这个也是一个常见的实现思路。在讨论中也有人提及。简单的额说就是通过ceilometer周期性收集所需数据,通过heat根据已有策略进行计算平衡以及电源管理策略。
这里边最具参考价值的应该是neat,后续有空再详细研究下。