本發(fā)明涉及虛擬機(jī)領(lǐng)域,尤指一種管理虛擬機(jī)狀態(tài)的方法、裝置和虛擬化管理中心。
背景技術(shù):
虛擬化管理中心保存其管理的虛擬機(jī)信息,并根據(jù)主機(jī)上報(bào)的虛擬機(jī)信息定時(shí)更新虛擬機(jī)信息。由于虛擬機(jī)內(nèi)部的自動重啟,主機(jī)在兩個(gè)上報(bào)周期內(nèi)沒有上報(bào)虛擬機(jī)狀態(tài),虛擬化管理中心會刪除該主機(jī)的虛擬機(jī)信息。這樣導(dǎo)致虛擬化管理中心認(rèn)為該虛擬機(jī)可以在主機(jī)上啟動,如果在上報(bào)的主機(jī)上啟動,導(dǎo)致虛擬機(jī)重啟失敗,如果在其他的主機(jī)上啟動,導(dǎo)致虛擬機(jī)在多臺主機(jī)上啟動。因而現(xiàn)有技術(shù)中存在無法合理管理虛擬機(jī)狀態(tài)而導(dǎo)致虛擬機(jī)重啟失敗或多起等問題。
技術(shù)實(shí)現(xiàn)要素:
為了解決上述管理虛擬機(jī)狀態(tài)的技術(shù)問題,本發(fā)明方案提供了一種管理虛擬機(jī)狀態(tài)的方法、裝置和虛擬化管理中心。
本發(fā)明提供了一種管理虛擬機(jī)狀態(tài)的方法,該方法包括:接收主機(jī)上報(bào)的第一虛擬機(jī)信息列表,所述第一虛擬機(jī)信息列表中包括所述主機(jī)上運(yùn)行的所有虛擬機(jī)的ID和狀態(tài)信息;當(dāng)所述第一虛擬機(jī)信息列表中存在與在本地保存的所述主機(jī)對應(yīng)的第二虛擬機(jī)信息列表中不同的虛擬機(jī)ID,并在本地保存的除所述第二虛擬機(jī)信息列表之外的其他虛擬機(jī)列表中查詢到所述不同的虛擬機(jī)ID和所述不同的虛擬機(jī)ID對應(yīng)的虛擬機(jī)狀態(tài)時(shí),根據(jù)查詢結(jié)果管理虛擬機(jī)狀態(tài)。
優(yōu)選的,當(dāng)所述查詢結(jié)果為,在所述其他虛擬機(jī)列表中所述不同虛擬機(jī)ID對應(yīng)的虛擬機(jī)狀態(tài)為關(guān)機(jī)狀態(tài),則根據(jù)所述第一虛擬機(jī)信息列表更新所述不同的虛擬機(jī)ID對應(yīng)的主機(jī)和狀態(tài)信息。
優(yōu)選的,當(dāng)所述查詢結(jié)果為,在所述其他虛擬機(jī)列表中所述不同虛擬機(jī)ID對應(yīng)的虛擬機(jī)狀態(tài)為以下至少之一時(shí):掛起、掛死、暫停、離線,則觸發(fā)告警。優(yōu)選的,該方法還包括,當(dāng)在本地保存的其他虛擬機(jī)列表中未查詢所述不同的虛擬機(jī)ID時(shí),丟棄所述第一虛擬機(jī)信息列表中所述不同的虛擬機(jī)ID對應(yīng)的信息。
本發(fā)明化提供了一種管理虛擬機(jī)狀態(tài)的裝置,該裝置包括:接收模塊, 用于接收主機(jī)上報(bào)的第一虛擬機(jī)信息列表,所述第一虛擬機(jī)信息列表中包括所述主機(jī)上運(yùn)行的所有虛擬機(jī)的ID和狀態(tài)信息;處理模塊,用于當(dāng)所述第一虛擬機(jī)信息列表中存在與在本地保存的所述主機(jī)對應(yīng)的第二虛擬機(jī)信息列表中不同的虛擬機(jī)ID,并在本地保存的除所述第二虛擬機(jī)信息列表之外的其他虛擬機(jī)列表中查詢到所述不同的虛擬機(jī)ID和所述不同的虛擬機(jī)ID對應(yīng)的虛擬機(jī)狀態(tài)時(shí),根據(jù)查詢結(jié)果管理虛擬機(jī)狀態(tài)。
優(yōu)選的,所述處理模塊,具體用于,當(dāng)所述查詢結(jié)果為,在所述其他虛擬機(jī)列表中所述不同虛擬機(jī)ID對應(yīng)的虛擬機(jī)狀態(tài)為關(guān)機(jī)狀態(tài),則根據(jù)所述第一虛擬機(jī)信息列表更新所述不同的虛擬機(jī)ID對應(yīng)的主機(jī)和狀態(tài)信息。
優(yōu)選的,所述處理模塊,具體用于,當(dāng)所述查詢結(jié)果為,在所述其他虛擬機(jī)列表中所述不同虛擬機(jī)ID對應(yīng)的虛擬機(jī)狀態(tài)為掛起或掛死或或暫?;螂x線或未知狀態(tài),則觸發(fā)告警。
優(yōu)選的,所述處理模塊,具體用于,當(dāng)所述查詢結(jié)果為,在所述其他虛擬機(jī)列表中所述不同虛擬機(jī)ID對應(yīng)的虛擬機(jī)狀態(tài)為運(yùn)行狀態(tài),則觸發(fā)告警。
本發(fā)明還提供了一種虛擬化管理中心,所述虛擬機(jī)管理中心包括數(shù)據(jù)庫和處理器;所述數(shù)據(jù)庫中保存有所述虛擬機(jī)管理中心管理的所有虛擬機(jī)的信息,所述信息包括虛擬機(jī)ID、虛擬機(jī)狀態(tài)、歸屬主機(jī);所述處理器用于當(dāng)所述第一虛擬機(jī)信息列表中存在與在本地保存的所述主機(jī)對應(yīng)的第二虛擬機(jī)信息列表中不同的虛擬機(jī)ID,并在本地保存的除所述第二虛擬機(jī)信息列表之外的其他虛擬機(jī)列表中查詢到所述不同的虛擬機(jī)ID和所述不同的虛擬機(jī)ID對應(yīng)的虛擬機(jī)狀態(tài)時(shí),根據(jù)查詢結(jié)果管理虛擬機(jī)狀態(tài)。
通過本發(fā)明方案,接收主機(jī)上報(bào)的第一虛擬機(jī)信息列表,所述第一虛擬機(jī)信息列表中包括所述主機(jī)上運(yùn)行的所有虛擬機(jī)的ID和狀態(tài)信息;當(dāng)所述第一虛擬機(jī)信息列表中存在與在本地保存的所述主機(jī)對應(yīng)的第二虛擬機(jī)信息列表中不同的虛擬機(jī)ID,并在本地保存的其他虛擬機(jī)列表中查詢到所述不同的虛擬機(jī)ID時(shí),根據(jù)查詢結(jié)果進(jìn)行相應(yīng)處理??梢酝ㄟ^告警機(jī)制,合理管理和更新虛擬機(jī)狀態(tài)信息,進(jìn)而避免了虛擬機(jī)啟動失敗或者多起的問題。
本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過在說明書、權(quán)利要求書以及附圖中所特別指出的結(jié)構(gòu)來實(shí)現(xiàn)和獲得。
附圖說明
附圖用來提供對本發(fā)明技術(shù)方案的進(jìn)一步理解,并且構(gòu)成說明書的一部分,與本申請的實(shí)施例一起用于解釋本發(fā)明的技術(shù)方案,并不構(gòu)成對本發(fā)明技術(shù)方案的限制。
圖1為本發(fā)明具體實(shí)施方式的一種管理虛擬機(jī)狀態(tài)的方法的流程圖;
圖2為本發(fā)明一種管理虛擬機(jī)狀態(tài)的方法的具體應(yīng)用場景的示意圖;
圖3為本發(fā)明具體實(shí)施方式的一種管理虛擬機(jī)狀態(tài)的裝置的結(jié)構(gòu)示意圖;
圖4為本發(fā)明具體實(shí)施方式的一種虛擬化管理中心的結(jié)構(gòu)圖結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下文中將結(jié)合附圖對本發(fā)明的實(shí)施例進(jìn)行詳細(xì)說明。需要說明的是,在不沖突的情況下,本申請中的實(shí)施例及實(shí)施例中的特征可以相互任意組合。
在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行。并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
本發(fā)明實(shí)施例提供了一種管理虛擬機(jī)狀態(tài)的方法,如圖1所示,該方法包括:
步驟101,接收主機(jī)上報(bào)的第一虛擬機(jī)信息列表,所述第一虛擬機(jī)信息列表中包括所述主機(jī)上運(yùn)行的所有虛擬機(jī)的ID和狀態(tài)信息;
步驟103,當(dāng)所述第一虛擬機(jī)信息列表中存在與在本地保存的所述主機(jī)對應(yīng)的第二虛擬機(jī)信息列表中不同的虛擬機(jī)ID,并在本地保存的除所述第二虛擬機(jī)信息列表之外的其他虛擬機(jī)列表中查詢到所述不同的虛擬機(jī)ID和所述不同的虛擬機(jī)ID對應(yīng)的虛擬機(jī)狀態(tài)時(shí),根據(jù)查詢結(jié)果管理虛擬機(jī)狀態(tài)。
具體的,當(dāng)所述查詢結(jié)果為,在所述其他虛擬機(jī)列表中所述不同虛擬機(jī)ID對應(yīng)的虛擬機(jī)狀態(tài)為關(guān)機(jī)狀態(tài),則根據(jù)所述第一虛擬機(jī)信息列表更新所述不同的虛擬機(jī)ID對應(yīng)的主機(jī)和狀態(tài)信息。
具體的,當(dāng)所述查詢結(jié)果為,在所述其他虛擬機(jī)列表中所述不同虛擬機(jī)ID對應(yīng)的虛擬機(jī)狀態(tài)為掛起或掛死或或暫?;螂x線或未知狀態(tài),則觸發(fā)告警。
具體的,當(dāng)所述查詢結(jié)果為,在所述其他虛擬機(jī)列表中所述不同虛擬機(jī)ID對應(yīng)的虛擬機(jī)狀態(tài)為運(yùn)行狀態(tài),則觸發(fā)告警。
具體的,該方法還包括,當(dāng)在本地保存的其他虛擬機(jī)列表中未查詢所述不同的虛擬機(jī)ID時(shí),丟棄所述第一虛擬機(jī)信息列表中所述不同的虛擬機(jī)ID對應(yīng)的信息。
下面通過下面的實(shí)例進(jìn)行詳細(xì)闡述,該實(shí)例以虛擬化管理中心(Virtual management center,簡稱為VMC)為執(zhí)行主體,其中,虛擬化管理中心VMC在內(nèi)存和數(shù)據(jù)庫中保存了歸屬其管理的所有虛擬機(jī)信息,包括包括虛擬機(jī)各自的ID、虛擬機(jī)運(yùn)行在哪臺主機(jī)下、虛擬機(jī)當(dāng)前狀態(tài)等信息。即VMC保存了歸屬其管理的所有主機(jī)對應(yīng)的虛擬機(jī)信息列表(vmlist)。對應(yīng)的主機(jī)向 虛擬化管理中心定時(shí)上報(bào)其虛擬機(jī)信息列表,包含當(dāng)前主機(jī)上運(yùn)行的所有的虛擬機(jī)信息,包括虛擬機(jī)ID(例如,可以是通用唯一識別碼(Universally Unique Identifier,簡稱為UUID))、運(yùn)行狀態(tài)等,VMC收到這條消息后,同步更新內(nèi)存或數(shù)據(jù)庫中的虛擬機(jī)信息列表,包括該虛機(jī)運(yùn)行在哪臺主機(jī)下、當(dāng)前狀態(tài)等信息。
具體的,VMC如果判斷這臺主機(jī)上報(bào)上來的vmlist中和VMC中保存的該主機(jī)的vmlist中的虛擬機(jī)UUID都一致,則逐一將內(nèi)存和數(shù)據(jù)庫中的虛機(jī)狀態(tài)更新成最新的,即更新為上報(bào)的信息。
本發(fā)明實(shí)例提供了如下優(yōu)化實(shí)例,來解決上述問題。
1、根據(jù)上報(bào)的vmlist,到VMC內(nèi)存保存的vmlist中循環(huán)比較查詢,如果查詢不到,則說明該上報(bào)的虛擬機(jī)并非VMC管理的虛擬機(jī),則VMC對該上報(bào)的虛擬機(jī)消息不做處理。;
2、如果能查詢到,則說明該上報(bào)的虛擬機(jī)屬于VMC管理的虛擬機(jī),獲取該虛擬機(jī)在VMC保存狀態(tài)。虛擬機(jī)狀態(tài)可以為虛擬機(jī)不在主機(jī)上或虛擬機(jī)處于運(yùn)行狀態(tài)或虛擬機(jī)處于掛死狀態(tài)或虛擬機(jī)掛起狀態(tài)或虛擬機(jī)暫停狀態(tài)或虛擬機(jī)離線狀態(tài)或虛擬機(jī)未知狀態(tài);
3、如果該虛擬機(jī)是VMC管理的虛機(jī),且該虛擬機(jī)處于關(guān)機(jī)狀態(tài),則以主機(jī)上報(bào)的虛機(jī)狀態(tài)為準(zhǔn),將VMC中該虛機(jī)的運(yùn)行主機(jī)和狀態(tài)等信息更新成與主機(jī)上報(bào)的信息一致;
4、如果該虛擬機(jī)是VMC管理的虛機(jī),且VMC側(cè)保存的該虛擬機(jī)狀態(tài)為掛起或掛死或或暫?;螂x線或未知狀態(tài),此時(shí)VMC觸發(fā)告警;
5、如果該虛機(jī)是VMC管理的虛機(jī),且VMC側(cè)保存的該虛機(jī)是處于運(yùn)行狀態(tài)(運(yùn)行在其他主機(jī)),則說明該虛機(jī)存在多起的問題,此時(shí)VMC觸發(fā)告警。
當(dāng)VMC判斷這臺主機(jī)的上報(bào)上來的vmlist中存在的虛擬機(jī)ID,在VMC的內(nèi)存保存的該主機(jī)的vmlist中找不到時(shí),如果VMC不再進(jìn)行其他控制,在現(xiàn)網(wǎng)運(yùn)行過程中容易導(dǎo)致虛機(jī)多起的情況發(fā)生,因?yàn)閂MC側(cè)認(rèn)為該虛擬機(jī)是處于關(guān)閉狀態(tài)的,可以從界面正常發(fā)起啟動的,這樣如果啟動在當(dāng)前主機(jī),則虛擬機(jī)啟動失敗,如果啟動在其他主機(jī),就會導(dǎo)致虛機(jī)雙起。通過本發(fā)明方案通過告警機(jī)制,及時(shí)向管理或者運(yùn)維人員發(fā)送給告警,然后通過干預(yù)機(jī)制解決虛擬機(jī)啟動失敗或多起等問題。
下面闡述一本發(fā)明一種管理虛擬機(jī)狀態(tài)的方法的具體應(yīng)用場景,如圖2所示,
1、主機(jī)1每隔30秒定時(shí)向虛擬化管理中心vmc上報(bào)本主機(jī)上的虛擬機(jī)信息列表(虛擬機(jī)1到虛擬機(jī)n)。
2、虛擬化管理中心vmc本地保存的的虛擬機(jī)信息列表中沒有虛擬機(jī)n,此時(shí)虛擬化管理中心vmc認(rèn)為虛擬機(jī)n可以在主機(jī)上啟動,如果在主機(jī)1上啟動,則啟動失敗,在主機(jī)2上啟動,則造成虛擬機(jī)在多臺主機(jī)上重啟。
3、為克服上述問題,需要在主機(jī)1上報(bào)虛擬機(jī)信息列表時(shí)進(jìn)行處理。如果該虛擬機(jī)n是VMC管理的虛擬機(jī),并且VMC側(cè)保存的該虛擬機(jī)是處于關(guān)機(jī)狀態(tài),則以主機(jī)1上報(bào)的虛機(jī)狀態(tài)為準(zhǔn),將VMC中該虛擬機(jī)的運(yùn)行主機(jī)和狀態(tài)等信息更新成與主機(jī)上報(bào)信息一致;如果該虛機(jī)是VMC管理的虛機(jī),并且VMC側(cè)保存的該虛擬機(jī)是處于開機(jī)運(yùn)行狀態(tài)(運(yùn)行在其他主機(jī),比如主機(jī)2),則說明該虛機(jī)存在多起的問題,此時(shí)VMC觸發(fā)告警??梢韵蚓W(wǎng)管或者虛擬機(jī)管理單元等發(fā)送告警信息,可也以設(shè)定具體的虛擬機(jī)管理界面接收告警信息。
本系統(tǒng)和方法的目標(biāo)是同步虛擬化管理中心和主機(jī)實(shí)時(shí)上報(bào)的虛擬機(jī)狀態(tài)信息。也可以針對在多主機(jī)啟動的虛擬機(jī)發(fā)送告警給虛擬機(jī)管理界面,進(jìn)行相關(guān)處理。后續(xù)處理跟本發(fā)明實(shí)施例方案無關(guān),暫不詳述。
本發(fā)明實(shí)施例還提供了一種管理虛擬機(jī)狀態(tài)的裝置,如圖3所示,該裝置包括:
接收模塊,用于接收主機(jī)上報(bào)的第一虛擬機(jī)信息列表,所述第一虛擬機(jī)信息列表中包括所述主機(jī)上運(yùn)行的所有虛擬機(jī)的ID和狀態(tài)信息;
處理模塊,當(dāng)所述第一虛擬機(jī)信息列表中存在與在本地保存的所述主機(jī)對應(yīng)的第二虛擬機(jī)信息列表中不同的虛擬機(jī)ID,并在本地保存的除所述第二虛擬機(jī)信息列表之外的其他虛擬機(jī)列表中查詢到所述不同的虛擬機(jī)ID和所述不同的虛擬機(jī)ID對應(yīng)的虛擬機(jī)狀態(tài)時(shí),根據(jù)查詢結(jié)果管理虛擬機(jī)狀態(tài)。
具體的,當(dāng)所述查詢結(jié)果為,在所述其他虛擬機(jī)列表中所述不同虛擬機(jī)ID對應(yīng)的虛擬機(jī)狀態(tài)為關(guān)機(jī)狀態(tài),則根據(jù)所述第一虛擬機(jī)信息列表更新所述不同的虛擬機(jī)ID對應(yīng)的主機(jī)和狀態(tài)信息。
具體的,當(dāng)所述查詢結(jié)果為,在所述其他虛擬機(jī)列表中所述不同虛擬機(jī)ID對應(yīng)的虛擬機(jī)狀態(tài)為掛起或掛死或或暫停或離線或未知狀態(tài),則觸發(fā)告警。
具體的,當(dāng)所述查詢結(jié)果為,在所述其他虛擬機(jī)列表中所述不同虛擬機(jī)ID對應(yīng)的虛擬機(jī)狀態(tài)為運(yùn)行狀態(tài),則觸發(fā)告警。
具體的,該方法還包括,當(dāng)在本地保存的其他虛擬機(jī)列表中未查詢所述不同的虛擬機(jī)ID時(shí),丟棄所述第一虛擬機(jī)信息列表中所述不同的虛擬機(jī)ID對應(yīng)的信息。
本發(fā)明實(shí)施例中,還提供一種虛擬化管理中心,如圖4所示,所述虛擬機(jī)管理中心包括數(shù)據(jù)庫和處理器;
所述數(shù)據(jù)庫中保存有所述虛擬機(jī)管理中心管理的所有虛擬機(jī)的信息,所述信息包括虛擬機(jī)ID、虛擬機(jī)狀態(tài)、歸屬主機(jī)等信息;
所述處理器用于接收主機(jī)上報(bào)的第一虛擬機(jī)信息列表,所述第一虛擬機(jī)信息列表中包括所述主機(jī)上運(yùn)行的所有虛擬機(jī)的ID和狀態(tài)信息;
當(dāng)所述第一虛擬機(jī)信息列表中存在與在本地保存的所述主機(jī)對應(yīng)的第二虛擬機(jī)信息列表中不同的虛擬機(jī)ID,并在本地保存的除所述第二虛擬機(jī)信息列表之外的其他虛擬機(jī)列表中查詢到所述不同的虛擬機(jī)ID和所述不同的虛擬 機(jī)ID對應(yīng)的虛擬機(jī)狀態(tài)時(shí),根據(jù)查詢結(jié)果管理虛擬機(jī)狀態(tài)。
具體的,上述數(shù)據(jù)庫可以是內(nèi)存數(shù)據(jù)庫也可以是其他存儲設(shè)備。
具體的,上述虛擬化管理中心還可以包括虛擬機(jī)管理界面,用于接收處理器發(fā)出的告警,并展示給運(yùn)維或其他管理人員,后續(xù)針對告警如何處理不是本發(fā)明內(nèi)容,暫不詳細(xì)敘述。
具體的,當(dāng)所述查詢結(jié)果為,在所述其他虛擬機(jī)列表中所述不同虛擬機(jī)ID對應(yīng)的虛擬機(jī)狀態(tài)為關(guān)機(jī)狀態(tài),則根據(jù)所述第一虛擬機(jī)信息列表更新所述不同的虛擬機(jī)ID對應(yīng)的主機(jī)和狀態(tài)信息。
具體的,當(dāng)所述查詢結(jié)果為,在所述其他虛擬機(jī)列表中所述不同虛擬機(jī)ID對應(yīng)的虛擬機(jī)狀態(tài)為掛起或掛死或或暫?;螂x線或未知狀態(tài),則觸發(fā)告警。
具體的,當(dāng)所述查詢結(jié)果為,在所述其他虛擬機(jī)列表中所述不同虛擬機(jī)ID對應(yīng)的虛擬機(jī)狀態(tài)為運(yùn)行狀態(tài),則觸發(fā)告警。
具體的,該方法還包括,當(dāng)在本地保存的其他虛擬機(jī)列表中未查詢所述不同的虛擬機(jī)ID時(shí),丟棄所述第一虛擬機(jī)信息列表中所述不同的虛擬機(jī)ID對應(yīng)的信息。
采取上述方案,針對虛擬機(jī)狀態(tài)進(jìn)行及時(shí)管理,規(guī)避了虛擬機(jī)啟動失敗或者在多主機(jī)虛擬機(jī)重復(fù)啟動等問題。
在另外一個(gè)實(shí)施例中,還提供了一種軟件,該軟件用于執(zhí)行上述實(shí)施例及優(yōu)選實(shí)施方式中描述的技術(shù)方案。
在另外一個(gè)實(shí)施例中,還提供了一種存儲介質(zhì),該存儲介質(zhì)中存儲有上述軟件,該存儲介質(zhì)包括但不限于:光盤、軟盤、硬盤、可擦寫存儲器等。
雖然本發(fā)明所揭露的實(shí)施方式如上所述,但所述的內(nèi)容僅為便于理解本發(fā)明而采用的實(shí)施方式,并非用以限定本發(fā)明。任何本發(fā)明所屬領(lǐng)域內(nèi)的技術(shù)人員,在不脫離本發(fā)明所揭露的精神和范圍的前提下,可以在實(shí)施的形式及細(xì)節(jié)上進(jìn)行任何的修改與變化,但本發(fā)明的專利保護(hù)范圍,仍須以所附的權(quán)利要求書所界定的范圍為準(zhǔn)。