監(jiān)控虛擬機(jī)集群的方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本申請(qǐng)涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體涉及計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其涉及監(jiān)控虛擬機(jī)集群的方法和系統(tǒng)。
【背景技術(shù)】
[0002]隨著當(dāng)前互聯(lián)網(wǎng)的高速發(fā)展,虛擬化與大數(shù)據(jù)處理越來越受到業(yè)界的重視,而二者的融合,更成為當(dāng)前業(yè)界研究的熱門方向。在虛擬化環(huán)境里部署運(yùn)行大數(shù)據(jù)處理方案,可以極大的提高系統(tǒng)資源的使用率和配置的靈活性。然而,虛擬環(huán)境相對(duì)于物理環(huán)境,存在更大的不確定性,系統(tǒng)的高可用性顯得尤其重要。
[0003]在現(xiàn)有技術(shù)中,為了保持虛擬系統(tǒng)的高可用性,通常會(huì)對(duì)虛擬機(jī)的物理宿主機(jī)進(jìn)行監(jiān)控,以確定宿主機(jī)是否發(fā)生故障。
[0004]然而,上述的對(duì)虛擬機(jī)的物理宿主機(jī)進(jìn)行監(jiān)控的方法,在宿主機(jī)發(fā)生故障時(shí)需要通過運(yùn)維人員手動(dòng)修復(fù)物理宿主機(jī)上的全部虛擬機(jī),耗時(shí)較久,并且造成長(zhǎng)時(shí)間服務(wù)中斷,給用戶帶來?yè)p失。
【發(fā)明內(nèi)容】
[0005]本申請(qǐng)的目的在于提出一種監(jiān)控虛擬機(jī)集群的方法和系統(tǒng),來解決以上【背景技術(shù)】部分提到的技術(shù)問題。
[0006]第一方面,本申請(qǐng)?zhí)峁┝艘环N監(jiān)控虛擬機(jī)集群的方法,方法包括:第一物理機(jī)間隔第一預(yù)設(shè)時(shí)間向虛擬機(jī)集群中的虛擬機(jī)發(fā)送虛擬機(jī)狀態(tài)參數(shù)查詢指令;虛擬機(jī)響應(yīng)于接收到查詢指令,向第一物理機(jī)發(fā)送響應(yīng)信息;第一物理機(jī)響應(yīng)于響應(yīng)信息中斷第二預(yù)設(shè)時(shí)間,確定虛擬機(jī)發(fā)生故障,判斷發(fā)生故障的虛擬機(jī)是否滿足預(yù)設(shè)的重啟條件,若發(fā)生故障的虛擬機(jī)滿足預(yù)設(shè)的重啟條件,發(fā)送重啟虛擬機(jī)指令給運(yùn)行發(fā)生故障的虛擬機(jī)的第二物理機(jī);第二物理機(jī)根據(jù)重啟虛擬機(jī)指令,重啟發(fā)生故障的虛擬機(jī)。
[0007]第二方面,本申請(qǐng)?zhí)峁┝艘环N監(jiān)控虛擬機(jī)集群的系統(tǒng),系統(tǒng)包括:第一物理機(jī),用于間隔第一預(yù)設(shè)時(shí)間向虛擬機(jī)集群中的虛擬機(jī)發(fā)送虛擬機(jī)狀態(tài)參數(shù)查詢指令,響應(yīng)于響應(yīng)信息中斷第二預(yù)設(shè)時(shí)間,確定虛擬機(jī)發(fā)生故障,判斷發(fā)生故障的虛擬機(jī)是否滿足預(yù)設(shè)的重啟條件,若發(fā)生故障的虛擬機(jī)滿足預(yù)設(shè)的重啟條件,發(fā)送重啟虛擬機(jī)指令給運(yùn)行發(fā)生故障的虛擬機(jī)的第二物理機(jī);虛擬機(jī),用于響應(yīng)于接收到查詢指令,向第一物理機(jī)發(fā)送響應(yīng)信息;以及第二物理機(jī),用于根據(jù)重啟虛擬機(jī)指令,重啟發(fā)生故障的虛擬機(jī)。
[0008]本申請(qǐng)?zhí)峁┑谋O(jiān)控虛擬機(jī)集群的方法和系統(tǒng),通過第一物理機(jī)間隔第一預(yù)設(shè)時(shí)間向虛擬機(jī)集群中的虛擬機(jī)發(fā)送虛擬機(jī)狀態(tài)參數(shù)查詢指令,而后通過虛擬機(jī)響應(yīng)于接收到查詢指令,向第一物理機(jī)發(fā)送響應(yīng)信息,之后通過第一物理機(jī)響應(yīng)于響應(yīng)信息中斷第二預(yù)設(shè)時(shí)間,確定虛擬機(jī)發(fā)生故障,判斷發(fā)生故障的虛擬機(jī)是否滿足預(yù)設(shè)的重啟條件,若發(fā)生故障的虛擬機(jī)滿足預(yù)設(shè)的重啟條件,發(fā)送重啟虛擬機(jī)指令給運(yùn)行發(fā)生故障的虛擬機(jī)的第二物理機(jī),最后通過第二物理機(jī)根據(jù)重啟虛擬機(jī)指令,重啟發(fā)生故障的虛擬機(jī)。該方法和系統(tǒng)可以實(shí)現(xiàn)對(duì)虛擬機(jī)的監(jiān)控,在虛擬機(jī)發(fā)生故障時(shí)可以自動(dòng)恢復(fù),提高了虛擬機(jī)集群的可用性,減少了服務(wù)中斷時(shí)間。
【附圖說明】
[0009]通過閱讀參照以下附圖所作的對(duì)非限制性實(shí)施例所作的詳細(xì)描述,本申請(qǐng)的其它特征、目的和優(yōu)點(diǎn)將會(huì)變得更明顯:
[0010]圖1是本申請(qǐng)可以應(yīng)用于其中的示例性系統(tǒng)架構(gòu)圖;
[0011]圖2示出了根據(jù)本申請(qǐng)實(shí)施例的監(jiān)控虛擬機(jī)集群的方法的一個(gè)示意性流程圖;
[0012]圖3示出了根據(jù)本申請(qǐng)實(shí)施例的監(jiān)控虛擬機(jī)集群的方法的又一個(gè)示意性流程圖;
[0013]圖4示出了根據(jù)本申請(qǐng)實(shí)施例的監(jiān)控虛擬機(jī)集群的方法的第三個(gè)示意性流程圖;
[0014]圖5a示出了根據(jù)本申請(qǐng)實(shí)施例的虛擬機(jī)為管理節(jié)點(diǎn)的恢復(fù)流程示意圖;
[0015]圖5b示出了根據(jù)本申請(qǐng)實(shí)施例的虛擬機(jī)為計(jì)算節(jié)點(diǎn)的恢復(fù)流程示意圖;
[0016]圖6示出了根據(jù)本申請(qǐng)實(shí)施例的監(jiān)控虛擬機(jī)集群的方法的第四個(gè)示意性流程圖;
[0017]圖7示出了用戶應(yīng)用本申請(qǐng)實(shí)施例的監(jiān)控虛擬機(jī)集群的方法提交作業(yè)的流程圖;
[0018]圖8示出了根據(jù)本申請(qǐng)實(shí)施例的監(jiān)控虛擬機(jī)集群的方法的第五個(gè)示意性流程圖;
[0019]圖9示出了根據(jù)本申請(qǐng)實(shí)施例的監(jiān)控虛擬機(jī)集群的系統(tǒng)的示例性架構(gòu)圖;
[0020]圖10示出了適于用來實(shí)現(xiàn)本申請(qǐng)實(shí)施例的終端設(shè)備或服務(wù)器的計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0021]下面結(jié)合附圖和實(shí)施例對(duì)本申請(qǐng)作進(jìn)一步的詳細(xì)說明??梢岳斫獾氖牵颂幩枋龅木唧w實(shí)施例僅僅用于解釋相關(guān)發(fā)明,而非對(duì)該發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與有關(guān)發(fā)明相關(guān)的部分。
[0022]需要說明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。下面將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本申請(qǐng)。
[0023]圖1示出了可以應(yīng)用本申請(qǐng)實(shí)施例的監(jiān)控虛擬機(jī)集群的方法的示例性系統(tǒng)架構(gòu)100。
[0024]如圖1所示,系統(tǒng)架構(gòu)100可以包括終端設(shè)備101、部署虛擬機(jī)集群的服務(wù)器集群102和未部署虛擬機(jī)的服務(wù)器104。網(wǎng)絡(luò)103用以在終端設(shè)備101、服務(wù)器集群102以及服務(wù)器104之間提供通信鏈路的介質(zhì)。網(wǎng)絡(luò)103可以包括各種連接類型,例如有線、無(wú)線通信鏈路或者光纖電纜等等。
[0025]用戶110可以使用終端設(shè)備101通過網(wǎng)絡(luò)103與服務(wù)器104交互以提交用戶作業(yè),服務(wù)器104可以通過網(wǎng)絡(luò)103與服務(wù)器集群102交互,將用戶提交的作業(yè)提交至服務(wù)器集群102上運(yùn)行的虛擬機(jī)集群。終端設(shè)備101上可以安裝有各種客戶端應(yīng)用,例如網(wǎng)頁(yè)瀏覽器應(yīng)用、搜索類應(yīng)用、即時(shí)通信工具、郵箱客戶端、社交平臺(tái)軟件、云平臺(tái)應(yīng)用等。
[0026]終端設(shè)備101可以是具有人機(jī)交互組件并且支持作業(yè)提交的各種電子設(shè)備,包括但不限于移動(dòng)智能終端、平板電腦、膝上型便攜計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)、多媒體播放器和電子閱讀器等等。
[0027]服務(wù)器集群102可以由提供數(shù)據(jù)分析處理的多個(gè)服務(wù)器組成,其上可以運(yùn)行由大量的虛擬機(jī)組成的虛擬機(jī)集群。其中,虛擬機(jī)集群中的虛擬機(jī)可以分為兩類:管理節(jié)點(diǎn)和計(jì)算節(jié)點(diǎn)。管理節(jié)點(diǎn)負(fù)責(zé)整個(gè)集群的管理、資源調(diào)度和用戶提交的作業(yè)管理,計(jì)算節(jié)點(diǎn)主要負(fù)責(zé)計(jì)算具體子任務(wù)的執(zhí)行。
[0028]服務(wù)器104可以是提供數(shù)據(jù)分析處理的服務(wù)器,也可以是多個(gè)服務(wù)器組成的服務(wù)器集群。例如對(duì)終端設(shè)備101提交的用戶作業(yè)進(jìn)行分析處理的服務(wù)器。服務(wù)器104可以對(duì)服務(wù)器集群102上運(yùn)行的虛擬機(jī)集群提供的運(yùn)行數(shù)據(jù)進(jìn)行分析處理,以將終端設(shè)備101提交的用戶作業(yè)分派至服務(wù)器集群102上運(yùn)行的虛擬機(jī)集群中的管理節(jié)點(diǎn)上,再由管理節(jié)點(diǎn)將提交的用戶作業(yè)分派至虛擬機(jī)集群中的計(jì)算節(jié)點(diǎn),之后管理節(jié)點(diǎn)獲取計(jì)算節(jié)點(diǎn)對(duì)提交的用戶作業(yè)的數(shù)據(jù)分析處理結(jié)果,并將該處理結(jié)果返回給服務(wù)器104,再由服務(wù)器104將提交的用戶作業(yè)的數(shù)據(jù)分析處理結(jié)果返回給終端設(shè)備101。
[0029]需要說明的是,本申請(qǐng)實(shí)施例所提供的監(jiān)控虛擬機(jī)集群的方法中的操作步驟一般由服務(wù)器集群102、運(yùn)行于服務(wù)器集群102上的虛擬機(jī)集群和服務(wù)器104執(zhí)行,向服務(wù)器104提交用戶作業(yè)的操作步驟一般由終端設(shè)備101執(zhí)行。
[0030]應(yīng)該理解,圖1中的終端設(shè)備、網(wǎng)絡(luò)和服務(wù)器的數(shù)目?jī)H僅是示意性的。根據(jù)實(shí)現(xiàn)需要,可以具有任意數(shù)目的終端設(shè)備、網(wǎng)絡(luò)和服務(wù)器。
[0031]繼續(xù)參考圖2,其示出了根據(jù)本申請(qǐng)實(shí)施例的監(jiān)控虛擬機(jī)集群的方法的一個(gè)示意性流程圖200。該監(jiān)控虛擬機(jī)集群的方法200,包括以下步驟:
[0032]在步驟201中,第一物理機(jī)間隔第一預(yù)設(shè)時(shí)間向虛擬機(jī)集群中的虛擬機(jī)發(fā)送虛擬機(jī)狀態(tài)參數(shù)查詢指令。
[0033]在本實(shí)施例中,第一物理機(jī)是指未部署虛擬機(jī)的物理機(jī),例如圖1中的服務(wù)器104。虛擬機(jī)集群可以集中多個(gè)虛擬機(jī)一起進(jìn)行同一種服務(wù),在客戶端看來就像是只有一個(gè)虛擬機(jī)。一個(gè)計(jì)算機(jī)上可以部署一個(gè)或多個(gè)虛擬機(jī),多個(gè)計(jì)算機(jī)上部署的虛擬機(jī)形成虛擬機(jī)集群,虛擬機(jī)集群可以同時(shí)進(jìn)行并行計(jì)算,從而獲得很高的計(jì)算速度。
[0034]上述的第一預(yù)設(shè)時(shí)間是第一物理機(jī)向虛擬機(jī)發(fā)送查詢指令的間隔時(shí)間,可以綜合考慮物理機(jī)的參數(shù)、網(wǎng)絡(luò)參數(shù)、虛擬機(jī)的參數(shù)、虛擬機(jī)系統(tǒng)資源使用率以及虛擬機(jī)系統(tǒng)配置的靈活性等進(jìn)行設(shè)定。
[0035]上述的查詢指令,可以為輪詢虛擬機(jī)的健康狀態(tài)的指令,例如:查詢以下一項(xiàng)或多項(xiàng)虛擬機(jī)狀態(tài)參數(shù)信息的指令:虛擬機(jī)磁盤使用率、虛擬機(jī)網(wǎng)絡(luò)I/O負(fù)載和虛擬機(jī)CPU使用率等。
[0036]在步驟202中,虛擬機(jī)響應(yīng)于接收到查詢指令,向第一物理機(jī)發(fā)送響應(yīng)信息。
[0037]在本實(shí)施例中,虛擬機(jī)在接收第一物理機(jī)發(fā)送的查詢指令之后,通過運(yùn)行于虛擬機(jī)上的服務(wù)進(jìn)程向第一物理機(jī)發(fā)送響應(yīng)信息。
[0038]在步驟203中,第一物理機(jī)響應(yīng)于響應(yīng)信息中斷第二預(yù)設(shè)時(shí)間,確定虛擬機(jī)發(fā)生故障,判斷發(fā)生故障的虛擬機(jī)是否滿足預(yù)設(shè)的重啟條件,若發(fā)生故障的虛擬機(jī)滿足預(yù)設(shè)的重啟條件,發(fā)送重啟虛擬機(jī)指令給運(yùn)行發(fā)生故障的虛擬機(jī)的第二物理機(jī)。
[0039]在本實(shí)施例中,第一物理機(jī)中預(yù)設(shè)了第二預(yù)設(shè)時(shí)間,第二預(yù)設(shè)時(shí)間為正常工作時(shí)允許的響應(yīng)信息間隔的響應(yīng)時(shí)間,若響應(yīng)信息中斷第二預(yù)設(shè)時(shí)間,則確定虛擬機(jī)發(fā)生故障。
[0040]若發(fā)生故障的虛擬機(jī)滿足預(yù)設(shè)的重啟條件,也即當(dāng)發(fā)生故障的虛擬機(jī)雖影響到虛擬機(jī)集群的工作效率,但滿足嘗試修復(fù)的條件時(shí),可以發(fā)送重啟虛擬機(jī)指令給運(yùn)行發(fā)生故障的虛擬機(jī)的第二物理機(jī)。例如,在一個(gè)可選的實(shí)現(xiàn)方式中,若發(fā)生故障的虛擬機(jī)的比例小于預(yù)設(shè)比例,可以發(fā)送重啟虛擬機(jī)指令給第二物理機(jī);在另一個(gè)可選的實(shí)現(xiàn)方式中,若發(fā)生故障的虛擬機(jī)距上一次重啟或重建虛擬機(jī)的時(shí)間超過第三預(yù)設(shè)時(shí)間,