一種檢測(cè)云平臺(tái)中虛擬機(jī)異常狀態(tài)的方法、裝置和系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開(kāi)了一種檢測(cè)云平臺(tái)中虛擬機(jī)異常狀態(tài)的方法、裝置和系統(tǒng)。其中所述方法包括:向虛擬機(jī)所在宿主機(jī)上的虛擬機(jī)代理發(fā)送執(zhí)行指令;其中,一個(gè)虛擬機(jī)對(duì)應(yīng)一個(gè)虛擬機(jī)代理;接收所述虛擬機(jī)代理返回的指令執(zhí)行結(jié)果;分析所述指令執(zhí)行結(jié)果并根據(jù)分析結(jié)果判斷相應(yīng)虛擬機(jī)的狀態(tài)是否異常。上述方法、裝置和系統(tǒng)可以更為準(zhǔn)確地判斷云平臺(tái)中虛擬機(jī)是否處于異常狀態(tài),并且檢測(cè)速度快,具有高效準(zhǔn)確的特點(diǎn),易于實(shí)用。
【專利說(shuō)明】
一種檢測(cè)云平臺(tái)中虛擬機(jī)異常狀態(tài)的方法、裝置和系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體涉及一種檢測(cè)云平臺(tái)中虛擬機(jī)異常狀態(tài)的方法、裝置和系統(tǒng)。
【背景技術(shù)】
[0002]在云平臺(tái)中部署虛擬機(jī)可以提高軟件開(kāi)發(fā)測(cè)試等工作的效率,而高效完成這些工作的前提是虛擬機(jī)處于正常工作的狀態(tài)而非處于異常狀態(tài),因此就需要對(duì)虛擬機(jī)的狀態(tài)進(jìn)行檢測(cè)?,F(xiàn)有技術(shù)中,檢測(cè)云平臺(tái)中的虛擬機(jī)是否處于異常狀態(tài)的方法通常為,向虛擬機(jī)發(fā)送Ping指令,來(lái)查看能否連通該虛擬機(jī)。然而這種方法只能判斷與虛擬機(jī)的網(wǎng)絡(luò)間是否暢通,并不一定代表該虛擬機(jī)處于正常狀態(tài),例如在虛擬機(jī)內(nèi)核崩潰的場(chǎng)景下,虛擬機(jī)的網(wǎng)卡依然可以正常工作,從而在接收到Ping指令時(shí)正確地返回?cái)?shù)據(jù)包,導(dǎo)致維護(hù)人員錯(cuò)誤地認(rèn)為該虛擬機(jī)并沒(méi)有處于異常狀態(tài),這樣的判斷是不準(zhǔn)確的。
【發(fā)明內(nèi)容】
[0003]鑒于上述問(wèn)題,提出了本發(fā)明以便提供一種克服上述問(wèn)題或者至少部分地解決上述問(wèn)題的檢測(cè)云平臺(tái)中虛擬機(jī)異常狀態(tài)的方法、裝置和系統(tǒng)。
[0004]依據(jù)本發(fā)明的一個(gè)方面,提供了一種檢測(cè)云平臺(tái)中虛擬機(jī)異常狀態(tài)的方法,包括:
[0005]向虛擬機(jī)所在宿主機(jī)上的虛擬機(jī)代理發(fā)送執(zhí)行指令;其中,一個(gè)虛擬機(jī)對(duì)應(yīng)一個(gè)虛擬機(jī)代理;
[0006]接收所述虛擬機(jī)代理返回的指令執(zhí)行結(jié)果;
[0007]分析所述指令執(zhí)行結(jié)果并根據(jù)分析結(jié)果判斷相應(yīng)虛擬機(jī)的狀態(tài)是否異常。
[0008]可選地,所述方法進(jìn)一步包括:
[0009]當(dāng)判斷相應(yīng)的虛擬機(jī)的狀態(tài)為異常時(shí),發(fā)送異常事件通知消息。
[0010]可選地,所述向虛擬機(jī)所在宿主機(jī)上的虛擬機(jī)代理發(fā)送執(zhí)行指令進(jìn)一步包括:通過(guò)所述虛擬機(jī)的串口設(shè)備向所述虛擬機(jī)代理發(fā)送執(zhí)行指令;
[0011]所述接收所述虛擬機(jī)代理返回的指令執(zhí)行結(jié)果進(jìn)一步包括:通過(guò)所述虛擬機(jī)的串口設(shè)備接收所述虛擬機(jī)代理返回的指令執(zhí)行結(jié)果。
[0012]可選地,所述方法進(jìn)一步包括:
[0013]在創(chuàng)建虛擬機(jī)前,為待創(chuàng)建虛擬機(jī)的鏡像打上表示啟動(dòng)串口設(shè)備的標(biāo)簽,從而使得在創(chuàng)建虛擬機(jī)時(shí)為該虛擬機(jī)添加串口設(shè)備。
[0014]可選地,所述執(zhí)行指令包括如下中的一種或多種:
[0015]Ping 指令;
[0016]執(zhí)行指定程序的指令;
[0017]創(chuàng)建文件的指令;
[0018]刪除文件的指令。
[0019]可選地,分析所述指令執(zhí)行結(jié)果并根據(jù)分析結(jié)果判斷相應(yīng)虛擬機(jī)的狀態(tài)是否異常包括如下中的一種或多種:
[0020]根據(jù)Ping指令的執(zhí)行結(jié)果,判斷相應(yīng)虛擬機(jī)的網(wǎng)絡(luò)是否暢通;
[0021]根據(jù)執(zhí)行指定程序的指令的執(zhí)行結(jié)果,判斷相應(yīng)虛擬機(jī)的內(nèi)核是否損壞;
[0022]根據(jù)創(chuàng)建和/或刪除文件的指令的執(zhí)行結(jié)果,判斷相應(yīng)虛擬機(jī)的存儲(chǔ)空間是否異常。
[0023]可選地,所述發(fā)送異常事件通知消息包括:
[0024]將異常事件通知消息發(fā)送到各宿主機(jī)共用的消息隊(duì)列中,從而由該消息隊(duì)列的管理器將各隊(duì)列中的消息發(fā)送到指定位置。[〇〇25]依據(jù)本發(fā)明的另一方面,提供了一種檢測(cè)云平臺(tái)中虛擬機(jī)異常狀態(tài)的裝置,包括: [〇〇26]代理交互單元,適于向虛擬機(jī)所在宿主機(jī)上的虛擬機(jī)代理發(fā)送執(zhí)行指令;以及適于接收所述虛擬機(jī)代理返回的指令執(zhí)行結(jié)果,其中,一個(gè)虛擬機(jī)對(duì)應(yīng)一個(gè)虛擬機(jī)代理;
[0027]判斷單元,適于分析所述指令執(zhí)行結(jié)果并根據(jù)分析結(jié)果判斷相應(yīng)虛擬機(jī)的狀態(tài)是否異常。[〇〇28] 可選地,該裝置進(jìn)一步包括:
[0029]通知單元,適于當(dāng)判斷相應(yīng)的虛擬機(jī)的狀態(tài)為異常時(shí),發(fā)送異常事件通知消息。
[0030]可選地,所述代理交互單元,適于通過(guò)所述虛擬機(jī)的串口設(shè)備向所述虛擬機(jī)代理發(fā)送執(zhí)行指令;以及適于通過(guò)所述虛擬機(jī)的串口設(shè)備接收所述虛擬機(jī)代理返回的指令執(zhí)行結(jié)果。
[0031]可選地,所述裝置進(jìn)一步包括:
[0032]標(biāo)簽處理單元,適于在創(chuàng)建虛擬機(jī)前,為待創(chuàng)建虛擬機(jī)的鏡像打上表示啟動(dòng)串口設(shè)備的標(biāo)簽,從而使得在創(chuàng)建虛擬機(jī)時(shí)為該虛擬機(jī)添加串口設(shè)備。
[0033]可選地,所述執(zhí)行指令包括如下中的一種或多種:
[0034]Ping 指令;[〇〇35]執(zhí)行指定程序的指令;[〇〇36]創(chuàng)建文件的指令;[〇〇37]刪除文件的指令。
[0038]可選地,所述判斷單元,適于執(zhí)行如下中的一種或多種:
[0039]根據(jù)Ping指令的執(zhí)行結(jié)果,判斷相應(yīng)虛擬機(jī)的網(wǎng)絡(luò)是否暢通;
[0040]根據(jù)執(zhí)行指定程序的指令的執(zhí)行結(jié)果,判斷相應(yīng)虛擬機(jī)的內(nèi)核是否損壞;
[0041]根據(jù)創(chuàng)建和/或刪除文件的指令的執(zhí)行結(jié)果,判斷相應(yīng)虛擬機(jī)的存儲(chǔ)空間是否異常。
[0042]可選地,所述通知單元,適于將異常事件通知消息發(fā)送到各宿主機(jī)共用的消息隊(duì)列中,從而由該消息隊(duì)列的管理器將消息隊(duì)列中的各消息發(fā)送到指定位置。[〇〇43]依據(jù)本發(fā)明的又一方面,提供了一種檢測(cè)云平臺(tái)中虛擬機(jī)異常狀態(tài)的系統(tǒng),包括: 管理器、存儲(chǔ)器和多個(gè)如上述任一項(xiàng)所述的檢測(cè)云平臺(tái)中虛擬機(jī)異常狀態(tài)的裝置;
[0044]其中,所述多個(gè)檢測(cè)云平臺(tái)中虛擬機(jī)異常狀態(tài)的裝置分別部署與多個(gè)宿主機(jī)上;
[0045]所述存儲(chǔ)器適于存儲(chǔ)消息隊(duì)列;
[0046]所述管理器適于將消息隊(duì)列中的各消息發(fā)送到指定位置。
[0047]由上述可知,本發(fā)明的技術(shù)方案,通過(guò)在每個(gè)虛擬機(jī)的宿主機(jī)上設(shè)置一個(gè)虛擬機(jī)代理,在檢測(cè)時(shí),向虛擬機(jī)所在宿主機(jī)上的虛擬機(jī)代理發(fā)送執(zhí)行指令,對(duì)接收到的虛擬機(jī)代理返回的指令執(zhí)行結(jié)果進(jìn)行分析,根據(jù)分析結(jié)果判斷相應(yīng)虛擬機(jī)的狀態(tài)是否異常。該技術(shù)方案可以更為準(zhǔn)確地判斷云平臺(tái)中虛擬機(jī)是否處于異常狀態(tài),并且檢測(cè)速度同樣很快,因此與現(xiàn)有技術(shù)相比具有高效準(zhǔn)確的特點(diǎn),易于實(shí)用。
[0048]上述說(shuō)明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說(shuō)明書(shū)的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的【具體實(shí)施方式】。
【附圖說(shuō)明】
[0049]通過(guò)閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
[0050]圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種檢測(cè)云平臺(tái)中虛擬機(jī)異常狀態(tài)的方法的流程示意圖;
[0051]圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種檢測(cè)云平臺(tái)中虛擬機(jī)異常狀態(tài)的裝置的結(jié)構(gòu)示意圖;以及
[0052]圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種檢測(cè)云平臺(tái)中虛擬機(jī)異常狀態(tài)的系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0053]下面將參照附圖更詳細(xì)地描述本公開(kāi)的示例性實(shí)施例。雖然附圖中顯示了本公開(kāi)的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開(kāi)而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開(kāi),并且能夠?qū)⒈竟_(kāi)的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0054]圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種檢測(cè)云平臺(tái)中虛擬機(jī)異常狀態(tài)的方法的流程示意圖,如圖1所示,該方法包括:
[0055]步驟SI10,向虛擬機(jī)所在宿主機(jī)上的虛擬機(jī)代理發(fā)送執(zhí)行指令;其中,一個(gè)虛擬機(jī)對(duì)應(yīng)一個(gè)虛擬機(jī)代理。
[0056]步驟S120,接收虛擬機(jī)代理返回的指令執(zhí)行結(jié)果。
[0057]步驟S130,分析指令執(zhí)行結(jié)果并根據(jù)分析結(jié)果判斷相應(yīng)虛擬機(jī)的狀態(tài)是否異常。如果在預(yù)設(shè)時(shí)間內(nèi)沒(méi)有接收到虛擬機(jī)代理返回的指令執(zhí)行結(jié)果,也會(huì)認(rèn)為虛擬機(jī)處于異常狀態(tài)。
[0058]可見(jiàn),圖1所示的方法,通過(guò)預(yù)先在每個(gè)虛擬機(jī)上設(shè)置一個(gè)虛擬機(jī)代理,在檢測(cè)時(shí),向虛擬機(jī)所在宿主機(jī)上的虛擬機(jī)代理發(fā)送執(zhí)行指令,對(duì)接收到的虛擬機(jī)代理返回的指令執(zhí)行結(jié)果進(jìn)行分析,根據(jù)分析結(jié)果判斷相應(yīng)虛擬機(jī)的狀態(tài)是否異常。該技術(shù)方案可以更為準(zhǔn)確地判斷云平臺(tái)中虛擬機(jī)是否處于異常狀態(tài),并且檢測(cè)速度同樣很快,因此與現(xiàn)有技術(shù)相比具有高效準(zhǔn)確的特點(diǎn),易于實(shí)用。
[0059]在本發(fā)明的一個(gè)實(shí)施例中,圖1所示的方法進(jìn)一步包括:當(dāng)判斷相應(yīng)的虛擬機(jī)的狀態(tài)為異常時(shí),發(fā)送異常事件通知消息。其中,異常事件通知消息可以根據(jù)分析結(jié)果劃分為不同的等級(jí),并根據(jù)不同等級(jí)以短信、郵件等不同方式發(fā)送給管理員。
[0060]在本發(fā)明的一個(gè)實(shí)施例中,上述方法中,向虛擬機(jī)所在宿主機(jī)上的虛擬機(jī)代理發(fā)送執(zhí)行指令進(jìn)一步包括:通過(guò)虛擬機(jī)的串口設(shè)備向虛擬機(jī)代理發(fā)送執(zhí)行指令;接收虛擬機(jī)代理返回的指令執(zhí)行結(jié)果進(jìn)一步包括:通過(guò)虛擬機(jī)的串口設(shè)備接收虛擬機(jī)代理返回的指令執(zhí)行結(jié)果。[0061 ]在本實(shí)施例中,通過(guò)在串口設(shè)備在虛擬機(jī)和相應(yīng)的虛擬機(jī)代理間進(jìn)行交互,優(yōu)選地,該串口設(shè)備并不需要復(fù)雜地設(shè)置即可實(shí)現(xiàn),即在本發(fā)明的一個(gè)實(shí)施例中,上述方法進(jìn)一步包括:在創(chuàng)建虛擬機(jī)前,為待創(chuàng)建虛擬機(jī)的鏡像打上表示啟動(dòng)串口設(shè)備的標(biāo)簽,從而使得在創(chuàng)建虛擬機(jī)時(shí)為該虛擬機(jī)添加串口設(shè)備。這樣也會(huì)在虛擬機(jī)底層啟動(dòng)一個(gè)虛擬化的代理程序(如利用Qemu虛擬化實(shí)現(xiàn)),通過(guò)該代理程序執(zhí)行相應(yīng)的指令。
[0062]在本發(fā)明的一個(gè)實(shí)施例中,上述方法中,執(zhí)行指令包括如下中的一種或多種:Ping 指令;執(zhí)行指定程序的指令;創(chuàng)建文件的指令;刪除文件的指令。根據(jù)虛擬機(jī)執(zhí)行每種指令返回的執(zhí)行結(jié)果可以對(duì)應(yīng)分析得到虛擬機(jī)的狀態(tài),例如,根據(jù)Ping指令的執(zhí)行結(jié)果,判斷相應(yīng)虛擬機(jī)的網(wǎng)絡(luò)是否暢通;根據(jù)執(zhí)行指定程序的指令的執(zhí)行結(jié)果,判斷相應(yīng)虛擬機(jī)的內(nèi)核是否損壞;根據(jù)創(chuàng)建和/或刪除文件的指令的執(zhí)行結(jié)果,判斷相應(yīng)虛擬機(jī)的存儲(chǔ)空間是否異常。優(yōu)選地,執(zhí)行指令包括上述所有的執(zhí)行指令,因此可以更準(zhǔn)確地判斷虛擬機(jī)是否處于異常狀態(tài)。
[0063]在本發(fā)明的一個(gè)實(shí)施例中,上述方法中,發(fā)送異常事件通知消息包括:將異常事件通知消息發(fā)送到各宿主機(jī)共用的消息隊(duì)列中,從而由該消息隊(duì)列的管理器將各隊(duì)列中的消息發(fā)送到指定位置。在指定位置同樣設(shè)置消息隊(duì)列,該消息隊(duì)列的消費(fèi)者讀取消息隊(duì)列,在讀取到異常事件通知消息后進(jìn)行相應(yīng)的操作,例如短信或郵件通知。
[0064]圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種檢測(cè)云平臺(tái)中虛擬機(jī)異常狀態(tài)的裝置的結(jié)構(gòu)示意圖,如圖2所示,檢測(cè)云平臺(tái)中虛擬機(jī)異常狀態(tài)的裝置200包括:[〇〇65]代理交互單元210,適于向虛擬機(jī)所在宿主機(jī)上的虛擬機(jī)代理發(fā)送執(zhí)行指令;以及適于接收虛擬機(jī)代理返回的指令執(zhí)行結(jié)果,其中,一個(gè)虛擬機(jī)對(duì)應(yīng)一個(gè)虛擬機(jī)代理。
[0066]判斷單元220,適于分析指令執(zhí)行結(jié)果并根據(jù)分析結(jié)果判斷相應(yīng)虛擬機(jī)的狀態(tài)是否異常。如果在預(yù)設(shè)時(shí)間內(nèi)沒(méi)有接收到虛擬機(jī)代理返回的指令執(zhí)行結(jié)果,也會(huì)認(rèn)為虛擬機(jī)處于異常狀態(tài)。[〇〇67]可見(jiàn),圖2所示的裝置,通過(guò)各單元的相互配合,預(yù)先在每個(gè)虛擬機(jī)上設(shè)置一個(gè)虛擬機(jī)代理,在檢測(cè)時(shí),向虛擬機(jī)所在宿主機(jī)上的虛擬機(jī)代理發(fā)送執(zhí)行指令,對(duì)接收到的虛擬機(jī)代理返回的指令執(zhí)行結(jié)果進(jìn)行分析,根據(jù)分析結(jié)果判斷相應(yīng)虛擬機(jī)的狀態(tài)是否異常。該技術(shù)方案可以更為準(zhǔn)確地判斷云平臺(tái)中虛擬機(jī)是否處于異常狀態(tài),并且檢測(cè)速度同樣很快,因此與現(xiàn)有技術(shù)相比具有高效準(zhǔn)確的特點(diǎn),易于實(shí)用。
[0068]在本發(fā)明的一個(gè)實(shí)施例中,圖2所示的裝置進(jìn)一步包括:通知單元230,適于當(dāng)判斷相應(yīng)的虛擬機(jī)的狀態(tài)為異常時(shí),發(fā)送異常事件通知消息。其中,異常事件通知消息可以根據(jù)分析結(jié)果劃分為不同的等級(jí),并根據(jù)不同等級(jí)以短信、郵件等不同方式發(fā)送給管理員。 [〇〇69]在本發(fā)明的一個(gè)實(shí)施例中,上述裝置中,代理交互單元,適于通過(guò)虛擬機(jī)的串口設(shè)備向虛擬機(jī)代理發(fā)送執(zhí)行指令;以及適于通過(guò)虛擬機(jī)的串口設(shè)備接收虛擬機(jī)代理返回的指令執(zhí)行結(jié)果。
[0070]在本實(shí)施例中,通過(guò)在串口設(shè)備在虛擬機(jī)和相應(yīng)的虛擬機(jī)代理間進(jìn)行交互,優(yōu)選地,該串口設(shè)備并不需要復(fù)雜地設(shè)置即可實(shí)現(xiàn),即在本發(fā)明的一個(gè)實(shí)施例中,上述裝置進(jìn)一步包括:標(biāo)簽處理單元,適于在創(chuàng)建虛擬機(jī)前,為待創(chuàng)建虛擬機(jī)的鏡像打上表示啟動(dòng)串口設(shè)備的標(biāo)簽,從而使得在創(chuàng)建虛擬機(jī)時(shí)為該虛擬機(jī)添加串口設(shè)備。這樣也會(huì)在虛擬機(jī)底層啟動(dòng)一個(gè)虛擬化的代理程序(如利用Qemu虛擬化實(shí)現(xiàn)),通過(guò)該代理程序執(zhí)行相應(yīng)的指令。
[0071]在本發(fā)明的一個(gè)實(shí)施例中,上述裝置,執(zhí)行指令包括如下中的一種或多種:Ping指令;執(zhí)行指定程序的指令;創(chuàng)建文件的指令;刪除文件的指令。例如,根據(jù)Ping指令的執(zhí)行結(jié)果,判斷相應(yīng)虛擬機(jī)的網(wǎng)絡(luò)是否暢通;根據(jù)執(zhí)行指定程序的指令的執(zhí)行結(jié)果,判斷相應(yīng)虛擬機(jī)的內(nèi)核是否損壞;根據(jù)創(chuàng)建和/或刪除文件的指令的執(zhí)行結(jié)果,判斷相應(yīng)虛擬機(jī)的存儲(chǔ)空間是否異常。優(yōu)選地,執(zhí)行指令包括上述所有的執(zhí)行指令,因此可以更準(zhǔn)確地判斷虛擬機(jī)是否處于異常狀態(tài)。
[0072]在本發(fā)明的一個(gè)實(shí)施例中,上述裝置中,通知單元,適于將異常事件通知消息發(fā)送到各宿主機(jī)共用的消息隊(duì)列中,從而由該消息隊(duì)列的管理器將消息隊(duì)列中的各消息發(fā)送到指定位置。在指定位置同樣設(shè)置消息隊(duì)列,該消息隊(duì)列的消費(fèi)者讀取消息隊(duì)列,在讀取到異常事件通知消息后進(jìn)行相應(yīng)的操作,例如短信或郵件通知。
[0073]圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種檢測(cè)云平臺(tái)中虛擬機(jī)異常狀態(tài)的系統(tǒng)的結(jié)構(gòu)示意圖,如圖3所示,檢測(cè)云平臺(tái)中虛擬機(jī)異常狀態(tài)的系統(tǒng)300包括:管理器310、存儲(chǔ)器320(可具體實(shí)現(xiàn)為消息中心等功能單元/組件)和至少一個(gè)如上述任一實(shí)施例中的檢測(cè)云平臺(tái)中虛擬機(jī)異常狀態(tài)的裝置330;其中,所述檢測(cè)云平臺(tái)中虛擬機(jī)330異常狀態(tài)的裝置可針對(duì)一個(gè)或多個(gè)虛擬機(jī)。
[0074]存儲(chǔ)器320適于存儲(chǔ)消息隊(duì)列。
[0075]管理器310適于將消息隊(duì)列中的各消息發(fā)送到指定位置。
[0076]綜上所述,本發(fā)明的技術(shù)方案,通過(guò)預(yù)先在每個(gè)虛擬機(jī)上設(shè)置一個(gè)虛擬機(jī)代理,在檢測(cè)時(shí),向虛擬機(jī)所在宿主機(jī)上的虛擬機(jī)代理發(fā)送執(zhí)行指令,對(duì)接收到的虛擬機(jī)代理返回的指令執(zhí)行結(jié)果進(jìn)行分析,根據(jù)分析結(jié)果判斷相應(yīng)虛擬機(jī)的狀態(tài)是否異常。該技術(shù)方案可以更為準(zhǔn)確地判斷云平臺(tái)中虛擬機(jī)是否處于異常狀態(tài),并且檢測(cè)速度同樣很快,因此與現(xiàn)有技術(shù)相比具有高效準(zhǔn)確的特點(diǎn),易于實(shí)用。
[0077]需要說(shuō)明的是:
[0078]在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬裝置或者其它設(shè)備固有相關(guān)。各種通用裝置也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類裝置所要求的結(jié)構(gòu)是顯而易見(jiàn)的。此外,本發(fā)明也不針對(duì)任何特定編程語(yǔ)言。應(yīng)當(dāng)明白,可以利用各種編程語(yǔ)言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語(yǔ)言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。
[0079]在此處所提供的說(shuō)明書(shū)中,說(shuō)明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒(méi)有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說(shuō)明書(shū)的理解。
[0080]類似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開(kāi)并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開(kāi)的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說(shuō),如下面的權(quán)利要求書(shū)所反映的那樣,發(fā)明方面在于少于前面公開(kāi)的單個(gè)實(shí)施例的所有特征。因此, 遵循【具體實(shí)施方式】的權(quán)利要求書(shū)由此明確地并入該【具體實(shí)施方式】,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
[0081]本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過(guò)程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說(shuō)明書(shū)(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的所有特征以及如此公開(kāi)的任何方法或者設(shè)備的所有過(guò)程或單元進(jìn)行組合。除非另外明確陳述,本說(shuō)明書(shū)(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來(lái)代替。[〇〇82]此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書(shū)中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來(lái)使用。[〇〇83] 本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來(lái)實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的檢測(cè)云平臺(tái)中虛擬機(jī)異常狀態(tài)的裝置和系統(tǒng)中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供, 或者以任何其他形式提供。
[0084] 應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說(shuō)明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中, 不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來(lái)實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過(guò)同一個(gè)硬件項(xiàng)來(lái)具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。[〇〇85]本發(fā)明的實(shí)施例公開(kāi)了A1、一種檢測(cè)云平臺(tái)中虛擬機(jī)異常狀態(tài)的方法,其中,該方法包括:
[0086]向虛擬機(jī)所在宿主機(jī)上的虛擬機(jī)代理發(fā)送執(zhí)行指令;其中,一個(gè)虛擬機(jī)對(duì)應(yīng)一個(gè)虛擬機(jī)代理;[〇〇87]接收所述虛擬機(jī)代理返回的指令執(zhí)行結(jié)果;
[0088]分析所述指令執(zhí)行結(jié)果并根據(jù)分析結(jié)果判斷相應(yīng)虛擬機(jī)的狀態(tài)是否異常。
[0089]A2、如A1所述的方法,其中,所述方法進(jìn)一步包括:
[0090]當(dāng)判斷相應(yīng)的虛擬機(jī)的狀態(tài)為異常時(shí),發(fā)送異常事件通知消息。
[0091]A3、如Al或A2所述的方法,其中,
[0092]所述向虛擬機(jī)所在宿主機(jī)上的虛擬機(jī)代理發(fā)送執(zhí)行指令進(jìn)一步包括:通過(guò)所述虛擬機(jī)的串口設(shè)備向所述虛擬機(jī)代理發(fā)送執(zhí)行指令;
[0093]所述接收所述虛擬機(jī)代理返回的指令執(zhí)行結(jié)果進(jìn)一步包括:通過(guò)所述虛擬機(jī)的串口設(shè)備接收所述虛擬機(jī)代理返回的指令執(zhí)行結(jié)果。
[0094]A4、如A1-A3中任一項(xiàng)所述的方法,其中,所述方法進(jìn)一步包括:
[0095]在創(chuàng)建虛擬機(jī)前,為待創(chuàng)建虛擬機(jī)的鏡像打上表示啟動(dòng)串口設(shè)備的標(biāo)簽,從而使得在創(chuàng)建虛擬機(jī)時(shí)為該虛擬機(jī)添加串口設(shè)備。
[0096]A5、如A1-A4中任一項(xiàng)所述的方法,其中,所述執(zhí)行指令包括如下中的一種或多種:
[0097]Ping 指令;
[0098]執(zhí)行指定程序的指令;
[0099]創(chuàng)建文件的指令;
[0100]刪除文件的指令。
[0101]A6、如A1-A5中任一項(xiàng)所述的方法,其中,分析所述指令執(zhí)行結(jié)果并根據(jù)分析結(jié)果判斷相應(yīng)虛擬機(jī)的狀態(tài)是否異常包括如下中的一種或多種:
[0102]根據(jù)Ping指令的執(zhí)行結(jié)果,判斷相應(yīng)虛擬機(jī)的網(wǎng)絡(luò)是否暢通;
[0103]根據(jù)執(zhí)行指定程序的指令的執(zhí)行結(jié)果,判斷相應(yīng)虛擬機(jī)的內(nèi)核是否損壞;
[0104]根據(jù)創(chuàng)建和/或刪除文件的指令的執(zhí)行結(jié)果,判斷相應(yīng)虛擬機(jī)的存儲(chǔ)空間是否異常。
[0105]A7、如A1-A6中任一項(xiàng)所述的方法,其中,所述發(fā)送異常事件通知消息包括:
[0106]將異常事件通知消息發(fā)送到各宿主機(jī)共用的消息隊(duì)列中,從而由該消息隊(duì)列的管理器將各隊(duì)列中的消息發(fā)送到指定位置。
[0107]本發(fā)明的實(shí)施例還公開(kāi)了B8、一種檢測(cè)云平臺(tái)中虛擬機(jī)異常狀態(tài)的裝置,其中,該裝置包括:
[0108]代理交互單元,適于向虛擬機(jī)所在宿主機(jī)上的虛擬機(jī)代理發(fā)送執(zhí)行指令;以及適于接收所述虛擬機(jī)代理返回的指令執(zhí)行結(jié)果,其中,一個(gè)虛擬機(jī)對(duì)應(yīng)一個(gè)虛擬機(jī)代理;
[0109]判斷單元,適于分析所述指令執(zhí)行結(jié)果并根據(jù)分析結(jié)果判斷相應(yīng)虛擬機(jī)的狀態(tài)是否異常。
[0110]B9、如B8所述的裝置,其中,該裝置進(jìn)一步包括:
[0111]通知單元,適于當(dāng)判斷相應(yīng)的虛擬機(jī)的狀態(tài)為異常時(shí),發(fā)送異常事件通知消息。
[0112]B10、如B8或B9所述的裝置,其中,
[0113]所述代理交互單元,適于通過(guò)所述虛擬機(jī)的串口設(shè)備向所述虛擬機(jī)代理發(fā)送執(zhí)行指令;以及適于通過(guò)所述虛擬機(jī)的串口設(shè)備接收所述虛擬機(jī)代理返回的指令執(zhí)行結(jié)果。
[0114]Bll、如B8-B10中任一項(xiàng)所述的裝置,其中,所述裝置進(jìn)一步包括:
[0115]標(biāo)簽處理單元,適于在創(chuàng)建虛擬機(jī)前,為待創(chuàng)建虛擬機(jī)的鏡像打上表示啟動(dòng)串口設(shè)備的標(biāo)簽,從而使得在創(chuàng)建虛擬機(jī)時(shí)為該虛擬機(jī)添加串口設(shè)備。
[0116]B12、如B8-B11中任一項(xiàng)所述的裝置,其中,所述執(zhí)行指令包括如下中的一種或多種:
[0117]Ping 指令;
[0118]執(zhí)行指定程序的指令;
[0119]創(chuàng)建文件的指令;
[0120]刪除文件的指令。
[0121]B13、如B8-B12中任一項(xiàng)所述的裝置,其中,所述判斷單元,適于執(zhí)行如下中的一種或多種:
[0122]根據(jù)Ping指令的執(zhí)行結(jié)果,判斷相應(yīng)虛擬機(jī)的網(wǎng)絡(luò)是否暢通;
[0123]根據(jù)執(zhí)行指定程序的指令的執(zhí)行結(jié)果,判斷相應(yīng)虛擬機(jī)的內(nèi)核是否損壞;
[0124]根據(jù)創(chuàng)建和/或刪除文件的指令的執(zhí)行結(jié)果,判斷相應(yīng)虛擬機(jī)的存儲(chǔ)空間是否異常。
[0125]B14、如B8-B13所述的裝置,其中,
[0126]所述通知單元,適于將異常事件通知消息發(fā)送到各宿主機(jī)共用的消息隊(duì)列中,從而由該消息隊(duì)列的管理器將消息隊(duì)列中的各消息發(fā)送到指定位置。
[0127]本發(fā)明的實(shí)施例還公開(kāi)了 C15、一種檢測(cè)云平臺(tái)中虛擬機(jī)異常狀態(tài)的系統(tǒng),其中, 該系統(tǒng)包括:管理器、存儲(chǔ)器和至少一個(gè)如B8-B14中任一項(xiàng)所述的檢測(cè)云平臺(tái)中虛擬機(jī)異常狀態(tài)的裝置;
[0128]所述存儲(chǔ)器適于存儲(chǔ)消息隊(duì)列;
[0129]所述管理器適于將消息隊(duì)列中的各消息發(fā)送到指定位置。
【主權(quán)項(xiàng)】
1.一種檢測(cè)云平臺(tái)中虛擬機(jī)異常狀態(tài)的方法,其中,該方法包括:向虛擬機(jī)所在宿主機(jī)上的虛擬機(jī)代理發(fā)送執(zhí)行指令;其中,一個(gè)虛擬機(jī)對(duì)應(yīng)一個(gè)虛擬 機(jī)代理;接收所述虛擬機(jī)代理返回的指令執(zhí)行結(jié)果;分析所述指令執(zhí)行結(jié)果并根據(jù)分析結(jié)果判斷相應(yīng)虛擬機(jī)的狀態(tài)是否異常。2.如權(quán)利要求1所述的方法,其中,所述方法進(jìn)一步包括:當(dāng)判斷相應(yīng)的虛擬機(jī)的狀態(tài)為異常時(shí),發(fā)送異常事件通知消息。3.如權(quán)利要求1或2所述的方法,其中,所述向虛擬機(jī)所在宿主機(jī)上的虛擬機(jī)代理發(fā)送執(zhí)行指令進(jìn)一步包括:通過(guò)所述虛擬機(jī) 的串口設(shè)備向所述虛擬機(jī)代理發(fā)送執(zhí)行指令;所述接收所述虛擬機(jī)代理返回的指令執(zhí)行結(jié)果進(jìn)一步包括:通過(guò)所述虛擬機(jī)的串口設(shè) 備接收所述虛擬機(jī)代理返回的指令執(zhí)行結(jié)果。4.如權(quán)利要求1-3中任一項(xiàng)所述的方法,其中,所述方法進(jìn)一步包括:在創(chuàng)建虛擬機(jī)前,為待創(chuàng)建虛擬機(jī)的鏡像打上表示啟動(dòng)串口設(shè)備的標(biāo)簽,從而使得在 創(chuàng)建虛擬機(jī)時(shí)為該虛擬機(jī)添加串口設(shè)備。5.如權(quán)利要求1-4中任一項(xiàng)所述的方法,其中,所述執(zhí)行指令包括如下中的一種或多 種:Ping指令;執(zhí)行指定程序的指令;創(chuàng)建文件的指令;刪除文件的指令。6.如權(quán)利要求1-5中任一項(xiàng)所述的方法,其中,分析所述指令執(zhí)行結(jié)果并根據(jù)分析結(jié)果 判斷相應(yīng)虛擬機(jī)的狀態(tài)是否異常包括如下中的一種或多種:根據(jù)Ping指令的執(zhí)行結(jié)果,判斷相應(yīng)虛擬機(jī)的網(wǎng)絡(luò)是否暢通;根據(jù)執(zhí)行指定程序的指令的執(zhí)行結(jié)果,判斷相應(yīng)虛擬機(jī)的內(nèi)核是否損壞;根據(jù)創(chuàng)建和/或刪除文件的指令的執(zhí)行結(jié)果,判斷相應(yīng)虛擬機(jī)的存儲(chǔ)空間是否異常。7.如權(quán)利要求1-6中任一項(xiàng)所述的方法,其中,所述發(fā)送異常事件通知消息包括:將異常事件通知消息發(fā)送到各宿主機(jī)共用的消息隊(duì)列中,從而由該消息隊(duì)列的管理器將各隊(duì)列中的消息發(fā)送到指定位置。8.—種檢測(cè)云平臺(tái)中虛擬機(jī)異常狀態(tài)的裝置,其中,該裝置包括:代理交互單元,適于向虛擬機(jī)所在宿主機(jī)上的虛擬機(jī)代理發(fā)送執(zhí)行指令;以及適于接 收所述虛擬機(jī)代理返回的指令執(zhí)行結(jié)果,其中,一個(gè)虛擬機(jī)對(duì)應(yīng)一個(gè)虛擬機(jī)代理;判斷單元,適于分析所述指令執(zhí)行結(jié)果并根據(jù)分析結(jié)果判斷相應(yīng)虛擬機(jī)的狀態(tài)是否異 常。9.如權(quán)利要求8所述的裝置,其中,該裝置進(jìn)一步包括:通知單元,適于當(dāng)判斷相應(yīng)的虛擬機(jī)的狀態(tài)為異常時(shí),發(fā)送異常事件通知消息。10.—種檢測(cè)云平臺(tái)中虛擬機(jī)異常狀態(tài)的系統(tǒng),其中,該系統(tǒng)包括:管理器、存儲(chǔ)器和至 少一個(gè)如權(quán)利要求8-9中任一項(xiàng)所述的檢測(cè)云平臺(tái)中虛擬機(jī)異常狀態(tài)的裝置;所述存儲(chǔ)器適于存儲(chǔ)消息隊(duì)列;所述管理器適于將消息隊(duì)列中的各消息發(fā)送到指定位置。
【文檔編號(hào)】G06F9/455GK105955798SQ201610282795
【公開(kāi)日】2016年9月21日
【申請(qǐng)日】2016年4月29日
【發(fā)明人】霍明明, 許斯亮, 趙鵬
【申請(qǐng)人】北京奇虎科技有限公司, 奇智軟件(北京)有限公司