本發(fā)明涉及IT技術(shù)領(lǐng)域,具體涉及一種云計算系統(tǒng)中的資源調(diào)度的方法和裝置。
背景技術(shù):
虛擬化技術(shù)是云計算領(lǐng)域的關(guān)鍵技術(shù)之一,可將物理機的物理資源虛擬成多個虛擬機(Virtual Machine,VM),物理資源被虛擬化平臺以虛擬資源池的形式提供給各個虛擬機,虛擬機之間共享物理資源。
云數(shù)據(jù)中心,即以虛擬化的方式提供計算、存儲、網(wǎng)絡(luò)等資源的數(shù)據(jù)中心。與傳統(tǒng)的數(shù)據(jù)中心相比,云數(shù)據(jù)中心資源高度集中,統(tǒng)一調(diào)度和管理,大大節(jié)省了數(shù)據(jù)中心的運營和運維成本。數(shù)據(jù)中心按需求和策略分配虛擬機的資源,同時,保證虛擬機間資源的安全隔離。當前業(yè)界普遍采用動態(tài)資源調(diào)度方法確保虛擬機的QoS(Quality of Service,服務(wù)質(zhì)量),動態(tài)資源調(diào)度方法是指根據(jù)預定策略動態(tài)的在遷移域中執(zhí)行虛擬機的在線遷移并達到主機的資源在虛擬機之間的自動分配以實現(xiàn)均衡。
基于負載均衡(Load Balance,LB)的動態(tài)資源調(diào)度方法當前應(yīng)用最為廣泛,一個遷移域中各主機上承載的虛擬機可以在所述遷移域中進行遷移。其主要步驟為:監(jiān)控得到遷移域中所有主機和虛擬機的負載指標,并判斷是否達到遷移觸發(fā)條件,若達到遷移觸發(fā)條件,則進行虛擬機的在線遷移,從高負載的源主機上選擇虛擬機,遷移到低負載的目的主機上,從而達到遷移域內(nèi)負載均衡的目的。
但是,基于負載均衡的動態(tài)資源調(diào)度方法僅考慮了當前時刻的負載狀況,并未考慮虛擬機的歷史運行規(guī)律,容易形成負載沖突,造成虛擬機的QoS下降;同時現(xiàn)有的動態(tài)資源調(diào)度僅考慮當前時刻負載的均衡, 隨著負載的變化容易反復遷移,浪費了運數(shù)據(jù)中心的資源。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明實施例提供了一種云計算系統(tǒng)中的資源調(diào)度的方法和裝置,可以基于虛擬機的運行規(guī)律進行資源調(diào)度。
本發(fā)明實施例所采用的技術(shù)方案是:
第一方面提供一種云計算系統(tǒng)中資源調(diào)度的方法,所述方法包括:
監(jiān)控主機上承載的各虛擬機的性能指標,所述性能指標包括當前時刻的性能指標以及歷史性能指標;
根據(jù)所述主機承載的所述各虛擬機的所述歷史性能指標,確定所述各虛擬機的行為模式;
計算所述主機在承載所述各虛擬機的行為模式時的第一風險評估值;
根據(jù)所述主機承載的所述各虛擬機的所述當前時刻的性能指標,計算所述主機在當前時刻的第二風險評估值;
根據(jù)所述第一風險評估值和所述第二風險評估值,計算所述主機的風險加權(quán)值;
根據(jù)計算得到的所述主機的風險加權(quán)值,確定虛擬機遷移策略。
結(jié)合第一方面,在第一種可能的實現(xiàn)方式中,所述云計算系統(tǒng)包括至少一個遷移域,所述遷移域中包括至少兩個主機,
所述根據(jù)計算得到的所述主機的風險加權(quán)值,確定虛擬機遷移策略包括:
根據(jù)所述遷移域中的所述至少兩個主機的風險加權(quán)值,計算所述遷移域的風險均衡度;
當所述風險均衡度大于預設(shè)閾值時,從風險加權(quán)值最大的主機上選擇虛擬機遷移到所述遷移域的其他主機上。
結(jié)合第一方面或第一方面第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述行為模式包括虛擬機的運行周期、負載模式以及性能統(tǒng)計參數(shù)。
結(jié)合第一方面的第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,根據(jù)所述主機承載的所述各虛擬機的所述歷史性能指標,確定所述各虛擬機的行為模式包括:
確定所述虛擬機的運行周期;
將所述虛擬機的運行周期劃分為多個時間段,根據(jù)所述多個時間段內(nèi)所述虛擬機的負載變化情況,分別確定所述虛擬機在所述多個時間段內(nèi)的負載模式;
根據(jù)所述歷史性能指標確定所述運行周期內(nèi)的多個時間段的性能統(tǒng)計參數(shù)。
結(jié)合第一方面的第三種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,所述計算所述主機在承載所述各虛擬機的行為模式時的第一風險評估值包括:
根據(jù)所述多個時間段中至少一個時間段的性能統(tǒng)計參數(shù),以及所述至少一個時間段對應(yīng)的負載模式,計算所述第一風險評估值。
結(jié)合第一方面的前述任一種實現(xiàn)方式,在第五種可能的實現(xiàn)方式中,所述根據(jù)所述第一風險評估值和所述第二風險評估值,計算所述主機的風險加權(quán)值包括:
使用下述關(guān)系式計算所述風險加權(quán)值:
Rh=wl·Rl+wb·Rb
其中,所述Rh表示所述風險加權(quán)值,所述Rl表示所述第二風險評估值,所述Rb表示所述第一風險評估值,所述wl和wb表示加權(quán)因子且兩者的取值范圍為0~1、之和為1。
第二方面,本發(fā)明實施例提供了另一種云計算系統(tǒng)中資源調(diào)度的方法,所述云計算系統(tǒng)包括至少一個遷移域,所述遷移域中包括至少兩個主機,
所述方法包括:
監(jiān)控所述主機上承載的各虛擬機的性能指標,所述性能指標包括當前時刻的性能指標以及歷史性能指標;
根據(jù)所述主機承載的所述各虛擬機的所述歷史性能指標,確定所述 各虛擬機的行為模式;
計算所述主機在承載所述各虛擬機的行為模式時的第一風險評估值;
根據(jù)所述主機承載的所述各虛擬機的所述當前時刻的性能指標,計算所述主機在當前時刻的第二風險評估值;
根據(jù)所述第一風險評估值和所述第二風險評估值,計算所述主機的風險加權(quán)值;
根據(jù)所述遷移域中的所述至少兩個主機的風險加權(quán)值,計算所述遷移域的風險均衡度;
當所述風險均衡度大于預設(shè)閾值時,從風險加權(quán)值最大的主機上選擇虛擬機遷移到所述遷移域的其他主機上。
第三方面,本發(fā)明實施例提供了一種云計算系統(tǒng)中資源調(diào)度的裝置,包括:
監(jiān)控模塊,用于監(jiān)控主機上承載的各虛擬機的性能指標,所述性能指標包括當前時刻的性能指標以及歷史性能指標;
行為模式分析模塊,用于根據(jù)所述主機承載的所述各虛擬機的所述歷史性能指標,確定所述各虛擬機的行為模式;
風險評估模塊,用于計算所述主機在承載所述各虛擬機的行為模式時的第一風險評估值,根據(jù)所述主機承載的所述各虛擬機的所述當前時刻的性能指標,計算所述主機在當前時刻的第二風險評估值,根據(jù)所述第一風險評估值和所述第二風險評估值,計算所述主機的風險加權(quán)值
資源調(diào)度決策模塊,用于根據(jù)所述風險評估模塊計算得到的所述主機的風險加權(quán)值,確定虛擬機遷移策略。
結(jié)合第三方面,在第三方面的第一種可能的實現(xiàn)方式中,所述云計算系統(tǒng)包括至少一個遷移域,所述遷移域中包括至少兩個主機,
所述資源調(diào)度決策模塊,具體用于根據(jù)所述遷移域中的所述至少兩個主機的風險加權(quán)值,計算所述遷移域的風險均衡度,當所述風險均衡度大于預設(shè)閾值時,從風險加權(quán)值最大的主機上選擇虛擬機遷移到所述遷移域的其他主機上。
結(jié)合第三方面或第三方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述行為模式包括虛擬機的運行周期、負載模式以及性能統(tǒng)計參數(shù)。
結(jié)合第三方面的第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述行為模式分析模塊,具體用于確定所述虛擬機的運行周期,將所述虛擬機的運行周期劃分為多個時間段,根據(jù)所述多個時間段內(nèi)所述虛擬機的負載變化情況,分別確定所述虛擬機在所述多個時間段內(nèi)的負載模式,根據(jù)所述歷史性能指標確定所述運行周期內(nèi)的多個時間段的性能統(tǒng)計參數(shù)。
結(jié)合第三方面的第三種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,所述風險評估模塊,具體用于根據(jù)所述多個時間段中至少一個時間段的性能統(tǒng)計參數(shù),以及所述至少一個時間段對應(yīng)的負載模式,計算所述第一風險評估值。
結(jié)合第三方面前述的任一種實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,所述風險評估模塊,具體用于使用下述關(guān)系式計算所述風險加權(quán)值:
Rh=wl·Rl+wb·Rb
其中,所述Rh表示所述風險加權(quán)值,所述Rl表示所述第二風險評估值,所述Rb表示所述第一風險評估值,所述wl和wb表示加權(quán)因子且兩者的取值范圍為0~1、之和為1。
結(jié)合第三方面,在第三方面第五種可能的實現(xiàn)方式中,所述歷史性能指標存儲在性能指標數(shù)據(jù)庫中。
第四方面,本發(fā)明實施例提供了另一種云計算系統(tǒng)中資源調(diào)度的裝置,所述云計算系統(tǒng)包括至少一個遷移域,所述遷移域中包括至少兩個主機,所述裝置包括:
監(jiān)控模塊,用于監(jiān)控所述主機上承載的各虛擬機的性能指標,所述性能指標包括當前時刻的性能指標以及歷史性能指標;
行為模式分析模塊,用于根據(jù)所述主機承載的所述各虛擬機的所述歷史性能指標,確定所述各虛擬機的行為模式;
風險評估模塊,用于計算所述主機在承載所述各虛擬機的行為模式 時的第一風險評估值,根據(jù)所述主機承載的所述各虛擬機的所述當前時刻的性能指標,計算所述主機在當前時刻的第二風險評估值,根據(jù)所述第一風險評估值和所述第二風險評估值,計算所述主機的風險加權(quán)值;
資源調(diào)度決策模塊,用于根據(jù)所述遷移域中的所述至少兩個主機的風險加權(quán)值,計算所述遷移域的風險均衡度,當所述風險均衡度大于預設(shè)閾值時,從風險加權(quán)值最大的主機上選擇虛擬機遷移到所述遷移域的其他主機上。
本發(fā)明實施例的云計算系統(tǒng)中的資源調(diào)度方法及裝置,基于對虛擬機的各項性能指標值的統(tǒng)計分析,確定虛擬機的行為模式,進而確定承載所述虛擬機的風險加權(quán)值,基于計算得到的所述風險加權(quán)值遷移所述主機上的虛擬機,避免了主機上承載的虛擬機的QoS下降的問題,同時由于遷移決策過程基于主機當前時刻的第二風險評估值,以及主機承載的虛擬機的行為模式的第一風險評估值,即遷移過程的依據(jù)既包括當前時刻的風險,同時也包括了代表未來時段的主機承載該時段虛擬機行為模式時的第一風險評估值,從而避免主機上的虛擬機在未來時刻進行反復遷移。
附圖說明
圖1是本發(fā)明實施例提供的云計算系統(tǒng)結(jié)構(gòu)示意圖;
圖2是本發(fā)明實施例提供的一種云計算系統(tǒng)中資源調(diào)度的方法流程示意圖;
圖3是本發(fā)明實施例提供的另一種云計算系統(tǒng)中資源調(diào)度的方法流程示意圖;
圖4是本發(fā)明實施例提供的一種云計算系統(tǒng)中資源調(diào)度的裝置結(jié)構(gòu)示意圖;
圖5為本發(fā)明實施例提供的一種云計算系統(tǒng)中資源調(diào)度的硬件結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明所提供的示例性的實 施例的技術(shù)方案進行清楚、完整地描述。
如圖1所示,為本發(fā)明實施例提供的一種云計算系統(tǒng)結(jié)構(gòu)示意圖,該系統(tǒng)包括云管理平臺及資源池。所述資源池主要包括虛擬計算資源池、虛擬網(wǎng)絡(luò)資源池和虛擬存儲資源池。其中,虛擬計算資源池由一臺或多臺物理主機(21-2n)通過虛擬化技術(shù)形成,主要包含CPU、內(nèi)存等資源;虛擬網(wǎng)絡(luò)資源池由各種路由器、交換機、防火墻、負載均衡(Load Balance,LB)器等網(wǎng)絡(luò)設(shè)備通過虛擬化技術(shù)形成,主要包含網(wǎng)絡(luò)帶寬等資源;存儲資源池由各種存儲設(shè)備通過虛擬化技術(shù)形成,主要包含存儲容量、存儲I/O等資源,所述存儲設(shè)備可以為本地存儲、IPSAN、網(wǎng)絡(luò)附加存儲(Network Attached Storage,NAS)、對象存儲等,。資源池中包括若干主機(Host),主機上承載有多個VM,并為其分配虛擬資源??梢韵嗷ミM行VM遷移的主機組成一個遷移域。一個HOST上的VM共享計算資源(CPU或內(nèi)存等)、存儲資源(本地存儲或存儲I/O)和網(wǎng)絡(luò)資源(網(wǎng)絡(luò)I/O)。當一個HOST不能滿足其承載VM所需資源的時候,會造成VM的QoS下降,需要進行MV的遷移以保障VM的QoS。
本發(fā)明實施例提供了一種云計算系統(tǒng)中資源調(diào)度的方法和裝置,基于主機當前時刻的風險以及預估的未來時段的風險,進行虛擬機的遷移。云管理平臺1包括監(jiān)控模塊101、行為模式分析模塊103、風險評估模塊104、資源調(diào)度決策模塊105和資源管理模塊106,其中,監(jiān)控模塊101位于監(jiān)控管理部件中,所述監(jiān)控管理部件還包括數(shù)據(jù)庫102,所述數(shù)據(jù)庫102用于存儲監(jiān)控模塊獲得的監(jiān)控數(shù)據(jù)。
監(jiān)控模塊101對數(shù)據(jù)中心的各種實例進行性能指標的監(jiān)控,包括各種物理資源和虛擬資源的監(jiān)控,如VM或HOST的CPU占用率、內(nèi)存占用率、網(wǎng)絡(luò)流量,以及磁盤IO等。性能監(jiān)控101模塊可以是任意形式的現(xiàn)有監(jiān)控軟件,如ganglia等,負責實時采集虛擬機的各項性能指標。所述數(shù)據(jù)庫102可存儲由性能監(jiān)控軟件采集到的性能指標值,形成虛擬機的歷史性能指標的記錄。行為模式分析模塊103是虛擬機行為模式統(tǒng)計分析的核心模塊,負責根據(jù)數(shù)據(jù)庫102中的歷史數(shù)據(jù),得到主機上承載的各個虛擬機的行為模式。進一步的,虛擬機的行為模式統(tǒng)計結(jié)果可 以存儲在行為模式數(shù)據(jù)庫中。
虛擬機的行為模式包括虛擬機的運行周期、負載模式以及性能統(tǒng)計參數(shù)。
1.所述虛擬機的運行周期表示虛擬機的負載的變化規(guī)律所遵循的周期,云數(shù)據(jù)中心長期運行的虛擬機通常是具有周期性的,例如,一個部署了Web server(網(wǎng)頁服務(wù)器)的虛擬機通常在上午9點開始負載逐步上升,而在晚上23點后其負載逐步下降,則該虛擬機就表現(xiàn)出了以自然天為周期的周期性,即該虛擬機的運行周期為自然天。本發(fā)明實施例中,監(jiān)控模塊101監(jiān)測虛擬機的負載的變化規(guī)律,行為模式分析模塊103通過分析監(jiān)控模塊101檢測到的虛擬機的負載的變化規(guī)律即可確定虛擬機的運行周期。所述運行周期可以為多種形式,本發(fā)明實施例并不進行限定,例如,所述運行周期可以具體分為“小時”周期、“自然天”周期、“自然星期”周期或無周期等。在某些特定場景下,還可以包括“工作日”周期(即星期一到星期五期間的負載為一種變化規(guī)律,而星期六、星期日的負載為另一種變化規(guī)律)、“自然月”周期和“自然年”周期。
2.所述虛擬機的負載模式表示虛擬機在運行周期的各時間段內(nèi)的負載的變化規(guī)律,所述時間段為所述運行周期的時間分片,優(yōu)選地,可以講運行周期等分為多個時間分片作為所述時間段。示例性的,當運行周期為自然天時,可以以小時為時間段,在所述各時間段,本實施例定義六種負載模式:線性變化、快速震蕩、陡變、脈沖、平穩(wěn),以及隨機模式,本領(lǐng)域技術(shù)人員可根據(jù)實際需求設(shè)置其他類型的負載模式。本實施例可以通過分類算法,例如SVM(Support Vector Machine,支持向量機)算法或決策樹等算法,判定所述虛擬機在時間段內(nèi)負載的負載模式屬于哪一類型。
下面以SVM算法為例介紹所述負載模式確定過程:
首先,建立負載模式模型。監(jiān)控模塊101檢測到主機承載的虛擬機的各項性能指標,存儲在數(shù)據(jù)庫102中;對虛擬機在等于整數(shù)個所述時間段的時間間隔內(nèi)的負載進行采樣,以建立負載模式的各個類型的模 型。例如,以線性變化的變化模式且時間段等于一小時為例,本實施例采樣1000個一小時“線性變化”的負載記錄作為正面樣本,再隨機選擇2000個一小時“非線性變化”的負載記錄作為負面樣本,進一步把正面樣本和負面樣本輸入到采用SVM算法的訓練器里,以得到對應(yīng)于線性變化的負載模式的模型(或者稱之為分類器)。
然后,對所述時間段內(nèi)的負載進行采樣,并與各類型的模型進行比對,得到所述時間段內(nèi)的負載模式的類型的概率。例如,將采集到的一個未知的所述時間段內(nèi)的負載記錄分別輸入到線性變化和快速震蕩的變化模式對應(yīng)的模型中,通過比對或分類即可得到虛擬機的負載模式為線性和快速震蕩的概率。
最后,選取概率最大的類型作為該時間段內(nèi)的負載模式。
需要指出的是,本實施例可以無需對隨機的變化模式建立模型,可預先設(shè)定一分類門限,將得到的各個類型的變化模式的概率分別與該分類門限進行比較,例如設(shè)置分類門限為0.5,若所有類型的變化模式的概率均小于0.5,則標記該虛擬機的運行模式為隨機。
進一步地,本實施例可以結(jié)合所述虛擬機的運行周期,得到虛擬機在所有周期內(nèi)的該時間段內(nèi)的負載模式,即選取數(shù)量最多的類型作為所述時間段內(nèi)的負載的變化模式。首先,預先對所述虛擬機在等于整數(shù)個時間段的時間間隔內(nèi)的負載進行采樣,以運用上述方法建立所述負載模式的各個類型的模型,例如,虛擬機的運行周期為自然天,需要判斷其在“上午9點到10點”這一時間段內(nèi)負載模式,則采樣該虛擬機以往30天的所有“上午9點到10點”這一時間段內(nèi)的負載記錄,然后對30天中“上午9點到10點”這一時間段內(nèi)的負載進行采樣,并運用上述方法判定近30天中的所述時間段內(nèi)的負載模式,最后選取數(shù)量最多的類型作為所述時間段內(nèi)的負載模式,例如,若得到15個線性變化的負載模式、9個陡變的負載模式、6個隨機的負載模式,最終得到該虛擬機在“上午9點到10點”的負載模式為線性變化。
3.性能統(tǒng)計參數(shù):本發(fā)明實施例的性能指標可以是現(xiàn)有監(jiān)控系統(tǒng)中的常用指標,包含負載、CPU占用率、內(nèi)存占用率、磁盤占用率、磁盤 IO、網(wǎng)絡(luò)吞吐量等中的任意一個或多個,性能統(tǒng)計參數(shù)可以是針對上述性能指標的上限值、下限值、均值、突發(fā)值或概率分布等等中的至少一個。此外,不同的負載模式所對應(yīng)的性能統(tǒng)計參數(shù)也可以是不同的,例如當負載模式為快速震蕩時,性能統(tǒng)計參數(shù)中的上限值可以采用時間段內(nèi)的所有采樣值的均值加2倍方差的和值。
由于虛擬機的行為模式具有周期性,并且負載以不同的“時間段”進行記錄,那么各項性能指標的統(tǒng)計也是以所述不同的“時間段”內(nèi)的數(shù)據(jù)進行統(tǒng)計。具體來說,針對“自然天”為運行周期的虛擬機以1小時為時間段進行負載模式的判斷和性能統(tǒng)計參數(shù),可得到24組(對應(yīng)1天的24小時)負載模式以及性能統(tǒng)計參數(shù)。
風險評估模塊104為云管理平臺1的核心模塊,用于計算主機在承載所述各虛擬機的行為模式時的第一風險評估值,以及主機在當前時刻的第二風險評估值,根據(jù)第一風險評估值和第二風險評估值計算所述主機的風險加權(quán)值,從而預估主機未來承載虛擬機的行為模式的風險大小。
其中,所述第一風險評估值表示主機上承載的所有虛擬機在時間段內(nèi)的負載之和與主機的最大負載之比。計算得到所述第一風險評估值的主要原則是根據(jù)虛擬機的在當前時刻之前的行為模式的統(tǒng)計值計算所有承載虛擬機資源需求超出主機可提供資源的概率,并量化為虛擬機的行為模式的風險評估值。例如,以虛擬機的CPU占用率為性能統(tǒng)計參數(shù),虛擬機的CPU占用率的概率分布可表示為0~100%的概率分布曲線,針對主機承載的所有虛擬機的歷史CPU占用率計算聯(lián)合概率,得到主機的CPU占用率的概率分布模型,進而量化得到第一風險評估值,CPU占用率為較高數(shù)值(例如,>80%)的概率越高,則第一風險評估值越高;反之,則越低。
需要說明的是,針對不同的負載模式以及不同的性能統(tǒng)計參數(shù),可以采用不同的計算方式來計算第一風險評估值。更具體的,本發(fā)明實施例以下述場景為例進行第一風險評估值的計算過程說明:當前主機承載兩個虛擬機分別為虛擬機A和虛擬機B,主機CPU規(guī)格為2vCPU,虛 擬機A和B規(guī)格分別為1vCPU,虛擬機的性能統(tǒng)計參數(shù)為CPU占用率,通過行為模式分析得到兩個虛擬機的運行周期為自然天,預設(shè)時間段為一小時,即一個運行周期存在24個時間段。若當前時刻為9點,針對兩個虛擬機的歷史性能指標記錄進行行為模式分析得到的當前時間段(9點~10點)的負載模式均為快速震蕩,選擇“概率分布”作為虛擬機的“性能統(tǒng)計參數(shù)”。所述概率分別以離散概率分布為例進行表示,具體可以量化為2個概率區(qū)間,即CPU占用率0%~60%、60%~100%,用每個區(qū)間的平均值表示該區(qū)間的所有采樣點的值,即為30%,80%。若虛擬機A在這兩個區(qū)間的概率分布為(0.8,0.2),則其CPU占用值分別為0.3(30%*1),0.8(80%*1)個vCPU;若虛擬機B在這兩個區(qū)間的概率分布為(0.6,0.4),CPU占用值也為0.3,0.8個vCPU。利用聯(lián)合概率計算得到四個概率區(qū)間,概率分布值分別為0.48(0.8*0.6),0.12(0.2*0.6),0.32(0.8*0.4),0.08(0.2*0.4),其對應(yīng)CPU占用值為(0.6,1.1,1.1,1.6)個vCPU,該主機的CPU利用率為(30%(0.6/2),55%,55%,80%)。量化為與虛擬機量化區(qū)間(0%~60%,60%~100%)對應(yīng)的兩個區(qū)間,其概率分布分別為(0.92(0.48+0.12+0.32)),0.08),即該主機在當前時刻的CPU利用率的估計值92%的概率在0%~60%,8%的概率在60%~100%之間(表示該主機在9點~10點的時間段內(nèi),CPU占用率為0%~60%的概率為92%,60%~100%為8%),則該主機的風險評估值是較低的。在實際應(yīng)用中,建議使用連續(xù)概率分布,或增多離散概率分布的概率區(qū)間數(shù)量,可增加估計的準確度。本領(lǐng)域技術(shù)人員可以理解的是,可以采用其他的性能統(tǒng)計參數(shù)以計算方法來計算得到第一風險評估值,只要可以使得該第一風險評估值可以用來表征主機在某時間段承載其上的虛擬機行為模式時的風險既可,本發(fā)明實施例對此并不進行限定。
主機在當前時刻的第二風險評估值表示主機的當前時刻的負載風險的量化。,具體量化方式本實施例不予限定,示例性的,可以采用不均勻區(qū)間量化:例如,主機的負載的性能指標參數(shù)為CPU占用率,CPU占用率為0~40%之間,可量化第二風險評估值為0;CPU占用率為 40%~60%之間,可量化第二風險評估值為0~0.25;CPU占用率為60%~80%之間,可量化第二風險評估值為0.25~0.6;CPU占用率為80~100%之間,可量化第二風險評估值為0.6~1,可見CPU占用率越高則第二風險評估值越接近1,反之,則越低。當然,主機的負載可表現(xiàn)為任意性能指標,包含但不限于CPU占用率、內(nèi)存占用率、磁盤占用率、磁盤IO、網(wǎng)絡(luò)吞吐量。
本發(fā)明實施例以第一風險評估值與第二風險評估值的加權(quán)和作為主機的風險加權(quán)值,可采用關(guān)系式:
Rh=wl·Rl+wb·Rb
其中,所述Rh表示所述風險加權(quán)值,所述Rl表示所述第二風險評估值,所述Rb表示所述第一風險評估值,所述wl和wb表示加權(quán)因子且兩者的取值范圍為0~1、之和為1。加權(quán)因子可以由用戶根據(jù)需求進行自主配置。示例性的,若該數(shù)據(jù)中心虛擬機的數(shù)量和行為模式相對穩(wěn)定時,則wb值可相對較大;反之,若虛擬機數(shù)量波動較大,行為模式變化劇烈,則wb值應(yīng)相對較小。一般建議wb不大于0.5。默認設(shè)置,wb為0.4,wl為0.6。所述Rh、所述Rl和所述Rb的取值范圍為0~1。
風險評估模塊104計算得到主機的風險加權(quán)值后,資源調(diào)度決策模塊105確定該風險加權(quán)值是否大于預設(shè)閾值,當風險加權(quán)值大于預設(shè)閾值時,進行主機上的虛擬機遷移流程。需要說明的是,本發(fā)明實施例提供兩種方式判斷是否需要進行虛擬機遷移:方式一,依據(jù)單個主機的風險加權(quán)值進行判斷;方式二,依據(jù)遷移域內(nèi)所有主機的風險加權(quán)值進行判斷。具體的方式一針對單個主機負載失衡,方式二針對遷移域整體失衡。在方式二中,依據(jù)類似的計算方法,獲得遷移域內(nèi)所有主機的風險加權(quán)值,進一步的,根據(jù)遷移域內(nèi)所有主機的風險評估值可計算得到風險均衡度。風險均衡度表示為遷移域內(nèi)所有主機風險加權(quán)值的離散度和偏移度。本實施例提供一種簡單而有效的計算方法:風險均衡度等于遷移域內(nèi)所有主機風險加權(quán)值的標準差除以均值。在得到風險均衡度后,可通過預設(shè)閾值判斷是否進行資源調(diào)度。當風險均衡度大于預設(shè)閾值則需要進行資源調(diào)度;反之,則不需要進行資源調(diào)度。
在確定需要進行資源調(diào)度時,資源調(diào)度決策模塊105基于風險均衡的資源調(diào)度原則進行虛擬機遷移,即以風險均衡度和主機風險加權(quán)值為依據(jù),以最少的遷移次數(shù)、最短的遷移時間為約束條件,通過虛擬機在線遷移,使得在該遷移域內(nèi)風險均衡度最優(yōu)。資源調(diào)度決策模塊105可以基于當前時刻遷移域內(nèi)風險均衡度最優(yōu)或未來一定時間長度內(nèi)遷移域內(nèi)風險均衡度最優(yōu)兩種方式來進行虛擬機遷移,其中,前者為后者的一個特例。需要說明的是,具體的資源調(diào)度決策可以采用窮舉法,線性規(guī)劃等最優(yōu)化算法,本發(fā)明對此并不進行限定。示例性的,本發(fā)明實施例可以在風險加權(quán)值最大額主機上選擇待遷移的VM,選擇使遷移域全局風險均衡度最優(yōu)的主機作為目的主機,遷移域全局風險均衡度的計算如下:首先分別計算虛擬機遷移到目的主機后若干個時間間隔(可以為運行周期的若干個時間分片)的風險均衡度,然后對所有風險均衡度做加權(quán)求和即可得到全局的風險均衡度。權(quán)值為對自定義的各個時間分片的加權(quán)系數(shù),原則上為越接近當前時刻的時間分片的權(quán)值越大,所有權(quán)值和為1。
基于上述系統(tǒng)結(jié)構(gòu)示意圖1,如圖2所示,為本發(fā)明實施例提供的一種云計算系統(tǒng)中資源調(diào)度的方法流程示意圖,所述方法包括:
步驟201:監(jiān)控主機上承載的各虛擬機的性能指標,所述性能指標包括當前時刻的性能指標以及歷史性能指標;
具體的,監(jiān)控模塊101監(jiān)控遷移域內(nèi)所有主機上承載的虛擬機的性能指標,并記錄在數(shù)據(jù)庫102中。
步驟202:根據(jù)所述主機承載的所述各虛擬機的所述歷史性能指標,確定所述各虛擬機的行為模式;
所述行為模式包括虛擬機的運行周期、負載模式以及性能統(tǒng)計參數(shù)。
具體的,行為模式分析模塊103從數(shù)據(jù)庫102中讀取并分析歷史性能指標的記錄,確定各虛擬機的運行周期、運行周期中各時間段的負載模式以及該時間段對應(yīng)的性能統(tǒng)計參數(shù)。不同的負載模塊可以對應(yīng)不同 的性能統(tǒng)計參數(shù)。
行為模式分析模塊103確定所述虛擬機的運行周期;將所述虛擬機的運行周期劃分為多個時間段,根據(jù)所述多個時間段內(nèi)所述虛擬機的負載變化情況,分別確定所述虛擬機在所述多個時間段內(nèi)的負載模式;根據(jù)所述歷史性能指標確定所述運行周期內(nèi)的多個時間段的性能統(tǒng)計參數(shù)。
具體的行為模式的確定方法可以參考前述實施例中的描述,本發(fā)明實施例在此不再贅述。
步驟203:計算所述主機在承載所述各虛擬機的行為模式時的第一風險評估值;
風險評估模塊104確定待評估的時間段,根據(jù)所述行為模式分析模塊確定的主機承載的各虛擬機的運行周期中該時間段的負載模式以及該時間段對應(yīng)的性能統(tǒng)計參數(shù),計算得到所述待評估的時間段的第一風險評估值。需要說的是,本發(fā)明實施例對具體的計算方法在前述實施例中已說明,在此不再贅述。
步驟204:根據(jù)所述主機承載的所述各虛擬機的所述當前時刻的性能指標,計算所述主機在當前時刻的第二風險評估值;
步驟205:根據(jù)所述第一風險評估值和所述第二風險評估值,計算所述主機的風險加權(quán)值;
使用下述關(guān)系式計算所述風險加權(quán)值:
Rh=wl·Rl+wb·Rb
其中,所述Rh表示所述風險加權(quán)值,所述Rl表示所述第二風險評估值,所述Rb表示所述第一風險評估值,所述wl和wb表示加權(quán)因子且兩者的取值范圍為0~1、之和為1。
步驟206:根據(jù)計算得到的所述主機的風險加權(quán)值,確定虛擬機遷移策略。
本發(fā)明實施例針對單個主機的風險進行虛擬機遷移,更進一步的,本發(fā)明實施例還可以針對一個遷移域設(shè)定資源調(diào)度策略,即,當一個遷移域內(nèi)的若干主機的風險均衡度過大時,進行虛擬機遷移。
進一步的,所述云計算系統(tǒng)包括至少一個遷移域,所述遷移域中包括至少兩個主機,
所述根據(jù)計算得到的所述主機的風險加權(quán)值,確定虛擬機遷移策略包括:
根據(jù)所述遷移域中的所述至少兩個主機的風險加權(quán)值,計算所述遷移域的風險均衡度;
當所述風險均衡度大于預設(shè)閾值時,從風險加權(quán)值最大的主機上選擇虛擬機遷移到所述遷移域的其他主機上。
如圖3所示,為本發(fā)明實施例提供的另一種云計算系統(tǒng)中資源調(diào)度的方法流程示意圖,所述云計算系統(tǒng)包括至少一個遷移域,所述遷移域中包括至少兩個主機,所述方法包括:
步驟301:監(jiān)控所述主機上承載的各虛擬機的性能指標,所述性能指標包括當前時刻的性能指標以及歷史性能指標;
步驟302:根據(jù)所述主機承載的所述各虛擬機的所述歷史性能指標,確定所述各虛擬機的行為模式;
步驟303:計算所述主機在承載所述各虛擬機的行為模式時的第一風險評估值;
步驟304:根據(jù)所述主機承載的所述各虛擬機的所述當前時刻的性能指標,計算所述主機在當前時刻的第二風險評估值;
步驟305:根據(jù)所述第一風險評估值和所述第二風險評估值,計算所述主機的風險加權(quán)值;
步驟306:根據(jù)所述遷移域中的所述至少兩個主機的風險加權(quán)值,計算所述遷移域的風險均衡度;
步驟307:當所述風險均衡度大于預設(shè)閾值時,從風險加權(quán)值最大的主機上選擇虛擬機遷移到所述遷移域的其他主機上。
如圖4所示,為本發(fā)明實施例提供的一種云計算系統(tǒng)中資源調(diào)度的裝置結(jié)構(gòu)示意圖,所述裝置包括:
監(jiān)控模塊101,用于監(jiān)控主機上承載的各虛擬機的性能指標,所述性能指標包括當前時刻的性能指標以及歷史性能指標;
行為模式分析模塊103,用于根據(jù)所述主機承載的所述各虛擬機的所述歷史性能指標,確定所述各虛擬機的行為模式;
風險評估模塊104,用于計算所述主機在承載所述各虛擬機的行為模式時的第一風險評估值,根據(jù)所述主機承載的所述各虛擬機的所述當前時刻的性能指標,計算所述主機在當前時刻的第二風險評估值,根據(jù)所述第一風險評估值和所述第二風險評估值,計算所述主機的風險加權(quán)值
資源調(diào)度決策模塊105,用于根據(jù)所述風險評估模塊104計算得到的所述主機的風險加權(quán)值,確定虛擬機遷移策略。
所述云計算系統(tǒng)包括至少一個遷移域,所述遷移域中包括至少兩個主機,
所述資源調(diào)度決策模塊105,具體用于根據(jù)所述遷移域中的所述至少兩個主機的風險加權(quán)值,計算所述遷移域的風險均衡度,當所述風險均衡度大于預設(shè)閾值時,從風險加權(quán)值最大的主機上選擇虛擬機遷移到所述遷移域的其他主機上。
所述行為模式包括虛擬機的運行周期、負載模式以及性能統(tǒng)計參數(shù)。
所述行為模式分析模塊103,具體用于確定所述虛擬機的運行周期,將所述虛擬機的運行周期劃分為多個時間段,根據(jù)所述多個時間段內(nèi)所述虛擬機的負載變化情況,分別確定所述虛擬機在所述多個時間段內(nèi)的負載模式,根據(jù)所述歷史性能指標確定所述運行周期內(nèi)的多個時間段的性能統(tǒng)計參數(shù)。
風險評估模塊104,具體用于根據(jù)所述多個時間段中至少一個時間段的性能統(tǒng)計參數(shù),以及所述至少一個時間段對應(yīng)的負載模式,計算所述第一風險評估值。
所述風險評估模塊104,具體用于使用下述關(guān)系式計算所述風險加權(quán)值:
Rh=wl·Rl+wb·Rb
其中,所述Rh表示所述風險加權(quán)值,所述Rl表示所述第二風險評估 值,所述Rb表示所述第一風險評估值,所述wl和wb表示加權(quán)因子且兩者的取值范圍為0~1、之和為1。
本發(fā)明實施例還提供了另一種云計算系統(tǒng)中資源調(diào)度的裝置,所述云計算系統(tǒng)包括至少一個遷移域,所述遷移域中包括至少兩個主機,所述裝置包括:
監(jiān)控模塊101,用于監(jiān)控所述主機上承載的各虛擬機的性能指標,所述性能指標包括當前時刻的性能指標以及歷史性能指標;
行為模式分析模塊103,用于根據(jù)所述主機承載的所述各虛擬機的所述歷史性能指標,確定所述各虛擬機的行為模式;
風險評估模塊104,用于計算所述主機在承載所述各虛擬機的行為模式時的第一風險評估值,根據(jù)所述主機承載的所述各虛擬機的所述當前時刻的性能指標,計算所述主機在當前時刻的第二風險評估值,根據(jù)所述第一風險評估值和所述第二風險評估值,計算所述主機的風險加權(quán)值;
資源調(diào)度決策模塊105,用于根據(jù)所述遷移域中的所述至少兩個主機的風險加權(quán)值,計算所述遷移域的風險均衡度,當所述風險均衡度大于預設(shè)閾值時,從風險加權(quán)值最大的主機上選擇虛擬機遷移到所述遷移域的其他主機上。
本發(fā)明實施例提供的云計算系統(tǒng)中的資源調(diào)度的方法和裝置,基于對虛擬機的各項性能指標值的統(tǒng)計分析,確定虛擬機的行為模式,進而確定承載所述虛擬機的風險加權(quán)值,基于計算得到的所述風險加權(quán)值遷移所述主機上的虛擬機,避免了主機上承載的虛擬機的QoS下降的問題,同時由于遷移決策過程基于主機當前時刻的第二風險評估值,以及主機承載的虛擬機的行為模式的第一風險評估值,即遷移過程的依據(jù)既包括當前時刻的風險,同時也包括了代表未來時段的主機承載該時段虛擬機行為模式時的第一風險評估值,從而避免主機上的虛擬機在未來時刻進行反復遷移。
進一步地,如圖5所示,本發(fā)明實施例提供了一種終端的硬件構(gòu)成示意圖。可包括至少一個處理器(例如CPU),至少一個網(wǎng)絡(luò)接口或者 其他通信接口,存儲器,和至少一個通信總線,用于實現(xiàn)這些裝置之間的連接通信。處理器用于執(zhí)行存儲器中存儲的可執(zhí)行模塊,例如計算機程序。存儲器可能包含高速隨機存取存儲器(RAM:Random Access Memory),也可能還包括非不穩(wěn)定的存儲器(non-volatile memory),例如至少一個磁盤存儲器。通過至少一個網(wǎng)絡(luò)接口(可以是有線或者無線)實現(xiàn)該系統(tǒng)網(wǎng)關(guān)與至少一個其他網(wǎng)元之間的通信連接,可以使用互聯(lián)網(wǎng),廣域網(wǎng),本地網(wǎng),城域網(wǎng)等。
在一些實施方式中,存儲器中存儲了程序指令,程序指令可以被處理器執(zhí)行,其中,程序指令可包括本發(fā)明上述實施例中指出的各個單元,各單元具體的實現(xiàn)方式可參見本發(fā)明上述實施例中的相應(yīng)內(nèi)容,這里不再贅述。
通過以上的實施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到上述實施例方法中的全部或部分步驟可借助軟件加必需的通用硬件平臺的方式來實現(xiàn)?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,資源管理服務(wù)器,或者諸如媒體網(wǎng)關(guān)等網(wǎng)絡(luò)通信設(shè)備,等等)執(zhí)行本發(fā)明各個實施例或者實施例的某些部分所述的方法。
需要說明的是,本說明書中的各個實施例均采用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于設(shè)備及系統(tǒng)實施例而言,由于其基本相似于方法實施例,所以描述得比較簡單,相關(guān)之處參見方法實施例的部分說明即可。以上所描述的設(shè)備及系統(tǒng)實施例僅僅是示意性的,其中作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實施。
以上所述僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進等,均包含在本發(fā)明的保護范圍內(nèi)。