<listing id="vjp15"></listing><menuitem id="vjp15"></menuitem><var id="vjp15"></var><cite id="vjp15"></cite>
<var id="vjp15"></var><cite id="vjp15"><video id="vjp15"><menuitem id="vjp15"></menuitem></video></cite>
<cite id="vjp15"></cite>
<var id="vjp15"><strike id="vjp15"><listing id="vjp15"></listing></strike></var>
<var id="vjp15"><strike id="vjp15"><listing id="vjp15"></listing></strike></var>
<menuitem id="vjp15"><strike id="vjp15"></strike></menuitem>
<cite id="vjp15"></cite>
<var id="vjp15"><strike id="vjp15"></strike></var>
<var id="vjp15"></var>
<var id="vjp15"></var>
<var id="vjp15"><video id="vjp15"><thead id="vjp15"></thead></video></var>
<menuitem id="vjp15"></menuitem><cite id="vjp15"><video id="vjp15"></video></cite>
<var id="vjp15"></var><cite id="vjp15"><video id="vjp15"><thead id="vjp15"></thead></video></cite>
<var id="vjp15"></var>
<var id="vjp15"></var>
<menuitem id="vjp15"><span id="vjp15"><thead id="vjp15"></thead></span></menuitem>
<cite id="vjp15"><video id="vjp15"></video></cite>
<menuitem id="vjp15"></menuitem>

一種OpenStack虛擬機的故障監控方法及裝置與流程

文檔序號:11216150閱讀:975來源:國知局
一種OpenStack虛擬機的故障監控方法及裝置與流程

本發明涉及云計算數據中心技術領域,特別涉及一種openstack虛擬機的故障監控方法及裝置。



背景技術:

openstack是一個由nasa和rackspace合作研發并發起的、以apache許可證授權的自由軟件和開放源代碼項目。該項目支持幾乎所有類型的云環境,其目標是提供實施簡單、可大規模擴展、豐富及標準統一的云計算管理平臺。openstack通過各種互補的服務提供基礎設施即服務(iaas)的解決方案,每個服務提供api以進行集成。

目前,openstack只提供一個api,用于疏散指定節點上的虛擬機,并沒有自動檢測故障、自動執行疏散的機制。在實際應用中,openstack虛擬機的故障仍需要人工檢測、人工修復,進而導致openstack虛擬機故障監控效率低。



技術實現要素:

本發明的目的是提供一種openstack虛擬機的故障監控方法及裝置,目的在于解決現有人工檢測修復openstack虛擬機故障導致的故障監控效率低的問題。

為解決上述技術問題,本發明提供一種openstack虛擬機的故障監控方法,該方法包括:

運行預存儲于pacemaker集群節點的ocf監控腳本,監控openstack的待監控虛擬機;

獲取所述待監控虛擬機的狀態信息,所述狀態信息至少包括節點狀態信息、進程狀態信息及節點性能信息;

根據所述狀態信息,判斷所述待監控虛擬機是否出現故障;

若是,運行預存儲于所述pacemaker集群節點的修復腳本,調用openstack提供的應用程序接口,對所述待監控虛擬機進行修復操作。

可選地,所述根據所述狀態信息,判斷所述待監控虛擬機是否出現故障包括:

根據所述節點狀態信息、所述進程狀態信息、所述節點性能信息,分別判斷所述待監控虛擬機的節點狀態是否正常、所述待監控虛擬機的進程狀態是否正常、所述待監控虛擬機的性能是否正常;

當所述節點狀態、所述進程狀態及所述性能中至少一個異常時,判斷所述待監控虛擬機出現故障;

當所述節點狀態、所述進程狀態及所述性能全部正常時,判斷所述待監控虛擬機正常。

可選地,所述若是,運行預存儲于所述pacemaker集群節點的修復腳本,調用openstack提供的應用程序接口,對所述待監控虛擬機進行修改操作包括:

若是,運行預存儲于所述pacemaker集群節點的所述修復腳本;

執行所述應用程序接口中的隔離命令,隔離所述待監控虛擬機的節點;

執行所述應用程序接口中的疏散命令,疏散所述待監控虛擬機。

可選地,在所述執行所述應用程序接口中的疏散命令,疏散所述待監控虛擬機之后還包括:

更新所述節點的節點狀態為已疏散,并發送告警信息給管理員。

可選地,所述獲取所述待監控虛擬機的狀態信息包括:

根據所述ocf腳本內預定義的監測手段,獲取與所述監測手段對應的所述待監控虛擬機的所述狀態信息。

此外,本發明還提供了一種openstack虛擬機的故障監控裝置,該裝置包括:

