本發明涉及集群通信技術領域,尤其涉及一種故障處理方法及裝置。
背景技術:
由多個節點控制器組成的集群系統,在性能上可以滿足大量數據快速處理的需求。集群系統作為一個整體為用戶提供應用服務的過程中,需要對集群中各個節點控制器進行統籌管理。
其中,在集群系統工作過程中,由于各種各樣的原因,集群內的節點控制器不可避免的會出現故障。當節點控制器出現故障,尤其是集群系統中的主節點控制器出現故障時,集群系統應該有一套完善的故障處理機制,將故障節點控制器的工作轉移給正常的節點控制器,保證集群系統正常工作。
在現有的集群系統中,主要依靠人工處理系統故障,尚且沒有完善的故障處理機制,能夠在節點控制器出現故障時,及時處理故障,或及時完成工作轉移。
技術實現要素:
基于上述現有技術的缺陷和不足,本發明提出一種故障處理方法及裝置,能夠在集群系統中的節點控制器出現故障時,自動地進行相應的故障處理。
一種故障處理方法,應用于集群系統的仲裁盤,該方法包括:
接收節點控制器發送的通信故障報告信息;
根據所述通信故障報告信息,確認發生故障的節點控制器;
如果所述發生故障的節點控制器為主節點控制器,則將所述集群系統中的任一正常工作的普通節點控制器設置為主節點控制器;
如果所述發生故障的節點控制器為普通節點控制器,則控制所述集群系統的主節點控制器在所述集群系統中廣播表征所述發生故障的節點控制器發生故障的信息。
優選地,所述接收節點控制器發送的通信故障報告信息,包括:
接收主節點控制器發送的通信故障報告信息,和/或接收普通節點控制器發送的通信故障報告信息。
一種故障處理方法,應用于集群系統的節點控制器,該方法包括:
檢測所述節點控制器與連接所述節點控制器的其它節點控制器之間,是否發生通信故障;
如果所述節點控制器與連接所述節點控制器的其它節點控制器之間發生通信故障,則向仲裁盤發送通信故障報告信息,使所述仲裁盤根據所述通信故障報告信息完成故障處理。
優選地,在向仲裁盤發送通信故障報告信息后,該方法還包括:
如果所述節點控制器被所述仲裁盤設置為主節點控制器,則在所述集群系統中廣播表征所述節點控制器為主節點控制器的信息。
優選地,在所述集群系統中廣播表征所述節點控制器為主節點控制器的信息后,該方法還包括:
接收與所述節點控制器連接的其它節點控制器發送的事件信息;
在所述集群系統中廣播所述事件信息。
一種故障處理裝置,應用于集群系統的仲裁盤,該裝置包括:
信息接收單元,用于接收節點控制器發送的通信故障報告信息;
分析單元,用于根據所述通信故障報告信息,確認發生故障的節點控制器;
故障處理單元,用于當所述分析單元確認所述發生故障的節點控制器為主節點控制器時,將所述集群系統中的任一正常工作的普通節點控制器設置為主節點控制器;如果所述發生故障的節點控制器為普通節點控制器,則控制所述集群系統的主節點控制器在所述集群系統中廣播表征所述發生故障的節點控制器發生故障的信息。
優選地,所述信息接收單元接收節點控制器發送的通信故障報告信息時,具體用于:
接收主節點控制器發送的通信故障報告信息,和/或接收普通節點控制器發送的通信故障報告信息。
一種故障處理裝置,應用于集群系統的節點控制器,該裝置包括:
故障檢測單元,用于檢測所述節點控制器與連接所述節點控制器的其它節點控制器之間,是否發生通信故障;
信息發送單元,用于當所述故障檢測單元檢測所述節點控制器與連接所述節點控制器的其它節點控制器之間發生通信故障時,向仲裁盤發送通信故障報告信息,使所述仲裁盤根據所述通信故障報告信息完成故障處理。
優選地,該裝置還包括:
信息廣播單元,用于當所述節點控制器被所述仲裁盤設置為主節點控制器時,在所述集群系統中廣播表征所述節點控制器為主節點控制器的信息。
優選地,該裝置還包括:
事件信息接收單元,用于接收與所述節點控制器連接的其它節點控制器發送的事件信息;并控制所述信息廣播單元在所述集群系統中廣播所述事件信息。
本發明提出的故障處理方法應用于集群系統的仲裁盤,當仲裁盤接收到節點控制器發送的通信故障報告信息時,根據所述通信故障報告信息,確認發生故障的節點控制器;如果所述發生故障的節點控制器為主節點控制器,則將所述集群系統中的任一正常工作的普通節點控制器設置為主節點控制器;如果所述發生故障的節點控制器為普通節點控制器,則控制所述集群系統的主節點控制器在所述集群系統中廣播表征所述發生故障的節點控制器發生故障的信息。采用上述技術方案,當集群系統中的節點控制器發送故障時,仲裁盤能夠根據節點控制器類型,自動執行相應的故障處理方法,或完成工作轉移,保證集群系統正常工作。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據提供的附圖獲得其他的附圖。
圖1是本發明實施例提供的一種故障處理方法的流程示意圖;
圖2是本發明實施例提供的另一種故障處理方法的流程示意圖;
圖3是本發明實施例提供的又一種故障處理方法的流程示意圖;
圖4是本發明實施例提供的一種故障處理裝置的結構示意圖;
圖5是本發明實施例提供的另一種故障處理裝置的結構示意圖;
圖6是本發明實施例提供的另一種故障處理裝置的結構示意圖;
圖7是本發明實施例提供的另一種故障處理裝置的結構示意圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
本發明實施例公開了一種故障處理方法,應用于集群系統的仲裁盤,參見圖1所示,該方法包括:
s101、接收節點控制器發送的通信故障報告信息;
具體的,上述集群系統為由多個節點控制器組成的集群通信系統。集群系統中的節點控制器分為主節點控制器和普通節點控制器。主節點控制器負責集群統籌管理,普通節點控制器負責具體事件處理。任何時候,主節點控制器只有一個,剩余控制器為普通節點控制器。集群系統中的主節點控制器與普通節點控制器的交互過程具體為:當集群系統中有數據輸入時,或硬件環境發生變化時,普通節點控制器檢測到這種變化,就會產生一個事件。普通節點控制器將該事件發送給主節點控制器,再由主節點控制器統一將事件進行編號,并在集群系統中廣播發送,即廣播給各個普通節點控制器。集群系統中的每個普通節點控制器都會接收到集群系統中按順序編號的所有事件,然后根據事件的信息,確定是否執行動作,及如何執行事件動作。
在本發明實施例中,集群系統內的各個節點控制器通過物理鏈路與后端的共享存儲盤連接,該共享存儲盤稱為仲裁盤。
當集群系統中的節點控制器發現與自身連接的節點控制器之間的通信發生通信故障時,節點控制器通過與仲裁盤之間的物理鏈路,向仲裁盤發送通信故障報告信息。上述節點控制器包括主節點控制器,和普通節點控制器。通常情況下,主節點控制器與普通節點控制器之間容易發生通信故障。當主節點控制器與某一個普通節點控制器之間的通信發生故障時,主節點控制器和該普通節點控制器都可能向仲裁盤發送通信故障報告信息。
s102、根據所述通信故障報告信息,確認發生故障的節點控制器;
具體的,主節點控制器與普通節點控制器之間的通信故障,分為主節點控制器故障與普通節點控制器故障兩種情況。當仲裁盤接收到主節點控制器或普通節點控制器發送的通信故障報告信息后,需要進一步區分到底是主節點控制器故障,還是普通節點控制器故障。
具體的確認方法是,通過通信故障報告信息,確認發生故障的通信鏈路所涉及的節點控制器。然后,根據節點控制器與仲裁盤之間的物理鏈路,檢測上述所涉及的所有的節點控制器的工作狀態。如果節點控制器的工作狀態不正常,則確認該工作不正常的節點控制器發生了故障,導致與其連接的節點控制器之間的通信發生故障。
如果所述發生故障的節點控制器為主節點控制器,則執行步驟s103、將所述集群系統中的任一正常工作的普通節點控制器設置為主節點控制器;
具體的,如果集群系統中的主節點控制器發生了故障,那么仲裁盤立即將系統中的任意一個工作正常的普通節點控制器指定為新的主節點控制器,并控制新的主節點控制器將新的主節點控制器信息廣播到系統中。基于步驟s101中介紹的主節點控制器與普通節點控制器之間的交互過程,新的主節點控制器中記錄了集群系統中按順序編號的所有事件,即新的主節點控制器具備作為主節點控制器的條件。因此,只需要其它的普通節點控制器都與上述新的主節點控制器連接,即可保證集群系統正常工作。
如果所述發生故障的節點控制器為普通節點控制器,則執行步驟s104、控制所述集群系統的主節點控制器在所述集群系統中廣播表征所述發生故障的節點控制器發生故障的信息。
具體的,如果發生故障的節點控制器為普通節點控制器,而主節點控制器工作正常,則仲裁盤不用采取必要的處理措施,因為普通節點控制器退出系統,并不會影響集群系統的正常工作。此時,仲裁盤需要做的只是通知主節點控制器哪個普通節點控制器發生了故障,使主節點控制器廣播發生故障的普通節點控制器的信息,告訴所有的節點控制器,該普通節點控制器發生故障,取消與該普通節點控制器相關的事件。
需要說明的是,如果上述通信故障報告信息涉及的節點控制器都沒有發生故障,則在通過本發明實施例排除節點控制器故障后,可以執行其它的故障處理策略,處理通信故障。
本發明實施例提出的故障處理方法應用于集群系統的仲裁盤,當仲裁盤接收到節點控制器發送的通信故障報告信息時,根據所述通信故障報告信息,確認發生故障的節點控制器;如果所述發生故障的節點控制器為主節點控制器,則將所述集群系統中的任一正常工作的普通節點控制器設置為主節點控制器;如果所述發生故障的節點控制器為普通節點控制器,則控制所述集群系統的主節點控制器在所述集群系統中廣播表征所述發生故障的節點控制器發生故障的信息。采用上述技術方案,當集群系統中的節點控制器發送故障時,仲裁盤能夠根據節點控制器類型,自動執行相應的故障處理方法,或完成工作轉移,保證集群系統正常工作。
可選的,在本發明的另一個實施例中,所述接收節點控制器發送的通信故障報告信息,包括:
接收主節點控制器發送的通信故障報告信息,和/或接收普通節點控制器發送的通信故障報告信息。
具體的,在本發明實施例中,可以靈活設定當節點控制器之間發生通信故障時,是由主節點控制器發送通信故障報告信息,還是由普通節點控制器發送通信故障報告信息。可選的方式是,由主節點控制器發送,或者由普通節點控制器發送,或者由主節點控制器和普通節點控制器同時發送。
相應的,仲裁盤可能收到主節點控制器發送的通信故障報告信息,或者接收普通節點發送的通信故障報告信息,或者接收主節點控制器和普通節點控制器同時發送的通信故障報告信息。
本發明實施例公開了另一種故障處理方法,應用于集群系統的節點控制器,參見圖2所示,該方法包括:
s201、檢測所述節點控制器與連接所述節點控制器的其它節點控制器之間,是否發生通信故障;
具體的,實施本發明實施例技術方案的上述節點控制器,包括主節點控制器和普通節點控制器,即本發明實施例技術方案適用于主節點控制器和普通節點控制器。
在集群系統正常工作過程中,各個節點控制器分別檢測與自身相連的其它節點控制器之間的通信是否故障,如果沒有故障,則執行正常的集群通信。
如果所述節點控制器與連接所述節點控制器的其它節點控制器之間發生通信故障,則執行步驟s202、向仲裁盤發送通信故障報告信息,使所述仲裁盤根據所述通信故障報告信息完成故障處理。
具體的,如果上述節點控制器檢測發現與連接上述節點控制器的其它節點控制器之間的通信發生了故障,則上述節點控制器將故障信息以通信故障報告信息的形式,發送給仲裁盤,使仲裁盤根據上述通信故障報告信息,作出處理決策,處理故障。
仲裁盤在接收到通信故障報告信息后,按照上一實施例介紹的技術方案處理故障,具體過程請參見上一實施例,此處不再贅述。
采用本發明實施例提出的故障處理方法,集群系統中的節點控制器自主檢測與連接自身的其它節點控制器之間是否發生通信故障,如果發生了通信故障,則向仲裁盤發送通信故障報告信息,使仲裁盤根據通信故障報告信息處理故障。上述過程實現了集群系統自動地檢測及處理故障,保證了集群系統的正常工作。
可選的,在本發明的另一個實施例中,參見圖3所示,在向仲裁盤發送通信故障報告信息后,該方法還包括:
如果所述節點控制器被所述仲裁盤設置為主節點控制器,則執行步驟s303、在所述集群系統中廣播表征所述節點控制器為主節點控制器的信息。
具體的,當節點控制器將通信故障報告信息發送給仲裁盤后,如果仲裁盤根據通信故障報告信息判斷發生故障的是主節點控制器,那么在本發明實施例中,仲裁盤將正常工作的普通節點控制器設置為新的主節點控制器,以保證集群系統的正常工作。
當本發明實施例中所述的發送通信故障報告信息的普通節點控制器被仲裁盤設置為新的主節點控制器時,新的主節點控制器在集群系統中廣播自身為主節點控制器的信息,使其它的普通節點控制器都與自身連接,從而使集群系統繼續執行正常的事件處理。
本實施例中的步驟s301、s302分別對應圖2所示的方法實施例中的步驟s201、s202,其具體內容請參見圖2所示的方法實施例的內容,此處不再贅述。
可選的,在本發明的另一個實施例中,在所述集群系統中廣播表征所述節點控制器為主節點控制器的信息后,該方法還包括:
接收與所述節點控制器連接的其它節點控制器發送的事件信息;
在所述集群系統中廣播所述事件信息。
具體的,在本發明實施例中,普通節點控制器被仲裁盤設置為新的主節點控制器后,其余的各個普通節點控制器分別連接新的主節點控制器,繼續執行集群系統事件處理。
新的主節點控制器的節點與集群系統原來的主節點控制器執行相同的工作,即通過與普通節點控制器之間的交互,完成事件處理。具體的交互過程為:當集群系統中有數據輸入時,或硬件環境發生變化時,普通節點控制器檢測到這種變化,就會產生一個事件。普通節點控制器將該事件發送給新的主節點控制器,再由新的主節點控制器統一將事件進行編號,并在集群系統中廣播發送,即廣播給各個普通節點控制器。集群系統中的每個普通節點控制器都會接收到集群系統中按順序編號的所有事件,然后根據事件的信息,確定是否執行動作,及如何執行事件動作。
本發明實施例公開了一種故障處理裝置,應用于集群系統的仲裁盤,參見圖4所示,該裝置包括:
信息接收單元401,用于接收節點控制器發送的通信故障報告信息;
分析單元402,用于根據所述通信故障報告信息,確認發生故障的節點控制器;
故障處理單元403,用于當分析單元402確認所述發生故障的節點控制器為主節點控制器時,將所述集群系統中的任一正常工作的普通節點控制器設置為主節點控制器;如果所述發生故障的節點控制器為普通節點控制器,則控制所述集群系統的主節點控制器在所述集群系統中廣播表征所述發生故障的節點控制器發生故障的信息。
具體的,本實施例中的各個單元的具體工作內容,請參見上述方法實施例的內容,此處不再贅述。
可選的,在本發明的另一個實施例中,信息接收單元401接收節點控制器發送的通信故障報告信息時,具體用于:
接收主節點控制器發送的通信故障報告信息,和/或接收普通節點控制器發送的通信故障報告信息。
具體的,本實施例中的信息接收單元401的具體工作內容,請參見上述方法實施例的內容,此處不再贅述。
本發明實施例公開了另一種故障處理裝置,應用于集群系統的節點控制器,參見圖5所示,該裝置包括:
故障檢測單元501,用于檢測所述節點控制器與連接所述節點控制器的其它節點控制器之間,是否發生通信故障;
信息發送單元502,用于當所述故障檢測單元檢測所述節點控制器與連接所述節點控制器的其它節點控制器之間發生通信故障時,向仲裁盤發送通信故障報告信息,使所述仲裁盤根據所述通信故障報告信息完成故障處理。
具體的,本實施例中的各個單元的具體工作內容,請參見上述方法實施例的內容,此處不再贅述。
可選的,在本發明的另一個實施例中,參見圖6所示,該裝置還包括:
信息廣播單元503,用于當所述節點控制器被所述仲裁盤設置為主節點控制器時,在所述集群系統中廣播表征所述節點控制器為主節點控制器的信息。
具體的,本實施例中的信息廣播單元503的具體工作內容,請參見上述方法實施例的內容,此處不再贅述。
可選的,在本發明的另一個實施例中,參見圖7所示,該裝置還包括:
事件信息接收單元504,用于接收與所述節點控制器連接的其它節點控制器發送的事件信息;并控制信息廣播單元503在所述集群系統中廣播所述事件信息。
對所公開的實施例的上述說明,使本領域專業技術人員能夠實現或使用本發明。對這些實施例的多種修改對本領域的專業技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發明的精神或范圍的情況下,在其它實施例中實現。因此,本發明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。