本發(fā)明涉及云計(jì)算數(shù)據(jù)中心技術(shù)領(lǐng)域,特別涉及一種openstack虛擬機(jī)的故障監(jiān)控方法及裝置。
背景技術(shù):
openstack是一個由nasa和rackspace合作研發(fā)并發(fā)起的、以apache許可證授權(quán)的自由軟件和開放源代碼項(xiàng)目。該項(xiàng)目支持幾乎所有類型的云環(huán)境,其目標(biāo)是提供實(shí)施簡單、可大規(guī)模擴(kuò)展、豐富及標(biāo)準(zhǔn)統(tǒng)一的云計(jì)算管理平臺。openstack通過各種互補(bǔ)的服務(wù)提供基礎(chǔ)設(shè)施即服務(wù)(iaas)的解決方案,每個服務(wù)提供api以進(jìn)行集成。
目前,openstack只提供一個api,用于疏散指定節(jié)點(diǎn)上的虛擬機(jī),并沒有自動檢測故障、自動執(zhí)行疏散的機(jī)制。在實(shí)際應(yīng)用中,openstack虛擬機(jī)的故障仍需要人工檢測、人工修復(fù),進(jìn)而導(dǎo)致openstack虛擬機(jī)故障監(jiān)控效率低。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種openstack虛擬機(jī)的故障監(jiān)控方法及裝置,目的在于解決現(xiàn)有人工檢測修復(fù)openstack虛擬機(jī)故障導(dǎo)致的故障監(jiān)控效率低的問題。
為解決上述技術(shù)問題,本發(fā)明提供一種openstack虛擬機(jī)的故障監(jiān)控方法,該方法包括:
運(yùn)行預(yù)存儲于pacemaker集群節(jié)點(diǎn)的ocf監(jiān)控腳本,監(jiān)控openstack的待監(jiān)控虛擬機(jī);
獲取所述待監(jiān)控虛擬機(jī)的狀態(tài)信息,所述狀態(tài)信息至少包括節(jié)點(diǎn)狀態(tài)信息、進(jìn)程狀態(tài)信息及節(jié)點(diǎn)性能信息;
根據(jù)所述狀態(tài)信息,判斷所述待監(jiān)控虛擬機(jī)是否出現(xiàn)故障;
若是,運(yùn)行預(yù)存儲于所述pacemaker集群節(jié)點(diǎn)的修復(fù)腳本,調(diào)用openstack提供的應(yīng)用程序接口,對所述待監(jiān)控虛擬機(jī)進(jìn)行修復(fù)操作。
可選地,所述根據(jù)所述狀態(tài)信息,判斷所述待監(jiān)控虛擬機(jī)是否出現(xiàn)故障包括:
根據(jù)所述節(jié)點(diǎn)狀態(tài)信息、所述進(jìn)程狀態(tài)信息、所述節(jié)點(diǎn)性能信息,分別判斷所述待監(jiān)控虛擬機(jī)的節(jié)點(diǎn)狀態(tài)是否正常、所述待監(jiān)控虛擬機(jī)的進(jìn)程狀態(tài)是否正常、所述待監(jiān)控虛擬機(jī)的性能是否正常;
當(dāng)所述節(jié)點(diǎn)狀態(tài)、所述進(jìn)程狀態(tài)及所述性能中至少一個異常時,判斷所述待監(jiān)控虛擬機(jī)出現(xiàn)故障;
當(dāng)所述節(jié)點(diǎn)狀態(tài)、所述進(jìn)程狀態(tài)及所述性能全部正常時,判斷所述待監(jiān)控虛擬機(jī)正常。
可選地,所述若是,運(yùn)行預(yù)存儲于所述pacemaker集群節(jié)點(diǎn)的修復(fù)腳本,調(diào)用openstack提供的應(yīng)用程序接口,對所述待監(jiān)控虛擬機(jī)進(jìn)行修改操作包括:
若是,運(yùn)行預(yù)存儲于所述pacemaker集群節(jié)點(diǎn)的所述修復(fù)腳本;
執(zhí)行所述應(yīng)用程序接口中的隔離命令,隔離所述待監(jiān)控虛擬機(jī)的節(jié)點(diǎn);
執(zhí)行所述應(yīng)用程序接口中的疏散命令,疏散所述待監(jiān)控虛擬機(jī)。
可選地,在所述執(zhí)行所述應(yīng)用程序接口中的疏散命令,疏散所述待監(jiān)控虛擬機(jī)之后還包括:
更新所述節(jié)點(diǎn)的節(jié)點(diǎn)狀態(tài)為已疏散,并發(fā)送告警信息給管理員。
可選地,所述獲取所述待監(jiān)控虛擬機(jī)的狀態(tài)信息包括:
根據(jù)所述ocf腳本內(nèi)預(yù)定義的監(jiān)測手段,獲取與所述監(jiān)測手段對應(yīng)的所述待監(jiān)控虛擬機(jī)的所述狀態(tài)信息。
此外,本發(fā)明還提供了一種openstack虛擬機(jī)的故障監(jiān)控裝置,該裝置包括:
運(yùn)行模塊,用于運(yùn)行預(yù)存儲于pacemaker集群節(jié)點(diǎn)的ocf監(jiān)控腳本,監(jiān)控openstack的待監(jiān)控虛擬機(jī);
獲取模塊,用于獲取所述待監(jiān)控虛擬機(jī)的狀態(tài)信息,所述狀態(tài)信息至少包括節(jié)點(diǎn)狀態(tài)信息、進(jìn)程狀態(tài)信息及節(jié)點(diǎn)性能信息;
判斷模塊,用于根據(jù)所述狀態(tài)信息,判斷所述待監(jiān)控虛擬機(jī)是否出現(xiàn)故障;
修復(fù)模塊,用于若是,運(yùn)行預(yù)存儲于所述pacemaker集群節(jié)點(diǎn)的修復(fù)腳本,調(diào)用openstack提供的應(yīng)用程序接口,對所述待監(jiān)控虛擬機(jī)進(jìn)行修復(fù)操作。
可選地,所述判斷模塊包括:
指標(biāo)判斷單元,用于根據(jù)所述節(jié)點(diǎn)狀態(tài)信息、所述進(jìn)程狀態(tài)信息、所述節(jié)點(diǎn)性能信息,分別判斷所述待監(jiān)控虛擬機(jī)的節(jié)點(diǎn)狀態(tài)是否正常、所述待監(jiān)控虛擬機(jī)的進(jìn)程狀態(tài)是否正常、所述待監(jiān)控虛擬機(jī)的性能是否正常;
第一故障判斷單元,用于當(dāng)所述節(jié)點(diǎn)狀態(tài)、所述進(jìn)程狀態(tài)及所述性能中至少一個異常時,判斷所述待監(jiān)控虛擬機(jī)出現(xiàn)故障;
第二故障判斷單元,用于當(dāng)所述節(jié)點(diǎn)狀態(tài)、所述進(jìn)程狀態(tài)及所述性能全部正常時,判斷所述待監(jiān)控虛擬機(jī)正常。
可選地,所述修復(fù)模塊包括:
修復(fù)腳本運(yùn)行單元,用于若是,運(yùn)行預(yù)存儲于所述pacemaker集群節(jié)點(diǎn)的所述修復(fù)腳本;
節(jié)點(diǎn)隔離單元,用于執(zhí)行所述應(yīng)用程序接口中的隔離命令,隔離所述待監(jiān)控虛擬機(jī)的節(jié)點(diǎn);
疏散單元,用于執(zhí)行所述應(yīng)用程序接口中的疏散命令,疏散所述待監(jiān)控虛擬機(jī)。
可選地,所述修復(fù)模塊還包括:
更新告警單元,用于更新所述節(jié)點(diǎn)的節(jié)點(diǎn)狀態(tài)為已疏散,并發(fā)送告警信息給管理員。
可選地,所述獲取模塊包括:
監(jiān)測手段獲取單元,用于根據(jù)所述ocf腳本內(nèi)預(yù)定義的監(jiān)測手段,獲取與所述監(jiān)測手段對應(yīng)的所述待監(jiān)控虛擬機(jī)的所述狀態(tài)信息。
本發(fā)明實(shí)施例所提供的一種openstack虛擬機(jī)的故障監(jiān)控方法及裝置,通過運(yùn)行預(yù)存儲于pacemaker集群節(jié)點(diǎn)的ocf監(jiān)控腳本,監(jiān)控openstack的待監(jiān)控虛擬機(jī);獲取待監(jiān)控虛擬機(jī)的狀態(tài)信息,狀態(tài)信息至少包括節(jié)點(diǎn)狀態(tài)信息、進(jìn)程狀態(tài)信息及節(jié)點(diǎn)性能信息;根據(jù)狀態(tài)信息,判斷待監(jiān)控虛擬機(jī)是否出現(xiàn)故障;若是,運(yùn)行預(yù)存儲于pacemaker集群節(jié)點(diǎn)的修復(fù)腳本,調(diào)用openstack提供的應(yīng)用程序接口,對待監(jiān)控虛擬機(jī)進(jìn)行修復(fù)操作。本申請將pacemaker集群作為故障監(jiān)控中心,ocf腳本作為監(jiān)控手段,實(shí)現(xiàn)自動監(jiān)控openstack虛擬機(jī)的故障;且調(diào)用openstack自身提供的應(yīng)用程序接口,自動修復(fù)故障,以提高了openstack虛擬機(jī)的故障監(jiān)控效率??梢?,本申請有利于提高openstack虛擬機(jī)故障監(jiān)控效率。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例提供的openstack虛擬機(jī)的故障監(jiān)控方法的一種具體實(shí)施方式的流程示意圖;
圖2為本發(fā)明實(shí)施例提供的監(jiān)控流程示意圖;
圖3為本發(fā)明實(shí)施例提供的基于pacemaker的openstack虛擬機(jī)高可用方案架構(gòu)示意框圖;
圖4為本發(fā)明實(shí)施例提供的openstack虛擬機(jī)的故障監(jiān)控裝置的結(jié)構(gòu)框圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
請參考圖1,圖1為本發(fā)明實(shí)施例提供的openstack虛擬機(jī)的故障監(jiān)控方法的一種具體實(shí)施方式的流程示意圖,該方法包括以下步驟:
步驟101:運(yùn)行預(yù)存儲于pacemaker集群節(jié)點(diǎn)的ocf監(jiān)控腳本,監(jiān)控openstack的待監(jiān)控虛擬機(jī)。
需要說明的是,上述pacemaker集群節(jié)點(diǎn)可以是預(yù)先創(chuàng)建的,該集群至少可以包括3個節(jié)點(diǎn),以保證pacemaker資源選舉主節(jié)點(diǎn)時的投票能產(chǎn)生多數(shù)。該pacemaker集群的建立過程可以為:選擇至少3個節(jié)點(diǎn),在各個節(jié)點(diǎn)上安裝pacemaker集群軟件,接著將安裝了pacemaker集群軟件的節(jié)點(diǎn)互相認(rèn)證,配置成一個整體。
上述ocf腳本可以是指根據(jù)ocf腳本規(guī)范格式編寫的openstack節(jié)點(diǎn)狀態(tài)監(jiān)控腳本??梢栽谠搊cf腳本內(nèi)自定義監(jiān)控條件,即自主選擇所需的監(jiān)測手段,例如,cpu利用率、內(nèi)存利用率等性能數(shù)據(jù)、nova-compute進(jìn)程信息等。
該ocf腳本可以預(yù)先上傳至pacemaker集群節(jié)點(diǎn)上,具體可以存儲于每個pacemaker節(jié)點(diǎn)上的/usr/lib/ocf/resource.d/openstack/目錄下。pacemaker節(jié)點(diǎn)運(yùn)行ocf腳本,可以創(chuàng)建一個pacemaker資源,該pacemaker資源相當(dāng)于一個由pacemaker集群保證執(zhí)行和監(jiān)控狀態(tài)的服務(wù)實(shí)例。每個資源本身可能在pacemaker集群的各個節(jié)點(diǎn)上選舉而啟動,按照資源內(nèi)部定義的邏輯,控制pacemaker框架執(zhí)行相應(yīng)動作,例如,在ocf腳本的meta標(biāo)簽中定義action時指定interval和timeout,即可定義action的執(zhí)行間隔和超時時間。
步驟102:獲取所述待監(jiān)控虛擬機(jī)的狀態(tài)信息,所述狀態(tài)信息至少包括節(jié)點(diǎn)狀態(tài)信息、進(jìn)程狀態(tài)信息及節(jié)點(diǎn)性能信息。
可以理解,上述狀態(tài)信息可以包括但不限于待監(jiān)控虛擬機(jī)對應(yīng)節(jié)點(diǎn)的節(jié)點(diǎn)狀態(tài)信息、nova-compute進(jìn)程狀態(tài)信息、節(jié)點(diǎn)性能信息、nova-compute節(jié)點(diǎn)虛擬機(jī)數(shù)量及其它預(yù)設(shè)監(jiān)控信息。
具體地,監(jiān)測服務(wù)實(shí)例可以根據(jù)循環(huán)節(jié)點(diǎn)列表,對各個節(jié)點(diǎn)進(jìn)行狀態(tài)監(jiān)測。循環(huán)節(jié)點(diǎn)列表上有各個待監(jiān)控虛擬機(jī)對應(yīng)的節(jié)點(diǎn)id信息,根據(jù)節(jié)點(diǎn)id信息,循環(huán)對各個節(jié)點(diǎn)上的虛擬機(jī)進(jìn)行監(jiān)控。
監(jiān)控虛擬機(jī)的哪些故障信息可以由ocf腳本內(nèi)自定義的監(jiān)測條件決定,故作為一種具體實(shí)施方式,上述獲取所述待監(jiān)控虛擬機(jī)的狀態(tài)信息的過程可以具體為:根據(jù)所述ocf腳本內(nèi)預(yù)定義的監(jiān)測手段,獲取與所述監(jiān)測手段對應(yīng)的所述待監(jiān)控虛擬機(jī)的所述狀態(tài)信息。
上述監(jiān)測手段可以是指故障監(jiān)測的各個指標(biāo)的監(jiān)控方法,其可以在編寫ocf腳本時設(shè)定。例如,可以將該監(jiān)測手段設(shè)為:檢查nova-compute節(jié)點(diǎn)狀態(tài)信息、檢查nova-compute進(jìn)程狀態(tài)信息、檢查節(jié)點(diǎn)性能信息(例如cpu利用率)、檢查nova-compute節(jié)點(diǎn)虛擬機(jī)數(shù)量。所需監(jiān)測指標(biāo)可以人為根據(jù)實(shí)際需求進(jìn)行設(shè)定,在此不作限定。
步驟103:根據(jù)所述狀態(tài)信息,判斷所述待監(jiān)控虛擬機(jī)是否出現(xiàn)故障。
具體地,可以根據(jù)各個監(jiān)測指標(biāo)的信息,分別確定其對應(yīng)的監(jiān)測指標(biāo)的正常與否。
作為一種具體實(shí)施方式,上述根據(jù)所述狀態(tài)信息,判斷所述待監(jiān)控虛擬機(jī)是否出現(xiàn)故障的過程可以具體為:根據(jù)所述節(jié)點(diǎn)狀態(tài)信息、所述進(jìn)程狀態(tài)信息、所述節(jié)點(diǎn)性能信息,分別判斷所述待監(jiān)控虛擬機(jī)的節(jié)點(diǎn)狀態(tài)是否正常、所述待監(jiān)控虛擬機(jī)的進(jìn)程狀態(tài)是否正常、所述待監(jiān)控虛擬機(jī)的性能是否正常;當(dāng)所述節(jié)點(diǎn)狀態(tài)、所述進(jìn)程狀態(tài)及所述性能中至少一個異常時,判斷所述待監(jiān)控虛擬機(jī)出現(xiàn)故障;當(dāng)所述節(jié)點(diǎn)狀態(tài)、所述進(jìn)程狀態(tài)及所述性能全部正常時,判斷所述待監(jiān)控虛擬機(jī)正常。
步驟104:若是,運(yùn)行預(yù)存儲于所述pacemaker集群節(jié)點(diǎn)的修復(fù)腳本,調(diào)用openstack提供的應(yīng)用程序接口,對所述待監(jiān)控虛擬機(jī)進(jìn)行修復(fù)操作。
需要說明,上述修復(fù)腳本可以是指用于執(zhí)行虛擬機(jī)高可用操作的fencecompute腳本,其是預(yù)先上傳至各個pacemaker集群節(jié)點(diǎn)的相應(yīng)目錄下。
上述修復(fù)操作可以具體包括節(jié)點(diǎn)隔離、虛擬機(jī)重建和重啟、疏散等;上述應(yīng)用程序接口為openstack自身提供的novaapi。
調(diào)用應(yīng)用程序接口,執(zhí)行該接口內(nèi)的命令,可以進(jìn)行相應(yīng)修復(fù)操作。故作為一種具體實(shí)施方式,上述若是,運(yùn)行預(yù)存儲于所述pacemaker集群節(jié)點(diǎn)的修復(fù)腳本,調(diào)用openstack提供的應(yīng)用程序接口,對所述待監(jiān)控虛擬機(jī)進(jìn)行修改操作的過程可以具體為:若是,運(yùn)行預(yù)存儲于所述pacemaker集群節(jié)點(diǎn)的所述修復(fù)腳本;執(zhí)行所述應(yīng)用程序接口中的隔離命令,隔離所述待監(jiān)控虛擬機(jī)的節(jié)點(diǎn);執(zhí)行所述應(yīng)用程序接口中的疏散命令,疏散所述待監(jiān)控虛擬機(jī)。
可以理解,上述隔離命令可以具體為novaservice-force-down命令,該命令可以將故障節(jié)點(diǎn)強(qiáng)制下線,防止產(chǎn)生腦裂現(xiàn)象。上述疏散命令可以具體為novaevacuate命令,該命令可以疏散故障節(jié)點(diǎn)上的虛擬機(jī),具體地,該命令自動收集故障節(jié)點(diǎn)上的虛擬機(jī)信息,并在其它健康節(jié)點(diǎn)上進(jìn)行重建和重啟,且重建后的虛擬機(jī)名字、id及ip等信息均不變化。
在疏散節(jié)點(diǎn)后,可以及時告知相關(guān)管理人員,故作為一種具體實(shí)施方式,在上述執(zhí)行所述應(yīng)用程序接口中的疏散命令,疏散所述待監(jiān)控虛擬機(jī)之后還可以包括:更新所述節(jié)點(diǎn)的節(jié)點(diǎn)狀態(tài)為已疏散,并發(fā)送告警信息給管理員。
上述節(jié)點(diǎn)為故障虛擬機(jī)對應(yīng)的故障節(jié)點(diǎn)。而告警信息的發(fā)送方式可以具體為郵件、短信等。當(dāng)然,不發(fā)送告警信息也不影響本發(fā)明實(shí)施例的實(shí)現(xiàn)。
在判斷出當(dāng)前節(jié)點(diǎn)沒有出現(xiàn)故障時,可以判斷下一節(jié)點(diǎn)的相關(guān)信息,依次循環(huán)。具體流程可以參見圖2,圖2為本發(fā)明實(shí)施例提供的監(jiān)控流程示意圖。如圖2所示,在更新節(jié)點(diǎn)狀態(tài)并發(fā)送告警通知管理員后,開始判斷下一個節(jié)點(diǎn)。顯然,也可以在疏散故障節(jié)點(diǎn)上的虛擬機(jī)后就進(jìn)行下一次判斷,即修復(fù)成功后開始下一次判斷。而圖2中的各個步驟可以參見文中相應(yīng)內(nèi)容,在此不再贅述。
基于pacemaker集群節(jié)點(diǎn),對openstack集群上的虛擬機(jī)節(jié)點(diǎn)進(jìn)行故障監(jiān)控,即將pacemaker節(jié)點(diǎn)作為故障檢測中心,運(yùn)行ocf腳本和fencecompute腳本,實(shí)現(xiàn)自動監(jiān)控節(jié)點(diǎn)狀態(tài),自動執(zhí)行隔離、疏散、重啟等修復(fù)操作。具體實(shí)現(xiàn)方案可以參見圖3,圖3為本發(fā)明實(shí)施例提供的基于pacemaker的openstack虛擬機(jī)高可用方案架構(gòu)示意框圖。
如圖3所示,該方案包括pacemaker集群和openstack集群,pacemaker集群包括node1、node2、node3這3個節(jié)點(diǎn),node1上運(yùn)行novamonitor腳本,通過openstack集群提供的nova-api定時監(jiān)控節(jié)點(diǎn)狀態(tài),如果發(fā)現(xiàn)故障,則運(yùn)行fencecompute腳本,通過openstack集群提供的nova-api,執(zhí)行隔離、疏散、重啟操作來修復(fù)故障節(jié)點(diǎn)。
本實(shí)施例所提供的openstack虛擬機(jī)的故障監(jiān)控方法,通過運(yùn)行預(yù)存儲于pacemaker集群節(jié)點(diǎn)的ocf監(jiān)控腳本,監(jiān)控openstack的待監(jiān)控虛擬機(jī);獲取待監(jiān)控虛擬機(jī)的狀態(tài)信息,狀態(tài)信息至少包括節(jié)點(diǎn)狀態(tài)信息、進(jìn)程狀態(tài)信息及節(jié)點(diǎn)性能信息;根據(jù)狀態(tài)信息,判斷待監(jiān)控虛擬機(jī)是否出現(xiàn)故障;若是,運(yùn)行預(yù)存儲于pacemaker集群節(jié)點(diǎn)的修復(fù)腳本,調(diào)用openstack提供的應(yīng)用程序接口,對待監(jiān)控虛擬機(jī)進(jìn)行修復(fù)操作。該方法將pacemaker集群作為故障監(jiān)控中心,ocf腳本作為監(jiān)控手段,實(shí)現(xiàn)自動監(jiān)控openstack虛擬機(jī)的故障;且調(diào)用openstack自身提供的應(yīng)用程序接口,自動修復(fù)故障,以提高了openstack虛擬機(jī)的故障監(jiān)控效率。
下面對本發(fā)明實(shí)施例提供的一種openstack虛擬機(jī)的故障監(jiān)控裝置進(jìn)行介紹,下文描述的一種openstack虛擬機(jī)的故障監(jiān)控裝置與上文描述的一種openstack虛擬機(jī)的故障監(jiān)控方法可相互對應(yīng)參照。
請參考圖4,圖4為本發(fā)明實(shí)施例提供的openstack虛擬機(jī)的故障監(jiān)控裝置的結(jié)構(gòu)框圖,該裝置包括:
運(yùn)行模塊41,用于運(yùn)行預(yù)存儲于pacemaker集群節(jié)點(diǎn)的ocf監(jiān)控腳本,監(jiān)控openstack的待監(jiān)控虛擬機(jī);
獲取模塊42,用于獲取待監(jiān)控虛擬機(jī)的狀態(tài)信息,上述狀態(tài)信息至少包括節(jié)點(diǎn)狀態(tài)信息、進(jìn)程狀態(tài)信息及節(jié)點(diǎn)性能信息;
判斷模塊43,用于根據(jù)狀態(tài)信息,判斷待監(jiān)控虛擬機(jī)是否出現(xiàn)故障;
修復(fù)模塊44,用于若是,運(yùn)行預(yù)存儲于pacemaker集群節(jié)點(diǎn)的修復(fù)腳本,調(diào)用openstack提供的應(yīng)用程序接口,對待監(jiān)控虛擬機(jī)進(jìn)行修復(fù)操作。
作為一種具體實(shí)施方式,上述判斷模塊可以包括:
指標(biāo)判斷單元,用于根據(jù)節(jié)點(diǎn)狀態(tài)信息、進(jìn)程狀態(tài)信息、節(jié)點(diǎn)性能信息,分別判斷待監(jiān)控虛擬機(jī)的節(jié)點(diǎn)狀態(tài)是否正常、待監(jiān)控虛擬機(jī)的進(jìn)程狀態(tài)是否正常、待監(jiān)控虛擬機(jī)的性能是否正常;
第一故障判斷單元,用于當(dāng)節(jié)點(diǎn)狀態(tài)、進(jìn)程狀態(tài)及性能中至少一個異常時,判斷待監(jiān)控虛擬機(jī)出現(xiàn)故障;
第二故障判斷單元,用于當(dāng)節(jié)點(diǎn)狀態(tài)、進(jìn)程狀態(tài)及性能全部正常時,判斷待監(jiān)控虛擬機(jī)正常。
作為一種具體實(shí)施方式,上述修復(fù)模塊可以包括:
修復(fù)腳本運(yùn)行單元,用于若是,運(yùn)行預(yù)存儲于pacemaker集群節(jié)點(diǎn)的修復(fù)腳本;
節(jié)點(diǎn)隔離單元,用于執(zhí)行應(yīng)用程序接口中的隔離命令,隔離待監(jiān)控虛擬機(jī)的節(jié)點(diǎn);
疏散單元,用于執(zhí)行應(yīng)用程序接口中的疏散命令,疏散待監(jiān)控虛擬機(jī)。
作為一種具體實(shí)施方式,上述修復(fù)模塊還可以包括:
更新告警單元,用于更新節(jié)點(diǎn)的節(jié)點(diǎn)狀態(tài)為已疏散,并發(fā)送告警信息給管理員。
作為一種具體實(shí)施方式,上述獲取模塊可以包括:
監(jiān)測手段獲取單元,用于根據(jù)ocf腳本內(nèi)預(yù)定義的監(jiān)測手段,獲取與監(jiān)測手段對應(yīng)的待監(jiān)控虛擬機(jī)的狀態(tài)信息。
本實(shí)施例所提供的openstack虛擬機(jī)的故障監(jiān)控裝置,將pacemaker集群作為故障監(jiān)控中心,ocf腳本作為監(jiān)控手段,實(shí)現(xiàn)自動監(jiān)控openstack虛擬機(jī)的故障;且調(diào)用openstack自身提供的應(yīng)用程序接口,自動修復(fù)故障,以提高了openstack虛擬機(jī)的故障監(jiān)控效率。
說明書中各個實(shí)施例采用遞進(jìn)的方式描述,每個實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個實(shí)施例之間相同相似部分互相參見即可。對于實(shí)施例公開的裝置而言,由于其與實(shí)施例公開的方法相對應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。
專業(yè)人員還可以進(jìn)一步意識到,結(jié)合本文中所公開的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來實(shí)現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
結(jié)合本文中所公開的實(shí)施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實(shí)施。軟件模塊可以置于隨機(jī)存儲器(ram)、內(nèi)存、只讀存儲器(rom)、電可編程rom、電可擦除可編程rom、寄存器、硬盤、可移動磁盤、cd-rom、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲介質(zhì)中。
以上對本發(fā)明所提供的openstack虛擬機(jī)的故障監(jiān)控方法及裝置進(jìn)行了詳細(xì)介紹。本文中應(yīng)用了具體個例對本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想。應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進(jìn)行若干改進(jìn)和修飾,這些改進(jìn)和修飾也落入本發(fā)明權(quán)利要求的保護(hù)范圍內(nèi)。