運行模塊,用于運行預存儲于pacemaker集群節點的ocf監控腳本,監控openstack的待監控虛擬機;

獲取模塊,用于獲取所述待監控虛擬機的狀態信息,所述狀態信息至少包括節點狀態信息、進程狀態信息及節點性能信息;

判斷模塊,用于根據所述狀態信息,判斷所述待監控虛擬機是否出現故障;

修復模塊,用于若是,運行預存儲于所述pacemaker集群節點的修復腳本,調用openstack提供的應用程序接口,對所述待監控虛擬機進行修復操作。

可選地,所述判斷模塊包括:

指標判斷單元,用于根據所述節點狀態信息、所述進程狀態信息、所述節點性能信息,分別判斷所述待監控虛擬機的節點狀態是否正常、所述待監控虛擬機的進程狀態是否正常、所述待監控虛擬機的性能是否正常;

第一故障判斷單元,用于當所述節點狀態、所述進程狀態及所述性能中至少一個異常時,判斷所述待監控虛擬機出現故障;

第二故障判斷單元,用于當所述節點狀態、所述進程狀態及所述性能全部正常時,判斷所述待監控虛擬機正常。

可選地,所述修復模塊包括:

修復腳本運行單元,用于若是,運行預存儲于所述pacemaker集群節點的所述修復腳本;

節點隔離單元,用于執行所述應用程序接口中的隔離命令,隔離所述待監控虛擬機的節點;

疏散單元,用于執行所述應用程序接口中的疏散命令,疏散所述待監控虛擬機。

可選地,所述修復模塊還包括:

更新告警單元,用于更新所述節點的節點狀態為已疏散,并發送告警信息給管理員。

可選地,所述獲取模塊包括:

監測手段獲取單元,用于根據所述ocf腳本內預定義的監測手段,獲取與所述監測手段對應的所述待監控虛擬機的所述狀態信息。

本發明實施例所提供的一種openstack虛擬機的故障監控方法及裝置,通過運行預存儲于pacemaker集群節點的ocf監控腳本,監控openstack的待監控虛擬機;獲取待監控虛擬機的狀態信息,狀態信息至少包括節點狀態信息、進程狀態信息及節點性能信息;根據狀態信息,判斷待監控虛擬機是否出現故障;若是,運行預存儲于pacemaker集群節點的修復腳本,調用openstack提供的應用程序接口,對待監控虛擬機進行修復操作。本申請將pacemaker集群作為故障監控中心,ocf腳本作為監控手段,實現自動監控openstack虛擬機的故障;且調用openstack自身提供的應用程序接口,自動修復故障,以提高了openstack虛擬機的故障監控效率。可見,本申請有利于提高openstack虛擬機故障監控效率。

附圖說明

為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據提供的附圖獲得其他的附圖。

圖1為本發明實施例提供的openstack虛擬機的故障監控方法的一種具體實施方式的流程示意圖;

圖2為本發明實施例提供的監控流程示意圖;

圖3為本發明實施例提供的基于pacemaker的openstack虛擬機高可用方案架構示意框圖;

圖4為本發明實施例提供的openstack虛擬機的故障監控裝置的結構框圖。

具體實施方式

為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。

請參考圖1,圖1為本發明實施例提供的openstack虛擬機的故障監控方法的一種具體實施方式的流程示意圖,該方法包括以下步驟:

步驟101:運行預存儲于pacemaker集群節點的ocf監控腳本,監控openstack的待監控虛擬機。

需要說明的是,上述pacemaker集群節點可以是預先創建的,該集群至少可以包括3個節點,以保證pacemaker資源選舉主節點時的投票能產生多數。該pacemaker集群的建立過程可以為:選擇至少3個節點,在各個節點上安裝pacemaker集群軟件,接著將安裝了pacemaker集群軟件的節點互相認證,配置成一個整體。

上述ocf腳本可以是指根據ocf腳本規范格式編寫的openstack節點狀態監控腳本。可以在該ocf腳本內自定義監控條件,即自主選擇所需的監測手段,例如,cpu利用率、內存利用率等性能數據、nova-compute進程信息等。

該ocf腳本可以預先上傳至pacemaker集群節點上,具體可以存儲于每個pacemaker節點上的/usr/lib/ocf/resource.d/openstack/目錄下。pacemaker節點運行ocf腳本,可以創建一個pacemaker資源,該pacemaker資源相當于一個由pacemaker集群保證執行和監控狀態的服務實例。每個資源本身可能在pacemaker集群的各個節點上選舉而啟動,按照資源內部定義的邏輯,控制pacemaker框架執行相應動作,例如,在ocf腳本的meta標簽中定義action時指定interval和timeout,即可定義action的執行間隔和超時時間。

