本發(fā)明涉及的是一種云計(jì)算領(lǐng)域的技術(shù),具體是一種云環(huán)境下的虛擬機(jī)調(diào)度方法。
背景技術(shù):
現(xiàn)在的計(jì)算機(jī)技術(shù)迅猛發(fā)展、企業(yè)業(yè)務(wù)發(fā)展不斷擴(kuò)大,購(gòu)買的服務(wù)器數(shù)目也日益龐大。但是大部分時(shí)間機(jī)器利用效率不高給企業(yè)帶來(lái)了龐大的支出。也有一部分中小企業(yè)經(jīng)濟(jì)實(shí)力有限,無(wú)法購(gòu)買昂貴的高性能服務(wù)器僅僅為處理高峰期時(shí)的業(yè)務(wù)。在這種情況下出現(xiàn)了分布式計(jì)算,能有效的將閑置計(jì)算能力收集起來(lái),降低了企業(yè)的成本。此時(shí),一種基于業(yè)驅(qū)動(dòng)的新型計(jì)算模式應(yīng)運(yùn)而生,云計(jì)算。隨著云計(jì)算的發(fā)展趨勢(shì)迅猛增長(zhǎng),云平臺(tái)下基礎(chǔ)設(shè)施的規(guī)模也日益變大。如何按需分配資源和資源調(diào)度來(lái)支持?jǐn)?shù)據(jù)中心的資源共享成為一個(gè)難題,虛擬化技術(shù)應(yīng)運(yùn)而生。但是由于系統(tǒng)內(nèi)在的動(dòng)態(tài)性和系統(tǒng)管理的復(fù)雜性,有效的管理云計(jì)算集群中虛擬機(jī)資源對(duì)運(yùn)維人員來(lái)說(shuō)是一個(gè)很大的挑戰(zhàn)。
現(xiàn)階段,云環(huán)境下的虛擬機(jī)調(diào)度方法主要有靜態(tài)放置和動(dòng)態(tài)遷移兩類,前者主要是將虛擬機(jī)調(diào)度抽象為裝箱問(wèn)題(BPP,Bin Packing Problem),即將虛擬機(jī)看做不同尺寸的貨物,物理機(jī)看做同等容量的箱子,合理的放置貨物,使得占用的箱子更少,也就是占用的物理機(jī)最少,就可以減少能耗。后者主要是當(dāng)物理機(jī)產(chǎn)生異常或者計(jì)算資源變動(dòng)的情況下,在不中斷應(yīng)用的情況下,將虛擬機(jī)遷移到不同的物理機(jī)中,在虛擬機(jī)調(diào)度上則是可以實(shí)時(shí)監(jiān)測(cè)物理機(jī)的計(jì)算資源和負(fù)載狀態(tài),當(dāng)物理機(jī)過(guò)載的時(shí)候,把虛擬機(jī)遷移到相對(duì)空閑的物理機(jī)上,達(dá)到負(fù)載均衡的目的。
在當(dāng)前云應(yīng)用的需求下,虛擬機(jī)性能特別是網(wǎng)絡(luò)性能,是用戶評(píng)價(jià)云平臺(tái)的重要指標(biāo),上述兩種方式雖然從不同需求出發(fā)調(diào)度虛擬機(jī),沒(méi)有考慮到虛擬機(jī)調(diào)度對(duì)網(wǎng)絡(luò)性能的影響,并且都不是以性能優(yōu)先的調(diào)度方法。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明針對(duì)現(xiàn)有技術(shù)存在的上述不足,提出了一種云環(huán)境下的虛擬機(jī)調(diào)度方法,能夠提高流量分布均衡,同時(shí)在動(dòng)態(tài)遷移過(guò)程中選擇最優(yōu)的遷移方式以減少遷移對(duì)網(wǎng)絡(luò)總流量的影響。
本發(fā)明是通過(guò)以下技術(shù)方案實(shí)現(xiàn)的,
本發(fā)明包括以下步驟:
S1,虛擬機(jī)放置:在用戶新建虛擬機(jī)后查詢?cè)撚脩鬒D下的虛擬機(jī)uuid列表,若該用戶為第一次創(chuàng)建虛擬機(jī)則根據(jù)已放置過(guò)虛擬機(jī)的物理機(jī)資源評(píng)分,在匹配后將新建虛擬機(jī)放入評(píng)分較高的物理機(jī)中;若該用戶非第一次創(chuàng)建虛擬機(jī)則根據(jù)新建虛擬機(jī)的需求匹配該用戶ID下放置了這些uuid虛擬機(jī)的物理機(jī)并將新建虛擬機(jī)放入其中評(píng)分較高的物理機(jī),若無(wú)法匹配則啟用新的物理機(jī),并將該用戶ID下的虛擬機(jī)全部遷移至新物理機(jī)中;
S2,虛擬機(jī)遷移:枚舉用戶數(shù)小于2的物理機(jī),生成該物理機(jī)所放置虛擬機(jī)的參數(shù)列表,并根據(jù)虛擬機(jī)所需系統(tǒng)架構(gòu)分類獲得子列表;在子列表中,依次查詢相互流量獲得相互流量排行,根據(jù)相互流量排行排列得到虛擬機(jī)和物理機(jī)遷移矩陣;根據(jù)該遷移矩陣和未放置新建虛擬機(jī)時(shí)的虛擬機(jī)和物理機(jī)遷移矩陣,得到遷移策略,根據(jù)該遷移策略完成虛擬機(jī)遷移。
所述的匹配是指根據(jù)虛擬機(jī)系統(tǒng)所屬架構(gòu)、心跳機(jī)制、所需內(nèi)存大小和硬盤大小選擇滿足上述要求的物理機(jī)。
所述的心跳機(jī)制是指物理機(jī)與虛擬機(jī)的調(diào)度服務(wù)心跳是否響應(yīng)。
技術(shù)效果
與現(xiàn)有技術(shù)相比,本發(fā)明在云環(huán)境下的虛擬機(jī)調(diào)度,將滿足性能要求的虛擬機(jī)預(yù)先放置在同一物理機(jī)中,再通過(guò)遷移將相互流量大的虛擬機(jī)流量轉(zhuǎn)化為物理機(jī)內(nèi)部流量,大幅度減少交換設(shè)備的網(wǎng)絡(luò)占用,大大提高了用戶使用云平臺(tái)的流暢度。
具體實(shí)施方式
下面對(duì)本發(fā)明的實(shí)施例作詳細(xì)說(shuō)明,本實(shí)施例在以本發(fā)明技術(shù)方案為前提下進(jìn)行實(shí)施,給出了詳細(xì)的實(shí)施方式和具體的操作過(guò)程,但本發(fā)明的保護(hù)范圍不限于下述的實(shí)施例。
實(shí)施例1
本實(shí)施例包括以下步驟:
S1,虛擬機(jī)放置:在用戶新建虛擬機(jī)后查詢?cè)撚脩鬒D下的虛擬機(jī)uuid列表,若該用戶為第一次創(chuàng)建虛擬機(jī)則根據(jù)已放置過(guò)虛擬機(jī)的物理機(jī)資源評(píng)分,在匹配后將新建虛擬機(jī)放入評(píng)分較高的物理機(jī)中;若該用戶非第一次創(chuàng)建虛擬機(jī)則根據(jù)新建虛擬機(jī)的需求匹配該用戶ID下放置了這些uuid虛擬機(jī)的物理機(jī)并將新建虛擬機(jī)放入其中評(píng)分較高的物理機(jī),若無(wú)法匹配則啟用新的物理機(jī),并將該用戶ID下的虛擬機(jī)全部遷移至新物理機(jī)中;
S2,虛擬機(jī)遷移:枚舉用戶數(shù)小于2的物理機(jī),生成該物理機(jī)所放置虛擬機(jī)的參數(shù)列表,并根據(jù)虛擬機(jī)所需系統(tǒng)架構(gòu)分類獲得子列表;在子列表中,依次查詢相互流量獲得相互流量排行,根據(jù)相互流量排行排列得到虛擬機(jī)和物理機(jī)遷移矩陣;根據(jù)該遷移矩陣和未放置新建虛擬機(jī)時(shí)的虛擬機(jī)和物理機(jī)遷移矩陣,得到遷移策略,根據(jù)該遷移策略完成虛擬機(jī)遷移。
所述的匹配是指根據(jù)虛擬機(jī)系統(tǒng)所屬架構(gòu)、心跳機(jī)制、所需內(nèi)存大小和硬盤大小選擇滿足上述要求的物理機(jī)。
所述的匹配包括以下步驟:
S11,判斷新建虛擬機(jī)與物理機(jī)的調(diào)度服務(wù)心跳,若無(wú)響應(yīng)則排除該物理機(jī),否則保留該物理機(jī);
S12,將S11中保留的物理機(jī)與新建虛擬機(jī)進(jìn)行虛擬機(jī)內(nèi)存需求匹配,若物理機(jī)可調(diào)用內(nèi)存低于新建虛擬機(jī)需求的內(nèi)存,則排除該物理機(jī),否則保留該物理機(jī);
S13,將S12中保留的物理機(jī)與新建虛擬機(jī)進(jìn)行虛擬機(jī)硬盤需求匹配,若物理機(jī)可存儲(chǔ)硬盤容量低于新建虛擬機(jī)需求的硬盤容量,則排除該物理機(jī),否則保留該物理機(jī);
S14,將S13中保留的物理機(jī)與新建虛擬機(jī)進(jìn)行虛擬機(jī)系統(tǒng)架構(gòu)需求匹配,若物理機(jī)系統(tǒng)架構(gòu)與虛擬機(jī)系統(tǒng)架構(gòu)相同,則匹配該物理機(jī),否則排除該物理機(jī)。
所述啟用的新物理機(jī)與該用戶已放置虛擬機(jī)的物理機(jī)處于同一交換機(jī)下。