2014-01-20 22 views
0

我想學習在雲環境中,並且我期待在平臺資源分配和管理是OpenNebula。如果我想實現我自己的負載平衡算法,vm migration/vm assignment,我應該修改哪部分OpenNebula?修改OpenNebula碼

我想要做的是自動執行將應用於此場景的任務:a)檢測超載主機b)選擇要遷移的虛擬機c)選擇要遷移虛擬機的主機。

如果你可以建議其他工具來做到這一點,我會考慮它。我已經閱讀了一些關於OpenNebula的資料和書籍,但它都是關於使用該軟件的,並且沒有提到關於定製/修改的內容。

我知道這將是學習曲線很長的路要走,所以我希望你能指導我在正確的方向開始。

乾杯。

回答

1

OpenNebula有兩個主要的守護進程,oned和mm_sched。該scheduler mm_sched會談通過xml-rpc api oned,看看在[架構這裏] [3]。

一種選擇是創建自己的新的調度,使用[紅寶石] [4]或[java的] [5]綁定(或者,如果你使用XML-RPC直接任意語言)。

另一種選擇是調整現有的調度程序。所有的代碼都在[src/scheduler] [6]中,但是要警告它並不是代碼中最直接的部分。

祝你好運!

(堆棧溢出霸主不會讓我上傳超過2個鏈接,因爲我是小白在這裏,我會在評論複製它們)

+0

[3]:http://docs.opennebula.org/stable/integration/getting_started/introapis.html [4]:http://docs.opennebula.org/stable/integration/system_interfaces/ruby.html [5]:http://docs.opennebula.org/stable/integration/system_interfaces/java.html [6]:https://github.com/OpenNebula/one/tree/one-4.4/src/scheduler –

+0

thanx那麼多先生...那響鈴爲我... :) – belzeebob

0

最好的方式做你想做的是把管理程序當作努力工作者。 默認情況下,您可以使用vmware(Esxi)解決方案。 VMware虛擬機管理程序解決方案負責負載平衡虛擬機。 也就是說。您可以將問題分爲模塊。系統管理程序是負責一切負載均衡,等等等等(努力工作),而OpenNebula只使用它作爲前端相關的,只有通過你想要的(無論是虛擬機,虛擬網絡的API(由vCenter)告訴ESXi的責任等等)。 換句話說。不要將OpenNebula與管理程序以更高效的方式執行的任務重疊。