步驟102:獲取所述待監控虛擬機的狀態信息,所述狀態信息至少包括節點狀態信息、進程狀態信息及節點性能信息。

可以理解,上述狀態信息可以包括但不限于待監控虛擬機對應節點的節點狀態信息、nova-compute進程狀態信息、節點性能信息、nova-compute節點虛擬機數量及其它預設監控信息。

具體地,監測服務實例可以根據循環節點列表,對各個節點進行狀態監測。循環節點列表上有各個待監控虛擬機對應的節點id信息,根據節點id信息,循環對各個節點上的虛擬機進行監控。

監控虛擬機的哪些故障信息可以由ocf腳本內自定義的監測條件決定,故作為一種具體實施方式,上述獲取所述待監控虛擬機的狀態信息的過程可以具體為:根據所述ocf腳本內預定義的監測手段,獲取與所述監測手段對應的所述待監控虛擬機的所述狀態信息。

上述監測手段可以是指故障監測的各個指標的監控方法,其可以在編寫ocf腳本時設定。例如,可以將該監測手段設為:檢查nova-compute節點狀態信息、檢查nova-compute進程狀態信息、檢查節點性能信息(例如cpu利用率)、檢查nova-compute節點虛擬機數量。所需監測指標可以人為根據實際需求進行設定,在此不作限定。

步驟103:根據所述狀態信息,判斷所述待監控虛擬機是否出現故障。

具體地,可以根據各個監測指標的信息,分別確定其對應的監測指標的正常與否。

作為一種具體實施方式,上述根據所述狀態信息,判斷所述待監控虛擬機是否出現故障的過程可以具體為:根據所述節點狀態信息、所述進程狀態信息、所述節點性能信息,分別判斷所述待監控虛擬機的節點狀態是否正常、所述待監控虛擬機的進程狀態是否正常、所述待監控虛擬機的性能是否正常;當所述節點狀態、所述進程狀態及所述性能中至少一個異常時,判斷所述待監控虛擬機出現故障;當所述節點狀態、所述進程狀態及所述性能全部正常時,判斷所述待監控虛擬機正常。

步驟104:若是,運行預存儲于所述pacemaker集群節點的修復腳本,調用openstack提供的應用程序接口,對所述待監控虛擬機進行修復操作。

需要說明,上述修復腳本可以是指用于執行虛擬機高可用操作的fencecompute腳本,其是預先上傳至各個pacemaker集群節點的相應目錄下。

上述修復操作可以具體包括節點隔離、虛擬機重建和重啟、疏散等;上述應用程序接口為openstack自身提供的novaapi。

調用應用程序接口,執行該接口內的命令,可以進行相應修復操作。故作為一種具體實施方式,上述若是,運行預存儲于所述pacemaker集群節點的修復腳本,調用openstack提供的應用程序接口,對所述待監控虛擬機進行修改操作的過程可以具體為:若是,運行預存儲于所述pacemaker集群節點的所述修復腳本;執行所述應用程序接口中的隔離命令,隔離所述待監控虛擬機的節點;執行所述應用程序接口中的疏散命令,疏散所述待監控虛擬機。

可以理解,上述隔離命令可以具體為novaservice-force-down命令,該命令可以將故障節點強制下線,防止產生腦裂現象。上述疏散命令可以具體為novaevacuate命令,該命令可以疏散故障節點上的虛擬機,具體地,該命令自動收集故障節點上的虛擬機信息,并在其它健康節點上進行重建和重啟,且重建后的虛擬機名字、id及ip等信息均不變化。

在疏散節點后,可以及時告知相關管理人員,故作為一種具體實施方式,在上述執行所述應用程序接口中的疏散命令,疏散所述待監控虛擬機之后還可以包括:更新所述節點的節點狀態為已疏散,并發送告警信息給管理員。

上述節點為故障虛擬機對應的故障節點。而告警信息的發送方式可以具體為郵件、短信等。當然,不發送告警信息也不影響本發明實施例的實現。

在判斷出當前節點沒有出現故障時,可以判斷下一節點的相關信息,依次循環。具體流程可以參見圖2,圖2為本發明實施例提供的監控流程示意圖。如圖2所示,在更新節點狀態并發送告警通知管理員后,開始判斷下一個節點。顯然,也可以在疏散故障節點上的虛擬機后就進行下一次判斷,即修復成功后開始下一次判斷。而圖2中的各個步驟可以參見文中相應內容,在此不再贅述。

基于pacemaker集群節點,對openstack集群上的虛擬機節點進行故障監控,即將pacemaker節點作為故障檢測中心,運行ocf腳本和fencecompute腳本,實現自動監控節點狀態,自動執行隔離、疏散、重啟等修復操作。具體實現方案可以參見圖3,圖3為本發明實施例提供的基于pacemaker的openstack虛擬機高可用方案架構示意框圖。

