修改OpenNebula代码

时间:2014-01-20 03:45:17

标签: opennebula

我想研究云环境中的资源分配和管理,我正在研究的平台是 OpenNebula 。如果我想实现我自己的负载均衡算法,vm migration / vm赋值,我应该修改哪部分OpenNebula?

我想要做的是自动执行将应用于此方案的任务:a)检测过载的主机b)选择要迁移的虚拟机)c)选择要迁移虚拟机的主机。

如果你可以建议其他工具来做这件事,我也会考虑。我已经阅读了一些关于OpenNebula的资料和一本书,但它完全是关于使用该软件,并没有提到任何关于定制/修改的内容。

我知道这对学习曲线来说还有很长的路要走,所以我希望你能指引我正确的方向开始。

干杯。

2 个答案:

答案 0 :(得分:1)

OpenNebula有两个主要守护进程,oned和mm_sched。 scheduler mm_sched通过xml-rpc api进行谈话,看看[这里的架构] [3]。

一种选择是使用[ruby] [4]或[java] [5]绑定(或任何语言,如果直接使用xml-rpc)创建自己的新调度程序。

另一种选择是调整现有的调度程序。所有代码都在[src / scheduler] [6]中,但要注意它不是代码中最直接的部分。

祝你好运!

(Stack Overflow的霸主不会让我发布超过2个链接,因为我在这里是一个菜鸟,我会在评论中复制它们)

答案 1 :(得分:0)

做你想做的事情的最好方法是将管理程序作为努力工作者。 默认情况下,您可以使用vmware(Esxi)解决方案。 vmware虚拟机管理程序解决方案负责负载平衡虚拟机。 也就是说。您可以将问题划分为模块。虚拟机管理程序负责与负载平衡等相关的所有事情(艰苦工作),而OpenNebula仅将其用作前端,它只负责通过您想要的API(vCenter)告知ESXi(虚拟机,虚拟网络)等等)。 换一种说法。不要使用虚拟机管理程序以更有效的方式执行的任务来重载OpenNebula。