本發(fā)明涉及通信技術(shù)領(lǐng)域,尤指一種高可用性系統(tǒng)中的故障處理方法和故障處理集群。
背景技術(shù):
高可用性集群(highavailable,ha)是保證業(yè)務(wù)連續(xù)性的有效解決方案,一般有兩個(gè)或兩個(gè)以上的節(jié)點(diǎn),且分為活動(dòng)節(jié)點(diǎn)及備用節(jié)點(diǎn)。通常把正在執(zhí)行業(yè)務(wù)的稱為活動(dòng)節(jié)點(diǎn),而作為活動(dòng)節(jié)點(diǎn)的一個(gè)備份的則稱為備用節(jié)點(diǎn)。當(dāng)活動(dòng)節(jié)點(diǎn)出現(xiàn)問(wèn)題,導(dǎo)致正在運(yùn)行的業(yè)務(wù)(任務(wù))不能正常運(yùn)行時(shí),備用節(jié)點(diǎn)此時(shí)就會(huì)偵測(cè)到,并立即接續(xù)活動(dòng)節(jié)點(diǎn)來(lái)執(zhí)行業(yè)務(wù)。從而實(shí)現(xiàn)業(yè)務(wù)的不中斷或短暫中斷。
但在高可用(ha)系統(tǒng)中,當(dāng)聯(lián)系2個(gè)節(jié)點(diǎn)之間的聯(lián)系斷開時(shí),原本為一整體、動(dòng)作協(xié)調(diào)的ha系統(tǒng),就分裂成為2個(gè)獨(dú)立的個(gè)體。由于相互失去了聯(lián)系,都會(huì)認(rèn)為是對(duì)方出了故障。兩個(gè)節(jié)點(diǎn)上的ha軟件像“裂腦人”一樣,爭(zhēng)搶共享資源、爭(zhēng)起應(yīng)用服務(wù),就會(huì)發(fā)生嚴(yán)重后果,比如,共享資源被瓜分、2邊服務(wù)都起不來(lái)了;或者2個(gè)節(jié)點(diǎn)服務(wù)都起來(lái)了,但同時(shí)讀寫共享存儲(chǔ),導(dǎo)致數(shù)據(jù)損壞,比如hdfs文件系統(tǒng)元數(shù)據(jù)出錯(cuò)等。
因此,在高可用(ha)系統(tǒng)中,當(dāng)聯(lián)系2個(gè)節(jié)點(diǎn)之間的聯(lián)系斷開時(shí),如何對(duì)集群中節(jié)點(diǎn)進(jìn)行管理以保證業(yè)務(wù)正常運(yùn)行是亟待解決的問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
為了解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種高可用性系統(tǒng)中的故障處理方法和故障處理集群,能夠防止高可用集群腦裂現(xiàn)象的產(chǎn)生。
為了達(dá)到本發(fā)明目的,本發(fā)明提供了一種高可用性系統(tǒng)中的故障處理集群,所述故障處理集群中每個(gè)節(jié)點(diǎn)包括:
獲取模塊,用于獲取高可用性系統(tǒng)中工作集群中的管理對(duì)象,其中所述管理對(duì)象為工作集群的節(jié)點(diǎn);
監(jiān)測(cè)模塊,用于根據(jù)預(yù)先設(shè)置的監(jiān)測(cè)策略,對(duì)所述管理對(duì)象的運(yùn)行狀態(tài)進(jìn)行監(jiān)測(cè);
節(jié)點(diǎn)管理模塊,用于當(dāng)管理對(duì)象中有節(jié)點(diǎn)不能因出現(xiàn)故障不能處理業(yè)務(wù)時(shí),通知出現(xiàn)故障的節(jié)點(diǎn)下線。
其中,所述故障處理集群有2n+1個(gè)節(jié)點(diǎn),其中一個(gè)節(jié)點(diǎn)為主節(jié)點(diǎn),其余節(jié)點(diǎn)為從節(jié)點(diǎn),n為正整數(shù);其中:
發(fā)送模塊,用于通知從節(jié)點(diǎn)從工作集群中選擇代替所述出現(xiàn)故障的節(jié)點(diǎn)繼續(xù)工作的節(jié)點(diǎn);
確定模塊,用于根據(jù)從節(jié)點(diǎn)和主節(jié)點(diǎn)的選擇結(jié)果,確定代替故障節(jié)點(diǎn)繼續(xù)工作的節(jié)點(diǎn);
其中,所述每個(gè)節(jié)點(diǎn)包括:
選舉模塊,用于從工作集群中選擇代替所述出現(xiàn)故障的節(jié)點(diǎn)繼續(xù)工作的節(jié)點(diǎn),并將選擇結(jié)果發(fā)送給所述主節(jié)點(diǎn)。
其中,所述節(jié)點(diǎn)管理模塊包括:
獲取單元,用于獲取出現(xiàn)故障節(jié)點(diǎn)的節(jié)點(diǎn)上基板管理控制器bmc的ip地址信息;
發(fā)送單元,用于根據(jù)出現(xiàn)故障節(jié)點(diǎn)的節(jié)點(diǎn)上bmc的ip地址信息,向出現(xiàn)故障的節(jié)點(diǎn)的bmc發(fā)送關(guān)閉電源的指令。
其中,所述每個(gè)節(jié)點(diǎn)還包括:
告警模塊,用于輸出出現(xiàn)故障的節(jié)點(diǎn)的故障描述信息。
其中,所述每個(gè)節(jié)點(diǎn)還包括:
策略管理模塊,用于在接收到監(jiān)測(cè)策略的更新請(qǐng)求后,根據(jù)所述更新請(qǐng)求,對(duì)監(jiān)測(cè)策略進(jìn)行更新,并將更新后的監(jiān)測(cè)策略發(fā)送給所述監(jiān)測(cè)模塊。
一種高可用性系統(tǒng)中故障處理方法,包括:
故障處理集群獲取每個(gè)節(jié)點(diǎn)在高可用性系統(tǒng)中工作集群對(duì)應(yīng)的管理對(duì)象,其中所述管理對(duì)象為工作集群的節(jié)點(diǎn);
根據(jù)預(yù)先設(shè)置的監(jiān)測(cè)策略,對(duì)所述管理對(duì)象的運(yùn)行狀態(tài)進(jìn)行監(jiān)測(cè);
當(dāng)管理對(duì)象中有節(jié)點(diǎn)不能因出現(xiàn)故障不能處理業(yè)務(wù)時(shí),通知出現(xiàn)故障的節(jié)點(diǎn)下線。
其中,所述通知出現(xiàn)故障的節(jié)點(diǎn)下線之后,所述方法還包括:
通知各節(jié)點(diǎn)從工作集群中選擇代替所述出現(xiàn)故障的節(jié)點(diǎn)繼續(xù)工作的節(jié)點(diǎn);
接收各節(jié)點(diǎn)發(fā)送的選擇結(jié)果;
根據(jù)所述選擇結(jié)果,確定代替故障節(jié)點(diǎn)繼續(xù)工作的節(jié)點(diǎn),其中所述故障處理集群有2n+1個(gè)節(jié)點(diǎn),其中一個(gè)節(jié)點(diǎn)為主節(jié)點(diǎn),其余節(jié)點(diǎn)為從節(jié)點(diǎn),n為正整數(shù)。
其中,所述通知出現(xiàn)故障的節(jié)點(diǎn)下線包括:
獲取出現(xiàn)故障節(jié)點(diǎn)的節(jié)點(diǎn)上基板管理控制器bmc的ip地址信息;
根據(jù)出現(xiàn)故障節(jié)點(diǎn)的節(jié)點(diǎn)上bmc的ip地址信息,向出現(xiàn)故障的節(jié)點(diǎn)的bmc發(fā)送關(guān)閉電源的指令。
其中,所述通知出現(xiàn)故障的節(jié)點(diǎn)下線之后,所述方法還包括:
輸出出現(xiàn)故障的節(jié)點(diǎn)的故障描述信息。
其中,所述方法還包括:
在接收到監(jiān)測(cè)策略的更新請(qǐng)求后,根據(jù)所述更新請(qǐng)求,對(duì)監(jiān)測(cè)策略進(jìn)行更新,并將更新后的監(jiān)測(cè)策略發(fā)送給所述監(jiān)測(cè)模塊。
本發(fā)明提供的實(shí)施例,通過(guò)對(duì)集群節(jié)點(diǎn)進(jìn)行故障診斷,當(dāng)集群中某節(jié)點(diǎn)心跳斷開,對(duì)故障節(jié)點(diǎn)進(jìn)行關(guān)機(jī)操作,確保故障節(jié)點(diǎn)完全關(guān)閉,防止高可用集群腦裂現(xiàn)象的產(chǎn)生。
本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說(shuō)明書中闡述,并且,部分地從說(shuō)明書中變得顯而易見,或者通過(guò)實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過(guò)在說(shuō)明書、權(quán)利要求書以及附圖中所特別指出的結(jié)構(gòu)來(lái)實(shí)現(xiàn)和獲得。
附圖說(shuō)明
附圖用來(lái)提供對(duì)本發(fā)明技術(shù)方案的進(jìn)一步理解,并且構(gòu)成說(shuō)明書的一部分,與本申請(qǐng)的實(shí)施例一起用于解釋本發(fā)明的技術(shù)方案,并不構(gòu)成對(duì)本發(fā)明技術(shù)方案的限制。
圖1為本發(fā)明提供的高可用性系統(tǒng)中的故障處理集群中節(jié)點(diǎn)的結(jié)構(gòu)圖;
圖2為本發(fā)明應(yīng)用實(shí)例提供的基于ipmi的高可用集群系統(tǒng)的結(jié)構(gòu)示意圖;
圖3為在圖2系統(tǒng)下故障處理的方法流程圖;
圖4為本發(fā)明提供的高可用性系統(tǒng)中故障處理方法的流程圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下文中將結(jié)合附圖對(duì)本發(fā)明的實(shí)施例進(jìn)行詳細(xì)說(shuō)明。需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互任意組合。
在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行。并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
圖1為本發(fā)明提供的高可用性系統(tǒng)中的故障處理集群中節(jié)點(diǎn)的結(jié)構(gòu)圖。圖1所示故障處理集群中每個(gè)節(jié)點(diǎn)包括:
獲取模塊101,用于獲取高可用性系統(tǒng)中工作集群中的管理對(duì)象,其中所述管理對(duì)象為工作集群的節(jié)點(diǎn);
監(jiān)測(cè)模塊102,用于根據(jù)預(yù)先設(shè)置的監(jiān)測(cè)策略,對(duì)所述管理對(duì)象的運(yùn)行狀態(tài)進(jìn)行監(jiān)測(cè);
節(jié)點(diǎn)管理模塊103,用于當(dāng)管理對(duì)象中有節(jié)點(diǎn)不能因出現(xiàn)故障不能處理業(yè)務(wù)時(shí),通知出現(xiàn)故障的節(jié)點(diǎn)下線。
本發(fā)明提供的故障處理集群,通過(guò)對(duì)集群節(jié)點(diǎn)進(jìn)行故障診斷,當(dāng)集群中某節(jié)點(diǎn)心跳斷開,對(duì)故障節(jié)點(diǎn)進(jìn)行關(guān)機(jī)操作,確保故障節(jié)點(diǎn)完全關(guān)閉,防止高可用集群腦裂現(xiàn)象的產(chǎn)生。
下面對(duì)本發(fā)明提供的故障處理集群進(jìn)行說(shuō)明:
在檢測(cè)出工作集群中有出現(xiàn)故障節(jié)點(diǎn)后,該故障節(jié)點(diǎn)處理的業(yè)務(wù)需要進(jìn)行執(zhí)行,則需要故障處理集群為該故障節(jié)點(diǎn)從工作集群中選擇一個(gè)節(jié)點(diǎn),代替出現(xiàn)故障的節(jié)點(diǎn)進(jìn)行工作。
為保證故障處理集群能夠盡快選擇出合適的節(jié)點(diǎn),故障處理集群中節(jié)點(diǎn)的數(shù)量為2n+1個(gè),其中一個(gè)節(jié)點(diǎn)為主節(jié)點(diǎn),其余節(jié)點(diǎn)為從節(jié)點(diǎn),n為正整數(shù);
所述主節(jié)點(diǎn)通知從節(jié)點(diǎn)從工作集群中選擇代替所述出現(xiàn)故障的節(jié)點(diǎn)繼續(xù)工作的節(jié)點(diǎn);
其余的從節(jié)點(diǎn)在接收到通知后,從工作集群中選擇代替所述出現(xiàn)故障的節(jié)點(diǎn)繼續(xù)工作的節(jié)點(diǎn),并將結(jié)果發(fā)送給主節(jié)點(diǎn);
主節(jié)點(diǎn)根據(jù)從節(jié)點(diǎn)和主節(jié)點(diǎn)的選擇結(jié)果,選擇代替故障節(jié)點(diǎn)繼續(xù)工作的節(jié)點(diǎn)。
其中主節(jié)點(diǎn)可以將工作集群中節(jié)點(diǎn)選擇次數(shù)最多的節(jié)點(diǎn),作為代替故障節(jié)點(diǎn)繼續(xù)工作的節(jié)點(diǎn)。
工作集群中各節(jié)點(diǎn)自帶的基板管理控制器(baseboardmanagementcontroller,bmc)芯片和管理網(wǎng),通過(guò)智能平臺(tái)管理接口(intelligentplatformmanagementinterface,ipmi)協(xié)議實(shí)現(xiàn)具體的虛擬機(jī)關(guān)機(jī)操作。當(dāng)前絕大部分服務(wù)器主板都帶有bmc芯片和bmc網(wǎng)口,bmc芯片不依賴于服務(wù)器的處理器、bios或操作系統(tǒng)來(lái)工作,可謂非常地獨(dú)立,是一個(gè)單獨(dú)在服務(wù)器內(nèi)運(yùn)行的無(wú)代理管理子系統(tǒng),只要服務(wù)器上電便可開始工作。bmc良好的自治特性便克服了以往基于操作系統(tǒng)的管理方式所受的限制,例如操作系統(tǒng)不響應(yīng)或未加載的情況下其仍然可以進(jìn)行開關(guān)機(jī)、信息提取等操作,并且由于管理網(wǎng)獨(dú)立組網(wǎng),在網(wǎng)絡(luò)穩(wěn)定性和可達(dá)性上一般都要強(qiáng)于業(yè)務(wù)網(wǎng),因此對(duì)遠(yuǎn)程服務(wù)器的ipmi操作在非極端情況下都是可靠的,這樣在故障發(fā)生時(shí)可以確保節(jié)點(diǎn)完全關(guān)閉,防止出現(xiàn)腦裂現(xiàn)象。
具體的,所述節(jié)點(diǎn)管理模塊包括:
獲取單元,用于獲取出現(xiàn)故障節(jié)點(diǎn)的節(jié)點(diǎn)上bmc的ip地址信息;
發(fā)送單元,用于根據(jù)出現(xiàn)故障節(jié)點(diǎn)的節(jié)點(diǎn)上bmc的ip地址信息,向出現(xiàn)故障的節(jié)點(diǎn)的bmc發(fā)送關(guān)閉電源的指令。
可選的,所述每個(gè)節(jié)點(diǎn)還包括:
告警模塊,用于輸出出現(xiàn)故障的節(jié)點(diǎn)的故障描述信息。
例如,發(fā)出告警提示音,或者,在顯示屏幕上輸出告警提示信息,其中故障描述信息可以描述節(jié)點(diǎn)的標(biāo)識(shí)信息以及節(jié)點(diǎn)出現(xiàn)的異常。
當(dāng)然,監(jiān)測(cè)策略是可以動(dòng)態(tài)更新的,用戶可以自定義,也可以根據(jù)業(yè)務(wù)的需要進(jìn)行動(dòng)態(tài)修改,因此所述每個(gè)節(jié)點(diǎn)還包括:
策略管理模塊,用于在接收到監(jiān)測(cè)策略的更新請(qǐng)求后,根據(jù)所述更新請(qǐng)求,對(duì)監(jiān)測(cè)策略進(jìn)行更新,并將更新后的監(jiān)測(cè)策略發(fā)送給所述監(jiān)測(cè)模塊。
在實(shí)際應(yīng)用中,可以通過(guò)節(jié)點(diǎn)狀態(tài)監(jiān)控腳本和合理的邏輯嚴(yán)密的節(jié)點(diǎn)控制腳本,使得ha集群的節(jié)點(diǎn)發(fā)生故障后,可以自動(dòng)進(jìn)行故障節(jié)點(diǎn)的關(guān)機(jī)隔離,彌補(bǔ)了原生ha軟件不能確保故障節(jié)點(diǎn)隔離、容易產(chǎn)生腦裂現(xiàn)象的問(wèn)題,并且通過(guò)不斷的累積監(jiān)控方式,可以達(dá)到多種條件的故障綜合判斷,比如cpu利用率、內(nèi)存利用率等性能信息,java進(jìn)程是否正常、節(jié)點(diǎn)上應(yīng)用進(jìn)程是否正常等條件,都可以加入監(jiān)控列表中,并且通過(guò)ipmi協(xié)議對(duì)故障節(jié)點(diǎn)執(zhí)行強(qiáng)制的關(guān)機(jī)操作,避免了ha方案中經(jīng)常出現(xiàn)的腦裂現(xiàn)象,達(dá)到ha方案可靈活定制、高可靠運(yùn)行的效果。
下面結(jié)合具體應(yīng)用實(shí)例進(jìn)行說(shuō)明:
本發(fā)明采用pacemaker作為故障探測(cè)和恢復(fù)的控制器。pacemaker可以自行管理一個(gè)集群,在集群上創(chuàng)建pacemaker的ocf資源,并保證這個(gè)ocf資源本身的集群間選舉、飄移和高可用。因此我們使用ocf腳本來(lái)做openstack的監(jiān)控器,其本身也是高可用的;
pacemaker的資源主要有兩類,分別為lsb(linuxstandardsbase,linux標(biāo)準(zhǔn)服務(wù))和ocf(openclusterframework,開放集群框架)。其中l(wèi)sb資源通常就是/etc/init.d目錄下的腳本,pacemaker可以用這些腳本來(lái)啟停服務(wù)。ocf資源是對(duì)lsb服務(wù)的擴(kuò)展,增加了一些高可用集群理的功能如故障監(jiān)控等和更多的元信息,作為具體故障探測(cè)的實(shí)現(xiàn)方式。pacemaker通過(guò)實(shí)現(xiàn)一個(gè)ocf資源,可以很好的對(duì)服務(wù)進(jìn)行高可用保障。
本發(fā)明提供的基于ipmi的高可用集群防腦裂實(shí)現(xiàn)方案:
圖2為本發(fā)明應(yīng)用實(shí)例提供的基于ipmi的高可用集群系統(tǒng)的結(jié)構(gòu)示意圖。該系統(tǒng)的部署如下:
選擇至少高可用系統(tǒng)中3個(gè)節(jié)點(diǎn),安裝pacemaker集群軟件以及安裝ipmitool,其中ipmitool用于遠(yuǎn)程管理節(jié)點(diǎn);其中之所以選擇3個(gè)節(jié)點(diǎn)是為了保證pacemaker資源選舉主節(jié)點(diǎn)時(shí)的投票能產(chǎn)生多數(shù);
將安裝了pacemaker軟件的節(jié)點(diǎn)互相認(rèn)證,配置成一個(gè)整體,完成pacemaker集群的創(chuàng)建;
創(chuàng)建自動(dòng)監(jiān)控節(jié)點(diǎn)狀態(tài)的ocf腳本nodemonitor,并上傳至pacemaker集群中每個(gè)節(jié)點(diǎn)的/usr/lib/ocf/resource.d/openstack/目錄下,其中該ocf腳本能夠?qū)崿F(xiàn)對(duì)節(jié)點(diǎn)進(jìn)行開機(jī)、關(guān)機(jī)、查看狀態(tài)、監(jiān)控資源的操作等;通過(guò)使用符合ocf腳本規(guī)范的格式編寫節(jié)點(diǎn)狀態(tài)監(jiān)控腳本,可以靈活利用pacemaker本身的資源高可用、定時(shí)調(diào)度和管理資源、以及大量已有的linuxocf腳本,實(shí)現(xiàn)監(jiān)控程序本身的靈活與高可用;
當(dāng)然,在ocf腳本內(nèi)部可以自定義monitor方法,實(shí)現(xiàn)多種監(jiān)測(cè)條件,可根據(jù)業(yè)務(wù)靈活定制,達(dá)到條件限制后即可觸發(fā)虛擬機(jī)的疏散。方法包括但不限于:檢查節(jié)點(diǎn)上業(yè)務(wù)網(wǎng)卡的狀態(tài);檢查節(jié)點(diǎn)上指定應(yīng)用進(jìn)程的狀態(tài);檢查該節(jié)點(diǎn)的性能數(shù)據(jù),如cpu利用率、內(nèi)存利用率等;檢查該節(jié)點(diǎn)上的存儲(chǔ)空間狀態(tài)等。
創(chuàng)建具體執(zhí)行節(jié)點(diǎn)關(guān)機(jī)操作的腳本nodecontroller,并上傳至pacemaker用戶有權(quán)限操作的目錄下,如/usr/lib/myscript/;該腳本需要輸入節(jié)點(diǎn)bmcip地址、賬號(hào)、密碼;
使用該ocf腳本創(chuàng)建一個(gè)pacemaker資源;pacemaker資源相當(dāng)于一個(gè)由pacemaker集群來(lái)保證執(zhí)行和監(jiān)控狀態(tài)的服務(wù)實(shí)例,每個(gè)資源本身可能在pacemaker集群的各個(gè)節(jié)點(diǎn)上經(jīng)選舉而啟動(dòng),并按照資源內(nèi)部定義的邏輯,由pacemaker框架執(zhí)行相應(yīng)的動(dòng)作,例如,在ocf的meta標(biāo)簽中定義操作的執(zhí)行間隔和超時(shí)時(shí)間。
圖3為在圖2系統(tǒng)下故障處理的方法流程圖。圖2所示方法包括:
系統(tǒng)啟動(dòng)后,pacemaker按設(shè)定的時(shí)間間隔定時(shí)執(zhí)行腳本的monitor方法,該方法可以由業(yè)務(wù)人員自行定義,用于判斷節(jié)點(diǎn)是否故障,例如pingip、訪問(wèn)某業(yè)務(wù)接口、ssh連接、訪問(wèn)數(shù)據(jù)庫(kù)連接等;
當(dāng)nodemonitor腳本判斷某節(jié)點(diǎn)故障,則調(diào)用ipmitool,利用現(xiàn)有的bmc管理網(wǎng)遠(yuǎn)程控制節(jié)點(diǎn)電源,對(duì)遠(yuǎn)程故障節(jié)點(diǎn)進(jìn)行關(guān)機(jī)操作,不需要額外增加設(shè)備;同時(shí)使用pacemaker的attrd_updater接口將故障節(jié)點(diǎn)置為無(wú)效,以觸發(fā)pacemaker的主節(jié)點(diǎn)選舉流程。
由上可以看出,本發(fā)明應(yīng)用實(shí)例提供一種基于ipmi的高可用集群防腦裂方案,通過(guò)使用開源的pacemaker作為ha集群的故障探測(cè)中心,使用ocf腳本作為監(jiān)控方法,利用多種手段探測(cè)節(jié)點(diǎn)的故障信息,利用服務(wù)器板卡自身提供的bmc管理接口隔離故障節(jié)點(diǎn),可以快速而可靠的將故障節(jié)點(diǎn)從ha集群中分離,完善的保證分布式業(yè)務(wù)運(yùn)行過(guò)程中的數(shù)據(jù)完整性,防止腦裂現(xiàn)象的產(chǎn)生,彌補(bǔ)當(dāng)前ha整體解決方案中對(duì)故障節(jié)點(diǎn)隔離不徹底的問(wèn)題,更完善的監(jiān)控業(yè)務(wù)運(yùn)行過(guò)程中的問(wèn)題,大大保護(hù)業(yè)務(wù)數(shù)據(jù)的完整性性。
圖4為本發(fā)明提供的高可用性系統(tǒng)中故障處理方法的流程圖。圖4所示方法包括:
步驟401、獲取每個(gè)節(jié)點(diǎn)在高可用性系統(tǒng)中工作集群對(duì)應(yīng)的管理對(duì)象,其中所述管理對(duì)象為工作集群的節(jié)點(diǎn);
步驟402、根據(jù)預(yù)先設(shè)置的監(jiān)測(cè)策略,對(duì)所述管理對(duì)象的運(yùn)行狀態(tài)進(jìn)行監(jiān)測(cè);
步驟403、當(dāng)管理對(duì)象中有節(jié)點(diǎn)不能因出現(xiàn)故障不能處理業(yè)務(wù)時(shí),通知出現(xiàn)故障的節(jié)點(diǎn)下線。
其中,所述通知出現(xiàn)故障的節(jié)點(diǎn)下線之后,所述方法還包括:
通知各節(jié)點(diǎn)從工作集群中選擇代替所述出現(xiàn)故障的節(jié)點(diǎn)繼續(xù)工作的節(jié)點(diǎn);
接收各節(jié)點(diǎn)發(fā)送的選擇結(jié)果;
根據(jù)所述選擇結(jié)果,確定代替故障節(jié)點(diǎn)繼續(xù)工作的節(jié)點(diǎn),其中所述故障處理集群有2n+1個(gè)節(jié)點(diǎn),其中一個(gè)節(jié)點(diǎn)為主節(jié)點(diǎn),其余節(jié)點(diǎn)為從節(jié)點(diǎn),n為正整數(shù)。
其中,所述通知出現(xiàn)故障的節(jié)點(diǎn)下線包括:
獲取出現(xiàn)故障節(jié)點(diǎn)的節(jié)點(diǎn)上基板管理控制器bmc的ip地址信息;
根據(jù)出現(xiàn)故障節(jié)點(diǎn)的節(jié)點(diǎn)上bmc的ip地址信息,向出現(xiàn)故障的節(jié)點(diǎn)的bmc發(fā)送關(guān)閉電源的指令。
其中,所述通知出現(xiàn)故障的節(jié)點(diǎn)下線之后,所述方法還包括:
輸出出現(xiàn)故障的節(jié)點(diǎn)的故障描述信息。
可選的,所述方法還包括:
在接收到監(jiān)測(cè)策略的更新請(qǐng)求后,根據(jù)所述更新請(qǐng)求,對(duì)監(jiān)測(cè)策略進(jìn)行更新,并將更新后的監(jiān)測(cè)策略發(fā)送給所述監(jiān)測(cè)模塊。
本發(fā)明提供的故障處理方法,通過(guò)對(duì)集群節(jié)點(diǎn)進(jìn)行故障診斷,當(dāng)集群中某節(jié)點(diǎn)心跳斷開,對(duì)故障節(jié)點(diǎn)進(jìn)行關(guān)機(jī)操作,確保故障節(jié)點(diǎn)完全關(guān)閉,防止高可用集群腦裂現(xiàn)象的產(chǎn)生。
雖然本發(fā)明所揭露的實(shí)施方式如上,但所述的內(nèi)容僅為便于理解本發(fā)明而采用的實(shí)施方式,并非用以限定本發(fā)明。任何本發(fā)明所屬領(lǐng)域內(nèi)的技術(shù)人員,在不脫離本發(fā)明所揭露的精神和范圍的前提下,可以在實(shí)施的形式及細(xì)節(jié)上進(jìn)行任何的修改與變化,但本發(fā)明的專利保護(hù)范圍,仍須以所附的權(quán)利要求書所界定的范圍為準(zhǔn)。