對(duì)虛擬機(jī)進(jìn)行管理的方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供一種對(duì)虛擬機(jī)進(jìn)行管理的方法及系統(tǒng)。所述方法包括:由云服務(wù)器基于獲取的部署指令,利用預(yù)設(shè)的各應(yīng)用的描述信息,將相應(yīng)的應(yīng)用及用于獲取相應(yīng)應(yīng)用的運(yùn)行信息的第一獲取模塊部署到至少一個(gè)虛擬機(jī)上;所述云服務(wù)器獲取在每一個(gè)所述虛擬機(jī)上運(yùn)行的所述應(yīng)用的運(yùn)行信息;所述云服務(wù)器對(duì)獲取的每一個(gè)所述運(yùn)行信息進(jìn)行分析,并基于分析結(jié)果對(duì)運(yùn)行相應(yīng)的應(yīng)用的虛擬機(jī)進(jìn)行策略控制。通過本發(fā)明提供的方法和系統(tǒng)可以解決現(xiàn)有的云服務(wù)器無法對(duì)虛擬機(jī)進(jìn)行管理的問題;同時(shí),能夠?qū)崟r(shí)對(duì)各虛擬機(jī)進(jìn)行策略控制,以便虛擬機(jī)改變應(yīng)用的運(yùn)行情況或運(yùn)行環(huán)境。
【專利說明】對(duì)虛擬機(jī)進(jìn)行管理的方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及云計(jì)算技術(shù),特別是涉及一種對(duì)虛擬機(jī)進(jìn)行管理的方法及系統(tǒng)。
【背景技術(shù)】
[0002]虛擬機(jī)是指通過軟件模擬的具有完整硬件系統(tǒng)功能的、運(yùn)行在一個(gè)完全隔離環(huán)境中的完整計(jì)算機(jī)系統(tǒng)。目前,虛擬機(jī)廣泛支持的操作系統(tǒng)包括:Red Hat EnterpriseLinux>ffindows Server2003/2008>0penSolaris>openSUSE Linux 和 Ubuntu Linux 等。倉(cāng)泛夠運(yùn)行在虛擬機(jī)上的軟件包括:Apache、MySQL> Hadoop> Condor> Open MP1、WebSphere 和Oracle的WebLogic等。鑒于如此多的應(yīng)用均可在虛擬機(jī)上運(yùn)行,同時(shí)一個(gè)物理的計(jì)算機(jī)設(shè)備能夠運(yùn)行多個(gè)虛擬機(jī),使得網(wǎng)絡(luò)應(yīng)用的開發(fā)者更傾向于在虛擬機(jī)上配置各種網(wǎng)絡(luò)應(yīng)用。
[0003]與此同時(shí),隨著云技術(shù)的發(fā)展,云服務(wù)器通過管理和調(diào)配物理的計(jì)算機(jī)設(shè)備中的應(yīng)用的運(yùn)行(如,使應(yīng)用的負(fù)載均衡、為應(yīng)用自動(dòng)擴(kuò)容等),能夠提高計(jì)算機(jī)設(shè)備的運(yùn)行效率,降低計(jì)算機(jī)設(shè)備的配置要求。然而,這些技術(shù)無法直接管理和調(diào)配在虛擬機(jī)上的應(yīng)用,主要是因?yàn)樘摂M機(jī)上所運(yùn)行的各種應(yīng)用由該虛擬機(jī)上的操作系統(tǒng)來負(fù)責(zé)管理和調(diào)配,遠(yuǎn)程的云服務(wù)器只能對(duì)虛擬機(jī)所在的物理計(jì)算機(jī)設(shè)備進(jìn)行管理和調(diào)配,或者通過物理計(jì)算機(jī)設(shè)備對(duì)虛擬機(jī)的運(yùn)行信息進(jìn)行粗略的管理和調(diào)配。
[0004]這樣的缺點(diǎn)在于,云服務(wù)器由于無法得到虛擬機(jī)中運(yùn)行的應(yīng)用的運(yùn)行信息,而不能基于虛擬機(jī)上運(yùn)行的應(yīng)用對(duì)虛擬機(jī)進(jìn)行策略控制。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例提供一種對(duì)虛擬機(jī)進(jìn)行管理的方法及系統(tǒng),以便基于虛擬機(jī)上運(yùn)行的應(yīng)用對(duì)運(yùn)行在一個(gè)或多個(gè)物理設(shè)備中的虛擬機(jī)進(jìn)行策略控制。
[0006]本發(fā)明實(shí)施例的第一方面提供一種對(duì)虛擬機(jī)進(jìn)行管理的方法,應(yīng)用于由云服務(wù)器及與所述云服務(wù)器通信連接的包含至少一個(gè)虛擬機(jī)的計(jì)算機(jī)設(shè)備所構(gòu)成的系統(tǒng)中,其至少包括:所述云服務(wù)器基于獲取的部署指令,利用預(yù)設(shè)的各應(yīng)用的描述信息,將相應(yīng)的應(yīng)用及用于獲取相應(yīng)應(yīng)用的運(yùn)行信息的第一獲取模塊部署到至少一個(gè)所述虛擬機(jī)上;所述云服務(wù)器獲取在每一個(gè)所述虛擬機(jī)上運(yùn)行的所述應(yīng)用的運(yùn)行信息;所述云服務(wù)器對(duì)獲取的每一個(gè)所述運(yùn)行信息進(jìn)行分析,并基于分析結(jié)果對(duì)運(yùn)行相應(yīng)應(yīng)用的虛擬機(jī)進(jìn)行策略控制。
[0007]優(yōu)選地,所述云服務(wù)器部署所述應(yīng)用和第一獲取模塊包括:所述云服務(wù)器基于預(yù)設(shè)的各應(yīng)用的描述信息,向至少一個(gè)所述虛擬機(jī)部署至少一個(gè)所述應(yīng)用及所述第一獲取模塊。
[0008]優(yōu)選地,所述云服務(wù)器獲取在每一個(gè)所述虛擬機(jī)上運(yùn)行的所述應(yīng)用的運(yùn)行信息包括:由所述虛擬機(jī)基于輪詢機(jī)制向每一個(gè)第一獲取模塊發(fā)出用于獲取應(yīng)用的運(yùn)行信息的指令,以便各第一獲取模塊獲取相應(yīng)應(yīng)用的運(yùn)行信息,再將獲取的所有運(yùn)行信息發(fā)送至所述云服務(wù)器。
[0009]優(yōu)選地,所述云服務(wù)器獲取在每一個(gè)所述虛擬機(jī)上運(yùn)行的所述應(yīng)用的運(yùn)行信息還包括:各所述第一獲取模塊在運(yùn)行之前向其所在的虛擬機(jī)進(jìn)行注冊(cè),以便所述虛擬機(jī)利用第一獲取模塊的注冊(cè)信息,輪詢已注冊(cè)的各第一獲取模塊,進(jìn)而取得相應(yīng)應(yīng)用的運(yùn)行信息。
[0010]優(yōu)選地,所述云服務(wù)器基于分析結(jié)果對(duì)運(yùn)行相應(yīng)應(yīng)用的虛擬機(jī)進(jìn)行策略控制包括:所述云服務(wù)器從獲取的多個(gè)運(yùn)行信息中識(shí)別來自不同虛擬機(jī)的同一應(yīng)用的運(yùn)行信息;以及所述云服務(wù)器分析來自多個(gè)虛擬機(jī)的同一應(yīng)用的所述運(yùn)行信息,并基于分析結(jié)果對(duì)至少一個(gè)虛擬機(jī)進(jìn)行策略控制。
[0011]優(yōu)選地,所述云服務(wù)器基于分析結(jié)果對(duì)運(yùn)行相應(yīng)應(yīng)用的虛擬機(jī)進(jìn)行策略控制包括:所述云服務(wù)器基于分析結(jié)果,向運(yùn)行相應(yīng)應(yīng)用的虛擬機(jī)發(fā)送用于改變所述應(yīng)用及相應(yīng)的第一獲取模塊運(yùn)行的指令。
[0012]優(yōu)選地,所述用于改變所述應(yīng)用及相應(yīng)的第一獲取模塊運(yùn)行的指令至少包括以下一種:啟動(dòng)指令、暫停指令和停止指令。
[0013]優(yōu)選地,所述云服務(wù)器基于分析結(jié)果對(duì)運(yùn)行相應(yīng)應(yīng)用的虛擬機(jī)進(jìn)行策略控制包括:所述云服務(wù)器基于分析結(jié)果,生成部署指令,以便通過重新執(zhí)行部署的步驟,向未運(yùn)行該應(yīng)用的虛擬機(jī)部署所述應(yīng)用及相應(yīng)的第一獲取模塊。
[0014]優(yōu)選地,所述方法還包括:所述虛擬機(jī)監(jiān)控所述第一獲取模塊獲取的運(yùn)行信息,并判斷所述運(yùn)行信息對(duì)應(yīng)的應(yīng)用是否臨近或超出預(yù)設(shè)的相應(yīng)應(yīng)用正常運(yùn)行的范圍,若臨近或超出預(yù)設(shè)的相應(yīng)應(yīng)用正常運(yùn)行的范圍,則將所述運(yùn)行信息提供給所述云服務(wù)器;若未臨近或超出預(yù)設(shè)的相應(yīng)應(yīng)用正常運(yùn)行的范圍,則繼續(xù)監(jiān)控。
[0015]本發(fā)明實(shí)施例的第二方面提供一種對(duì)虛擬機(jī)進(jìn)行管理的系統(tǒng),包括:云服務(wù)器及與所述云服務(wù)器通信連接的包含至少一個(gè)虛擬機(jī)的計(jì)算機(jī)設(shè)備;
[0016]所述云服務(wù)器中包括:部署模塊,用于基于獲取的部署指令,利用預(yù)設(shè)的各應(yīng)用的描述信息,將相應(yīng)的應(yīng)用及用于獲取相應(yīng)應(yīng)用的運(yùn)行信息的第一獲取模塊部署到至少一個(gè)所述虛擬機(jī)上;第二獲取模塊,用于獲取由所述部署模塊部署在每一個(gè)所述虛擬機(jī)上的所述應(yīng)用的運(yùn)行信息;策略控制模塊,用于對(duì)所述第二獲取模塊所獲取的每一個(gè)所述運(yùn)行信息進(jìn)行分析,并基于分析結(jié)果對(duì)運(yùn)行相應(yīng)應(yīng)用的虛擬機(jī)進(jìn)行策略控制。
[0017]優(yōu)選地,所述部署模塊進(jìn)一步用于基于預(yù)設(shè)的各應(yīng)用的描述信息,向至少一個(gè)所述虛擬機(jī)部署至少一個(gè)所述應(yīng)用及所述第一獲取模塊。
[0018]優(yōu)選地,所述策略控制模塊包括:識(shí)別子模塊,用于從所述第二獲取模塊獲取的多個(gè)運(yùn)行信息中識(shí)別來自不同虛擬機(jī)的同一應(yīng)用的運(yùn)行信息。
[0019]優(yōu)選地,所述策略控制模塊具體用于基于分析結(jié)果,向運(yùn)行相應(yīng)應(yīng)用的虛擬機(jī)發(fā)送用于改變所述應(yīng)用及相應(yīng)的第一獲取模塊運(yùn)行的指令。
[0020]優(yōu)選地,所述用于改變所述應(yīng)用及相應(yīng)的第一獲取模塊運(yùn)行的指令至少包括以下一種:啟動(dòng)指令、暫停指令和停止指令。
[0021]優(yōu)選地,所述策略控制模塊具體用于基于分析結(jié)果,向所述部署模塊發(fā)出所述部署指令,以便所述部署模塊基于所述部署指令在未運(yùn)行相應(yīng)應(yīng)用的虛擬機(jī)上部署所述應(yīng)用及相應(yīng)的第一獲取模塊。
[0022]根據(jù)本發(fā)明實(shí)施例提供的對(duì)虛擬機(jī)進(jìn)行管理的方法及系統(tǒng),所述云服務(wù)器通過部署在虛擬機(jī)上的第一獲取模塊獲取在虛擬機(jī)中運(yùn)行的各應(yīng)用的運(yùn)行信息,并通過對(duì)所述運(yùn)行信息的分析對(duì)運(yùn)行相應(yīng)應(yīng)用的虛擬機(jī)進(jìn)行策略控制,如此,能夠解決現(xiàn)有的云服務(wù)器無法基于虛擬機(jī)上運(yùn)行的應(yīng)用對(duì)虛擬機(jī)進(jìn)行管理的問題;同時(shí),能夠?qū)崟r(shí)對(duì)各虛擬機(jī)進(jìn)行策略控制,以便虛擬機(jī)改變應(yīng)用的運(yùn)行情況或運(yùn)行環(huán)境。
【專利附圖】
【附圖說明】
[0023]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例。
[0024]圖1為本發(fā)明實(shí)施例提供的一種對(duì)虛擬機(jī)進(jìn)行管理的方法的流程圖。
[0025]圖2為本發(fā)明實(shí)施例提供的一種對(duì)虛擬機(jī)進(jìn)行管理的方法中的一種優(yōu)選方案的流程圖。
[0026]圖3為本發(fā)明實(shí)施例提供的一種對(duì)虛擬機(jī)進(jìn)行管理的系統(tǒng)的架構(gòu)圖。
[0027]圖4為本發(fā)明實(shí)施例提供的一種對(duì)虛擬機(jī)進(jìn)行管理的系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0028]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。
[0029]實(shí)施例一
[0030]如圖1所示,本發(fā)明實(shí)施例提供一種對(duì)虛擬機(jī)進(jìn)行管理的方法。其中,所述管理方法應(yīng)用于由云服務(wù)器以及與所述云服務(wù)器通信連接的包含至少一個(gè)虛擬機(jī)的計(jì)算機(jī)設(shè)備所構(gòu)成的系統(tǒng)。其中,所述虛擬機(jī)可利用通信協(xié)議與所述云服務(wù)器進(jìn)行通信。
[0031]在步驟SI中,云服務(wù)器基于獲取的部署指令,利用預(yù)設(shè)的各應(yīng)用的描述信息,將相應(yīng)的應(yīng)用及用于獲取相應(yīng)應(yīng)用的運(yùn)行信息的第一獲取模塊部署到至少一個(gè)虛擬機(jī)上,以便所述應(yīng)用及所述第一獲取模塊運(yùn)行在所述虛擬機(jī)上。其中,所述部署指令中包括要部署的虛擬機(jī)的名稱及地址、應(yīng)用的名稱、應(yīng)用的版本等信息。
[0032]其中,所述應(yīng)用包括任何能夠運(yùn)行在虛擬機(jī)上的軟件,其包括但不限于:基于WEB的應(yīng)用等。所述應(yīng)用的描述信息包括任何能夠描述所述應(yīng)用的信息,其包括但不限于:所述應(yīng)用的版本信息、所述應(yīng)用正常運(yùn)行的配置信息、所述應(yīng)用與所述第一獲取模塊之間的配置關(guān)系、所述各應(yīng)用之間的配置關(guān)系、所述應(yīng)用或所述第一獲取模塊的存放地址等。例如,所述描述信息包括:所述應(yīng)用運(yùn)行所占用的虛擬機(jī)的端口,所述應(yīng)用與所述第一獲取模塊連接的接口信息等。所述應(yīng)用的運(yùn)行信息包括任何能夠反映所述應(yīng)用運(yùn)行情況的信息,其包括但不限于:所述應(yīng)用當(dāng)前的會(huì)話數(shù)、所述應(yīng)用在運(yùn)行時(shí)產(chǎn)生的異常情況、所述應(yīng)用占用所述虛擬機(jī)的資源信息等。所述第一獲取模塊可以獲取所述應(yīng)用的一種運(yùn)行信息,也可以獲取所述應(yīng)用的全部運(yùn)行信息。
[0033]本實(shí)施例中,所述云服務(wù)器基于預(yù)設(shè)的各應(yīng)用的描述信息,向至少一個(gè)所述虛擬機(jī)部署至少一個(gè)所述應(yīng)用及所述第一獲取模塊,以使所述應(yīng)用及所述第一獲取模塊運(yùn)行在所述虛擬機(jī)上。
[0034]例如,WEB應(yīng)用a3的描述信息a4包括:WEB應(yīng)用a3與數(shù)據(jù)庫(kù)al連接的配置文件bl、WEB應(yīng)用a3與第一獲取模塊a2之間的配置文件b2。所述云服務(wù)器基于所述描述信息a4,將WEB應(yīng)用a3、第一獲取模塊a2和數(shù)據(jù)庫(kù)al遠(yuǎn)程安裝在虛擬機(jī)A中后,按照配置文件bl和配置文件b2分別將WEB應(yīng)用a3與數(shù)據(jù)庫(kù)al、WEB應(yīng)用a3與第一獲取模塊a2進(jìn)行連接,以便WEB應(yīng)用a3可以正常運(yùn)行,同時(shí)所述第一獲取模塊a2能夠獲取WEB應(yīng)用a3的運(yùn)行信息。
[0035]其中,所述第一獲取模塊獲取所述應(yīng)用的運(yùn)行信息的方式包括但不限于:1)從所述虛擬機(jī)的任務(wù)管理器中獲取所述應(yīng)用的運(yùn)行信息;2)通過所述應(yīng)用提供的接口獲取所述應(yīng)用的運(yùn)行信息等。
[0036]在步驟S2中,所述云服務(wù)器獲取在每一個(gè)所述虛擬機(jī)上運(yùn)行的所述應(yīng)用的運(yùn)行信息。其中,運(yùn)行在所述虛擬機(jī)上的應(yīng)用可以是一個(gè)或多個(gè),優(yōu)選地,所述云服務(wù)器獲取運(yùn)行在虛擬機(jī)上的每一個(gè)所述應(yīng)用的運(yùn)行信息。
[0037]所述云服務(wù)器獲取在每一個(gè)所述虛擬機(jī)上運(yùn)行的應(yīng)用的運(yùn)行信息的方式包括但不限于:
[0038]I)由所述虛擬機(jī)中的各所述第一獲取模塊直接將獲取的相應(yīng)應(yīng)用的運(yùn)行信息發(fā)送至所述云服務(wù)器。例如,所述虛擬機(jī)上運(yùn)行有:應(yīng)用Cl、用于獲取所述應(yīng)用Cl的運(yùn)行信息的第一獲取模塊dl、應(yīng)用c2及用于獲取所述應(yīng)用c2的運(yùn)行信息的第一獲取模塊d2。則第一獲取模塊dl和d2基于預(yù)設(shè)的時(shí)間間隔,按照預(yù)設(shè)的所述云服務(wù)器的地址,分別將各自獲取的應(yīng)用的運(yùn)行信息發(fā)送至所述云服務(wù)器。
[0039]2)由所述虛擬機(jī)基于輪詢機(jī)制向每一個(gè)第一獲取模塊發(fā)出用于獲取應(yīng)用的運(yùn)行信息的指令,以便各第一獲取模塊獲取相應(yīng)應(yīng)用的運(yùn)行信息,再將獲取的所有運(yùn)行信息發(fā)送至所述云服務(wù)器。
[0040]具體地,所述虛擬機(jī)在所述云服務(wù)器的部署指令下,安裝、運(yùn)行各應(yīng)用及所述第一獲取模塊時(shí),記錄各應(yīng)用及第一獲取模塊的名稱、版本號(hào)、安裝地址、運(yùn)行地址等信息,并基于輪詢機(jī)制,通過記錄的信息發(fā)出用于獲取應(yīng)用的運(yùn)行信息的指令,以便獲取所有的運(yùn)行信息。
[0041]優(yōu)選地,各所述第一獲取模塊在運(yùn)行之前向其所在的虛擬機(jī)進(jìn)行注冊(cè),以便所述虛擬機(jī)利用第一獲取模塊的注冊(cè)信息,輪詢已注冊(cè)的各第一獲取模塊,進(jìn)而取得相應(yīng)應(yīng)用的運(yùn)行信息。其中,所述注冊(cè)信息包括但不限于所述第一獲取模塊的版本號(hào)、所述第一獲取模塊的名稱、所述第一獲取模塊的運(yùn)行地址等。例如,部署在虛擬機(jī)上的第一獲取模塊在啟動(dòng)運(yùn)行時(shí),先按照預(yù)存儲(chǔ)的虛擬機(jī)的注冊(cè)端口向所在虛擬機(jī)發(fā)出包含所述注冊(cè)信息的注冊(cè)請(qǐng)求,所述虛擬機(jī)將所述注冊(cè)信息添加到所維護(hù)的動(dòng)態(tài)鏈表中,以供基于輪詢機(jī)制向所述第一獲取模塊發(fā)出用于獲取運(yùn)行信息的指令。
[0042]在步驟S3中,所述云服務(wù)器對(duì)獲取的每一個(gè)所述運(yùn)行信息進(jìn)行分析,并基于分析結(jié)果對(duì)運(yùn)行相應(yīng)應(yīng)用的虛擬機(jī)進(jìn)行策略控制。其中,所述分析結(jié)果包括但不限于:應(yīng)用處于正常運(yùn)行、應(yīng)用處于異常運(yùn)行、應(yīng)用臨近異常運(yùn)行、無法獲取應(yīng)用的一個(gè)或全部運(yùn)行信息等。所述策略控制的方式包括任何能夠基于所獲取的應(yīng)用的運(yùn)行信息,更改所述應(yīng)用的運(yùn)行環(huán)境或運(yùn)行情況的方式。所述策略控制的類型包括但不限于以下至少一種:負(fù)載均衡的控制,自動(dòng)擴(kuò)/減容的控制,及動(dòng)態(tài)遷移的控制等。
[0043]其中,所述云服務(wù)器對(duì)獲取的每一個(gè)所述運(yùn)行信息進(jìn)行分析的方式包括但不限于:[0044]I)所述云服務(wù)器將獲取的運(yùn)行信息與預(yù)存的相應(yīng)應(yīng)用的運(yùn)行信息進(jìn)行比較分析,以得到分析結(jié)果。例如,所述云服務(wù)器獲取的運(yùn)行信息包括:來自虛擬機(jī)M2的應(yīng)用m2的當(dāng)前會(huì)話數(shù)為150,預(yù)設(shè)的應(yīng)用m2的最大會(huì)話數(shù)為200,則所述云服務(wù)器分析得到所獲取的應(yīng)用m2的當(dāng)前會(huì)話數(shù)已臨近最大會(huì)話數(shù)。
[0045]2)所述云服務(wù)器基于預(yù)設(shè)的各應(yīng)用的分析規(guī)則對(duì)獲取的運(yùn)行信息進(jìn)行分析,以得到分析結(jié)果。
[0046]例如,針對(duì)應(yīng)用m2預(yù)設(shè)一個(gè)評(píng)價(jià)公式為,其中最大會(huì)
話數(shù)為300,權(quán)值I為2,權(quán)值2為3,當(dāng)評(píng)價(jià)值在1-3之間時(shí)為正常運(yùn)行。假設(shè)所述云服務(wù)器獲取的運(yùn)行信息包括:來自虛擬機(jī)M2的應(yīng)用m2的當(dāng)前會(huì)話數(shù)為150,應(yīng)用m2占用虛擬機(jī)M2的資源比例為30%,則所述云服務(wù)器按照預(yù)設(shè)的應(yīng)用m2的上述分析規(guī)則,得到來自虛擬機(jī)M2的應(yīng)用m2的運(yùn)行情況的評(píng)價(jià)值為1.9,得出虛擬機(jī)M2中的應(yīng)用m2的運(yùn)行結(jié)果為正
常運(yùn)行。
[0047]其中,所述云服務(wù)器基于分析結(jié)果對(duì)運(yùn)行相應(yīng)應(yīng)用的虛擬機(jī)進(jìn)行策略控制,其方式包括但不限于:
[0048]I)所述云服務(wù)器基于所述分析結(jié)果,向運(yùn)行相應(yīng)應(yīng)用的虛擬機(jī)發(fā)送用于改變所述應(yīng)用及相應(yīng)的第一獲取模塊運(yùn)行的指令。其中,所述指令包括但不限于:啟動(dòng)指令、暫停指令、或停止指令等。
[0049]具體地,如果所述云服務(wù)器得到的分析結(jié)果為無法獲取某個(gè)應(yīng)用的運(yùn)行信息或確定需要改變某個(gè)應(yīng)用的運(yùn)行狀態(tài),則向運(yùn)行相應(yīng)應(yīng)用的虛擬機(jī)發(fā)送用于改變所述應(yīng)用或相應(yīng)的第一獲取模塊運(yùn)行的指令。
[0050]2)所述云服務(wù)器基于所述分析結(jié)果,生成部署指令,以便重新執(zhí)行步驟SI向未運(yùn)行該應(yīng)用的虛擬機(jī)部署所述應(yīng)用及相應(yīng)的第一獲取模塊。
[0051]具體地,如果所述云服務(wù)器得到的分析結(jié)果為某個(gè)應(yīng)用已滿負(fù)荷運(yùn)行,則生成部署指令,以便所述云服務(wù)器向所述部署指令指定的未運(yùn)行所述應(yīng)用的虛擬機(jī)部署所述應(yīng)用及第一獲取模塊。
[0052]優(yōu)選地,所述步驟S3包括步驟S31和步驟S32。
[0053]在步驟S31中,所述云服務(wù)器從獲取的多個(gè)運(yùn)行信息中識(shí)別來自不同虛擬機(jī)的同一應(yīng)用的運(yùn)行信息。
[0054]具體地,所述云服務(wù)器從獲取的多個(gè)運(yùn)行信息中提取能夠標(biāo)識(shí)應(yīng)用及虛擬機(jī)的標(biāo)識(shí)信息,再根據(jù)所述標(biāo)識(shí)信息識(shí)別運(yùn)行在不同虛擬機(jī)中的同一應(yīng)用。其中,所述標(biāo)識(shí)信息包括但不限于:應(yīng)用的名稱、應(yīng)用的版本號(hào)、虛擬機(jī)的名稱、虛擬機(jī)地址等。
[0055]例如,所述云服務(wù)器獲取到的多個(gè)運(yùn)行信息包括:來自虛擬機(jī)NI的應(yīng)用Cl的運(yùn)行信息Cl、來自虛擬機(jī)N2的應(yīng)用C2的運(yùn)行信息c2、來自虛擬機(jī)N3的應(yīng)用Cl的運(yùn)行信息c3。所述云服務(wù)器提取每一個(gè)運(yùn)行信息中的應(yīng)用名稱及虛擬機(jī)的名稱,并將每一個(gè)應(yīng)用名稱及虛擬機(jī)名稱進(jìn)行循環(huán)比對(duì),識(shí)別出運(yùn)行信息Cl和運(yùn)行信息c3中的應(yīng)用名稱相同、虛擬機(jī)的名稱不同,則所述云服務(wù)器基于該識(shí)別結(jié)果確定運(yùn)行信息Cl和運(yùn)行信息c3為來自不同虛擬機(jī)的同一應(yīng)用的運(yùn)行信息。
[0056]在步驟S32中,所述云服務(wù)器分析來自多個(gè)虛擬機(jī)的同一應(yīng)用的所述運(yùn)行信息,并基于分析結(jié)果對(duì)至少一個(gè)虛擬機(jī)進(jìn)行策略控制。
[0057]其中,所述云服務(wù)器對(duì)至少一個(gè)虛擬機(jī)進(jìn)行策略控制的方式包括但不限于:
[0058]I)基于分析結(jié)果對(duì)運(yùn)行該應(yīng)用的至少一個(gè)虛擬機(jī)進(jìn)行策略控制。
[0059]例如,獲取的各虛擬機(jī)中的應(yīng)用的運(yùn)行信息包括:虛擬機(jī)Ml中的應(yīng)用A當(dāng)前的會(huì)話數(shù)300、虛擬機(jī)M2中的應(yīng)用A當(dāng)前的會(huì)話數(shù)400、虛擬機(jī)M3中的應(yīng)用A當(dāng)前的會(huì)話數(shù)200以及虛擬機(jī)M3中的應(yīng)用B當(dāng)前的會(huì)話數(shù)250。所述云服務(wù)器基于各運(yùn)行信息中的應(yīng)用的標(biāo)識(shí)信息確定虛擬機(jī)Ml、虛擬機(jī)M2和虛擬機(jī)M3運(yùn)行同一應(yīng)用A,并基于所述應(yīng)用A分別在虛擬機(jī)Ml、虛擬機(jī)M2和虛擬機(jī)M3中的運(yùn)行信息來管理所述虛擬機(jī)Ml、M2、M3中所述應(yīng)用A的運(yùn)行。比如,所述云服務(wù)器將虛擬機(jī)M2中的應(yīng)用A的當(dāng)前會(huì)話數(shù)400與預(yù)設(shè)的應(yīng)用A的最大會(huì)話數(shù)450進(jìn)行比較,確定不再向虛擬機(jī)M2中的應(yīng)用A分配新的用戶訪問請(qǐng)求,轉(zhuǎn)而將新的用戶訪問請(qǐng)求分配給虛擬機(jī)Ml或虛擬機(jī)M3中的應(yīng)用A,以此來均衡虛擬機(jī)Ml、M2和M3的負(fù)載。
[0060]2)基于分析結(jié)果,通過重新執(zhí)行步驟SI向未運(yùn)行該應(yīng)用的虛擬機(jī)部署所述應(yīng)用及相應(yīng)的第一獲取模塊。
[0061]需要說明的是,本領(lǐng)域技術(shù)人員應(yīng)該理解,上述步驟S1、步驟S2和步驟S3之間并非一定按順序的連續(xù)執(zhí)行,事實(shí)上,所述云服務(wù)器可以利用多線程技術(shù)一邊獲取各應(yīng)用的運(yùn)行信息,一邊基于所獲取的各應(yīng)用的運(yùn)行信息對(duì)各應(yīng)用進(jìn)行策略控制,同時(shí),還可以執(zhí)行步驟Si來部署新的應(yīng)用,并獲取新的應(yīng)用的運(yùn)行信息。
[0062]通過本實(shí)施例提供的對(duì)虛擬機(jī)進(jìn)行管理的方法,所述云服務(wù)器通過在虛擬機(jī)中部署的第一獲取模塊來獲取在虛擬機(jī)中運(yùn)行的各應(yīng)用的運(yùn)行信息,并通過對(duì)所述運(yùn)行信息的分析對(duì)運(yùn)行相應(yīng)應(yīng)用的虛擬機(jī)進(jìn)行策略控制,如此,能夠解決現(xiàn)有的云服務(wù)器無法基于虛擬機(jī)上運(yùn)行的應(yīng)用對(duì)虛擬機(jī)進(jìn)行管理的問題;同時(shí),能夠?qū)崟r(shí)對(duì)各虛擬機(jī)進(jìn)行策略控制,以供虛擬機(jī)改變應(yīng)用的運(yùn)行情況或運(yùn)行環(huán)境。進(jìn)一步,所述云服務(wù)器還可以通過對(duì)獲取的各運(yùn)行信息進(jìn)行識(shí)別,來確定不同虛擬機(jī)上運(yùn)行的同一應(yīng)用的運(yùn)行情況,然后對(duì)各虛擬機(jī)進(jìn)行策略控制,使得同一應(yīng)用在各虛擬機(jī)上的都能正常運(yùn)行。
[0063]實(shí)施例二
[0064]與實(shí)施例一不同的是,本實(shí)施例中步驟S2還包括:所述虛擬機(jī)監(jiān)控所述第一獲取模塊獲取的運(yùn)行信息,并判斷所述運(yùn)行信息對(duì)應(yīng)的應(yīng)用是否臨近或超出預(yù)設(shè)的相應(yīng)應(yīng)用正常運(yùn)行的范圍,若確實(shí)臨近或超出預(yù)設(shè)的相應(yīng)應(yīng)用正常運(yùn)行的范圍,則將所述運(yùn)行信息提供給所述云服務(wù)器;若并未臨近或超出預(yù)設(shè)的相應(yīng)應(yīng)用正常運(yùn)行的范圍,則繼續(xù)監(jiān)控。
[0065]例如,所述第一獲取模塊獲取的運(yùn)行信息包括:應(yīng)用dl的當(dāng)前會(huì)話數(shù)為30、應(yīng)用d2的當(dāng)前CPU占用70%。所述虛擬機(jī)將預(yù)設(shè)的應(yīng)用dl能夠承受的最大會(huì)話數(shù)500與所獲取的應(yīng)用dl的會(huì)話數(shù)30取差值,并將所述差值與預(yù)設(shè)的臨界閾值5進(jìn)行比較,確定所述差值大于所述臨界閾值,即所述應(yīng)用dl運(yùn)行正常,繼續(xù)監(jiān)控所述應(yīng)用dl的當(dāng)前會(huì)話數(shù);同時(shí),基于預(yù)設(shè)的應(yīng)用d2能夠占用的CPU的最大比例不得超過50%,確定所述應(yīng)用d2運(yùn)行異常,將所述應(yīng)用d2的運(yùn)行信息提供給所述云服務(wù)器。
[0066]具體地,本方案的工作過程如圖2所示。
[0067]在步驟SlO中,所述云服務(wù)器基于獲取的部署指令,利用預(yù)設(shè)的各應(yīng)用的描述信息,將相應(yīng)的應(yīng)用及用于獲取相應(yīng)應(yīng)用的運(yùn)行信息的第一獲取模塊部署到至少一個(gè)所述虛擬機(jī)上,以便所述應(yīng)用及所述第一獲取模塊運(yùn)行在所述虛擬機(jī)上。
[0068]在步驟S20中,所述虛擬機(jī)基于來自所述第一獲取模塊的注冊(cè)請(qǐng)求,對(duì)所部署的每一個(gè)第一獲取模塊進(jìn)行注冊(cè);
[0069]在步驟S30中,所述虛擬機(jī)基于輪詢機(jī)制向已注冊(cè)的每一個(gè)第一獲取模塊發(fā)出用于獲取運(yùn)行信息的指令,以便各第一獲取模塊獲取相應(yīng)應(yīng)用的運(yùn)行信息;
[0070]在步驟S40中,所述虛擬機(jī)監(jiān)控所述第一獲取模塊獲取的運(yùn)行信息,并判斷所述運(yùn)行信息對(duì)應(yīng)的應(yīng)用是否臨近或超出預(yù)設(shè)的相應(yīng)應(yīng)用正常運(yùn)行的范圍,若確實(shí)臨近或超出預(yù)設(shè)的相應(yīng)應(yīng)用正常運(yùn)行的范圍,則執(zhí)行步驟S60,若并未臨近或超出預(yù)設(shè)的相應(yīng)應(yīng)用正常運(yùn)行的范圍,則執(zhí)行步驟S50。
[0071]在步驟S50中,所述虛擬機(jī)繼續(xù)監(jiān)控所述第一獲取模塊獲取的運(yùn)行信息。
[0072]在步驟S60中,所述虛擬機(jī)將所述運(yùn)行信息提供給所述云服務(wù)器。
[0073]在步驟S70中,所述云服務(wù)器對(duì)獲取的每一個(gè)所述運(yùn)行信息進(jìn)行分析,并基于分析結(jié)果對(duì)運(yùn)行相應(yīng)應(yīng)用的虛擬機(jī)進(jìn)行策略控制。
[0074]需要說明的是,本實(shí)施例僅為本發(fā)明的一個(gè)實(shí)施例,事實(shí)上,所述虛擬機(jī)可以按照實(shí)施例一中描述的其他方式將所述第一獲取模塊獲取的運(yùn)行信息發(fā)送至所述云服務(wù)器,所述云服務(wù)器在接收到各虛擬機(jī)所發(fā)送的各應(yīng)用的運(yùn)行信息后,利用實(shí)施例一中所描述的方案對(duì)各應(yīng)用進(jìn)行分析,并基于分析結(jié)果進(jìn)行相應(yīng)的策略控制。
[0075]本實(shí)施例中,每一個(gè)第一獲取模塊通過注冊(cè)的方式把各自的信息告知所在的虛擬機(jī),以便虛擬機(jī)利用輪詢機(jī)制向已注冊(cè)的第一獲取模塊發(fā)出輪詢指令,由此能夠有針對(duì)性的管理虛擬機(jī)上運(yùn)行的應(yīng)用,而不必獲取一些臨時(shí)運(yùn)行的應(yīng)用的運(yùn)行信息,以提高管理效率,減少垃圾信息產(chǎn)生;另外,所述虛擬機(jī)在獲取到各應(yīng)用的運(yùn)行信息時(shí),先基于各所述運(yùn)行信息甄別相應(yīng)的應(yīng)用是否臨近或超出預(yù)設(shè)的所述應(yīng)用正常運(yùn)行的范圍,能夠分擔(dān)云服務(wù)器的負(fù)擔(dān)。
[0076]實(shí)施例三
[0077]與實(shí)施例一、二不同的是,在所述虛擬機(jī)將獲取的各應(yīng)用的運(yùn)行信息發(fā)送給所述云服務(wù)器,所述云服務(wù)器基于所獲取的各應(yīng)用的運(yùn)行信息進(jìn)行分析并執(zhí)行相應(yīng)的策略控制的同時(shí),所述虛擬機(jī)和所述云服務(wù)器之間還保持通信,以便所述虛擬機(jī)和云服務(wù)器能夠及時(shí)得知彼此是否處于通信狀態(tài)。
[0078]具體地,所述虛擬機(jī)與所述云服務(wù)器之間保持通信的方式包括但不限于:基于心跳機(jī)制保持所述虛擬機(jī)與所述云服務(wù)器之間的通信。
[0079]例如,所述虛擬機(jī)基于心跳機(jī)制每隔15分鐘與所述云服務(wù)器進(jìn)行一次通信,當(dāng)所述云服務(wù)器在20分鐘時(shí)間內(nèi)未收到來自所述虛擬機(jī)的心跳信息,則確定所述虛擬機(jī)異常,并將所述異常信息通過與所述云服務(wù)器連接的顯示器予以顯示,以便技術(shù)人員對(duì)所述虛擬機(jī)進(jìn)行處理。
[0080]本實(shí)施例中,所述虛擬機(jī)與所述云服務(wù)器通過定期通信來確保彼此的通信連接,有利于當(dāng)所述虛擬機(jī)所在物理設(shè)備異常或網(wǎng)絡(luò)異常時(shí),所述云服務(wù)器及時(shí)報(bào)警或按照應(yīng)急預(yù)案予以及時(shí)處理,以確保各應(yīng)用能夠穩(wěn)定運(yùn)行。
[0081]實(shí)施例四
[0082]本發(fā)明還提供一種對(duì)虛擬機(jī)進(jìn)行管理的系統(tǒng)。其中,所述系統(tǒng)包括云服務(wù)器I以及與所述云服務(wù)器I通信連接的包含至少一個(gè)虛擬機(jī)2的計(jì)算機(jī)設(shè)備,如圖3所示。其中,所述虛擬機(jī)2可利用通信協(xié)議與所述云服務(wù)器I進(jìn)行通信。所述云服務(wù)器I至少包括:部署模塊11、第二獲取模塊12、策略控制模塊13。如圖4所示。
[0083]所述部署模塊11用于基于獲取的部署指令,利用預(yù)設(shè)的各應(yīng)用的描述信息,將相應(yīng)的應(yīng)用及用于獲取相應(yīng)應(yīng)用的運(yùn)行信息的第一獲取模塊部署到至少一個(gè)所述虛擬機(jī)2上,以便所述應(yīng)用及所述第一獲取模塊運(yùn)行在所述虛擬機(jī)2上。其中,所述部署指令中至少包括所要部署的虛擬機(jī)的名稱及地址、應(yīng)用的名稱、應(yīng)用的版本等信息。
[0084]其中,所述應(yīng)用包括任何能夠運(yùn)行在虛擬機(jī)上的軟件,其包括但不限于:基于WEB的應(yīng)用等。所述應(yīng)用的描述信息包括任何能夠描述所述應(yīng)用的信息,其包括但不限于:所述應(yīng)用的版本信息、所述應(yīng)用正常運(yùn)行的配置信息、所述應(yīng)用與所述第一獲取模塊之間的配置關(guān)系、所述各應(yīng)用之間的配置關(guān)系、所述應(yīng)用或所述第一獲取模塊的存放地址等。例如,所述描述信息包括:所述應(yīng)用運(yùn)行所占用的虛擬機(jī)2的端口,所述應(yīng)用與所述第一獲取模塊連接的接口信息等。所述應(yīng)用的運(yùn)行信息包括任何能夠反映所述應(yīng)用運(yùn)行時(shí)的情況的信息,其包括但不限于:所述應(yīng)用當(dāng)前的會(huì)話數(shù)、所述應(yīng)用在運(yùn)行時(shí)產(chǎn)生的異常情況、所述應(yīng)用占用所述虛擬機(jī)2的資源信息等。所述第一獲取模塊可以獲取所述應(yīng)用的一種運(yùn)行信息,也可以獲取所述應(yīng)用的全部運(yùn)行信息。
[0085]本實(shí)施例中,所述部署模塊11基于預(yù)設(shè)的各應(yīng)用的描述信息,向至少一個(gè)所述虛擬機(jī)2部署至少一個(gè)所述應(yīng)用及所述第一獲取模塊,以使所述應(yīng)用及所述第一獲取模塊運(yùn)行在所述虛擬機(jī)2上。
[0086]例如,WEB應(yīng)用a3的描述信息a4包括:WEB應(yīng)用a3與數(shù)據(jù)庫(kù)al連接的配置文件bUWEB應(yīng)用a3與第一獲取模塊a2之間的配置文件b2。所述部署模塊11基于所述描述信息a4,將WEB應(yīng)用a3、第一獲取模塊a2和數(shù)據(jù)庫(kù)al遠(yuǎn)程安裝在虛擬機(jī)A中后,按照配置文件bl和配置文件b2分別將WEB應(yīng)用a3與數(shù)據(jù)庫(kù)al、WEB應(yīng)用a3與第一獲取模塊a2進(jìn)行連接,以便WEB應(yīng)用a3可以正常運(yùn)行,同時(shí)所述第一獲取模塊a2能夠獲取WEB應(yīng)用a3的運(yùn)行信息。
[0087]其中,所述第一獲取模塊獲取所述應(yīng)用的運(yùn)行信息的方式包括但不限于:1)從所述虛擬機(jī)2的任務(wù)管理器中獲取所述應(yīng)用的運(yùn)行信息;2)通過所述應(yīng)用提供的接口獲取所述應(yīng)用的運(yùn)行信息等。
[0088]所述第二獲取模塊12用于獲取由所述部署模塊11部署在每一個(gè)所述虛擬機(jī)2上的所述應(yīng)用的運(yùn)行信息。其中,運(yùn)行在所述虛擬機(jī)2上的應(yīng)用可以是一個(gè)或多個(gè),優(yōu)選地,所述第二獲取模塊12獲取運(yùn)行在虛擬機(jī)2上的每一個(gè)所述應(yīng)用的運(yùn)行信息。
[0089]所述第二獲取模塊12獲取在每一個(gè)所述虛擬機(jī)2上運(yùn)行的應(yīng)用的運(yùn)行信息的方式包括但不限于:
[0090]I)由所述虛擬機(jī)2中的各所述第一獲取模塊直接將獲取的相應(yīng)應(yīng)用的運(yùn)行信息發(fā)送至所述第二獲取模塊12。例如,所述虛擬機(jī)2上運(yùn)行有:應(yīng)用Cl、用于獲取所述應(yīng)用Cl的運(yùn)行信息的第一獲取模塊dl、應(yīng)用c2及用于獲取所述應(yīng)用c2的運(yùn)行信息的第一獲取模塊d2。則第一獲取模塊dl和d2基于預(yù)設(shè)的時(shí)間間隔,按照預(yù)設(shè)的所述第二獲取模塊的地址,分別將各自所獲取的應(yīng)用的運(yùn)行信息發(fā)送至所述第二獲取模塊12。
[0091]2)由所述虛擬機(jī)2基于輪詢機(jī)制向每一個(gè)第一獲取模塊發(fā)出用于獲取運(yùn)行信息的指令,以便各第一獲取模塊獲取相應(yīng)應(yīng)用的運(yùn)行信息,再將獲取的所有運(yùn)行信息發(fā)送至所述第二獲取模塊12。
[0092]具體地,所述虛擬機(jī)2在所述部署模塊11的部署指令下,安裝、運(yùn)行各應(yīng)用及所述第一獲取模塊時(shí),記錄各應(yīng)用及第一獲取模塊的名稱、版本號(hào)、安裝地址、運(yùn)行地址等信息,并基于輪詢機(jī)制,通過所記錄的信息發(fā)出用于獲取應(yīng)用的運(yùn)行信息的指令,以便獲取所有的運(yùn)行信息。
[0093]優(yōu)選地,各所述第一獲取模塊在運(yùn)行之前向其所在的虛擬機(jī)2進(jìn)行注冊(cè),以便所述虛擬機(jī)2利用第一獲取模塊的注冊(cè)信息,輪詢已注冊(cè)的各第一獲取模塊,進(jìn)而取得相應(yīng)應(yīng)用的運(yùn)行信息。其中,所述注冊(cè)信息包括但不限于所述第一獲取模塊的版本號(hào)、所述第一獲取模塊的名稱、所述第一獲取模塊的運(yùn)行地址等。例如,部署在虛擬機(jī)2上的第一獲取模塊在啟動(dòng)運(yùn)行時(shí),先按照預(yù)存儲(chǔ)的虛擬機(jī)的注冊(cè)端口向所在虛擬機(jī)2發(fā)出包含所述注冊(cè)信息的注冊(cè)請(qǐng)求,所述虛擬機(jī)2將所述注冊(cè)信息添加到所維護(hù)的動(dòng)態(tài)鏈表中,以供基于輪詢機(jī)制向所述第一獲取模塊發(fā)出用于獲取運(yùn)行信息的指令。
[0094]所述策略控制模塊13用于對(duì)所述第二獲取模塊12獲取的每一個(gè)所述運(yùn)行信息進(jìn)行分析,并基于分析結(jié)果對(duì)運(yùn)行相應(yīng)應(yīng)用的虛擬機(jī)2進(jìn)行策略控制。其中,所述分析結(jié)果包括但不限于:應(yīng)用處于正常運(yùn)行、應(yīng)用處于異常運(yùn)行、應(yīng)用臨近異常運(yùn)行、無法獲取應(yīng)用的一個(gè)或全部運(yùn)行信息等。所述策略控制的方式包括任何能夠基于所獲取的應(yīng)用的運(yùn)行信息,更改所述應(yīng)用的運(yùn)行環(huán)境或運(yùn)行情況的策略。所述策略控制的類型包括但不限于以下至少一種:負(fù)載均衡的控制,自動(dòng)擴(kuò)/減容的控制,及動(dòng)態(tài)遷移的控制等。
[0095]其中,所述策略控制模塊13對(duì)獲取的每一個(gè)所述運(yùn)行信息進(jìn)行分析的方式包括但不限于:
[0096]I)所述策略控制模塊13將獲取的運(yùn)行信息與預(yù)存的相應(yīng)應(yīng)用的運(yùn)行信息進(jìn)行比較分析,以得到分析結(jié)果。例如,所述策略控制模塊13獲取的運(yùn)行信息包括:來自虛擬機(jī)M2的應(yīng)用m2的當(dāng)前會(huì)話數(shù)為150,預(yù)設(shè)的應(yīng)用m2的最大會(huì)話數(shù)為200,則所述策略控制模塊13分析得到所獲取的應(yīng)用m2的當(dāng)前會(huì)話數(shù)已臨近最大會(huì)話數(shù)。
[0097]2)所述策略控制模塊13基于預(yù)設(shè)的各應(yīng)用的分析規(guī)則對(duì)獲取的運(yùn)行信息進(jìn)行分析,以得到分析結(jié)果。
[0098]例如,針對(duì)應(yīng)用m2預(yù)設(shè)一個(gè)評(píng)價(jià)公式為g|i|遺值1+當(dāng)前所占資源比例X雛2,其中最大
會(huì)話數(shù)為300,權(quán)值I為2,權(quán)值2為3,當(dāng)評(píng)價(jià)值在1-3之間時(shí)為正常運(yùn)行。假設(shè)所述策略控制模塊13獲取的運(yùn)行信息包括:來自虛擬機(jī)M2的應(yīng)用m2的當(dāng)前會(huì)話數(shù)為150,應(yīng)用m2占用虛擬機(jī)M2的資源比例為30%,則所述策略控制模塊13按照預(yù)設(shè)的應(yīng)用m2的上述分析規(guī)則,得到來自虛擬機(jī)M2的應(yīng)用m2的運(yùn)行情況的評(píng)價(jià)值為1.9,得出虛擬機(jī)M2中的應(yīng)用m2的運(yùn)行結(jié)果為正常運(yùn)行。
[0099]其中,所述策略控制模塊13基于分析結(jié)果對(duì)運(yùn)行相應(yīng)應(yīng)用的虛擬機(jī)2進(jìn)行策略控制,其方式包括但不限于:
[0100]I)所述策略控制模塊13基于所述分析結(jié)果,向運(yùn)行相應(yīng)應(yīng)用的虛擬機(jī)2發(fā)送用于改變所述應(yīng)用及相應(yīng)的第一獲取模塊運(yùn)行的指令。其中,所述指令包括但不限于:啟動(dòng)指令、暫停指令、或停止指令等。[0101]具體地,如果所述策略控制模塊13得到的分析結(jié)果為無法獲取某個(gè)應(yīng)用的運(yùn)行信息或確定需要改變某個(gè)應(yīng)用的運(yùn)行狀態(tài),則向運(yùn)行相應(yīng)應(yīng)用的虛擬機(jī)2發(fā)送用于改變所述應(yīng)用或相應(yīng)的第一獲取模塊運(yùn)行的指令。
[0102]2)所述策略控制模塊13基于分析結(jié)果,向所述部署模塊11發(fā)出所述部署指令,以便所述部署模塊11基于所述部署指令在未運(yùn)行相應(yīng)應(yīng)用的虛擬機(jī)2上部署所述應(yīng)用及相應(yīng)的第一獲取模塊。
[0103]具體地,如果所述策略控制模塊13得到的分析結(jié)果為某個(gè)應(yīng)用已滿負(fù)荷運(yùn)行,則向所述部署模塊11發(fā)出所述部署指令,并由所述部署模塊11向指定的未運(yùn)行所述應(yīng)用的虛擬機(jī)2部署所述應(yīng)用及第一獲取模塊。
[0104]優(yōu)選地,所述策略控制模塊13還包括識(shí)別子模塊131。
[0105]所述識(shí)別子模塊131用于從所述第二獲取模塊12獲取的多個(gè)運(yùn)行信息中識(shí)別來自不同虛擬機(jī)2的同一應(yīng)用的運(yùn)行信息。
[0106]具體地,所述識(shí)別子模塊131從所述第二獲取模塊12獲取的多個(gè)運(yùn)行信息中提取能夠標(biāo)識(shí)應(yīng)用及虛擬機(jī)的標(biāo)識(shí)信息,再根據(jù)所述標(biāo)識(shí)信息識(shí)別運(yùn)行在不同虛擬機(jī)中的同一應(yīng)用。其中,所述標(biāo)識(shí)信息包括但不限于:應(yīng)用的名稱、應(yīng)用的版本號(hào)、虛擬機(jī)的名稱、虛擬機(jī)地址等。
[0107]例如,所述識(shí)別子模塊131獲取到的多個(gè)運(yùn)行信息包括:來自虛擬機(jī)NI的應(yīng)用Cl的運(yùn)行信息Cl、來自虛擬機(jī)N2的應(yīng)用C2的運(yùn)行信息c2、來自虛擬機(jī)N3的應(yīng)用Cl的運(yùn)行信息c3。所述識(shí)別子模塊131提取每一個(gè)運(yùn)行信息中的應(yīng)用名稱及虛擬機(jī)的名稱,并將每一個(gè)應(yīng)用名稱及虛擬機(jī)名稱進(jìn)行循環(huán)比對(duì),識(shí)別出運(yùn)行信息Cl和運(yùn)行信息c3中的應(yīng)用名稱相同、虛擬機(jī)的名稱不同,基于該識(shí)別結(jié)果確定運(yùn)行信息Cl和運(yùn)行信息c3為來自不同虛擬機(jī)的同一應(yīng)用的運(yùn)行信息。
[0108]相應(yīng)的,所述策略控制模塊13用于分析來自多個(gè)虛擬機(jī)的同一應(yīng)用的所述運(yùn)行信息,并基于分析結(jié)果對(duì)至少一個(gè)虛擬機(jī)進(jìn)行策略控制。
[0109]其中,所述策略控制模塊13對(duì)至少一個(gè)虛擬機(jī)進(jìn)行策略控制的方式包括但不限于:
[0110]I)基于分析結(jié)果對(duì)運(yùn)行該應(yīng)用的至少一個(gè)虛擬機(jī)進(jìn)行策略控制。
[0111]例如,獲取的各虛擬機(jī)中的應(yīng)用的運(yùn)行信息包括:虛擬機(jī)Ml中的應(yīng)用A當(dāng)前的會(huì)話數(shù)300、虛擬機(jī)M2中的應(yīng)用A當(dāng)前的會(huì)話數(shù)400、虛擬機(jī)M3中的應(yīng)用A當(dāng)前的會(huì)話數(shù)200以及虛擬機(jī)M3中的應(yīng)用B當(dāng)前的會(huì)話數(shù)250。所述策略控制模塊13基于各運(yùn)行信息中的應(yīng)用的標(biāo)識(shí)信息確定虛擬機(jī)Ml、虛擬機(jī)M2和虛擬機(jī)M3運(yùn)行同一應(yīng)用A,并基于所述應(yīng)用A分別在虛擬機(jī)Ml、虛擬機(jī)M2和虛擬機(jī)M3中的運(yùn)行信息來管理所述虛擬機(jī)Ml、M2、M3中的所述應(yīng)用A的運(yùn)行。比如,所述策略控制模塊13根據(jù)虛擬機(jī)M2中的應(yīng)用A的當(dāng)前會(huì)話數(shù)400與預(yù)設(shè)的應(yīng)用A的最大會(huì)話數(shù)450進(jìn)行比較,確定不再向虛擬機(jī)M2中的應(yīng)用A分配新的用戶訪問請(qǐng)求,轉(zhuǎn)而將新的用戶訪問請(qǐng)求分配給虛擬機(jī)Ml或虛擬機(jī)M3中的應(yīng)用A,以此來均衡虛擬機(jī)Ml、M2和M3的負(fù)載。
[0112]2)基于分析結(jié)果,指示部署模塊11向未運(yùn)行該應(yīng)用的虛擬機(jī)部署所述應(yīng)用及相應(yīng)的第一獲取模塊。
[0113]需要說明的是,所述第二獲取模塊12在獲取當(dāng)前各虛擬機(jī)所提供的運(yùn)行信息,并由所述策略控制模塊13對(duì)所獲取的某一個(gè)應(yīng)用的運(yùn)行信息進(jìn)行策略控制的同時(shí),所述部署模塊11還可以基于所述策略控制模塊13輸出的部署指令向指定虛擬機(jī)部署新的應(yīng)用,并獲取新的應(yīng)用的運(yùn)行信息。
[0114]綜上所述,本發(fā)明實(shí)施例提供的對(duì)虛擬機(jī)進(jìn)行管理的方法及系統(tǒng),所述云服務(wù)器通過在虛擬機(jī)中部署的第一獲取模塊來獲取在虛擬機(jī)中運(yùn)行的各應(yīng)用的運(yùn)行信息,并通過對(duì)所述運(yùn)行信息的分析對(duì)運(yùn)行相應(yīng)應(yīng)用的虛擬機(jī)進(jìn)行策略控制,如此,能夠解決現(xiàn)有的云服務(wù)器無法基于虛擬機(jī)上運(yùn)行的應(yīng)用對(duì)虛擬機(jī)進(jìn)行管理的問題;同時(shí),能夠?qū)崟r(shí)對(duì)各虛擬機(jī)進(jìn)行策略控制,以供虛擬機(jī)改變應(yīng)用的運(yùn)行情況或運(yùn)行環(huán)境。
[0115]另外,所述虛擬機(jī)在獲取到各應(yīng)用的運(yùn)行信息時(shí),先基于各所述運(yùn)行信息甄別相應(yīng)的應(yīng)用是否臨近或超出預(yù)設(shè)的所述應(yīng)用正常運(yùn)行的范圍,能夠分擔(dān)云服務(wù)器的負(fù)擔(dān)。
[0116]所述云服務(wù)器還通過對(duì)所獲取的各運(yùn)行信息進(jìn)行識(shí)別,來確定不同虛擬機(jī)上運(yùn)行的同一應(yīng)用的運(yùn)行情況,然后對(duì)各虛擬機(jī)進(jìn)行策略控制,使得同一應(yīng)用在各虛擬機(jī)上的都能正常運(yùn)行。
[0117]再有,每一個(gè)第一獲取模塊通過注冊(cè)的方式把各自的信息告知所在的虛擬機(jī),以便虛擬機(jī)利用輪詢機(jī)制向已注冊(cè)的第一獲取模塊發(fā)出輪詢指令,由此能夠有針對(duì)性的管理虛擬機(jī)上運(yùn)行的應(yīng)用,而不必獲取一些臨時(shí)運(yùn)行的應(yīng)用的運(yùn)行信息,以提高管理效率,減少垃圾信息產(chǎn)生。
[0118]此外,所述虛擬機(jī)與所述云服務(wù)器通過定期通信來確保彼此的通信連接,有利于當(dāng)所述虛擬機(jī)所在物理設(shè)備異?;蚓W(wǎng)絡(luò)異常時(shí),所述云服務(wù)器及時(shí)報(bào)警或按照應(yīng)急預(yù)案予以及時(shí)處理,以確保各應(yīng)用能夠穩(wěn)定運(yùn)行。
[0119]本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:R0M、RAM、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0120]最后應(yīng)說明的是:以上各實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。
[0121]上述實(shí)施例僅示例性說明本發(fā)明的原理及其功效,而非用于限制本發(fā)明。任何熟悉此技術(shù)的人士皆可在不違背本發(fā)明的精神及范疇下,對(duì)上述實(shí)施例進(jìn)行修飾或改變。因此,舉凡所屬【技術(shù)領(lǐng)域】中具有通常知識(shí)者在未脫離本發(fā)明所揭示的精神與技術(shù)思想下所完成的一切等效修飾或改變,仍應(yīng)由本發(fā)明的權(quán)利要求所涵蓋。
【權(quán)利要求】
1.一種對(duì)虛擬機(jī)進(jìn)行管理的方法,應(yīng)用于由云服務(wù)器及與所述云服務(wù)器通信連接的包含至少一個(gè)虛擬機(jī)的計(jì)算機(jī)設(shè)備所構(gòu)成的系統(tǒng)中,其特征在于,至少包括: 所述云服務(wù)器基于獲取的部署指令,利用預(yù)設(shè)的各應(yīng)用的描述信息,將相應(yīng)的應(yīng)用及用于獲取相應(yīng)應(yīng)用的運(yùn)行信息的第一獲取模塊部署到至少一個(gè)所述虛擬機(jī)上; 所述云服務(wù)器獲取在每一個(gè)所述虛擬機(jī)上運(yùn)行的所述應(yīng)用的運(yùn)行信息; 所述云服務(wù)器對(duì)獲取的每一個(gè)所述運(yùn)行信息進(jìn)行分析,并基于分析結(jié)果對(duì)運(yùn)行相應(yīng)應(yīng)用的虛擬機(jī)進(jìn)行策略控制。
2.根據(jù)權(quán)利要求1所述的對(duì)虛擬機(jī)進(jìn)行管理的方法,其特征在于,所述云服務(wù)器部署所述應(yīng)用和第一獲取模塊包括:所述云服務(wù)器基于預(yù)設(shè)的各應(yīng)用的描述信息,向至少一個(gè)所述虛擬機(jī)部署至少一個(gè)所述應(yīng)用及所述第一獲取模塊。
3.根據(jù)權(quán)利要求1所述的對(duì)虛擬機(jī)進(jìn)行管理的方法,其特征在于,所述云服務(wù)器獲取在每一個(gè)所述虛擬機(jī)上運(yùn)行的所述應(yīng)用的運(yùn)行信息包括:由所述虛擬機(jī)基于輪詢機(jī)制向每一個(gè)第一獲取模塊發(fā)出用于獲取應(yīng)用的運(yùn)行信息的指令,以便各第一獲取模塊獲取相應(yīng)應(yīng)用的運(yùn)行信息,再將獲取的所有運(yùn)行信息發(fā)送至所述云服務(wù)器。
4.根據(jù)權(quán)利要求3所述的對(duì)虛擬機(jī)進(jìn)行管理的方法,其特征在于,所述云服務(wù)器獲取在每一個(gè)所述虛擬機(jī)上運(yùn)行的所述應(yīng)用的運(yùn)行信息還包括:各所述第一獲取模塊在運(yùn)行之前向其所在的虛擬機(jī)進(jìn)行注冊(cè),以便所述虛擬機(jī)利用第一獲取模塊的注冊(cè)信息,輪詢已注冊(cè)的各第一獲取模塊,進(jìn)而取得相應(yīng)應(yīng)用的運(yùn)行信息。
5.根據(jù)權(quán)利要求1所述的對(duì)虛擬機(jī)進(jìn)行管理的方法,其特征在于,所述云服務(wù)器基于分析結(jié)果對(duì)運(yùn)行相應(yīng)應(yīng)用的虛擬機(jī)進(jìn)行策略控制包括: 所述云服務(wù)器從獲取的多個(gè)運(yùn)行信息中識(shí)別來自不同虛擬機(jī)的同一應(yīng)用的運(yùn)行信息;以及 所述云服務(wù)器分析來自多個(gè)虛擬機(jī)的同一應(yīng)用的所述運(yùn)行信息,并基于分析結(jié)果對(duì)至少一個(gè)虛擬機(jī)進(jìn)行策略控制。
6.根據(jù)權(quán)利要求1或5所述的對(duì)虛擬機(jī)進(jìn)行管理的方法,其特征在于,所述云服務(wù)器基于分析結(jié)果對(duì)運(yùn)行相應(yīng)應(yīng)用的虛擬機(jī)進(jìn)行策略控制包括:所述云服務(wù)器基于分析結(jié)果,向運(yùn)行相應(yīng)應(yīng)用的虛擬機(jī)發(fā)送用于改變所述應(yīng)用及相應(yīng)的第一獲取模塊運(yùn)行的指令。
7.根據(jù)權(quán)利要求6所述的對(duì)虛擬機(jī)進(jìn)行管理的方法,其特征在于,所述用于改變所述應(yīng)用及相應(yīng)的第一獲取模塊運(yùn)行的指令至少包括以下一種:啟動(dòng)指令、暫停指令和停止指令。
8.根據(jù)權(quán)利要求1或5所述的對(duì)虛擬機(jī)進(jìn)行管理的方法,其特征在于,所述云服務(wù)器基于分析結(jié)果對(duì)運(yùn)行相應(yīng)應(yīng)用的虛擬機(jī)進(jìn)行策略控制包括:所述云服務(wù)器基于分析結(jié)果,生成部署指令,以便通過重新執(zhí)行部署的步驟,向未運(yùn)行所述應(yīng)用的虛擬機(jī)部署所述應(yīng)用及相應(yīng)的第一獲取模塊。
9.根據(jù)權(quán)利要求1所述的對(duì)虛擬機(jī)進(jìn)行管理的方法,其特征在于,所述方法還包括:所述虛擬機(jī)監(jiān)控所述第一獲取模塊獲取的運(yùn)行信息,并判斷所述運(yùn)行信息對(duì)應(yīng)的應(yīng)用是否臨近或超出預(yù)設(shè)的相應(yīng)應(yīng)用正常運(yùn)行的范圍,若臨近或超出預(yù)設(shè)的相應(yīng)應(yīng)用正常運(yùn)行的范圍,則將所述運(yùn)行信息提供給所述云服務(wù)器;若未臨近或超出預(yù)設(shè)的相應(yīng)應(yīng)用正常運(yùn)行的范圍,則繼續(xù)監(jiān)控。
10.根據(jù)權(quán)利要求1所述的對(duì)虛擬機(jī)進(jìn)行管理的方法,其特征在于,所述方法還包括:在所述虛擬機(jī)將獲取的各應(yīng)用的運(yùn)行信息發(fā)送給所述云服務(wù)器,所述云服務(wù)器基于獲取的所述各應(yīng)用的運(yùn)行信息進(jìn)行分析并執(zhí)行相應(yīng)的策略控制的同時(shí),所述虛擬機(jī)和所述云服務(wù)器之間還保持通信。
11.根據(jù)權(quán)利要求10所述的對(duì)虛擬機(jī)進(jìn)行管理的方法,其特征在于,所述虛擬機(jī)和所述云服務(wù)器之間保持通信的方式包括:基于心跳機(jī)制保持所述虛擬機(jī)與所述云服務(wù)器之間的通信。
12.一種對(duì)虛擬機(jī)進(jìn)行管理的系統(tǒng),所述系統(tǒng)包括云服務(wù)器及與所述云服務(wù)器通信連接的包含至少一個(gè)虛擬機(jī)的計(jì)算機(jī)設(shè)備,其特征在于, 所述云服務(wù)器包括: 部署模塊,用于基于獲取的部署指令,利用預(yù)設(shè)的各應(yīng)用的描述信息,將相應(yīng)的應(yīng)用及用于獲取相應(yīng)應(yīng)用的運(yùn)行信息的第一獲取模塊部署到至少一個(gè)所述虛擬機(jī)上; 第二獲取模塊,用于獲取由所述部署模塊部署在每一個(gè)所述虛擬機(jī)上的所述應(yīng)用的運(yùn)行信息; 策略控制模塊,用于對(duì)所述第二獲取模塊獲取的每一個(gè)所述運(yùn)行信息進(jìn)行分析,并基于分析結(jié)果對(duì)運(yùn)行相應(yīng)應(yīng)用的虛擬機(jī)進(jìn)行策略控制。
13.根據(jù)權(quán)利要求12所述的對(duì)虛擬機(jī)進(jìn)行管理的系統(tǒng),其特征在于,所述部署模塊進(jìn)一步用于基于預(yù)設(shè)的各應(yīng)用的描述信息,向至少一個(gè)所述虛擬機(jī)部署至少一個(gè)所述應(yīng)用及所述第一獲取模塊。
14.根據(jù)權(quán)利要求12所述的對(duì)虛擬機(jī)進(jìn)行管理的系統(tǒng),其特征在于,所述策略控制模塊包括: 識(shí)別子模塊,用于從所述第二獲取模塊獲取的多個(gè)運(yùn)行信息中識(shí)別來自不同虛擬機(jī)的同一應(yīng)用的運(yùn)行信息。
15.根據(jù)權(quán)利要求12或14所述的對(duì)虛擬機(jī)進(jìn)行管理的系統(tǒng),其特征在于,所述策略控制模塊具體用于基于分析結(jié)果,向運(yùn)行相應(yīng)應(yīng)用的虛擬機(jī)發(fā)送用于改變所述應(yīng)用及相應(yīng)的第一獲取模塊運(yùn)行的指令。
16.根據(jù)權(quán)利要求15所述的對(duì)虛擬機(jī)進(jìn)行管理的系統(tǒng),其特征在于,所述用于改變所述應(yīng)用及相應(yīng)的第一獲取模塊運(yùn)行的指令至少包括以下一種:啟動(dòng)指令、暫停指令和停止指令。
17.根據(jù)權(quán)利要求12或14所述的對(duì)虛擬機(jī)進(jìn)行管理的系統(tǒng),其特征在于,所述策略控制模塊具體用于基于分析結(jié)果,向所述部署模塊發(fā)出所述部署指令,以便所述部署模炔基于所述部署指令在未運(yùn)行相應(yīng)應(yīng)用的虛擬機(jī)上部署所述應(yīng)用及相應(yīng)的第一獲取模塊。
【文檔編號(hào)】H04L29/06GK103502939SQ201380000525
【公開日】2014年1月8日 申請(qǐng)日期:2013年2月7日 優(yōu)先權(quán)日:2013年2月7日
【發(fā)明者】余祥, 成淑敏, 李寧, 宋哲炫, 朱星 申請(qǐng)人:華為技術(shù)有限公司