【技術實現步驟摘要】
本專利技術涉及云計算領域,具體來說,涉及一種虛擬機的資源分配方法和裝置。
技術介紹
資源調度是云計算中的關鍵技術之一,資源調度可分為靜態調度和動態調度,其中,靜態調度指在虛擬機啟動時,按照一定的調度策略選擇目標云主機,只執行一次;而動態調度則指調度任務在后臺定時查看資源負載情況,并根據調度策略執行遷移虛擬機、關閉或者啟動云主機操作。資源調度實現的好壞從很大程度上能夠決定一個云計算系統的成敗。創建、啟動虛擬機的過程就是資源分配的過程;在系統運行過程中,資源調度不斷動態地根據系統負載情況調整資源,以達到系統的負載均衡和節能等需求。而在批量啟動虛擬機時,由于啟動一臺虛擬機需要一個時間過程,在下一臺虛擬機啟動時,前面的虛擬機可能正在啟動前的校驗中,因此在統計云主機上正在運行的虛擬機個數時,只能得到已經啟動的虛擬機個數,而正在啟動的虛擬機個數獲取不到,這就容易造成啟動結果混亂,比如原本不能在云主機上啟動的虛擬機在云主機上啟動了,導致云主機上啟動的虛擬機個數超出用戶的設置;或者原本希望批量啟動的虛擬機在各個云主機上是負載均衡的,但實際上可能所有虛擬機都啟動在一臺云主機上,根本沒有達到負載均衡的效果等。具體的,如圖1所示,在現有技術中,在應用負載均衡資源調度批量啟動虛擬機時,在資源池1中有3個云主機,要啟動3臺虛擬機vm7、vm8、vm9,在啟動過程中可能出現3臺虛擬機均啟動在云主機1上的情況,因為在啟動 >vm8、vm9的時候,vm7還沒有進入啟動狀態,導致后面調度執行判斷的時候,始終認為云主機1上運行虛擬機個數最少,最終結果是所有虛擬機都啟動在同一個云主機上,顯然并沒有達到負載均衡的目標。由此可見,在現有技術中,資源調度無法很好地處理批量啟動虛擬機的并發事件。批量啟動虛擬機一般會同時創建多個異步任務,這就導致批量啟動多臺虛擬機時可能都選擇了相同的目標云主機,造成云主機瞬間負載過大,可能會有一些虛擬機因為資源不足無法啟動,同時也無法更好的分配使用云主機資源。針對相關技術中的上述問題,目前尚未提出有效的解決方案。
技術實現思路
針對相關技術中的上述問題,本專利技術提出一種虛擬機的資源分配方法和裝置,能夠使云主機資源得到均衡分配。本專利技術的技術方案是這樣實現的:根據本專利技術的一個方面,提供了一種虛擬機的資源分配方法。該資源分配方法包括:獲取云主機列表中每個云主機的正在運行虛擬機的個數X和鎖定虛擬機的個數Y,其中,鎖定虛擬機為正在啟動的虛擬機;根據云主機的預定分配需求對云主機列表中的每個云主機按照正在運行虛擬機的個數X和鎖定虛擬機的個數Y之和X+Y進行排序;從排序后的云主機列表中選擇最優云主機并分配虛擬機至最優云主機。其中,在獲取云主機列表中每個云主機的鎖定虛擬機個數Y時,可通過查詢預定的資源緩沖區中是否包含該云主機,在包含該云主機的情況下,獲取該云主機的鎖定虛擬機個數Y,其中,預定的資源緩沖區用于存儲云主機與該云主機鎖定虛擬機的個數的對應關系。此外,該資源分配方法進一步包括:在根據云主機的預定分配需求對云主機列表中的每個云主機按照正在運行虛擬機的個數X和鎖定虛擬機的個數Y之和X+Y進行排序后,將云主機列表中每個云主機的正在運行虛擬機的個數X和鎖定虛擬機的個數Y之和X+Y與該云主機能夠運行虛擬機的最大個數進行比較;將云主機列表中的正在運行虛擬機的個數X和鎖定虛擬機的個數Y之和X+Y小于該云主機能夠運行虛擬機的最大個數的云主機的鎖定虛擬機的個數Y+1。其中,在將云主機列表中的正在運行虛擬機的個數X和鎖定虛擬機的個數Y之和X+Y小于該云主機能夠運行虛擬機的最大個數的云主機的鎖定虛擬機的個數Y+1時,可將資源緩沖區中該云主機的鎖定虛擬機的個數Y+1。另外,該資源分配方法進一步包括:在將云主機列表中每個云主機的正在運行虛擬機的個數X和鎖定虛擬機的個數Y之和X+Y與該云主機能夠運行虛擬機的最大個數進行比較之前,查詢預定的資源緩沖區中是否包含該云主機,在不包含該云主機的情況下,將該云主機添加至預定的資源緩沖區。此外,該資源分配方法進一步包括:將云主機列表中的正在運行虛擬機的個數X和鎖定虛擬機的個數Y之和X+Y小于該云主機能夠運行虛擬機的最大個數的云主機構成新的云主機列表;從排序后的云主機列表中選擇最優云主機并分配虛擬機至最優云主機包括:從新的云主機列表中選擇最優云主機并分配虛擬機至最優云主機。可選的,在從排序后的云主機列表中選擇最優云主機時,可從云主機列表中查詢是否存在預定最優云主機;在存在預定最優云主機的情況下,將云主機列表中該預定最優云主機作為最優云主機;在不存在預定最優云主機的情況下,將排序后的云主機列表中排序第一的云主機作為最優云主機。另外,該資源分配方法進一步包括:將云主機列表中未被選擇的云主機在資源緩沖區中該云主機的鎖定虛擬機的個數Y-1。此外,云主機的預定分配需求包括以下至少之一:用戶需求優先;負載均衡優先;綠色節能優先。根據本專利技術的另一方面,提供了一種虛擬機的資源分配裝置。該資源分配裝置包括:獲取模塊,用于獲取云主機列表中每個云主機的正在運行虛擬機的個數X和鎖定虛擬機的個數Y,其中,鎖定虛擬機為正在啟動的虛擬機;排序模塊,用于根據云主機的預定分配需求對云主機列表中的每個云主機按照正在運行虛擬機的個數X和鎖定虛擬機的個數Y之和X+Y進行排序;選擇模塊,用于從排序后的云主機列表中選擇最優云主機并分配虛擬機至最優云主機。本專利技術通過將云主機的運行虛擬機個數和鎖定虛擬機個數相加并作出排序處理,從而使得云主機上的虛擬機的啟動情況完全與真實的情況一致,能夠實現真正的負載均衡。附圖說明為了更清楚地說明本專利技術實施例或現有技術中的技術方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本專利技術的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。圖1是根據現有技術的批量啟動虛擬機的結果示意圖;圖2是根據本專利技術實施例的虛擬機的資源分配方法的流程圖;圖3是根據本專利技術實施例的資源總緩沖區的查詢設置流程圖;圖4是根據本專利技術實施例的獲取最優云主機的流程圖;圖5是根據本專利技術實施例的批量啟動虛擬機的結果示意圖;圖6是根據本專利技術實施例的虛擬機的資源分配裝置的框圖。具體實施方本文檔來自技高網...
【技術保護點】
一種虛擬機的資源分配方法,其特征在于,包括:獲取云主機列表中每個云主機的正在運行虛擬機的個數X和鎖定虛擬機的個數Y,其中,所述鎖定虛擬機為正在啟動的虛擬機;根據云主機的預定分配需求對所述云主機列表中的每個云主機按照正在運行虛擬機的個數X和鎖定虛擬機的個數Y之和X+Y進行排序;從排序后的所述云主機列表中選擇最優云主機并分配虛擬機至所述最優云主機。
【技術特征摘要】 【專利技術屬性】
1.一種虛擬機的資源分配方法,其特征在于,包括:
獲取云主機列表中每個云主機的正在運行虛擬機的個數X和鎖定虛擬
機的個數Y,其中,所述鎖定虛擬機為正在啟動的虛擬機;
根據云主機的預定分配需求對所述云主機列表中的每個云主機按照正
在運行虛擬機的個數X和鎖定虛擬機的個數Y之和X+Y進行排序;
從排序后的所述云主機列表中選擇最優云主機并分配虛擬機至所述最
優云主機。
2.根據權利要求1所述的資源分配方法,其特征在于,獲取所述云主
機列表中每個云主機的鎖定虛擬機個數Y包括:
查詢預定的資源緩沖區中是否包含該云主機,在包含該云主機的情況
下,獲取該云主機的鎖定虛擬機個數Y,其中,所述預定的資源緩沖區用
于存儲云主機與該云主機鎖定虛擬機的個數的對應關系。
3.根據權利要求1或2所述的資源分配方法,其特征在于,在根據云
主機的預定分配需求對所述云主機列表中的每個云主機按照正在運行虛擬
機的個數X和鎖定虛擬機的個數Y之和X+Y進行排序后,進一步包括:
將所述云主機列表中每個云主機的正在運行虛擬機的個數X和鎖定虛
擬機的個數Y之和X+Y與該云主機能夠運行虛擬機的最大個數進行比較;
將所述云主機列表中的正在運行虛擬機的個數X和鎖定虛擬機的個數
Y之和X+Y小于該云主機能夠運行虛擬機的最大個數的云主機的鎖定虛擬
機的個數Y+1。
4.根據權利要求3所述的資源分配方法,其特征在于,將所述云主機
列表中的正在運行虛擬機的個數X和鎖定虛擬機的個數Y之和X+Y小于
該云主機能夠運行虛擬機的最大個數的云主機的鎖定虛擬機的個數Y+1包
括:將所述資源緩沖區中該云主機的鎖定虛擬機的個數Y+1。
5.根據權利要求3所述的資源分配方法,其特征在于,在將所述云主
機列表中每個云主機的正在運行虛擬機的個數X和鎖定虛擬機的個數Y之
和X+Y與該云主機能夠運行虛擬機的最大個數進行比較之前,進一步包
技術研發人員:李紹輝,郝秋影,范霄,王慧謙,劉潤峰,
申請(專利權)人:曙光信息產業北京有限公司,
類型:發明
國別省市:北京;11
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。