如圖3所示,該方案包括pacemaker集群和openstack集群,pacemaker集群包括node1、node2、node3這3個節點,node1上運行novamonitor腳本,通過openstack集群提供的nova-api定時監控節點狀態,如果發現故障,則運行fencecompute腳本,通過openstack集群提供的nova-api,執行隔離、疏散、重啟操作來修復故障節點。

本實施例所提供的openstack虛擬機的故障監控方法,通過運行預存儲于pacemaker集群節點的ocf監控腳本,監控openstack的待監控虛擬機;獲取待監控虛擬機的狀態信息,狀態信息至少包括節點狀態信息、進程狀態信息及節點性能信息;根據狀態信息,判斷待監控虛擬機是否出現故障;若是,運行預存儲于pacemaker集群節點的修復腳本,調用openstack提供的應用程序接口,對待監控虛擬機進行修復操作。該方法將pacemaker集群作為故障監控中心,ocf腳本作為監控手段,實現自動監控openstack虛擬機的故障;且調用openstack自身提供的應用程序接口,自動修復故障,以提高了openstack虛擬機的故障監控效率。

下面對本發明實施例提供的一種openstack虛擬機的故障監控裝置進行介紹,下文描述的一種openstack虛擬機的故障監控裝置與上文描述的一種openstack虛擬機的故障監控方法可相互對應參照。

請參考圖4,圖4為本發明實施例提供的openstack虛擬機的故障監控裝置的結構框圖,該裝置包括:

運行模塊41,用于運行預存儲于pacemaker集群節點的ocf監控腳本,監控openstack的待監控虛擬機;

獲取模塊42,用于獲取待監控虛擬機的狀態信息,上述狀態信息至少包括節點狀態信息、進程狀態信息及節點性能信息;

判斷模塊43,用于根據狀態信息,判斷待監控虛擬機是否出現故障;

修復模塊44,用于若是,運行預存儲于pacemaker集群節點的修復腳本,調用openstack提供的應用程序接口,對待監控虛擬機進行修復操作。

作為一種具體實施方式,上述判斷模塊可以包括:

指標判斷單元,用于根據節點狀態信息、進程狀態信息、節點性能信息,分別判斷待監控虛擬機的節點狀態是否正常、待監控虛擬機的進程狀態是否正常、待監控虛擬機的性能是否正常;

第一故障判斷單元,用于當節點狀態、進程狀態及性能中至少一個異常時,判斷待監控虛擬機出現故障;

第二故障判斷單元,用于當節點狀態、進程狀態及性能全部正常時,判斷待監控虛擬機正常。

作為一種具體實施方式,上述修復模塊可以包括:

修復腳本運行單元,用于若是,運行預存儲于pacemaker集群節點的修復腳本;

節點隔離單元,用于執行應用程序接口中的隔離命令,隔離待監控虛擬機的節點;

疏散單元,用于執行應用程序接口中的疏散命令,疏散待監控虛擬機。

作為一種具體實施方式,上述修復模塊還可以包括:

更新告警單元,用于更新節點的節點狀態為已疏散,并發送告警信息給管理員。

作為一種具體實施方式,上述獲取模塊可以包括:

監測手段獲取單元,用于根據ocf腳本內預定義的監測手段,獲取與監測手段對應的待監控虛擬機的狀態信息。

本實施例所提供的openstack虛擬機的故障監控裝置,將pacemaker集群作為故障監控中心,ocf腳本作為監控手段,實現自動監控openstack虛擬機的故障;且調用openstack自身提供的應用程序接口,自動修復故障,以提高了openstack虛擬機的故障監控效率。

說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應,所以描述的比較簡單,相關之處參見方法部分說明即可。

專業人員還可以進一步意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結合來實現,為了清楚地說明硬件和軟件的可互換性,在上述說明中已經按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執行,取決于技術方案的特定應用和設計約束條件。專業技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本發明的范圍。

結合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、處理器執行的軟件模塊,或者二者的結合來實施。軟件模塊可以置于隨機存儲器(ram)、內存、只讀存儲器(rom)、電可編程rom、電可擦除可編程rom、寄存器、硬盤、可移動磁盤、cd-rom、或技術領域內所公知的任意其它形式的存儲介質中。

以上對本發明所提供的openstack虛擬機的故障監控方法及裝置進行了詳細介紹。本文中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發明的方法及其核心思想。應當指出,對于本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以對本發明進行若干改進和修飾,這些改進和修飾也落入本發明權利要求的保護范圍內。

當前第1頁1 2 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
韩国伦理电影