本發明實施例涉及虛擬化技術,特別是中央處理器資源分配方法和計算節點。
背景技術:
目前在信息技術領域,虛擬化技術得到了廣泛的應用。虛擬化技術提供了一種能夠將多個虛擬機部署在一個服務器上的能力,降低了用戶的總成本并且改善了應用的可靠性和靈活性。目前業界虛擬機中央處理器(Central Processing Unit,簡稱CPU)的管理普遍實現了CPU超分配,即虛擬機的虛擬CPU個數大于服務器中物理CPU的個數,以此來達到物理資源的充分利用。但是在物理資源緊張的情況下,如何合理分配物理CPU資源,成為擺在面前的最大問題之一。常用的實現方式是設置虛擬機的優先級,根據優先級的不同,為虛擬機分配不同份額的CPU資源。高優先級的虛擬機分配較多份額的物理CPU資源,以此實現針對不同需求的用戶,提供不同的服務,提高服務質量。
根據優先級的高低為虛擬機分配物理CPU資源,可能導致高優先級的虛擬機處于壟斷地位,而低優先級的虛擬機無法獲得物理CPU資源,不利于有效調配物理CPU資源。
技術實現要素:
本發明實施例提出了一種中央處理器資源分配方法,通過將CPU的物理核分隔成不同的資源池來實現物理核在不同資源池之間彼此隔離,并根據每個資源池服務的虛擬機的數量,在不同資源池之間動態地分配物理核,實現了物理核資源的有效利用,同時可靠地保證了不同資源池中虛擬機的服務質量。
第一方面,提出了一種中央處理器資源分配方法,所述方法包括:
根據高級資源池中的虛擬機的數量變化,動態地調整所述高級資源池中的物理核的分配數量;
根據所述高級資源池中物理核的分配數量調整默認資源池中的物理核的分配數量;
其中,所述高級資源池和默認資源池是按照資源池的服務等級將中央處理器的物理核進行劃分而得到的資源池。
結合第一方面,在第一種可能的實現方式中,所述服務等級包括允許每臺虛擬機占用物理核計算資源的數量。
結合第一方面或者第一方面的第一種可能的實現方式,在第二種可能的實現方式中,所述默認資源池中的虛擬機共享所述默認資源池中的全部物理核的計算資源。
結合第一方面或者第一方面的第一和第二種可能的實現方式,在第三種可能的實現方式中,所述高級資源池包括第一級資源池,其中所述第一級資源池中允許每臺虛擬機獨占一個物理核計算資源。
結合第一方面或者第一方面的第一至第三種可能的實現方式,在第四種可能的實現方式中,所述高級資源池包括第二級資源池,其中所述第二級資源池中允許每臺虛擬機占用一個物理核計算資源的50%。
結合第一方面或者第一方面的第一至第四種可能的實現方式,在第五種可能的實現方式中,所述根據高級資源池中的虛擬機的數量變化,動態地調整所述高級資源池中的物理核的分配數量,包括:
在所述高級資源池中的虛擬機數量增加時,根據增加的虛擬機數量以及所述高級資源池的服務等級確定需要向所述高級資源池分配的第一數量的物理核;
從所述默認資源池向所述高級資源池分配所述第一數量的物理核;
或者
在所述高級資源池中的虛擬機數量減少時,根據減少的虛擬機數量以及所述高級資源池的服務等級確定需要從所述高級資源池減少的第二數量的物理核;
從所述高級資源池向所述默認資源池分配所述第二數量的物理核。
結合第一方面或者第一方面的第一至第五種可能的實現方式,在第六種可能的實現方式中,所述在所述高級資源池中的虛擬機數量減少時,根據減少的虛擬機數量以及所述高級資源池的服務等級確定需要從所述高級資源池減少的第二數量的物理核,從所述高級資源池向所述默認資源池分配所述第二數量的物理核,具體包括:當所述高級資源池中沒有虛擬機運行時,將所述高級資源池中的物理核分配給所述默認資源池。
結合第一方面或者第一方面的第一至第六種可能的實現方式,在第七種可能的實現方式中,在所述根據高級資源池中的虛擬機的數量變化,動態地調整所述高級資源池中的物理核的分配數量之前,所述方法還包括:
確定所述高級資源池中的虛擬機數量發生變化之后,所述高級資源池中的物理核數量不足以滿足所述高級資源池中的服務等級。
結合第一方面或者第一方面的第一至第六種可能的實現方式,在第八種可能的實現方式中,在所述根據高級資源池中的虛擬機的數量變化,動態地調整所述高級資源池中的物理核的分配數量之前,
所述方法還包括:
確定所述高級資源池中的虛擬機數量發生變化之后,所述高級資源池中存在不服務于該高級資源池中的虛擬機的空閑的至少一個物理核計算資源。
結合第一方面或者第一方面的第一至第八種可能的實現方式,在第九種可能的實現方式中,所述方法還包括:為所述默認資源池中的虛擬機設定允許每臺虛擬機占用的物理核計算資源的上限百分比和/或下限百分比。
結合第一方面或者第一方面的第一至第九種可能的實現方式,在第十種可能的實現方式中,所述方法還包括:為所述默認資源池中的虛擬機設定每臺虛擬機使用物理核計算資源的優先級,并根據所述優先級高低順序為所述默認資源池中的虛擬機分配物理核的計算資源。
第二方面,提出了一種用于虛擬系統的計算節點,所述計算節點包括:
資源調整單元,用于根據高級資源池中的虛擬機的數量變化,動態地調整所述高級資源池中的物理核的分配數量,和用于根據所述高級資源池中物理核的分配數量調整所述默認資源池中的物理核的分配數量;
資源分配單元,用于根據資源池的服務等級,將中央處理器的物理核劃分成默認資源池和高級資源池。
結合第二方面,在第一種可能的實現方式中,在所述高級資源池中的虛擬機數量增加時,所述資源調整單元根據增加的虛擬機數量以及所述高級資源池的服務等級確定需要向所述高級資源池分配的第一數量的物理核,并且從所述默認資源池向所述高級資源池分配所述第一數量的物理核;
或者
在所述高級資源池中的虛擬機數量減少時,所述資源調整單元根據減少的虛擬機數量以及所述高級資源池的服務等級確定需要從所述高級資源池減少的第二數量的物理核,并且從所述高級資源池向所述默認資源池分配所述第二數量的物理核。
結合第二方面或者第二方面的第一種可能的實現方式,在第二種可能的實現方式中,所述計算節點還包括:
第一確定單元,用于確定所述高級資源池中的虛擬機數量發生變化之后,所述高級資源池中的物理核數量不足以滿足所述高級資源池中的服務等級。
結合第二方面或者第二方面的第一種可能的實現方式,在第三種可能的實現方式中,所述計算節點還包括:第一確定單元,用于確定所述高級資源池中的虛擬機數量發生變化時,所述高級資源池中存在不服務于該高級資源池中的虛擬機的空閑的至少一個物理核計算資源。
結合第二方面或者第二方面的第一至第三種可能的實現方式,在第四種可能的實現方式中,所述資源分配單元用于為所述默認資源池中的每臺虛擬機設定允許每臺虛擬機占用的物理核計算資源的上限百分比和/或下限百分比。
結合第二方面或者第二方面的第一至第四種可能的實現方式,在第五種可能的實現方式中,所述資源分配單元用于為所述默認資源池中的虛擬機設定每臺虛擬機使用物理核計算資源的優先級,并根據所述優先級高低順序為所述默認資源池中的虛擬機分配物理核的計算資源。
根據本發明實施例,通過將物理核劃分為不同的資源池,并且不同的資源池中的物理核的計算資源在不同資源池之間彼此隔離,實現了針對不同應用場景的物理核計算資源的有效分配,同時避免出現長期占用大量計算資源的壟斷虛擬機,防止了物理核計算資源分配失衡,提高了物理核的計算資源的利用效率。
附圖說明
為了更清楚地說明本發明實施例的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1是根據本發明實施例的中央處理器資源分配方法的示意流程圖;
圖2是根據本發明實施例的虛擬機遷入過程具體示例的流程圖;
圖3是根據本發明實施例的虛擬機遷出過程具體示例的流程圖;
圖4是虛擬機從源計算節點向目的結算接點遷移的信令交互圖;
圖5是根據本發明實施例的計算節點的示意結構圖;
圖6是根據本發明實施例的計算節點的示意結構圖;
圖7是根據本發明實施例的計算節點的另一種示意結構圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
本發明實施例的技術方案建立在虛擬機的虛擬CPU(簡稱VCPU)可以綁定到指定的資源池的基礎能力來實現的。本領域技術人員可以理解VCPU綁定到資源池的具體方式以及實現方法。為了簡略,本文對此不作詳細描述。
在本發明實施例的描述中,物理核指的是物理中央處理器的內核。運行虛擬機的服務器或者說計算節點一般包括多個CPU,每個CPU包含至少一個物理核。這些物理核可以分別用于不同的目的。本發明實施例中構成資源池的CPU的物理核可以是一個CPU的物理核,也可以是多個CPU的物理核;其中CPU可以位于一臺服務器或者說計算節點上,也可以位于多臺服務器或者說計算節點上,本發明實施例不作具體限定。
在本發明實施例中,一臺虛擬機可以包括多個VCPU,為了敘述簡便,以一個虛擬機包括一個VCPU為例進行描述。在描述過程中,因為實施例中以一臺虛擬機包括一個VCPU,所以“VCPU與資源池綁定”也可以通俗地表達為“虛擬機與資源池綁定”。本領域技術人員理解“綁定”在文中的意思正如與本領域通常理解的意思相同。本領域技術人員可以理解,“虛擬機在資源池中運行”指的是虛擬機占用該資源池中的物理核的計算資源,而不占用其他資源池中的物理核的計算資源。在本發明實施例中,物理核的計算資源指的是該物理核提供的計算能力。在資源池中運行的虛擬機所允許占用的計算資源可以來自該資源池的一個物理核,也可以來自該資源池中的多個物理核,本發明實施例對此并不做限制。“允許虛擬機占用的物理核的計算資源”指的是允許一臺虛擬機占用的該虛擬機所運行的資源池中的物理核的計算資源,也可以表示允許該虛擬機的一個VCPU占用的該虛擬機所運行的資源池中的物理核的計算資源,或者可以表示允許該虛擬機的全部VCPU占用的該虛擬機所運行的資源池中的物理核的計算資源。在以下敘述中,為了描述清晰,本發明實施例以虛擬機的全部VCPU占用的該虛擬機所運行的資源池中的物理核的計算資源作為“虛擬機占用的物理核的計算資源”的例子進行描述。
圖1是根據本發明實施例的中央處理器資源分配方法的示意流程圖。如圖1所示,方法100包括:
110:根據高級資源池中的虛擬機的數量變化,動態地調整所述高級資源池中的物理核的分配數量;
120:根據所述高級資源池中物理核的分配數量調整所述默認資源池中的物理核的分配數量;
其中,所述高級資源池和默認資源池是按照資源池的服務等級將中央處理器的物理核進行劃分而得到的資源池。
在本發明實施例中,每個資源池服務于在該資源池中運行的虛擬機,資源池的服務等級對應于該資源池中運行的虛擬機所要求的服務等級。這里所述的“服務等級”例如為允許每臺虛擬機占用的物理核計算資源的數量,本發明實施例以及后面的實施例中使用的“占用”是指資源池中實際分配給每臺虛擬機的物理核計算資源。例如,在一個高級資源池中,允許一臺虛擬機占用一個物理核計算資源的50%,是指在該高級資源池中實際分配給該虛擬機一個物理核計算資源的50%。例如,在另一個高級資源池中,允許虛擬機占用一個物理核計算資源,即給一臺虛擬機實際分配一個物理核的計算資源。
在本發明實施例中,不同資源池之間邏輯隔離,即每個資源池中的物理核僅服務于在該資源池中運行的虛擬機,為該資源池中運行的虛擬機提供物理核計算資源。這里所述的邏輯隔離并不排除物理隔離的可能性。在根據本發明實施例的一種可能的實現方式中,不同的資源池甚至可以物理隔離,例如,不同的資源池中的物理核安裝在不同的計算節點上。
在本發明實施例中,在默認資源池中運行的虛擬機共享默認資源池中全部物理核的計算資源。高級資源池的設置方式,可以根據具體的應用需求來設置。在一種可能的實現方式中,高級資源池包括第一級資源池,其中所述第一級資源池中允許每臺虛擬機獨占一個物理核的計算資源,也就是說第一級資源池的服務等級為100%。在虛擬機僅包括一個VCPU的情況下,也就是說,第一級資源池中的物理核數量與在該資源池中運行的虛擬機的數量相等。第一級資源池可以保證給在其中運行的虛擬機全天候實際分配一個物理核的計算資源,但是所述“一個物理核的計算資源”可能來自該資源池中的一個物理核或者多個物理核。在另一種可能的實現方式中,除了第一級資源池之外,高級資源池還包括第二級資源池。在第二級資源池中運行的虛擬機允許占用一個物理核計算資源的50%,也就是說第二級資源池的服務等級為50%。或者說,在第二級資源池中,給每臺虛擬機實際分配一個物理核的計算資源的50%,但是所述“一個物理核的計算資源的50%”可能來自該資源池中的一個物理核或者多個物理核。根據本發明實施例的另一種可能的實現方式,高級資源池也可以僅包括第二級資源池。而根據本發明實施例的另一種可能的實現方式,高級資源池里還可以包括第三級資源池等等,其中在第三級資源池中運行的虛擬機允許占用一個物理核計算資源的33%。本領域技術人員可以理解,根據具體的應用需求,可以在高級資源池中設置或多或少的子資源池,各子資源池的服務等級可以不同。
根據本發明實施例,步驟110具體可以包括:
在所述高級資源池中的虛擬機數量增加時,根據增加的虛擬機數量以及所述高級資源池的服務等級確定需要向所述高級資源池分配的第一數量的物理核;
從所述默認資源池向所述高級資源池分配所述第一數量的物理核;
或者
在所述高級資源池中的虛擬機數量減少時,根據減少的虛擬機數量以及所述高級資源池的服務等級確定需要從所述高級資源池減少的第二數量的物理核;
從所述高級資源池向所述默認資源池分配所述第二數量的物理核。
當所述高級資源池中沒有虛擬機運行時,將所述高級資源池中的物理核分配給所述默認資源池。下面以資源池包括默認資源池和高級資源池,其中高級資源池包括第一級資源池和第二級資源池為例進行說明。需要說明的是,這里所舉的例子僅僅為了說明本發明實施例的實施方式,而不用于對本發明實施例進行限制。在描述本發明實施例時,運行于不同服務等級的資源池的虛擬機,也可以稱為對應服務等級的虛擬機,例如,運行于第一級資源池的虛擬機,可以稱為第一級虛擬機,運行于默認資源池的虛擬機,可以稱為默認虛擬機。
在初始情況下,例如系統開機上電后,由于高級資源池中沒有虛擬機運行,全部的物理核分配在默認資源池中。根據應用場景的不同,啟動虛擬機并將其加入不同的資源池或者將虛擬機遷入不同的資源池,。與此相反的過程,即關閉虛擬機的過程或者將虛擬機遷出。例如,需要第一級虛擬機,即允許占用物理核計算資源100%的虛擬機。則需要在第一級資源池中創建第一級虛擬機。本領域技術人員理解并知悉虛擬機的創建和啟動過程,因此為了簡略,這里不再詳細描述。在第一級資源池增加第一級虛擬機時,根據增加的第一級虛擬機的數量確定需要向第一級資源池分配的第一數量的物理核,然后從默認資源池中分配第一數量的物理核到第一級資源池。如果根據具體應用場景,需要減少第一級虛擬機的數量,例如將第二數量的第一級虛擬機從第一級資源池中遷出或者將第二數量的第一級虛擬機關閉。以將第二數量的第一虛擬機遷出為例,在將第二數量的第一級虛擬機遷出的同時,確定需要從第一級資源池中減少第二數量的物理核。然后,將第一級資源池中的第二數量的物理核分配到默認資源池中。由此實現了根據第一級資源池中的虛擬機的數量變化,動態地調整所述第一級資源池中的物理核的分配數量并相應的調整默認資源池中的物理核的分配數量。
對于第二級資源池而言,調整的方式是類似的。區別之處在于,第二級資源池中第二級虛擬機實際分配一個物理核的計算資源的50%。
根據本發明實施例,在一種可能的實現方式中,步驟110之前,所述方法還包括:
確定所述高級資源池中的虛擬機數量發生變化之后,所述高級資源池中的物理核數量不足以滿足所述高級資源池的計算資源需求。例如,在高級資源池的第一級資源池中增加1臺第一級虛擬機時,第一級資源池無法滿足第一級資源池中全部虛擬機的計算資源需求,因為第一級資源池中允許每臺虛擬機需要獨占一個物理核的計算資源。還有可能存在下述情況,例如在高級資源池的第二級資源池中存在3臺第二級虛擬機,允許每臺第二級虛擬機占用一個物理核計算資源的50%,因此第二級資源池中三臺第二級虛擬機需要分配兩個物理核,但在實際分配給三臺第二級虛擬機物理核的計算資源后,還剩一個物理核的計算資源的50%。在這種情況下,如果第二級資源池中增加一個第二級虛擬機,則不會導致第二級資源池不滿足全部第二級虛擬機的計算資源需求。這樣,可以將第二級資源池中剩余一個物理核的計算資源的50%分配給該新增加的虛擬機。在這種情況下,不需要從默認資源池向第二級資源池分配新的物理核。
根據本發明實施例,在一種可能的實現方式中,步驟110之后,所述方法還包括:
確定所述高級資源池中的虛擬機數量發生變化之后,所述高級資源池中存在不服務于該高級資源池中的虛擬機的空閑的至少一個物理核計算資源。這里所述“空閑的至少一個物理核計算資源”可能來自不同的物理核,即來自不同物理核的計算資源的總和相當于一個物理核的計算資源。例如,在高級資源池的第一級資源池中遷出1臺第一級虛擬機之后,則第一級資源池中出現空閑的一個物理核計算資源。在這種情況下,該第一級資源池可以將一個物理核分配到默認資源池中,供運行在默認資源池中的虛擬機使用,以便有效利用物理核的計算資源。
例如在高級資源池的第二級資源池中遷出1個第二級虛擬機之后,有可能并沒有出現空閑的一個物理核計算資源,因為第二級資源池中是允許每臺虛擬機占用一個物理核的計算資源的50%。因此,只有在確定第二級資源池中存在空閑的至少一個物理核計算資源的情況下,才可以將物理核從該第二級資源池分配回到默認資源池中。
如前所述,默認資源池中的默認虛擬機共享默認資源池中的全部物理核的計算資源。根據本發明實施例,共享的方式可以根據具體的情況來確定。在第一種可能的實現方式中,默認虛擬機可以平均地共享默認資源池中全部物理核的計算資源。根據第一種可能的實現方式的一種改進方案,可以設定允許默認資源池中的每臺默認虛擬機所能占用的物理核計算資源的上限百分比,例如默認資源池中允許每臺虛擬機所占用的物理核計算資源的上限百分比為一個物理核計算資源的10%,由此防止默認資源池中的出現壟斷虛擬機,即占用了大量計算資源的虛擬機。根據另一種改進方案,為了保證默認資源池中虛擬機的計算性能,可以設定允許每臺虛擬機所能占用的物理核的計算資源的下限百分比,例如默認資源池中的允許每臺虛擬機所占用的物理核計算資源的下限百分比為一個物理核計算資源的5%。在確定每臺虛擬機所能占用的物理核的計算資源的上限百分比和下限的情況下,在實施步驟110之前,所述方法100包括:
根據默認資源池中的虛擬機數量以及該默認資源池中虛擬機允許占用物理核計算資源下限百分比來確定默認資源池有足夠的資源分配給高級資源池。或者,在默認資源池增加虛擬機的情況下,確定默認資源池的容量還沒有達到上限,即還可以容納額外的虛擬機。
例如,假設允許默認資源池中每臺虛擬機占用物理核的計算資源的下限百分比為5%,且允許默認資源池中每臺虛擬機占用物理核的計算資源的上限百分比為10%。此時,假設默認資源池包括10個物理核,則在默認資源池中,最多為可以200臺默認虛擬機提供物理核計算資源,最少可以為100臺默認虛擬機提供物理核計算資源。假如運行在默認資源池中的虛擬機數量為185臺。如果需要增加1臺第一級虛擬機,即需要從默認資源池向高級資源池中的第一級資源池分配1個物理核,而根據計算結果,如果向第一資源池中分配一個物理核后,默認資源池中剩余物理核計算資源最多只能為180臺默認虛擬機提供物理核計算資源,而現在在默認資源池中運行185臺默認虛擬機。則所述方法100包括:拒絕增加高級虛擬機的請求。在本例中,拒絕增加第一級虛擬機。當然,在本發明實施例的另一種情況下,可以向高級資源池中第一資源池分配一個物理核,同時調整默認資源池中每臺默認虛擬機占用的物理核計算資源的下限,或者根據默認資源池中虛擬機部署策略,關閉相應的默認虛擬機,以滿足默認資源池中現有的每臺默認虛擬機占用的物理核計算資源的下限。
再例如,假設允許默認資源池中每臺虛擬機占用一個物理核的計算資源的下限百分比為5%,且允許默認資源池中每臺虛擬機占用一個物理核的計算資源的上限百分比為10%。此時,假設默認資源池包括10個物理核,運行在默認資源池中的虛擬機數量為185臺。如果在默認資源池增加1臺虛擬機,即增加一個默認虛擬機,則根據計算結果,默認資源池的容量還可以容納3臺默認虛擬機,因此允許向默認資源池中增加1個虛擬機。
在另一種可能的實現方式中,可以進一步為默認資源池中的默認虛擬機設定優先級。默認資源池中的物理核計算資源優先滿足優先級高的默認虛擬機的需求。由于設定了允許每臺默認虛擬機占用物理核計算資源的上限百分比和上限,即使高優先級的默認虛擬機也不會成為“壟斷虛擬機”而導致低優先級的默認虛擬機無法分配到計算資源。
以下以第二級資源池增加虛擬機的具體流程實例完整描述本發明實施例的一種實現過程。圖2是根據本發明實施例的虛擬機遷入過程具體示例的流程圖。如圖2所示,第二級資源池增加虛擬機的流程200包括:
210:用戶請求將虛擬機1遷入第二級資源池;
220:系統判斷物理核計算資源是否充足;
也就是說,系統根據目前高級資源池中第一級資源池和第二級資源池內的虛擬機數量、默認資源池中的虛擬機數量以及默認資源池中每臺虛擬機分配的計算資源下限百分比,確定是否有足夠的計算資源分配給第二級資源池。在本例中,由于物理核可能遷入第二級資源池,系統需要確定默認資源池至少有一個物理核可以分配到第二級資源池。在物理核資源充足的情況下,流程前進到步驟230,而在物理核資源不充足的情況下,流程跳到步驟270。
230:在物理核計算資源充足的情況下,系統判斷虛擬機1遷入第二級資源池后,是否需要為第二級資源池分配新的物理核;
鑒于第二級資源池中允許每臺虛擬機占用一個物理核計算資源的50%,所以虛擬機1遷入第二級資源池之前,如果第二級資源池中的虛擬機數量為奇數的情況下,第二級資源池剩余一個物理核的計算資源的50%尚未分配。在這種情況下,不需要為第二級資源池分配新的物理核。相反,在虛擬機1遷入第二級資源池之前,如果第二級資源池中的虛擬機數量為偶數的情況下,需要從默認資源池向第二級資源池分配一個物理核,為虛擬機1提供計算資源。
240:在不需要為第二級資源池分配新的物理核的情況下,將虛擬機1遷入第二級資源池,并將剩余一個物理核的計算資源50%分配給該虛擬機1;
250:在需要為第二級資源池分配新的物理核的情況下,從默認資源池分配1個物理核到第二級資源池,并將虛擬機1遷入第二級資源池,為該虛擬機1提供一個物理核計算資源的50%;
260:默認資源池相應調整物理核的計算資源在默認資源內的虛擬機之間的分配。
根據前述內容,默認資源池中物理核計算資源的調整方式根據默認資源池的具體設置有所不同。例如,在默認資源池中的虛擬機平均地共享默認資源池中的物理核的計算資源的情況下,由于減少了一個物理核,則默認資源池中各虛擬機所實際分配的物理核的計算資源相應調低。
270:不允許虛擬機1遷入第二級資源池。
在這種情況下,可以通過消息向用戶發出通知,表示系統中的物理核計算資源不足,不允許虛擬機1遷入。
虛擬機遷入第一級資源池、默認資源池的流程與圖2所示流程類似。
與圖2所示流程對應,圖3是從第二級資源池遷出虛擬機的流程。如圖3所示,流程300包括:
310:用戶請求將虛擬機2從第二級資源池遷出;
320:系統判斷虛擬機2遷出第二級資源池后,是否需要縮減第二級資源池中的物理核數量;
鑒于第二級資源池中允許每臺虛擬機占用一個物理核計算機的50%,所以虛擬機2遷出第二級資源池之前,如果第二級資源池中的虛擬機數量為奇數的情況下,第二級資源池剩余一個物理核的計算資源的50%尚未分配。在這種情況下,虛擬機2遷出第二級資源池之后,則有一個物理核計算資源空閑,需要將第二級資源池的物理核減少1個。相反,在虛擬機2遷出第二級資源池之前,如果第二級資源池中的虛擬機數量為偶數的情況下,則不能從第二級資源池縮減物理核的數量。
330:在需要將第二級資源池的物理核數量減少的情況下,即第二級資源池現有虛擬機數量為奇數個時,第二級資源池剩余一個物理核的計算資源的50%尚未分配。在這種情況下,虛擬機2遷出第二級資源池之后,則有一個物理核計算資源空閑,將一個物理核分配到默認資源池中,流程跳轉到步驟350;
340:在不需要將第二級資源池的物理核數量減少的情況下,將虛擬機2遷出第二級資源池;
350:默認資源池相應調整物理核的計算資源在默認資源內的虛擬機之間的分配。
本發明實施例中,如果第二級資源池中虛擬機全部遷出,則將第二資源池中的物理核全部分配給默認資源池。
上述實施例中以高級資源池中包括第一級資源池和第二級資源池為例,根據實際應用場景,高級資源池也可以不再包括如第一級資源池和第二級資源池這樣的子資源池。根據實際應用場景,高級資源池也可以不僅僅包含第一級資源池和第二級資源池,每個子資源池的服務等級可以根據實際應用具體設定。
根據前述內容,默認資源池中物理核計算資源調整根據默認資源池的具體設置有所不同。例如,在默認資源池中的虛擬機平均地共享默認資源池中的物理核的計算資源的情況下,由于增加了一個物理核,則默認資源池中各虛擬機所分配的物理核的計算資源被相應調高,以充分利用物理核計算資源。
圖4是根據本發明實施例的一種具體應用場景的信令交互圖。如圖4所示應用場景描述的是虛擬機從源計算節點向目的計算節點遷移。如圖1、2和3所示的本發明實施例的方法可以應用在圖4所示應用場景中。
如圖4所示,遷移過程400包括:
410:客戶向集群控制器發出虛擬機遷移請求,請求將虛擬機3從源計算節點遷移到目的計算節點;
420:集群控制器接收客戶發出的虛擬機遷移請求并進行相應處理;
集群控制器可以根據傳統的虛擬機調度流程,執行相應的處理,例如預占分配的資源。
430:集群控制器向源計算節點發出調度請求,用于將虛擬機3從源計算節點遷出;
440:虛擬機3從源計算節點遷出;
在源計算節點,例如執行圖3所示的虛擬機遷出流程。
450:源計算節點實施物理核計算資源動態調整;
460:虛擬機3遷入目的計算節點;
在目的計算節點,例如執行圖2所示的虛擬機遷入流程。
470:目的計算節點實施物理核計算資源動態調整
480:源計算節點向集群控制器返回遷出成功或失敗消息。
490:集群控制器通知客戶虛擬機3從源計算節點向目的計算節點的遷移結果。
根據本發明實施例,通過將物理核劃分為不同的資源池,并且不同的資源池中的物理核的計算資源在不同資源池之間彼此隔離,實現了針對不同應用場景的物理核計算資源的有效分配,同時避免出現占用大量計算資源的壟斷虛擬機,防止了物理核計算資源分配失衡,提高了物理核的計算資源的利用效率。
本發明實施例的方法可以應用于不同的云計算商業模式中,例如在互聯網數據中心(Internet Data Center,簡稱IDC)商業模式下,可以向用戶提供處于第一級資源池中的虛擬機,使得虛擬機全時獨占物理核的計算資源,而且計算資源不會被其他用戶占用,為客戶提供了穩定的計算能力。例如,業務私有云(Service Private Cloud,簡稱SPC)商業模式下,向客戶提供的虛擬機既要求有較高性能和業務穩定性,也需要一定程度的CPU資源復用,則第一級和第二級資源池中的虛擬機都滿足這一場景的應用。再例如,在虛擬桌面基礎架構(Virtual Desktop Infrastructure,簡稱VDI)商業模式下,客戶要求虛擬機的性價比比較高,資源可復用。在這種情況下,虛擬機有較大的忙閑比,所以默認資源池中的虛擬機適合這種場景。
本發明實施例還提出了可以應用本發明實施例的方法的計算節點。如圖5所示,計算節點500包括:
資源調整單元510,用于根據高級資源池中的虛擬機的數量變化,動態地調整所述高級資源池中的物理核的分配數量,和用于根據所述高級資源池中物理核的分配數量調整所述默認資源池中的物理核的分配數量;
資源分配單元520,用于根據資源池的服務等級,將中央處理器的物理核劃分成默認資源池和高級資源池。
本發明實施例中,每個資源池服務于在該資源池中運行的虛擬機,在適當的情況下,根據本發明實施例的計算節點可以具備本發明方法實施例中的其他技術特征。以下舉例說明。
根據本發明實施例,所述服務等級包括允許每臺虛擬機占用物理核計算資源的數量。
根據本發明實施例,所述資源分配單元用于調度所述默認資源池中的虛擬機共享所述默認資源池中的全部物理核的計算資源。
根據本發明實施例,所述高級資源池包括第一級資源池,其中所述第一級資源池中的每臺虛擬機允許獨占一個物理核計算資源。
根據本發明實施例,所述高級資源池包括第二級資源池,其中所述第二級資源池中的每臺虛擬機允許占用一個物理核計算資源的50%。
根據本發明實施例,在所述高級資源池中的虛擬機數量增加時,所述資源調整單元510根據增加的虛擬機數量以及所述高級資源池的服務等級確定需要向所述高級資源池分配的第一數量的物理核,并且從所述默認資源池向所述高級資源池分配所述第一數量的物理核;
或者
在所述高級資源池中的虛擬機數量減少時,所述資源調整單元510根據減少的虛擬機數量以及所述高級資源池的服務等級確定需要從所述高級資源池減少的第二數量的物理核,并且從所述高級資源池向所述默認資源池分配所述第二數量的物理核。
根據本發明實施例,當所述高級資源池中沒有虛擬機運行時,所述資源調整單元用于將所述高級資源池中的物理核分配給所述默認資源池。
如圖6所示,根據本發明實施例,所述計算節點還包括:
第一確定單元530,用于確定所述高級資源池中的虛擬機數量發生變化之后,所述高級資源池中的物理核數量不足以滿足所述高級資源池中的服務等級。
根據本發明實施例,所述第一確定單元530還用于確定所述高級資源池中的虛擬機數量發生變化時,所述高級資源池中存在不服務于該高級資源池中的虛擬機的空閑的至少一個物理核計算資源。
根據本發明實施例,所述資源分配單元520用于調度所述默認資源池中的虛擬機按照預設的允許每臺虛擬機占用的物理核計算資源的百分比來共享所述默認資源池中的全部物理核的計算資源。
根據本發明實施例,所述資源調整單元510用于根據所述默認資源池中的物理核數量和所述預設的允許每臺虛擬機占用的物理核計算資源的百分比,確定所述默認資源池所能容納的虛擬機的數量。
根據本發明實施例,所述資源分配單元520用于調度所述默認資源池中的虛擬機平均地共享所述默認資源池中的全部物理核的計算資源。
根據本發明實施例,所述資源分配單元520用于為所述默認資源池中的每臺虛擬機設定允許每臺虛擬機占用的物理核計算資源的上限百分比和/或下限百分比。
根據本發明實施例,所述資源分配單元520用于為所述默認資源池中的虛擬機設定每臺虛擬機使用物理核計算資源的優先級,并根據所述優先級高低順序為所述默認資源池中的虛擬機分配物理核的計算資源。
圖7所示是根據本發明實施例的計算節點的另一種示意結構圖。如圖7所示,計算節點700包括至少一個處理器710,例如CPU,至少一個端口720,存儲器730,和至少一個通信總線740。通信總線740用于實現這些裝置之間的連接通信。處理器710用于執行存儲器730中存儲的可執行模塊,例如計算機程序;計算節點可選的包含用戶接口750,包括但不限于顯示器,鍵盤和點擊設備,例如鼠標、軌跡球(trackball)、觸感板或者觸感顯示屏。存儲器730可能包含高速RAM存儲器,也可能還包括非易失性存儲器(non-volatile memory),例如至少一個磁盤存儲器。通過至少一個端口720實現該計算節點與集群控制器的通信連接,通過至少另一個端口720與至少一個其他計算節點之間的通信連接。
在一些實施方式中,存儲器730存儲了如下的元素,可執行模塊或者數據結構,或者他們的子集,或者他們的擴展集:
操作系統732,包含各種系統程序,用于實現各種基礎業務以及處理基于硬件的任務;
應用模塊734,包含各種應用程序,用于實現各種應用業務。
應用模塊734中包括但不限于資源調整單元(510)、資源分配單元(520)、第一確定單元(530)。
應用模塊732中各單元的具體實現參見圖5和圖6所示實施例中的相應單元,在此不贅述。
本領域普通技術人員可以意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計算機軟件和電子硬件的結合來實現。這些功能究竟以硬件還是軟件方式來執行,取決于技術方案的特定應用和設計約束條件。專業技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本發明的范圍。
所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統、裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
在本申請所提供的幾個實施例中,應該理解到,所揭露的系統、裝置和方法,可以通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統,或一些特征可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。
另外,在本發明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。
所述功能如果以軟件功能單元的形式實現并作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執行本發明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質。
以上所述,僅為本發明的具體實施方式,但本發明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發明揭露的技術范圍內,可輕易想到變化或替換,都應涵蓋在本發明的保護范圍之內。因此,本發明的保護范圍應所述以權利要求的保護范圍為準。