本發(fā)明涉及虛擬化領(lǐng)域和云計算領(lǐng)域,更具體地說,涉及感知虛擬機中所運行應(yīng)用對資源需求的使用偏好的物理服務(wù)器和用于其的監(jiān)控方法、基于所述使用偏好進行資源調(diào)度的云調(diào)度器和用于其的調(diào)度方法以及包含所述物理服務(wù)器和云調(diào)度器的云平臺和用于其的控制方法。
背景技術(shù):
虛擬機(virtualmachine)指通過軟件模擬的具有完整硬件系統(tǒng)功能的、運行在一個完全隔離環(huán)境中的完整計算機系統(tǒng)。宿主機是虛擬機的物理基礎(chǔ),虛擬機存在于宿主機中,與宿主機共享使用硬件。宿主機的運行是虛擬機運行的前提與基礎(chǔ)。
云計算是近年來興起的新理念,目標是將計算和存儲簡化為像公共的水和電一樣易用的資源,用戶只要連上網(wǎng)絡(luò)即可方便地使用,按量付費。它是現(xiàn)有技術(shù)和模式的演進和采用。
虛擬化是云計算中主要支撐技術(shù)之一。云平臺中用戶的虛擬機通常運行在大量的異構(gòu)物理服務(wù)器之上,并在不同的物理服務(wù)器上遷移。這里,運行虛擬機的當前物理服務(wù)器即上文中所述的宿主機,或稱為宿主物理機。然而,在宿主機上,通常難以感知虛擬機中所運行應(yīng)用對資源需求的使用偏好。
技術(shù)實現(xiàn)要素:
鑒于以上情形,期望提供能夠監(jiān)控虛擬機中所運行應(yīng)用對資源需求的使用偏好的監(jiān)控方法以及物理服務(wù)器。
另外,在此基礎(chǔ)之上,還期望提供能夠利用物理服務(wù)器上監(jiān)控和統(tǒng)計得到的虛擬機中所運行的應(yīng)用具備的計算特點,根據(jù)這種統(tǒng)計分析結(jié)果指導云平臺中的資源調(diào)度的調(diào)度方法和云調(diào)度器。
此外,還期望提供包括上述物理服務(wù)器、云調(diào)度器的云平臺以及應(yīng)用于所述云平臺的控制方法。
根據(jù)本發(fā)明的第一方面,提供了一種監(jiān)控方法,應(yīng)用于一云平臺中的物理服務(wù)器,所述云平臺還包括一云調(diào)度器,所述物理服務(wù)器作為一虛擬機的宿主機,所述監(jiān)控方法包括:向所述云調(diào)度器查詢所述宿主機的cpu支持的一個或多個指令集;確定待監(jiān)控的第一指令集集合;啟動對所述第一指令集集合中的指令集的監(jiān)控;以及獲得所述虛擬機中的應(yīng)用對于所述第一指令集集合中的指令集的調(diào)用信息。
優(yōu)選地,在根據(jù)本發(fā)明實施例的監(jiān)控方法中,所述確定待監(jiān)控的第一指令集集合的步驟進一步包括:基于預定規(guī)則,對所述宿主機的cpu支持的一個或多個指令集進行篩選。
優(yōu)選地,根據(jù)本發(fā)明實施例的監(jiān)控方法可以進一步包括:響應(yīng)于所述云調(diào)度器的查詢,將所述調(diào)用信息發(fā)送到所述云調(diào)度器。
優(yōu)選地,在根據(jù)本發(fā)明實施例的監(jiān)控方法中,啟動對所述第一指令集集合中的指令集的監(jiān)控的步驟進一步包括:每當所述虛擬機中的應(yīng)用調(diào)用所述第一指令集集合中的第一指令集時,將與所述第一指令集對應(yīng)的計數(shù)值增加1,其中所述計數(shù)值的初始值為0,其中所述調(diào)用信息包括所述虛擬機中的應(yīng)用對所述第一指令集的調(diào)用次數(shù)。
根據(jù)本發(fā)明的第二方面,提供了一種調(diào)度方法,應(yīng)用于一云平臺中的云調(diào)度器,所述云平臺包括多個物理服務(wù)器,并且所述云調(diào)度器在所述多個物理服務(wù)器之中為虛擬機分配合適的宿主機,所述調(diào)度方法包括:獲取針對所述虛擬機的遷移指令,所述遷移指令用于將所述虛擬機從當前宿主機遷移到目標宿主機;獲取所述遷移指令所對應(yīng)的目標宿主機的第一參數(shù),所述第一參數(shù)與當前宿主機的cpu的第二指令集集合相對應(yīng);判斷第一參數(shù)是否滿足預定條件;當所述第一參數(shù)滿足預定條件時,執(zhí)行所述遷移指令。
優(yōu)選地,在根據(jù)本發(fā)明實施例的調(diào)度方法中,所述第一參數(shù)是指示是否支持所述第二指令集集合中的所有指令集的參數(shù)。
優(yōu)選地,在根據(jù)本發(fā)明實施例的調(diào)度方法中,在獲取所述遷移指令所對應(yīng)的目標宿主機的第一參數(shù)的步驟之前,進一步包括:向所述當前宿主機查詢所述虛擬機中的應(yīng)用對于cpu的特征指令集的調(diào)用信息;統(tǒng)計分析所述調(diào)用信息,并獲得第二指令集集合。
優(yōu)選地,在根據(jù)本發(fā)明實施例的調(diào)度方法中,所述調(diào)用信息包括所述虛擬機中的應(yīng)用對一個或多個指令集的調(diào)用次數(shù),并且其中統(tǒng)計分析所述調(diào)用信息,并獲得第二指令集集合的步驟進一步包括:在所述一個或多個指令集中,篩選出調(diào)用次數(shù)大于預定閾值的指令集作為第二指令集集合。
優(yōu)選地,在根據(jù)本發(fā)明實施例的調(diào)度方法中,所述預定條件為所述第一參數(shù)指示支持所述第二指令集集合中的所有指令集。
根據(jù)本發(fā)明的第三方面,提供了一種控制方法,應(yīng)用于一云平臺,所述云平臺包括云調(diào)度器和多個物理服務(wù)器,并且所述云調(diào)度器在所述多個物理服務(wù)器之中為虛擬機分配合適的宿主機,所述方法包括:獲取針對所述虛擬機的遷移指令,所述遷移指令用于將所述虛擬機從當前宿主機遷移到目標宿主機;查詢所述當前宿主機的cpu支持的一個或多個指令集;確定待監(jiān)控的第一指令集集合;啟動對所述第一指令集集合中的指令集的監(jiān)控;獲得所述虛擬機中的應(yīng)用對于所述第一指令集集合中的指令集的調(diào)用信息;統(tǒng)計分析所述調(diào)用信息,并獲得第二指令集集合;獲取所述遷移指令所對應(yīng)的目標宿主機的第一參數(shù),所述第一參數(shù)與當前宿主機的cpu的第二指令集集合相對應(yīng);判斷第一參數(shù)是否滿足預定條件;當所述第一參數(shù)滿足預定條件時,執(zhí)行所述遷移指令。
根據(jù)本發(fā)明的第四方面,提供了一種物理服務(wù)器,包括于一云平臺中,并作為一虛擬機的宿主機,所述云平臺還包括一云調(diào)度器,所述物理服務(wù)器包括:查詢模塊,用于向所述云調(diào)度器查詢所述宿主機的cpu支持的一個或多個指令集;確定模塊,用于確定待監(jiān)控的第一指令集集合;監(jiān)控模塊,用于啟動對所述第一指令集集合中的指令集的監(jiān)控,并獲得所述虛擬機中的應(yīng)用對于所述第一指令集集合中的指令集的調(diào)用信息。
優(yōu)選地,在根據(jù)本發(fā)明實施例的物理服務(wù)器中,所述確定模塊進一步包括:篩選模塊,用于基于預定規(guī)則,對所述宿主機的cpu支持的一個或多個指令集進行篩選。
優(yōu)選地,根據(jù)本發(fā)明實施例的物理服務(wù)器可以進一步包括:發(fā)送模塊,用于響應(yīng)于所述云調(diào)度器的查詢,將所述調(diào)用信息發(fā)送到所述云平臺。
優(yōu)選地,在根據(jù)本發(fā)明實施例的物理服務(wù)器中,所述監(jiān)控模塊進一步包括:計數(shù)模塊,用于每當所述虛擬機中的應(yīng)用調(diào)用所述第一指令集集合中的第一指令集時,將與所述第一指令集對應(yīng)的計數(shù)值增加1,其中所述計數(shù)值的初始值為0,其中所述調(diào)用信息包括所述虛擬機中的應(yīng)用對所述第一指令集的調(diào)用次數(shù)。
根據(jù)本發(fā)明的第五方面,提供了一種云調(diào)度器,包含于一云平臺中,所述云平臺還包括多個物理服務(wù)器,并且所述云調(diào)度器在所述多個物理服務(wù)器之中為虛擬機分配合適的宿主機,包括:獲取單元,用于獲取針對所述虛擬機的遷移指令,所述遷移指令用于將所述虛擬機從當前宿主機遷移到目標宿主機;注冊單元,用于與物理服務(wù)器對應(yīng)地記錄其cpu支持的特征指令集,并獲取所述遷移指令所對應(yīng)的目標宿主機的第一參數(shù),所述第一參數(shù)與當前宿主機的cpu的第二指令集集合相對應(yīng);以及調(diào)度單元,用于判斷第一參數(shù)是否滿足預定條件,并且當所述第一參數(shù)滿足預定條件時,執(zhí)行所述遷移指令。
優(yōu)選地,在根據(jù)本發(fā)明實施例的云調(diào)度器中,所述第一參數(shù)是指示是否支持所述第二指令集集合中的所有指令集的參數(shù)。
優(yōu)選地,根據(jù)本發(fā)明實施例的云調(diào)度器可以進一步包括:統(tǒng)計分析單元,用于向所述當前宿主機查詢所述虛擬機中的應(yīng)用對于cpu的特征指令集的調(diào)用信息,統(tǒng)計分析所述調(diào)用信息,并獲得第二指令集集合。
優(yōu)選地,在根據(jù)本發(fā)明實施例的云調(diào)度器中,所述調(diào)用信息包括所述虛擬機中的應(yīng)用對一個或多個指令集的調(diào)用次數(shù),并且其中所述統(tǒng)計分析單元被配置為在所述一個或多個指令集中,篩選出調(diào)用次數(shù)大于預定閾值的指令集作為第二指令集集合。
優(yōu)選地,在根據(jù)本發(fā)明實施例的云調(diào)度器中,所述預定條件為所述第一參數(shù)指示支持所述第二指令集集合中的所有指令集。
根據(jù)本發(fā)明的第六方面,提供了一種云平臺,包括:多個物理服務(wù)器,其每一個包括調(diào)用監(jiān)控模塊,用于監(jiān)控其上運行的虛擬機中的應(yīng)用對于cpu的特征指令集的調(diào)用情況,并獲得調(diào)用信息;以及云調(diào)度器,用于在所述多個物理服務(wù)器之中為虛擬機分配合適的宿主機;其中所述云調(diào)度器包括:獲取單元,用于獲取針對所述虛擬機的遷移指令,所述遷移指令用于將所述虛擬機從當前宿主機遷移到目標宿主機;注冊單元,用于與物理服務(wù)器對應(yīng)地記錄其cpu支持的特征指令集,并獲取所述遷移指令所對應(yīng)的目標宿主機的第一參數(shù),所述第一參數(shù)與當前宿主機的cpu的第二指令集集合相對應(yīng);以及調(diào)度單元,用于判斷第一參數(shù)是否滿足預定條件,并且當所述第一參數(shù)滿足預定條件時,執(zhí)行所述遷移指令。
通過根據(jù)本發(fā)明實施例的物理服務(wù)器和監(jiān)控方法,能夠獲得虛擬機中的應(yīng)用對于指令集的調(diào)用信息,從而能夠感知虛擬機中的應(yīng)用對計算資源的需求。通過根據(jù)本發(fā)明實施例的云調(diào)度器和調(diào)度方法,通過基于第一參數(shù)來確定是否執(zhí)行遷移指令,能夠考慮虛擬機中所運行應(yīng)用對cpu資源的使用需求,從而可以更加合理地執(zhí)行虛擬機調(diào)度。通過根據(jù)本發(fā)明實施例的云平臺和控制方法,可以實現(xiàn)虛擬機中應(yīng)用對計算資源的監(jiān)控和虛擬機在各物理服務(wù)器間的合理調(diào)度。
附圖說明
圖1是圖示根據(jù)本發(fā)明實施例的應(yīng)用于物理服務(wù)器的監(jiān)控方法的過程的流程圖;
圖2是圖示根據(jù)本發(fā)明實施例的應(yīng)用于云調(diào)度器的調(diào)度方法的過程的流程圖;
圖3是圖示根據(jù)本發(fā)明實施例的應(yīng)用于云平臺的控制方法的過程的流程圖;
圖4是圖示根據(jù)本發(fā)明實施例的物理服務(wù)器的配置的功能性框圖;
圖5是圖示根據(jù)本發(fā)明實施例的云調(diào)度器的配置的功能性框圖;以及
圖6是圖示根據(jù)本發(fā)明實施例的云平臺的配置的功能性框圖。
具體實施方式
下面將參照附圖對本發(fā)明的各個優(yōu)選的實施方式進行描述。提供以下參照附圖的描述,以幫助對由權(quán)利要求及其等價物所限定的本發(fā)明的示例實施方式的理解。其包括幫助理解的各種具體細節(jié),但它們只能被看作是示例性的。因此,本領(lǐng)域技術(shù)人員將認識到,可對這里描述的實施方式進行各種改變和修改,而不脫離本發(fā)明的范圍和精神。而且,為了使說明書更加清楚簡潔,將省略對本領(lǐng)域熟知功能和構(gòu)造的詳細描述。
首先,將參照圖1描述根據(jù)本發(fā)明實施例的監(jiān)控方法,所述監(jiān)控方法應(yīng)用于一云平臺中的物理服務(wù)器。所述云平臺還包括一云調(diào)度器,所述物理服務(wù)器作為一虛擬機的宿主機。
如圖1所示,所述監(jiān)控方法包括如下步驟。
首先,在步驟s101,向所述云調(diào)度器查詢所述宿主機的cpu支持的一個或多個指令集。這里,需要指出的是,在云平臺的云調(diào)度器中維護當前云平臺中所有物理服務(wù)器所對應(yīng)的記錄信息,所述記錄信息表示物理服務(wù)器的cpu所支持的特征指令集。關(guān)于該部分的詳細內(nèi)容將在下文中描述。
然后,在步驟s102,確定待監(jiān)控的第一指令集集合。
接下來,在步驟s103,啟動對所述第一指令集集合中的指令集的監(jiān)控。
最后,在步驟s104,獲得所述虛擬機中的應(yīng)用對于所述第一指令集集合中的指令集的調(diào)用信息。
在根據(jù)本發(fā)明的監(jiān)控方法中,能夠獲得虛擬機中的應(yīng)用對于指令集的調(diào)用信息,從而能夠感知虛擬機中的應(yīng)用對計算資源的需求。不需要在虛擬機中安裝特定的應(yīng)用監(jiān)控代理,也不需要用戶提供虛擬機中的應(yīng)用信息,而是在物理服務(wù)器上統(tǒng)計分析虛擬機中應(yīng)用的計算特點。所述調(diào)用信息的用途廣泛。例如,可以收集所述調(diào)用信息用于大數(shù)據(jù)統(tǒng)計。另外,如下文中將要描述的,也可以利用所述調(diào)用信息來提供云平臺中更為合理的虛擬機調(diào)度依據(jù)。
在根據(jù)本發(fā)明的監(jiān)控方法中,上述步驟s102中確定的待監(jiān)控的第一指令集集合可以是在步驟s101獲取的所述物理服務(wù)器(即,宿主機)中的cpu所支持的全部指令集。
或者,可替代地,所述第一指令集集合也可以是cpu所支持的全部指令集的一部分。在這種情況下,確定待監(jiān)控的第一指令集集合的步驟s203可以進一步包括:基于預定規(guī)則,對所述宿主機的cpu支持的一個或多個指令集進行篩選。
具體來說,不需要對虛擬機調(diào)用的所有指令集進行監(jiān)控統(tǒng)計,僅對可以明顯刻畫計算特點的特征指令集的調(diào)用情況進行統(tǒng)計分析,從而以較小的監(jiān)控統(tǒng)計代價實現(xiàn)較準確的應(yīng)用計算特點的分析。例如,通常每款cpu具有特定的cpu特征指令集,如intelcpu可支持sse(浮點運算加速)和mmx(多媒體處理)指令集,這兩個指令集就是可以明顯刻畫計算特點的特征指令集,通過對這種指令集的調(diào)用信息進行監(jiān)控,可以更準確地分析應(yīng)用計算特點。例如,如果虛擬機中的應(yīng)用總是頻繁地調(diào)用mmx指令集,則說明虛擬機極有可能是一個運行多媒體處理相關(guān)應(yīng)用的虛擬機。
為了更好地利用所獲得的調(diào)度信息,在根據(jù)本發(fā)明的監(jiān)控方法中,在步驟s104之后,還可以進一步包括如下步驟:響應(yīng)于所述云調(diào)度器的查詢,將所述調(diào)用信息發(fā)送到所述云調(diào)度器。
如下文中將描述的那樣,云調(diào)度器中的cpu特征指令集統(tǒng)計分析模塊(featureanalysismodule,fam)(在下文中簡稱為統(tǒng)計分析模塊)周期性地調(diào)用物理服務(wù)器中的cpu特征指令集調(diào)用監(jiān)控模塊(featuremonitormodule,fmm)(在下文中簡稱為監(jiān)控模塊)查詢接口獲取虛擬機對所在宿主機的cpu特征指令集的調(diào)用信息。
另外,具體來說,在根據(jù)本發(fā)明的監(jiān)控方法中,啟動對所述第一指令集集合中的指令集的監(jiān)控的步驟s103可以進一步包括:每當所述虛擬機中的應(yīng)用調(diào)用所述第一指令集集合中的第一指令集時,將與所述第一指令集對應(yīng)的計數(shù)值(cpu_feature_call_count)增加1,其中所述計數(shù)值的初始值為0。
也就是說,在這種情況下,在步驟s104獲得的所述調(diào)用信息包括所述虛擬機中的應(yīng)用對所述第一指令集的調(diào)用次數(shù)。
當然,啟動對所述第一指令集集合中的指令集的監(jiān)控的具體實施方式并不僅限于對指令集的調(diào)用次數(shù)進行監(jiān)控。例如,還可以對指令集的調(diào)用頻率、調(diào)用時段、調(diào)用是否呈現(xiàn)周期性等進行監(jiān)控。
接下來,將參照圖2描述根據(jù)本發(fā)明實施例的調(diào)度方法,所述調(diào)度方法應(yīng)用于一云平臺中的云調(diào)度器。所述云平臺包括多個物理服務(wù)器,并且所述云調(diào)度器在所述多個物理服務(wù)器之中為虛擬機分配合適的宿主機。
如圖2所示,所述調(diào)度方法包括如下步驟。
首先,在步驟s201,獲取針對所述虛擬機的遷移指令,所述遷移指令用于將所述虛擬機從當前宿主機遷移到目標宿主機。
接下來,在步驟s202,獲取所述遷移指令所對應(yīng)的目標宿主機的第一參數(shù),所述第一參數(shù)與當前宿主機的cpu的第二指令集集合相對應(yīng)。
然后,在步驟s203,判斷第一參數(shù)是否滿足預定條件。
當在步驟s203判斷出所述第一參數(shù)滿足預定條件時,處理進行到步驟s204。在步驟s204,執(zhí)行所述遷移指令。也就是說,執(zhí)行將所述虛擬機從當前宿主機到目標宿主機的遷移。
另一方面,當在步驟s203判斷出所述第一參數(shù)不滿足預定條件時,處理進行到步驟s205。在步驟s205,不執(zhí)行所述遷移指令。也就是說,不執(zhí)行將所述虛擬機從當前宿主機到目標宿主機的遷移。
云平臺中用戶的虛擬機通常運行在大量的異構(gòu)物理服務(wù)器之上,如何能夠根據(jù)應(yīng)用對cpu計算資源需求的不同為虛擬機分配合適的cpu資源從而保證虛擬機中應(yīng)用的高效運行是云平臺資源調(diào)度的一個重要目標。在現(xiàn)有技術(shù)中,云平臺只針對cpu資源使用情況(如,cpu資源利用率)進行監(jiān)控,難以感知虛擬機中所運行應(yīng)用對cpu資源的使用偏好,因此云調(diào)度器無法針對應(yīng)用的實際需求進行高效的資源調(diào)度。傳統(tǒng)云調(diào)度器的調(diào)度目標是最大化資源使用,為了達到這一目標會對虛擬機進行動態(tài)的遷移和配置調(diào)整,虛擬機遷移到不同的物理機上時其中運行應(yīng)用的資源需求也會相應(yīng)發(fā)生變化。比如,對于一個運行多媒體處理相關(guān)應(yīng)用的虛擬機來說,假設(shè)把它調(diào)度到支持mmxcpu指令集的物理機上需要分配2個物理cpucore并且cpu利用率達到70%即可滿足其計算資源需求。如果把該虛擬機遷移到不支持mmx
cpu指令集的物理機上,則可能需要分配4個物理cpucore并且cpu利用率達到70%才可以滿足其計算資源需求。對于傳統(tǒng)的云調(diào)度器來說,這兩種情況下物理機的cpu資源利用率均為70%,具有相同的調(diào)度效果,兩種情形均有可能發(fā)生,但顯然第一種調(diào)度結(jié)果具有更好的資源使用效率??梢?,現(xiàn)有技術(shù)中的云平臺的調(diào)度器僅考慮cpu資源利用率等資源層次的指標,缺乏對應(yīng)用的資源需求偏好的分析,難以保證cpu資源的高效利用。
在根據(jù)本發(fā)明的調(diào)度方法中,通過獲取目標宿主機的、與當前宿主機的cpu的第二指令集集合相對應(yīng)的第一參數(shù),并判斷其是否滿足預定條件來決定是否執(zhí)行遷移指令。所述第一參數(shù)是表示目標宿主機是否能夠滿足與當前宿主機相同的計算資源需求的參數(shù)。也就是說,在根據(jù)本發(fā)明的調(diào)度方法中,通過基于第一參數(shù)來確定是否執(zhí)行遷移指令,能夠考慮虛擬機中所運行應(yīng)用對cpu資源的使用需求,從而可以更加合理地執(zhí)行虛擬機調(diào)度。
另外,在根據(jù)本發(fā)明的調(diào)度方法中,在步驟s201之前,還進一步包括與物理服務(wù)器對應(yīng)地記錄其cpu支持的特征指令集的步驟。具體地,每個物理服務(wù)器對應(yīng)一條(feature1,feature2,…,featurem)的記錄,維護當前云平臺中所有服務(wù)器所對應(yīng)的記錄信息,并構(gòu)造一個n*m的矩陣h,其中n為物理服務(wù)器的個數(shù),m為平臺中所有cpu特征指令集的個數(shù),如果序號為i的物理服務(wù)器支持序號為j的特征指令集,則hij=1,否則hij=0。
當在所述云平臺中增加新的物理服務(wù)器時,獲取所述新的物理服務(wù)器的cpu支持的指令集,并在矩陣h中增加一行本物理服務(wù)器所支持的cpu特征指令集的記錄。
此外,所述第一參數(shù)是指示是否支持所述第二指令集集合中的所有指令集的參數(shù)。所述預定條件為所述第一參數(shù)指示支持所述第二指令集集合中的所有指令集。
第二指令集集合是當前宿主機所支持的全部指令集的一部分,是能夠體現(xiàn)虛擬機在當前宿主機中對cpu資源的使用偏好的指令集的集合。第二指令集集合可以通過如下方式獲得。在獲取所述遷移指令所對應(yīng)的目標宿主機的第一參數(shù)的步驟s202之前,所述調(diào)度方法進一步包括如下步驟。
在步驟s206,向所述當前宿主機查詢所述虛擬機中的應(yīng)用對于cpu的特征指令集的調(diào)用信息。
然后,在步驟s207,統(tǒng)計分析所述調(diào)用信息,并獲得第二指令集集合。
如上文中所述,所述調(diào)用信息包括但不限于調(diào)用次數(shù)、調(diào)用頻率、調(diào)用時段、調(diào)用是否呈現(xiàn)周期性等。在所述調(diào)用信息包括所述虛擬機中的應(yīng)用對一個或多個指令集的調(diào)用次數(shù)的情況下,統(tǒng)計分析所述調(diào)用信息,并獲得第二指令集集合的步驟s207進一步包括:在所述一個或多個指令集中,篩選出調(diào)用次數(shù)大于預定閾值的指令集作為第二指令集集合。
具體地,周期性查詢分布于各個物理機上的fmm的查詢接口獲取虛擬機對所在宿主機的cpu特征指令集的調(diào)用信息cpu_feature_call_count,計算出虛擬機對cpu特征指令集的調(diào)用次數(shù)。構(gòu)造一個p*m的矩陣c,其中p為虛擬機的個數(shù),m為所有cpu特征指令集的個數(shù),cij的值設(shè)置為序號為i的虛擬機在最近t時間內(nèi)對序號為j的cpu特征指令集的調(diào)用次數(shù)。當當前宿主機為服務(wù)器k,而目標宿主機是服務(wù)器g時,對于大于某個值f的所有cij,查詢hgj是否均為1,即:對于在當前宿主機上調(diào)用次數(shù)較多的特征指令集,查詢是否在目標宿主機上也支持。
接下來,將參照圖3描述根據(jù)本發(fā)明實施例的控制方法,所述控制方法應(yīng)用于一云平臺,所述云平臺包括云調(diào)度器和多個物理服務(wù)器,并且所述云調(diào)度器在所述多個物理服務(wù)器之中為虛擬機分配合適的宿主機。
如圖3所示,所述方法包括如下步驟。
首先,在步驟s301,獲取針對所述虛擬機的遷移指令,所述遷移指令用于將所述虛擬機從當前宿主機遷移到目標宿主機。
然后,在步驟s302,查詢所述當前宿主機的cpu支持的一個或多個指令集。
接下來,在步驟s303,確定待監(jiān)控的第一指令集集合。
然后,在步驟s304,啟動對所述第一指令集集合中的指令集的監(jiān)控。
并且,在步驟s305,獲得所述虛擬機中的應(yīng)用對于所述第一指令集集合中的指令集的調(diào)用信息。
在步驟s306,統(tǒng)計分析所述調(diào)用信息,并獲得第二指令集集合。
在步驟s307,獲取所述遷移指令所對應(yīng)的目標宿主機的第一參數(shù),所述第一參數(shù)與當前宿主機的cpu的第二指令集集合相對應(yīng)。
在步驟s308,判斷第一參數(shù)是否滿足預定條件。
當在步驟s308判斷出所述第一參數(shù)滿足預定條件時,處理進行到步驟s309。在步驟s309,執(zhí)行所述遷移指令。另一方面,當在步驟s308判斷出所述第一參數(shù)不滿足預定條件時,處理進行到步驟s310。在步驟s310,不執(zhí)行所述遷移指令。
在上文中,已經(jīng)參照圖1到圖3詳細描述了根據(jù)本發(fā)明實施例的應(yīng)用于物理服務(wù)器的監(jiān)控方法、應(yīng)用于云調(diào)度器的調(diào)度方法以及應(yīng)用于云平臺的控制方法。接下來,將參照圖4描述根據(jù)本發(fā)明實施例的物理服務(wù)器。所述物理服務(wù)器包括于一云平臺中,并且作為一虛擬機的宿主機。所述云平臺包括多個物理服務(wù)器和一云調(diào)度器。
如圖4所示,所述物理服務(wù)器400包括:查詢模塊401、確定模塊402以及監(jiān)控模塊403。
查詢模塊401用于向所述云調(diào)度器查詢所述宿主機的cpu支持的一個或多個指令集。
確定模塊402用于確定待監(jiān)控的第一指令集集合。
監(jiān)控模塊403用于啟動對所述第一指令集集合中的指令集的監(jiān)控,并獲得所述虛擬機中的應(yīng)用對于所述第一指令集集合中的指令集的調(diào)用信息。
在根據(jù)本發(fā)明的物理服務(wù)器中,能夠獲得虛擬機中的應(yīng)用對于指令集的調(diào)用信息,從而能夠感知虛擬機中的應(yīng)用對計算資源的需求。不需要在虛擬機中安裝特定的應(yīng)用監(jiān)控代理,也不需要用戶提供虛擬機中的應(yīng)用信息,而是在物理服務(wù)器上統(tǒng)計分析虛擬機中應(yīng)用的計算特點。所述調(diào)用信息的用途廣泛。例如,可以收集所述調(diào)用信息用于大數(shù)據(jù)統(tǒng)計,也可以利用所述調(diào)用信息來提供云平臺中更為合理的虛擬機調(diào)度依據(jù)。
在根據(jù)本發(fā)明的物理服務(wù)器中,所述確定模塊402中確定的待監(jiān)控的第一指令集集合可以是在所述查詢模塊401獲取的所述物理服務(wù)器(即,宿主機)中的cpu所支持的全部指令集。
或者,可替代地,所述第一指令集集合也可以是cpu所支持的全部指令集的一部分。在這種情況下,所述確定模塊402可以進一步包括:篩選模塊(圖中未示出),用于基于預定規(guī)則,對所述宿主機的cpu支持的一個或多個指令集進行篩選。不需要對虛擬機調(diào)用的所有指令集進行監(jiān)控統(tǒng)計,僅對可以明顯刻畫計算特點的特征指令集的調(diào)用情況進行統(tǒng)計分析,從而以較小的監(jiān)控統(tǒng)計代價實現(xiàn)較準確的應(yīng)用計算特點的分析。
為了更好地利用所獲得的調(diào)度信息,根據(jù)本發(fā)明的物理服務(wù)器可以進一步包括:發(fā)送模塊(圖中未示出),用于響應(yīng)于所述云調(diào)度器的查詢,將所述調(diào)用信息發(fā)送到所述云平臺。
另外,具體來說,在根據(jù)本發(fā)明實施例的物理服務(wù)器中,所述監(jiān)控模塊403進一步包括:計數(shù)模塊(圖中未示出),用于每當所述虛擬機中的應(yīng)用調(diào)用所述第一指令集集合中的第一指令集時,將與所述第一指令集對應(yīng)的計數(shù)值增加1,其中所述計數(shù)值的初始值為0。
也就是說,在這種情況下,所述調(diào)用信息包括所述虛擬機中的應(yīng)用對所述第一指令集的調(diào)用次數(shù)。
當然,所述監(jiān)控模塊403啟動對所述第一指令集集合中的指令集的監(jiān)控的具體實施方式并不僅限于對指令集的調(diào)用次數(shù)進行監(jiān)控。例如,所述監(jiān)控模塊403還可以對指令集的調(diào)用頻率、調(diào)用時段、調(diào)用是否呈現(xiàn)周期性等進行監(jiān)控。
接下來,將參照圖5描述根據(jù)本發(fā)明實施例的云調(diào)度器。所述云調(diào)度器包含于一云平臺中,所述云平臺還包括多個物理服務(wù)器,并且所述云調(diào)度器在所述多個物理服務(wù)器之中為虛擬機分配合適的宿主機。
如圖5所示,云調(diào)度器500包括:獲取單元501、注冊單元502以及調(diào)度單元503。
獲取單元501用于獲取針對所述虛擬機的遷移指令,所述遷移指令用于將所述虛擬機從當前宿主機遷移到目標宿主機。
注冊單元502用于與物理服務(wù)器對應(yīng)地記錄其cpu支持的特征指令集。如上文中所述,每個物理服務(wù)器對應(yīng)一條(feature1,feature2,…,featurem)的記錄,注冊單元502維護當前云平臺中所有服務(wù)器所對應(yīng)的記錄信息,并構(gòu)造一個n*m的矩陣h,其中n為物理服務(wù)器的個數(shù),m為平臺中所有cpu特征指令集的個數(shù),如果序號為i的物理服務(wù)器支持序號為j的特征指令集,則hij=1,否則hij=0。當在所述云平臺中增加新的物理服務(wù)器時,獲取所述新的物理服務(wù)器的cpu支持的指令集,并在矩陣h中增加一行本物理服務(wù)器所支持的cpu特征指令集的記錄。
并且,注冊單元502還被配置為獲取所述遷移指令所對應(yīng)的目標宿主機的第一參數(shù),所述第一參數(shù)與當前宿主機的cpu的第二指令集集合相對應(yīng)。
調(diào)度單元503用于判斷第一參數(shù)是否滿足預定條件,并且當所述第一參數(shù)滿足預定條件時,執(zhí)行所述遷移指令。
在根據(jù)本發(fā)明的云調(diào)度器中,通過獲取目標宿主機的、與當前宿主機的cpu的第二指令集集合相對應(yīng)的第一參數(shù),并判斷其是否滿足預定條件來決定是否執(zhí)行遷移指令。所述第一參數(shù)是表示目標宿主機是否能夠滿足與當前宿主機相同的計算資源需求的參數(shù)。也就是說,在根據(jù)本發(fā)明的調(diào)度方法中,通過基于第一參數(shù)來確定是否執(zhí)行遷移指令,能夠考慮虛擬機中所運行應(yīng)用對cpu資源的使用需求,從而可以更加合理地執(zhí)行虛擬機調(diào)度。
所述第一參數(shù)是指示是否支持所述第二指令集集合中的所有指令集的參數(shù)。所述預定條件為所述第一參數(shù)指示支持所述第二指令集集合中的所有指令集。
第二指令集集合是當前宿主機所支持的全部指令集的一部分,是能夠體現(xiàn)虛擬機在當前宿主機中對cpu資源的使用偏好的指令集的集合。第二指令集集合可以通過如下方式獲得。
根據(jù)本發(fā)明的云調(diào)度器可以進一步包括:統(tǒng)計分析單元504,用于向所述當前宿主機查詢所述虛擬機中的應(yīng)用對于cpu的特征指令集的調(diào)用信息,統(tǒng)計分析所述調(diào)用信息,并獲得第二指令集集合。
如上文中所述,所述調(diào)用信息包括但不限于調(diào)用次數(shù)、調(diào)用頻率、調(diào)用時段、調(diào)用是否呈現(xiàn)周期性等。在所述調(diào)用信息包括所述虛擬機中的應(yīng)用對一個或多個指令集的調(diào)用次數(shù)的情況下,所述統(tǒng)計分析單元504被配置為在所述一個或多個指令集中,篩選出調(diào)用次數(shù)大于預定閾值的指令集作為第二指令集集合。
具體地,統(tǒng)計分析單元504周期性查詢分布于各個物理機上的fmm的查詢接口獲取虛擬機對所在宿主機的cpu特征指令集的調(diào)用信息cpu_feature_call_count,計算出虛擬機對cpu特征指令集的調(diào)用次數(shù)。構(gòu)造一個p*m的矩陣c,其中p為虛擬機的個數(shù),m為所有cpu特征指令集的個數(shù),cij的值設(shè)置為序號為i的虛擬機在最近t時間內(nèi)對序號為j的cpu特征指令集的調(diào)用次數(shù)。當當前宿主機為服務(wù)器k,而目標宿主機是服務(wù)器g時,對于大于某個值f的所有cij,查詢hgj是否均為1,即:對于在當前宿主機上調(diào)用次數(shù)較多的特征指令集,查詢是否在目標宿主機上也支持。
最后,將參照圖6描述根據(jù)本發(fā)明實施例的云平臺。如圖6所示,云平臺600包括多個物理服務(wù)器4001-400n(在不需要特別區(qū)分的情況下,將其統(tǒng)一地表示為400)和云調(diào)度器500。
多個物理服務(wù)器中的每一個包括調(diào)用監(jiān)控模塊403,用于監(jiān)控其上運行的虛擬機中的應(yīng)用對于cpu的特征指令集的調(diào)用情況,并獲得調(diào)用信息。
云調(diào)度器500用于在所述多個物理服務(wù)器之中為虛擬機分配合適的宿主機。
所述云調(diào)度器500包括:獲取單元501,用于獲取針對所述虛擬機的遷移指令,所述遷移指令用于將所述虛擬機從當前宿主機遷移到目標宿主機;注冊單元502,用于與物理服務(wù)器對應(yīng)地記錄其cpu支持的特征指令集,并獲取所述遷移指令所對應(yīng)的目標宿主機的第一參數(shù),所述第一參數(shù)與當前宿主機的cpu的第二指令集集合相對應(yīng);統(tǒng)計分析單元504,用于向所述當前宿主機查詢所述虛擬機中的應(yīng)用對于cpu的特征指令集的調(diào)用信息,統(tǒng)計分析所述調(diào)用信息,并獲得第二指令集集合;以及調(diào)度單元503用于判斷第一參數(shù)是否滿足預定條件,并且當所述第一參數(shù)滿足預定條件時,執(zhí)行所述遷移指令。
迄今為止,已經(jīng)參照圖1到圖6詳細描述了根據(jù)本發(fā)明實施例的物理服務(wù)器、云調(diào)度器、云平臺以及應(yīng)用于其的監(jiān)控方法、調(diào)度方法和控制方法。通過根據(jù)本發(fā)明實施例的物理服務(wù)器和監(jiān)控方法,能夠獲得虛擬機中的應(yīng)用對于指令集的調(diào)用信息,從而能夠感知虛擬機中的應(yīng)用對計算資源的需求。通過根據(jù)本發(fā)明實施例的云調(diào)度器和調(diào)度方法,通過基于第一參數(shù)來確定是否執(zhí)行遷移指令,能夠考慮虛擬機中所運行應(yīng)用對cpu資源的使用需求,從而可以更加合理地執(zhí)行虛擬機調(diào)度。通過根據(jù)本發(fā)明實施例的云平臺和控制方法,可以實現(xiàn)虛擬機中應(yīng)用對計算資源的監(jiān)控和虛擬機在各物理服務(wù)器間的合理調(diào)度。
需要說明的是,在本說明書中,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
最后,還需要說明的是,上述一系列處理不僅包括以這里所述的順序按時間序列執(zhí)行的處理,而且包括并行或分別地、而不是按時間順序執(zhí)行的處理。
通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的硬件平臺的方式來實現(xiàn),當然也可以全部通過軟件來實施?;谶@樣的理解,本發(fā)明的技術(shù)方案對背景技術(shù)做出貢獻的全部或者部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如rom/ram、磁碟、光盤等,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例或者實施例的某些部分所述的方法。
以上對本發(fā)明進行了詳細介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施方式及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。