我想研究云环境中的资源分配和管理,我正在研究的平台是 OpenNebula 。如果我想实现我自己的负载均衡算法,vm migration / vm赋值,我应该修改哪部分OpenNebula?
我想要做的是自动执行将应用于此方案的任务:a)检测过载的主机b)选择要迁移的虚拟机)c)选择要迁移虚拟机的主机。
如果你可以建议其他工具来做这件事,我也会考虑。我已经阅读了一些关于OpenNebula的资料和一本书,但它完全是关于使用该软件,并没有提到任何关于定制/修改的内容。
我知道这对学习曲线来说还有很长的路要走,所以我希望你能指引我正确的方向开始。
干杯。
答案 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。