專利名稱:虛擬機調度方法和設備的制作方法
技術領域:
本發明涉及通信技術,尤其涉及一種虛擬機調度方法和設備。
背景技術:
網絡中各類業務長時間運行后會造成云計算資源池內各物理計算節點負載不均,從而導致業務效率降低,資源浪費,需要通過負載均衡調度平衡各物理計算節點的負載。目前最常用的負載均衡技術是基于物理計算節點的中央處理器(Central Process Unit,CPU)占用率的負載均衡調度。這種調度方式下資源管理系統定期采集各物理計算節點的CPU占用率,通過比對各物理計算節點的CPU占用率和預先設定的重載閾值來判定物理計算節點是否重載從而觸發虛擬機調度。調度時系統先選出輕載計算節點,通過比對物理計算節點CPU占用率和預先設定的輕載閾值來判定物理計算節點是否輕載。系統將輕載的物 理計算節點作為目標節點,將重載的物理計算節點作為源節點,當觸發調度時開始從源節點向目標節點遷移虛擬機,當目標節點的CPU占用率達到均衡閾值且源節點的CPU占用率還高于重載閾值時重新選擇目標節點繼續遷移虛擬機。源節點CPU占用率低于重載閾值后停止虛擬機遷移。但是,該調度方案只關注物理計算節點的CPU占用率,不能保證調度后虛擬機的CPU服務質量。
發明內容
有鑒于此,本發明實施例提供了一種虛擬機調度方法和設備,用以解決現有的負載均衡調度方案不能保證CPU服務質量的問題。第一方面,提供了一種虛擬機調度方法,包括確定源資源池的復用比,所述源資源池為源物理計算節點上的重載資源池,所述復用比為VCPU的數量與物理內核的數量的比值;選取目標資源池,所述目標資源池為目標物理計算節點上的資源池,且所述目標資源池的復用比與所述源資源池的復用比相同,以及所述目標資源池具備設定的足夠資源;將所述源資源池上的虛擬機遷移到所述目標資源池上。結合第一方面,在第一方面的第一種可能的實現方式中,所述目標資源池具備設定的足夠資源,包括當(X+Y)〈=NX (M+K)時,所述目標資源池具備設定的足夠資源,其中,X為源資源池的VCPU的數量,Y為目標資源池原有的VCPU的數量,N為源資源池和目標資源池的復用t匕,M為目標資源池的物理內核的數量,K為目標資源池能夠從另外資源池獲取的物理內核
的數量。結合第一方面,在第一方面的第二種可能的實現方式中,所述確定源資源池的復用比,包括
與所述源物理計算節點進行信令交互,獲取所述源資源池的資源信息,所述資源信息包括所述源資源池包括的物理內核的數量以及所述源資源池包括的虛擬機列表;根據所述虛擬機列表確定所述源資源池包括的VCPU的數量;根據所述VCPU的數量和所述物理內核的數量,確定所述復用比。結合第一方面,在第一方面的第三種可能的實現方式中,還包括獲取每個資源池內每個虛擬機的中央處理器CPU占用率,根據每個虛擬機的CPU占用率得到所有虛擬機的CPU占用率總和,以及獲取每個資源池的物理內核的數量;將所述虛擬機的CPU占用率總和與所述物理內核的數量的比值,確定為所述資源池的CPU占用率; 將所述資源池的CPU占用率超過設定的重載閾值的資源池確定為所述源資源池;所述將所述源資源池上的虛擬機遷移到所述目標資源池上,包括在待遷移的虛擬機的CPU占用率與所述目標資源池的原有的CPU占用率之和小于或等于所述重載閾值時,將所述源資源池上的虛擬機遷移到所述目標資源池上。結合第一方面,在第一方面的第四種可能的實現方式中,還包括與每個物理計算節點交互,獲取每個資源池的資源信息,所述資源信息包括虛擬機列表,并在虛擬機啟動、創建、遷移、停止或刪除時,更新每個資源池的虛擬機列表。結合第一方面或第一方面的第一種至第四種任一種可能的實現方式,在第一方面的第五種可能的實現方式中,所述選取目標資源池,包括在所述目標物理計算節點上存在與所述源資源池復用比相同,且具備設定的足夠資源的資源池時,將所述資源池選取為所述目標資源池;或者,在所述目標物理計算節點上不存在與所述源資源池復用比相同的資源池,或者,存在與所述源資源池復用比相同的資源池但所述資源池不具備設定的足夠資源時,如果所述目標物理計算節點上存在另外的資源冗余的資源池,則降低所述另外的資源冗余的資源池中的資源,將降低的資源分配給所述目標資源池。第二方面,提供了一種虛擬機調度設備,包括確定模塊,用于確定源資源池的復用比,所述源資源池為源物理計算節點上的重載資源池,所述復用比為VCPU的數量與物理內核的數量的比值;選取模塊,用于選取目標資源池,所述目標資源池為目標物理計算節點上的資源池,且所述目標資源池的復用比與所述源資源池的復用比相同,以及所述目標資源池具備設定的足夠資源;遷移模塊,用于將所述源資源池上的虛擬機遷移到所述目標資源池上。結合第二方面,在第二方面的第一種可能的實現方式中,所述選取模塊選取的目標資源池具備設定的足夠資源包括當(X+Y)〈=NX (M+K)時,所述目標資源池具備設定的足夠資源,其中,X為源資源池的VCPU的數量,Y為目標資源池原有的VCPU的數量,N為源資源池和目標資源池的復用t匕,M為目標資源池的物理內核的數量,K為目標資源池能夠從另外資源池獲取的物理內核
的數量。結合第二方面,在第二方面的第二種可能的實現方式中,所述確定模塊具體用于
與所述源物理計算節點進行信令交互,獲取所述源資源池的資源信息,所述資源信息包括所述源資源池包括的物理內核的數量以及所述源資源池包括的虛擬機列表;根據所述虛擬機列表確定所述源資源池包括的VCPU的數量;根據所述VCPU的數量和所述物理內核的數量,確定所述復用比。結合第二方面,在第二方面的第三種可能的實現方式中,還包括處理模塊,用于獲取每個資源池內每個虛擬機的中央處理器CPU占用率,根據每個虛擬機的CPU占用率得到所有虛擬機的CPU占用率總和,以及獲取每個資源池的物理內核的數量;將所述虛擬機的CPU占用率總和與所述物理內核的數量的比值,確定為所述資源池的CPU占用率;將所述資源池的CPU占用率超過設定的重載閾值的資源池確定為所述源資源池;所述遷移模塊具體用于在待遷移的虛擬機的CPU占用率與所述目標資源池的原有的CPU占用率之和小于或等于所述重載閾值時,將所述源資源池上的虛擬機遷移到所述目標資源池上。結合第二方面,在第二方面的第四種可能的實現方式中,還包括更新模塊,用于與每個物理計算節點交互,獲取每個資源池的資源信息,所述資源信息包括虛擬機列表,并在虛擬機啟動、創建、遷移、停止或刪除時,更新每個資源池的虛擬機列表。結合第二方面或第二方面的第一種至第四種任一種可能的實現方式,在第二方面的第五種可能的實現方式中,所述選取模塊具體用于在所述目標物理計算節點上存在與所述源資源池復用比相同,且具備設定的足夠資源的資源池時,將所述資源池選取為所述目標資源池;或者,在所述目標物理計算節點上不存在與所述源資源池復用比相同的資源池,或者,存在與所述源資源池復用比相同的資源池但所述資源池不具備設定的足夠資源時,如果所述目標物理計算節點上存在另外的資源冗余的資源池,則降低所述另外的資源冗余的資源池中的資源,將降低的資源分配給所述目標資源池。通過上述技術方案,在虛擬機調度時,將具有相同復用比的資源池作為遷移虛擬機的目標資源池,由于相同復用比的資源池具有相同的CPU服務質量,因此經過虛擬機調度后可以保證CPU服務質量。
為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。圖I為本發明虛擬機調度方法一實施例的流程示意圖;圖2為本發明實施例中物理計算節點劃分資源池的示意圖;圖3為本發明實施例中資源池一種更新情況示意圖;圖4為本發明實施例中資源池另一種更新情況示意圖;圖5為本發明實施例中虛擬機調度的一種示意圖6為本發明虛擬機調度方法另一實施例的流程示意圖;圖7為本發明實施例中虛擬機調度的另一種示意圖;圖8為本發明虛擬機調度設備一實施例的結構示意圖;圖9為本發明虛擬機調度設備另一實施例的結構示意圖。
具體實施例方式為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
圖I為本發明虛擬機調度方法一實施例的流程示意圖,包括11 :調度節點確定源資源池的復用比,所述源資源池為源物理計算節點上的重載資源池,所述復用比為VCPU的數量與物理內核的數量的比值;12:調度節點選取目標資源池,所述目標資源池為目標物理計算節點上的資源池,且所述目標資源池的復用比與所述源資源池的復用比相同,以及所述目標資源池具備用于承載所述源資源池的虛擬機的足夠資源;13 :調度節點將所述源資源池上的虛擬機遷移到所述目標資源池上。每個物理計算節點的CPU都有多個物理內核,底層的操作系統進程與內核綁定技術可以控制虛擬機的虛擬CPU (Virtual CPU,VCPU)進程跑在不同的物理內核上,從而隔離不同虛擬機對CPU資源使用上的沖突。可以通過將物理計算節點的CPU劃分為多個資源池,不同的資源池具有不同的CPU服務質量(Quality of Service, QoS)。具體可以根據復用比劃分資源池,復用比是指資源池內VCPU的數量與該資源池內物理內核的數量之比。對于同一個資源池內的虛擬機(Virtual Machine, VM),需要保證在資源池內的所有虛擬機業務最繁忙時都要滿足虛擬機的CPU服務質量。根據底層CPU公平調度的算法,每個虛擬機可以獲取的CPU資源與資源池內VCPU的數量和物理內核數量相關,當資源池內所有虛擬機都繁忙時每個VCPU可以獲取的物理CPU資源為物理內核數/VCPU總數。基于上述原理,通過控制資源池內物理內核的數量和VCPU的數量即可保證虛擬機的CPU服務質量。如圖2所示,可以根據復用比劃分資源池,每個資源池具有各自的復用比。例如,物理計算節點A可以劃分為高性能資源池、普通資源池和默認資源池。高性能資源池的復用比為1: 1,普通資源池的復用比為2:1,默認資源池的復用比為4: I。也就是說,高性能資源池內的每個VCPU可獨占一個物理內核,每個VCPU最繁忙時也可以獲得100%計算能力的保障;普通資源池內的一個VCPU可以與另一個VCPU共站一個物理內核,每個VCPU最繁忙時每個VCPU可以獲得50%計算能力的保障;默認資源池內的VCPU —個物理內核上可以運行4個VCPU,當每個VCPU都繁忙時,每個VCPU可以獲得25%計算能力的保障。調度節點可以收集每個物理計算節點的資源池的資源信息,資源信息包括每個資源池內的物理內核的數量以及虛擬機列表。例如,調度節點通過信令交互可以獲知高性能資源池內的物理內核數量為6,虛擬機列表包括VM1-1、VM1-2、VM2-1、VM2-2、VM2-3和VM2-4。通過該資源信息可以確定資源池的復用比,以便在重載時遷移到相同復用比的資源池。另外,在虛擬機啟動、創建、遷移、停止或刪除時,每個資源池還可以進行擴張或者收縮。如圖3所示,在普通資源池內虛擬機啟動、創建、遷入時,可以壓縮默認資源池,擴張普通資源池。例如,普通資源池內增加一個VM。或者,如圖4所示,在普通資源池內虛擬機停止、刪除、遷出時,可以收縮普通資源池,擴張默認資源池。例如,普通資源池內減少一個VM。本實施例中,在虛擬機遷移時,不僅考慮CPU占用率,而且在具有相同復用比的資
源池內遷移。例如,參見圖5,存在兩個物理計算節點,分別為物理計算節點A和物理計算節點B,左部分為遷移前兩個物理計算節點的VM的情況,右部分為遷移后兩個物理計算節點的VM的情況。其中,每個物理計算節點分為3個資源池,同一平面的兩個資源池具有相同的復用比,即兩個物理計算節點的頂部的資源池具有相同的復用比,中部的資源池具有相同的復用比,底部的資源池具有相同的復用比。在負載均衡時,虛擬機在具有相同的復用比的資源池內遷移,如,物理計算節點A的頂部資源池的一個VM遷移到物理計算節點B的頂部資源池,物理計算節點A的中部資源池的一個VM遷移到物理計算節點B的中部資源池,物理計算節點B的底部資源池的一個VM遷移到物理計算節點A的地部資源池。由于在相同復用比的資源池內遷移,可以保證CPUQoS0本實施例通過將虛擬機遷移到與其源資源池具有相同復用比的資源池,由于復用比相同,可以保證相同的CPU服務質量,因此,本實施例的虛擬機調度可以實現負載均衡且保證CPU服務質量。圖6為本發明虛擬機調度方法另一實施例的流程示意圖,包括61 :調度節點判斷是否存在重載資源池,若是,執行62,否則執行67。其中,調度節點可以通過與物理計算節點的交互,獲取每個資源池的信息,該信息可以包括每個資源池內每個虛擬機的CPU占用率,以及每個資源池內包括的物理內核數量。根據該信息可以確定每個資源池的CPU占用率,計算公式可以為每個資源池的CPU占用率=該資源池內所有虛擬機的CPU占用率總和/該資源池內包括的物理內核數量。另外,調度節點可以設置重載閾值,當某個資源池的CPU占用率超過該重載閾值,則該資源池為重載資源池。62 :調度節點確定重載資源池的復用比。上述調度節點與資源池交換的信息中還可以包括虛擬機信息,根據該虛擬機信息可以確定出一個資源池內包括的VCPU的數量,之后可以計算得到一個資源池的復用比=該資源池內包括的VCPU的數量/該資源池內包括的物理內核的數量。63 :調度節點判斷在重載資源池內是否選取到待遷移的虛擬機,若是,執行64,否則執行67。其中,在設置時可能將某些虛擬機綁定,不能進行遷移,因此,選取的待遷移的虛擬機是能夠遷移到另外資源池的虛擬機。64 :調度節點判斷是否選取到目標資源池,若是,執行65,否則執行67。其中,目標資源池滿足如下條件與重載資源池具有相同的復用比,且,資源足夠。資源足夠是指假設待遷移的虛擬機的VCPU的數量為X,目標資源池已有的VCPU的數量為Y,目標資源池的物理內核數量為M,同時通過擠壓低等級資源池可獲取的物理內核數量為K,目標資源池和重載資源池的復用比為N:l,那么當(X+Y)〈=NX (M+K)時則表明資源足夠,否則資源不足。其中,可獲取的物理內核數量K是指能夠被擠壓的資源池的物理內核數量,例如,每個物理計算節點上的默認存在默認資源池,其余資源池,如普通資源池和高性能資源池都是在默認資源池的基礎上擠壓得到的,即,將默認資源池的物理內核分 配給其余資源池使用。那么可擠壓的資源池的物理內核數量就是當前的默認資源池內包括的物理內核的數量。可選的,目標資源池可以是目標物理計算節點上原有的,即原有的與源資源池的復用比相同且資源足夠的資源池,或者,目標資源池也可以是目標物理計算節點上從其余資源池擠壓得到的,例如,目標資源池上原有的資源池僅是默認資源池,而源資源池是普通資源池,那么在默認資源池存在冗余資源時,可以從默認資源池內擠壓出部分資源,這些部分資源組成普通資源池,作為目標資源池使用;或者,源資源池是普通資源池,而目標物理計算節點上的原有的普通資源池的資源不足夠,而默認資源池的資源冗余時,則也可以從默認資源池內擠壓出部分資源,將該部分資源增加到原有的普通資源池內,與原有的資源共同組成目標資源池。65 :調度節點將待遷移的虛擬機遷移到目標資源池。可選的,在遷移之前,也可以判斷目標資源池的負載情況,在判斷出目標資源池在增加待遷移的虛擬機后也不超載時再進行遷移,即,在待遷移的虛擬機的CPU占用率與目標資源池的原有的CPU占用率之和小于或等于目標資源池的設定的重載閾值時,將所述源資源池上的虛擬機遷移到所述目標資源池上。66:調度節點判斷遷移出虛擬機的重載資源池是否依然重載,若是,重復執行63及其后續步驟,否則執行67。67 :結束。本實施例中,例如,參見圖7,假設存在物理計算節點A和物理計算節點B,物理計算節點A的復用比為1:1的資源池重載,物理計算節點B的復用比為2:1和4:1的資源池重載,經過上述流程后,可以將物理計算節點A的復用比I: I的資源池的虛擬機遷移到物理計算節點B的復用比1:1的資源池,將物理計算節點B的復用比2:1的資源池的虛擬機遷移到物理計算節點A的復用比2:1的資源池,將物理計算節點B的復用比4:1的資源池的虛擬機遷移到物理計算節點A的復用比4:1的資源池。可以理解的是,本實施例以物理計算節點A和物理計算節點B之間的負載均衡調度為例,也可以是物理計算節點A將的重載遷移到物理計算節點B,而物理計算節點B將復用比2:1的資源池的虛擬機遷移到物理計算節點C的復用比2:1的資源池。本實施例通過將虛擬機遷移到具有相同復用比的資源池,可以保證虛擬機CPU的服務質量,實現既可以保證用戶體驗不受影響,同時達到服務器負載均衡的效果。
圖8為本發明虛擬機調度設備一實施例的結構示意圖,該設備包括確定模塊81、選取模塊82和遷移模塊83 ;確定模塊81用于確定源資源池的復用比,所述源資源池為源物理計算節點上的重載資源池,所述復用比為VCPU的數量與物理內核的數量的比值;選取模塊82用于選取目標資源池,所述目標資源池為目標物理計算節點上的資源池,且所述目標資源池的復用比與所述源資源池的復用比相同,以及所述目標資源池具備設定的足夠資源;遷移模塊83用于將所述源資源池上的虛擬機遷移到所述目標資源池上。可選的,所述選取模塊選取的目標資源池具備設定的足夠資源包括當(X+Y)〈=NX (M+K)時,所述目標資源池具備設定的足夠資源,其中,X為源資源池的VCPU的數量,Y為目標資源池原有的VCPU的數量,N為源資源池和目標資源池的復用t匕,M為目標資源池的物理內核的數量,K為目標資源池能夠從另外資源池獲取的物理內核的數量。可選的,所述確定模塊具體用于與所述源物理計算節點進行信令交互,獲取所述源資源池的資源信息,所述資源信息包括所述源資源池包括的物理內核的數量以及所述源資源池包括的虛擬機列表;根據所述虛擬機列表確定所述源資源池包括的VCPU的數量;根據所述VCPU的數量和所述物理內核的數量,確定所述復用比。可選的,該設備還包括處理模塊,用于獲取每個虛擬機的CPU占用率,根據每個虛擬機的CPU占用率得到每個資源池內所有虛擬機的CPU占用率總和,以及獲取每個資源池的物理內核的數量;將所述虛擬機的CPU占用率總和與所述物理內核的數量的比值,確定為所述資源池的CPU占用率;將所述資源池的CPU占用率超過設定的重載閾值的資源池確定為所述源資源池;所述遷移模塊具體用于在待遷移的虛擬機的CPU占用率與所述目標資源池的原有的CPU占用率之和小于或等于所述重載閾值時,將所述源資源池上的虛擬機遷移到所述目標資源池上。可選的,該設備還包括更新模塊,用于與每個物理計算節點交互,獲取每個資源池的資源信息,所述資源信息包括虛擬機列表,并在虛擬機啟動、創建、遷移、停止或刪除時,更新每個資源池的虛擬機列表。可選的,所述選取模塊具體用于·
在所述目標物理計算節點上存在與所述源資源池復用比相同,且具備設定的足夠資源的資源池時,將所述資源池選取為所述目標資源池;或者,在所述目標物理計算節點上不存在與所述源資源池復用比相同的資源池,或者,存在與所述源資源池復用比相同的資源池但所述資源池不具備設定的足夠資源時,如果所述目標物理計算節點上存在另外的資源冗余的資源池,則降低所述另外的資源冗余的資源池中的資源,將降低的資源分配給所述目標資源池。另外,如圖9所示,本發明實施例還提供一種通信設備,該通信設備可以為虛擬機調度服務器,該通信設備90包括發射電路902、接收電路903、功率控制器904、處理器905,存儲器906及天線901。處理器905控制設備90的操作,處理器905還可以稱為CPU。存儲器906可以包括只讀存儲器和隨機存取存儲器,并向處理器905提供指令和數據。存儲器906的一部分還可以包括非易失行隨機存取存儲器(NVRAM)。發射電路902和接收電路903可以耦合到天線901,天線可以是無線形式,也可以是有線形式的網線、光纖等。設備90的各個組件通過總線系統9100耦合在一起,其中,總線系統9100除包括數據總線之外,還包括電源總線、控制總線和狀態信號總線。但是為了清楚說明起見,在圖中將各種總線都標為總線系統9100。上述本發明實施例揭示的方法可以應用于處理器905中,或者說由處理器905以實現。處理器905可能是一種集成電路芯片,具有信號的處理能力。在實現過程中,上述方法的各步驟可以通過處理器905中的硬件的集成邏輯電路或者軟件形式的指令完成。用于執行本發明實施例揭示的方法,上述的處理器905可以是通用處理器、數字信號處理器(DSP)、專用集成電路(ASIC)、現成可編程門陣列(FPGA)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件。可以實現或者執行本發明實施例中的公開的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者該處理器也可以是任何常規的處理器,解碼器等。結合本發明實施例所公開的方法的步驟可以直接體現為硬件處理器執行完成,
或者用處理器中的硬件及軟件模塊組合執行完成。軟件模塊可以位于隨機存儲器,閃存、只讀存儲器,可編程只讀存儲器或者電可擦寫可編程存儲器、寄存器等本領域成熟的存儲介質中。該存儲介質位于存儲器906,處理器905讀取存儲器906中的信息,結合其硬件完成上述方法的步驟。而上述方法中的消息可以通過發射電路902和接收電路903予以發送或者接收。具體而言,該設備可以包括處理器,處理器具體用于確定源資源池的復用比,所述源資源池為源物理計算節點上的重載資源池,所述復用比為VCPU的數量與物理內核的數量的比值;選取目標資源池,所述目標資源池為目標物理計算節點上的資源池,且所述目標資源池的復用比與所述源資源池的復用比相同,以及所述目標資源池具備設定的足夠資源;將所述源資源池上的虛擬機遷移到所述目標資源池上。可選的,所述目標資源池具備設定的足夠資源,包括當(X+Y)〈=NX (M+K)時,所述目標資源池具備設定的足夠資源,其中,X為源資源池的VCPU的數量,Y為目標資源池原有的VCPU的數量,N為源資源池和目標資源池的復用t匕,M為目標資源池的物理內核的數量,K為目標資源池能夠從另外資源池獲取的物理內核
的數量。可選的,處理器具體用于與所述源物理計算節點進行信令交互,獲取所述源資源池的資源信息,所述資源信息包括所述源資源池包括的物理內核的數量以及所述源資源池包括的虛擬機列表;根據所述虛擬機列表確定所述源資源池包括的VCPU的數量;根據所述VCPU的數量和所述物理內核的數量,確定所述復用比。可選的,處理器還用于獲取每個資源池內每個虛擬機的CPU占用率,根據每個虛擬機的CPU占用率得到所有虛擬機的CPU占用率總和,以及獲取每個資源池的物理內核的數量;將所述虛擬機的CPU占用率總和與所述物理內核的數量的比值,確定為所述資源池的CPU占用率;將所述資源池的CPU占用率超過設定的重載閾值的資源池確定為所述源資源池;以及,具體用于在待遷移的虛擬機的CPU占用率與所述目標資源池的原有的CPU占用率之和小于或等于所述重載閾值時,將所述源資源池上的虛擬機遷移到所述目標資源池上。
可選的,處理器還用于與每個物理計算節點交互,獲取每個資源池的資源信息,所述資源信息包括虛擬機列表,并在虛擬機啟動、創建、遷移、停止或刪除時,更新每個資源池的虛擬機列表。可選的,處理器具體用于在所述目標物理計算節點上存在與所述源資源池復用比相同,且具備設定的足夠資源的資源池時,將所述資源池選取為所述目標資源池;或者,在所述目標物理計算節點上不存在與所述源資源池復用比相同的資源池,或者,存在與所述源資源池復用比相同的資源池但所述資源池不具備設定的足夠資源時,如果所述目標物理計算節點上存在另外的資源冗余的資源池,則降低所述另外的資源冗余的資源池中的資源,將降低的資源分配給所述目標資源池。本實施例通過將虛擬機遷移到具有相同復用比的資源池,可以保證虛擬機CPU的服務質量,實現既可以保證用戶體驗不受影響,同時達到服務器負載均衡的效果。所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,僅以上述各功能模塊的劃分進行舉例說明,實際應用中,可以根據需要而將上述功能分配由不同的功能模 塊完成,即將裝置的內部結構劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。上述描述的系統,裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。在本申請所提供的幾個實施例中,應該理解到,所揭露的系統,裝置和方法,可以通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述模塊或單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統,或一些特征可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。另外,在本申請各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現,也可以采用軟件功能單元的形式實現。所述集成的單元如果以軟件功能單元的形式實現并作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中。基于這樣的理解,本申請的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)或處理器(processor)執行本申請各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括U盤、移動硬盤、只讀存儲器(ROM, Read-Only Memory)、隨機存取存儲器(RAM, Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質。以上所述,以上實施例僅用以說明本申請的技術方案,而非對其限制;盡管參照前述實施例對本申請進行了詳細的說明,本領域的普通技術人員應當理解其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本申請各實施例技術方案的 精神和范圍。
權利要求
1.一種虛擬機調度方法,其特征在于,包括 確定源資源池的復用比,所述源資源池為源物理計算節點上的重載資源池,所述復用比為虛擬中央處理器VCPU的數量與物理內核的數量的比值; 選取目標資源池,所述目標資源池為目標物理計算節點上的資源池,且所述目標資源池的復用比與所述源資源池的復用比相同,以及所述目標資源池具備設定的足夠資源;將所述源資源池上的虛擬機遷移到所述目標資源池上。
2.根據權利要求I所述的方法,其特征在于,所述目標資源池具備設定的足夠資源,包括 當(X+Y)〈=NX (M+K)時,所述目標資源池具備設定的足夠資源,其中,X為源資源池的VCPU的數量,Y為目標資源池原有的VCPU的數量,N為源資源池和目標資源池的復用比,M為目標資源池的物理內核的數量,K為目標資源池能夠從另外資源池獲取的物理內核的數量。
3.根據權利要求I所述的方法,其特征在于,所述確定源資源池的復用比,包括 與所述源物理計算節點進行信令交互,獲取所述源資源池的資源信息,所述資源信息包括所述源資源池包括的物理內核的數量以及所述源資源池包括的虛擬機列表; 根據所述虛擬機列表確定所述源資源池包括的VCPU的數量; 根據所述VCPU的數量和所述物理內核的數量,確定所述復用比。
4.根據權利要求I所述的方法,其特征在于,還包括 獲取每個資源池內每個虛擬機的中央處理器CPU占用率,根據每個虛擬機的CPU占用率得到所有虛擬機的CPU占用率總和,以及獲取每個資源池的物理內核的數量; 將所述虛擬機的CPU占用率總和與所述物理內核的數量的比值,確定為所述資源池的CPU占用率; 將所述資源池的CPU占用率超過設定的重載閾值的資源池確定為所述源資源池; 所述將所述源資源池上的虛擬機遷移到所述目標資源池上,包括 在待遷移的虛擬機的CPU占用率與所述目標資源池的原有的CPU占用率之和小于或等于所述重載閾值時,將所述源資源池上的虛擬機遷移到所述目標資源池上。
5.根據權利要求I所述的方法,其特征在于,還包括 與每個物理計算節點交互,獲取每個資源池的資源信息,所述資源信息包括虛擬機列表,并在虛擬機啟動、創建、遷移、停止或刪除時,更新每個資源池的虛擬機列表。
6.根據權利要求1-5任一項所述的方法,其特征在于,所述選取目標資源池,包括 在所述目標物理計算節點上存在與所述源資源池復用比相同,且具備設定的足夠資源的資源池時,將所述資源池選取為所述目標資源池;或者, 在所述目標物理計算節點上不存在與所述源資源池復用比相同的資源池,或者,存在與所述源資源池復用比相同的資源池但所述資源池不具備設定的足夠資源時,如果所述目標物理計算節點上存在另外的資源冗余的資源池,則降低所述另外的資源冗余的資源池中的資源,將降低的資源分配給所述目標資源池。
7.—種虛擬機調度設備,其特征在于,包括 確定模塊,用于確定源資源池的復用比,所述源資源池為源物理計算節點上的重載資源池,所述復用比為虛擬中央處理器VCPU的數量與物理內核的數量的比值;選取模塊,用于選取目標資源池,所述目標資源池為目標物理計算節點上的資源池,且所述目標資源池的復用比與所述源資源池的復用比相同,以及所述目標資源池具備設定的足夠資源; 遷移模塊,用于將所述源資源池上的虛擬機遷移到所述目標資源池上。
8.根據權利要求7所述的設備,其特征在于,所述選取模塊選取的目標資源池具備設定的足夠資源包括 當(X+Y)〈=NX (M+K)時,所述目標資源池具備設定的足夠資源,其中,X為源資源池的VCPU的數量,Y為目標資源池原有的VCPU的數量,N為源資源池和目標資源池的復用比,M為目標資源池的物理內核的數量,K為目標資源池能夠從另外資源池獲取的物理內核的數量。
9.根據權利要求7所述的設備,其特征在于,所述確定模塊具體用于 與所述源物理計算節點進行信令交互,獲取所述源資源池的資源信息,所述資源信息包括所述源資源池包括的物理內核的數量以及所述源資源池包括的虛擬機列表; 根據所述虛擬機列表確定所述源資源池包括的VCPU的數量; 根據所述VCPU的數量和所述物理內核的數量,確定所述復用比。
10.根據權利要求7所述的設備,其特征在于,還包括 處理模塊,用于獲取每個資源池內每個虛擬機的中央處理器CPU占用率,根據每個虛擬機的CPU占用率得到所有虛擬機的CPU占用率總和,以及獲取每個資源池的物理內核的數量;將所述虛擬機的CPU占用率總和與所述物理內核的數量的比值,確定為所述資源池的CPU占用率;將所述資源池的CPU占用率超過設定的重載閾值的資源池確定為所述源資源池; 所述遷移模塊具體用于在待遷移的虛擬機的CPU占用率與所述目標資源池的原有的CPU占用率之和小于或等于所述重載閾值時,將所述源資源池上的虛擬機遷移到所述目標資源池上。
11.根據權利要求7所述的設備,其特征在于,還包括 更新模塊,用于與每個物理計算節點交互,獲取每個資源池的資源信息,所述資源信息包括虛擬機列表,并在虛擬機啟動、創建、遷移、停止或刪除時,更新每個資源池的虛擬機列表。
12.根據權利要求7-11任一項所述的設備,其特征在于,所述選取模塊具體用于 在所述目標物理計算節點上存在與所述源資源池復用比相同,且具備設定的足夠資源的資源池時,將所述資源池選取為所述目標資源池;或者, 在所述目標物理計算節點上不存在與所述源資源池復用比相同的資源池,或者,存在與所述源資源池復用比相同的資源池但所述資源池不具備設定的足夠資源時,如果所述目標物理計算節點上存在另外的資源冗余的資源池,則降低所述另外的資源冗余的資源池中的資源,將降低的資源分配給所述目標資源池。
全文摘要
本發明提供一種虛擬機調度方法和設備。該方法包括確定源資源池的復用比,所述源資源池為源物理計算節點上的重載資源池,所述復用比為VCPU的數量與物理內核的數量的比值;選取目標資源池,所述目標資源池為目標物理計算節點上的資源池,且所述目標資源池的復用比與所述源資源池的復用比相同,以及所述目標資源池具備設定的足夠資源;將所述源資源池上的虛擬機遷移到所述目標資源池上。本發明實施例可以保證虛擬機調度時的CPU服務質量。
文檔編號G06F9/455GK102937912SQ20121049472
公開日2013年2月20日 申請日期2012年11月28日 優先權日2012年11月28日
發明者陳巖, 單衛華 申請人:華為技術有限公司