一種面向關(guān)鍵應(yīng)用的仲裁系統(tǒng)及方法
【專利摘要】本發(fā)明公開(kāi)了一種面向關(guān)鍵應(yīng)用的仲裁系統(tǒng)及方法,屬于系統(tǒng)仲裁【技術(shù)領(lǐng)域】。本發(fā)明公開(kāi)的仲裁系統(tǒng),至少包括:自檢測(cè)模塊,利用系統(tǒng)自帶的檢測(cè)機(jī)制及故障檢測(cè)算法,檢測(cè)本節(jié)點(diǎn)的主機(jī)系統(tǒng)的自身故障,并將檢測(cè)到的故障信息傳送給所述仲裁管理模塊;心跳檢測(cè)模塊,檢測(cè)對(duì)端節(jié)點(diǎn)的狀態(tài)信息,并檢測(cè)到的其他節(jié)點(diǎn)的故障信息傳送給所述仲裁管理模塊;仲裁管理模塊,根據(jù)所述自檢測(cè)模塊和心跳檢測(cè)模塊傳送的故障信息,通過(guò)自身的仲裁算法對(duì)雙機(jī)節(jié)點(diǎn)進(jìn)行最終的表決。本發(fā)明還公開(kāi)了一種面向關(guān)鍵應(yīng)用的仲裁方法。本申請(qǐng)技術(shù)方案具有很高的故障覆蓋率,滿足了系統(tǒng)高可用性的要求。
【專利說(shuō)明】一種面向關(guān)鍵應(yīng)用的仲裁系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于系統(tǒng)仲裁【技術(shù)領(lǐng)域】,涉及一種面向關(guān)鍵應(yīng)用的仲裁系統(tǒng)及方法。
【背景技術(shù)】
[0002]作為提高計(jì)算機(jī)系統(tǒng)可用性的重要手段,容錯(cuò)的含義是指在系統(tǒng)內(nèi)部出現(xiàn)故障的情況下,計(jì)算機(jī)仍然能正確地執(zhí)行指定算法。容錯(cuò)計(jì)算機(jī)系統(tǒng)是通過(guò)冗余來(lái)實(shí)現(xiàn)的,當(dāng)系統(tǒng)中節(jié)點(diǎn)出現(xiàn)故障時(shí),系統(tǒng)能夠迅速發(fā)現(xiàn)故障節(jié)點(diǎn)并且將服務(wù)切換到其他節(jié)點(diǎn)上。在容錯(cuò)計(jì)算機(jī)系統(tǒng)中,仲裁機(jī)制發(fā)現(xiàn)故障、診斷故障、系統(tǒng)重構(gòu)的性能好壞直接影響容錯(cuò)計(jì)算機(jī)系統(tǒng)的可用性。也就是說(shuō)一旦計(jì)算機(jī)出現(xiàn)故障,系統(tǒng)能否及時(shí)發(fā)現(xiàn),作出正確的診斷并采取相應(yīng)的動(dòng)作是影響系統(tǒng)可用性的關(guān)鍵。傳統(tǒng)容錯(cuò)計(jì)算機(jī)一般采用心跳機(jī)制檢測(cè)對(duì)方的狀態(tài),一旦本機(jī)在約定的時(shí)間內(nèi)收不到對(duì)方的心跳,則認(rèn)為對(duì)方出現(xiàn)錯(cuò)誤,從而將對(duì)方的服務(wù)切換過(guò)來(lái)。這種一對(duì)一的仲裁機(jī)制實(shí)現(xiàn)簡(jiǎn)單,但是當(dāng)心跳出現(xiàn)故障而機(jī)器一切正常時(shí),雙方都認(rèn)為對(duì)方出現(xiàn)了錯(cuò)誤,此時(shí)系統(tǒng)發(fā)生混亂,同時(shí)也會(huì)造成不必要的切換,增加了切換開(kāi)銷,降低了系統(tǒng)的可用性。因此研究容錯(cuò)計(jì)算機(jī)系統(tǒng)的仲裁機(jī)制顯得尤為重要。
【發(fā)明內(nèi)容】
[0003]本發(fā)明所要解決的技術(shù)問(wèn)題是,提供一種面向關(guān)鍵應(yīng)用的仲裁系統(tǒng)及方法,以解決傳統(tǒng)仲裁機(jī)制故障覆蓋率和故障診斷成功率低的問(wèn)題。
[0004]為了解決上述技術(shù)問(wèn)題,本發(fā)明公開(kāi)了一種面向關(guān)鍵應(yīng)用的仲裁系統(tǒng),至少包括自檢測(cè)模塊、心跳檢測(cè)模塊和仲裁管理模塊,其中:
[0005]自檢測(cè)模塊,利用系統(tǒng)自帶的檢測(cè)機(jī)制及故障檢測(cè)算法,檢測(cè)本節(jié)點(diǎn)的主機(jī)系統(tǒng)的自身故障,并將檢測(cè)到的故障信息傳送給所述仲裁管理模塊;
[0006]心跳檢測(cè)模塊,檢測(cè)對(duì)端節(jié)點(diǎn)的狀態(tài)信息,并檢測(cè)到的其他節(jié)點(diǎn)的故障信息傳送給所述仲裁管理模塊;
[0007]仲裁管理模塊,根據(jù)所述自檢測(cè)模塊和心跳檢測(cè)模塊傳送的故障信息,通過(guò)自身的仲裁算法對(duì)雙機(jī)節(jié)點(diǎn)進(jìn)行最終的表決。
[0008]可選地,上述仲裁系統(tǒng)中,所述仲裁管理模塊包括運(yùn)行在節(jié)點(diǎn)主機(jī)上的仲裁處理單元和運(yùn)行在仲裁板上的仲裁子系統(tǒng),其中:
[0009]仲裁處理單元,接收節(jié)點(diǎn)主機(jī)發(fā)起的仲裁請(qǐng)求并轉(zhuǎn)發(fā)給所述仲裁子系統(tǒng),接收所述自檢測(cè)模塊和心跳檢測(cè)模塊傳送的故障信息并轉(zhuǎn)發(fā)給所述仲裁子系統(tǒng),以及按照仲裁子系統(tǒng)的指示,調(diào)用對(duì)應(yīng)的仲裁算法,根據(jù)所述故障信息進(jìn)行運(yùn)算,并將運(yùn)算結(jié)果轉(zhuǎn)發(fā)給所述仲裁子系統(tǒng);
[0010]仲裁子系統(tǒng),接收到所述仲裁請(qǐng)求后,根據(jù)接收到的故障信息從仲裁算法庫(kù)中選擇的對(duì)應(yīng)仲裁算法,并指示所述仲裁處理按照所選擇的仲裁算法進(jìn)行仲裁運(yùn)算,以及按照所述仲裁處理模塊發(fā)送的運(yùn)算結(jié)果確定雙機(jī)節(jié)點(diǎn)的最終表決結(jié)果。
[0011]可選地,上述仲裁系統(tǒng)中,所述仲裁處理單元包括:
[0012]仲裁處理器,驅(qū)動(dòng)節(jié)點(diǎn)主機(jī)與仲裁板之間的通信,接收節(jié)點(diǎn)主機(jī)發(fā)起的仲裁請(qǐng)求并轉(zhuǎn)發(fā)給所述仲裁子系統(tǒng),接收所述自檢測(cè)模塊和心跳檢測(cè)模塊傳送的故障信息并轉(zhuǎn)發(fā)給所述仲裁子系統(tǒng);
[0013]仲裁控制子模塊,按照仲裁子系統(tǒng)的指示,調(diào)用對(duì)應(yīng)的仲裁算法,根據(jù)所述故障信息進(jìn)行運(yùn)算,并將運(yùn)算結(jié)果轉(zhuǎn)發(fā)給所述仲裁子系統(tǒng)。
[0014]可選地,上述仲裁系統(tǒng)中,所述仲裁控制子模塊采用三模表決法。
[0015]可選地,上述仲裁系統(tǒng)中,所述自檢測(cè)模塊,檢測(cè)本節(jié)點(diǎn)的主機(jī)系統(tǒng)的自身故障指:
[0016]檢測(cè)本節(jié)點(diǎn)的主機(jī)系統(tǒng)的硬件和服務(wù)進(jìn)程故障。
[0017]本發(fā)明還公開(kāi)了一種面向關(guān)鍵應(yīng)用的仲裁方法,該方法包括:
[0018]利用系統(tǒng)自帶的檢測(cè)機(jī)制及故障檢測(cè)算法,檢測(cè)本節(jié)點(diǎn)的主機(jī)系統(tǒng)的自身故障;
[0019]檢測(cè)對(duì)端節(jié)點(diǎn)的故障信息;
[0020]根據(jù)所檢測(cè)到的本節(jié)點(diǎn)的主機(jī)系統(tǒng)的自身故障以及對(duì)端節(jié)點(diǎn)的故障信息,通過(guò)自身的仲裁算法對(duì)雙機(jī)節(jié)點(diǎn)進(jìn)行最終的表決。
[0021]可選地,上述方法中,根據(jù)所檢測(cè)到的本節(jié)點(diǎn)的主機(jī)系統(tǒng)的自身故障以及對(duì)端節(jié)點(diǎn)的故障信息,通過(guò)自身的仲裁算法對(duì)雙機(jī)節(jié)點(diǎn)進(jìn)行最終的表決指:
[0022]接收節(jié)點(diǎn)主機(jī)發(fā)起的仲裁請(qǐng)求時(shí),根據(jù)所檢測(cè)到的本節(jié)點(diǎn)的主機(jī)系統(tǒng)的自身故障以及對(duì)端節(jié)點(diǎn)的故障信息從仲裁算法庫(kù)中選擇的對(duì)應(yīng)仲裁算法;
[0023]調(diào)用所選擇的仲裁算法,對(duì)檢測(cè)到的本節(jié)點(diǎn)的主機(jī)系統(tǒng)的自身故障以及對(duì)端節(jié)點(diǎn)的故障信息進(jìn)行運(yùn)算,按照運(yùn)算結(jié)果確定雙機(jī)節(jié)點(diǎn)的最終表決結(jié)果。
[0024]可選地,上述方法中,對(duì)檢測(cè)到的本節(jié)點(diǎn)的主機(jī)系統(tǒng)的自身故障以及對(duì)端節(jié)點(diǎn)的故障信息進(jìn)行運(yùn)算后,再次進(jìn)行三模表決以確定雙機(jī)節(jié)點(diǎn)的最終表決結(jié)果。
[0025]可選地,上述方法中,檢測(cè)本節(jié)點(diǎn)的主機(jī)系統(tǒng)的自身故障指:
[0026]檢測(cè)本節(jié)點(diǎn)的主機(jī)系統(tǒng)的硬件和服務(wù)進(jìn)程故障。
[0027]本申請(qǐng)技術(shù)方案提出的面向關(guān)鍵應(yīng)用主機(jī)的仲裁系統(tǒng)設(shè)計(jì)方案,整個(gè)仲裁軟件系統(tǒng)采用分層次的結(jié)構(gòu),具有很高的故障覆蓋率,滿足了系統(tǒng)高可用性的要求。基于仲裁處理器的仲裁系統(tǒng),可以有效地解決傳統(tǒng)容錯(cuò)計(jì)算機(jī)容易發(fā)生雙機(jī)互指的缺點(diǎn),當(dāng)系統(tǒng)發(fā)生故障時(shí)仲裁板能快速地定位故障機(jī),從而極大地提高了容錯(cuò)計(jì)算機(jī)系統(tǒng)的可用性。
【專利附圖】
【附圖說(shuō)明】
[0028]圖1為本發(fā)明仲裁系統(tǒng)軟件的總體結(jié)構(gòu)圖;
[0029]圖2為本發(fā)明自檢測(cè)模塊的工作流程圖;
[0030]圖3為本發(fā)明心跳檢測(cè)模塊的結(jié)構(gòu)圖;
[0031]圖4為本發(fā)明仲裁處理模塊結(jié)構(gòu)圖;
[0032]圖5為本發(fā)明仲裁子系統(tǒng)與仲裁處理模塊的交互流程圖。
【具體實(shí)施方式】
[0033]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下文將結(jié)合附圖對(duì)本發(fā)明技術(shù)方案作進(jìn)一步詳細(xì)說(shuō)明。需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)的實(shí)施例和實(shí)施例中的特征可以任意相互組合。
[0034]實(shí)施例1
[0035]為了解決傳統(tǒng)容錯(cuò)計(jì)算機(jī)系統(tǒng)發(fā)生故障時(shí)對(duì)故障機(jī)定位不準(zhǔn)的問(wèn)題,本實(shí)施例提供一種面向關(guān)鍵應(yīng)用的仲裁系統(tǒng),至少包括自檢測(cè)模塊、心跳檢測(cè)模塊以及仲裁管理模塊,其架構(gòu)如圖1所示。
[0036]自檢測(cè)模塊,為了提高系統(tǒng)的故障檢測(cè)覆蓋率,并保證盡可能地降低檢測(cè)開(kāi)銷,本文引入自檢測(cè)模塊,該模塊利用系統(tǒng)自帶的檢測(cè)機(jī)制及故障檢測(cè)算法,可以檢測(cè)到系統(tǒng)的自身故障,將檢測(cè)到的故障信息傳送給仲裁管理模塊,以作為系統(tǒng)診斷和切換的部分依據(jù)。
[0037]其中,自檢測(cè)模塊可檢測(cè)到的自身故障包括如電源、CPU、風(fēng)扇、CPU板、仲裁系統(tǒng)硬件等故障。具體地,本實(shí)施例中自檢測(cè)模塊可以直接讀出上述硬件的故障狀態(tài)。而對(duì)于系統(tǒng)服務(wù)進(jìn)程,自檢測(cè)模塊通過(guò)檢測(cè)算法可以檢測(cè)進(jìn)程的工作狀態(tài)含進(jìn)程的啟動(dòng)、運(yùn)行、結(jié)束以及異常中止等。
[0038]具體地,自檢測(cè)模塊的檢測(cè)流程主要包括硬件系統(tǒng)檢測(cè)和服務(wù)進(jìn)程檢測(cè)。如圖2所示的自檢測(cè)模塊的工作流程圖,若發(fā)現(xiàn)硬件故障,在雙機(jī)協(xié)同管理下,調(diào)用切換管理流程,將該機(jī)運(yùn)行的所有服務(wù)切換到對(duì)等主機(jī)。同時(shí),通知管理員具體硬件設(shè)備的出錯(cuò)信息,使管理員盡快排除故障。服務(wù)檢測(cè)模塊定時(shí)檢查本主機(jī)上運(yùn)行的服務(wù)進(jìn)程,當(dāng)發(fā)現(xiàn)服務(wù)出錯(cuò)或者被異常終止時(shí),調(diào)用服務(wù)管理流程,重新啟動(dòng)相應(yīng)的服務(wù),若無(wú)法重啟則由雙機(jī)協(xié)同進(jìn)行切換處理。
[0039]心跳檢測(cè)模塊,由于其實(shí)現(xiàn)簡(jiǎn)單、系統(tǒng)開(kāi)銷小、可靠性高等優(yōu)點(diǎn)在集群系統(tǒng)中較為常用。本實(shí)施例借鑒Linux的開(kāi)源項(xiàng)目Linux-HA中的心跳檢測(cè)機(jī)制Heartbeat,設(shè)計(jì)符合容錯(cuò)計(jì)算機(jī)系統(tǒng)要求的心跳檢測(cè)機(jī)制。通過(guò)心跳檢測(cè)可以獲得其他節(jié)點(diǎn)的故障信息,傳送給仲裁管理模塊,以為系統(tǒng)診斷和切換提供依據(jù)。
[0040]具體地,心跳檢測(cè)模塊的結(jié)構(gòu)圖3所示,系統(tǒng)可以通過(guò)定時(shí)地發(fā)送心跳消息來(lái)檢測(cè)對(duì)方的運(yùn)行狀態(tài),發(fā)送的心跳消息中包含本機(jī)的運(yùn)行狀態(tài)信息,包括時(shí)間戳、系統(tǒng)狀態(tài)信息、應(yīng)用服務(wù)程序狀態(tài)信息、網(wǎng)絡(luò)狀態(tài)信息和硬件狀態(tài)信息。
[0041 ] 仲裁管理模塊,根據(jù)所述自檢測(cè)模塊和心跳檢測(cè)模塊傳送的故障信息,通過(guò)自身的仲裁算法對(duì)雙機(jī)節(jié)點(diǎn)進(jìn)行最終的表決。
[0042]在本實(shí)施例中,仲裁管理模塊又分為兩個(gè)部分:運(yùn)行在主機(jī)上的仲裁處理單元和運(yùn)行在仲裁板上的仲裁子系統(tǒng)。
[0043]仲裁處理單元,主要是配合仲裁子系統(tǒng)來(lái)檢測(cè)系統(tǒng)狀況,對(duì)故障位置進(jìn)行準(zhǔn)確的定位。圖4所示為仲裁處理單元的基本結(jié)構(gòu),其分為仲裁處理器和仲裁控制子模塊,其中,仲裁處理器驅(qū)動(dòng)負(fù)責(zé)完成主機(jī)與仲裁板的通信,接收節(jié)點(diǎn)主機(jī)發(fā)起的仲裁請(qǐng)求并轉(zhuǎn)發(fā)給所述仲裁子系統(tǒng),接收所述自檢測(cè)模塊和心跳檢測(cè)模塊傳送的故障信息并轉(zhuǎn)發(fā)給所述仲裁子系統(tǒng)。仲裁控制子模塊,觸發(fā)仲裁請(qǐng)求給仲裁子系統(tǒng),按照仲裁子系統(tǒng)的指示,調(diào)用對(duì)應(yīng)的仲裁算法,根據(jù)所述故障信息進(jìn)行運(yùn)算,并將運(yùn)算結(jié)果轉(zhuǎn)發(fā)給所述仲裁子系統(tǒng)。
[0044]仲裁子系統(tǒng)啟動(dòng)仲裁后,指示仲裁控制子模塊,調(diào)用仲裁算法庫(kù)中的相應(yīng)仲裁算法(即對(duì)應(yīng)故障信息的類型選擇對(duì)應(yīng)的仲裁算法),并將運(yùn)算結(jié)果返回給仲裁子系統(tǒng)。如果一次仲裁不能定位故障機(jī),則需要通過(guò)運(yùn)行不同的仲裁算法進(jìn)行多次仲裁。仲裁子系統(tǒng)的仲裁意見(jiàn)經(jīng)由仲裁控制子模塊的三模表決,以實(shí)現(xiàn)雙機(jī)節(jié)點(diǎn)的最終表決。
[0045]其中,仲裁算法庫(kù)是運(yùn)行在主機(jī)上的一系列診斷程序,算法的選擇應(yīng)該遵循低時(shí)間開(kāi)銷與高故障覆蓋率的原則。因此本實(shí)施例選擇了通信線路、進(jìn)程、內(nèi)存和CPU等檢測(cè)。這些診斷檢測(cè)程序分別對(duì)應(yīng)一個(gè)唯一的仲裁號(hào)(即對(duì)應(yīng)一種仲裁算法)。
[0046]另外,優(yōu)選方案中,仲裁控制子模塊進(jìn)行三模表決后還可以將最終的表決結(jié)果傳送給遠(yuǎn)程端,由遠(yuǎn)程端根據(jù)仲裁結(jié)果采取相應(yīng)的動(dòng)作。
[0047]仲裁子系統(tǒng)是運(yùn)行在仲裁板的單片機(jī)上的程序,用來(lái)對(duì)響應(yīng)主機(jī)提出的仲裁請(qǐng)求,根據(jù)雙主機(jī)傳送的錯(cuò)誤信息來(lái)指定相應(yīng)的仲裁算法,并對(duì)算法運(yùn)行結(jié)果作出判斷,向雙主機(jī)提交最終的仲裁意見(jiàn)。
[0048]具體地,仲裁板加電之后,經(jīng)過(guò)初始化和自檢工作,仲裁子系統(tǒng)便進(jìn)入了就緒狀態(tài)。當(dāng)仲裁子系統(tǒng)接收到某個(gè)主機(jī)的仲裁請(qǐng)求時(shí),仲裁子系統(tǒng)響應(yīng)該仲裁請(qǐng)求,三仲裁節(jié)點(diǎn)進(jìn)行表決同步。至少有兩個(gè)節(jié)點(diǎn)收到仲裁請(qǐng)求亦即表決成功后,子系統(tǒng)便進(jìn)入仲裁啟動(dòng)狀態(tài),并通知對(duì)機(jī)需要進(jìn)行仲裁。此時(shí)仲裁子系統(tǒng)向主機(jī)返回仲裁算法號(hào)(即從仲裁算法庫(kù)中選擇的仲裁算法對(duì)應(yīng)的算法號(hào)),要求其運(yùn)行指定的仲裁算法。仲裁節(jié)點(diǎn)根據(jù)主機(jī)返回的仲裁算法運(yùn)行結(jié)果,仲裁子系統(tǒng)再次進(jìn)行三模表決,將表決結(jié)果返回雙主機(jī),進(jìn)入仲裁結(jié)束狀態(tài)。隨后,系統(tǒng)將對(duì)故障主機(jī)進(jìn)行復(fù)位隔離,正常主機(jī)將共享外設(shè)切換過(guò)來(lái),系統(tǒng)服務(wù)接管過(guò)來(lái),同時(shí)向系統(tǒng)發(fā)出報(bào)警信號(hào),進(jìn)行故障主機(jī)的維修。此過(guò)程如附圖5所示。
[0049]需要說(shuō)明的是,上述仲裁管理模塊收到仲裁請(qǐng)求后,才觸發(fā)上述仲裁操作流程,而仲裁管理模塊收到的仲裁請(qǐng)求可以是由主機(jī)(即本節(jié)點(diǎn)主機(jī))實(shí)時(shí)發(fā)送的,或者由主機(jī)周期性發(fā)送的。本實(shí)施例對(duì)發(fā)送仲裁請(qǐng)求的具體方式不作任何限制。
[0050]以一個(gè)具體實(shí)例來(lái)描述實(shí)現(xiàn)上述系統(tǒng)的過(guò)程。本實(shí)施例應(yīng)用故障注入技術(shù)向雙機(jī)容錯(cuò)系統(tǒng)中模擬注入多種故障,來(lái)檢測(cè)雙機(jī)系統(tǒng)運(yùn)行過(guò)程中,服務(wù)和應(yīng)用的切換過(guò)程,從而有效地檢測(cè)仲裁系統(tǒng)的可用性,特別是仲裁功能。實(shí)驗(yàn)注入的故障類型包括多種,主要有網(wǎng)絡(luò)通信故障,包括數(shù)據(jù)包丟失、數(shù)據(jù)包延時(shí)、服務(wù)進(jìn)程故障、內(nèi)存故障注入、CPU故障注入等。其中每個(gè)過(guò)程分為無(wú)仲裁管理模塊和有仲裁管理模塊來(lái)測(cè)試,通過(guò)安裝卸載仲裁處理模塊來(lái)完成。
[0051]通過(guò)注入服務(wù)進(jìn)程故障,造成目標(biāo)機(jī)上的服務(wù)關(guān)閉,由于雙機(jī)容錯(cuò)系統(tǒng)對(duì)該服務(wù)監(jiān)控,此時(shí),心跳檢查模塊和仲裁管理模塊都可以成功檢查并進(jìn)行切換。通過(guò)注入CPU故障和內(nèi)存故障來(lái)模擬系統(tǒng)死機(jī)和重啟,此時(shí)啟動(dòng)仲裁檢查模塊發(fā)現(xiàn)成功檢測(cè)故障,并進(jìn)行切換。
[0052]實(shí)施例2
[0053]本實(shí)施例提供一種面向關(guān)鍵應(yīng)用的仲裁方法,該方法包括如下操作:
[0054]利用系統(tǒng)自帶的檢測(cè)機(jī)制及故障檢測(cè)算法,檢測(cè)本節(jié)點(diǎn)的主機(jī)系統(tǒng)的自身故障;
[0055]檢測(cè)對(duì)端節(jié)點(diǎn)的故障信息;
[0056]根據(jù)所檢測(cè)到的本節(jié)點(diǎn)的主機(jī)系統(tǒng)的自身故障以及對(duì)端節(jié)點(diǎn)的故障信息,通過(guò)自身的仲裁算法對(duì)雙機(jī)節(jié)點(diǎn)進(jìn)行最終的表決。
[0057]其中,根據(jù)所檢測(cè)到的本節(jié)點(diǎn)的主機(jī)系統(tǒng)的自身故障以及對(duì)端節(jié)點(diǎn)的故障信息,通過(guò)自身的仲裁算法對(duì)雙機(jī)節(jié)點(diǎn)進(jìn)行最終的表決指:
[0058]接收節(jié)點(diǎn)主機(jī)發(fā)起的仲裁請(qǐng)求時(shí),根據(jù)所檢測(cè)到的本節(jié)點(diǎn)的主機(jī)系統(tǒng)的自身故障以及對(duì)端節(jié)點(diǎn)的故障信息從仲裁算法庫(kù)中選擇的對(duì)應(yīng)仲裁算法;
[0059]調(diào)用所選擇的仲裁算法,對(duì)檢測(cè)到的本節(jié)點(diǎn)的主機(jī)系統(tǒng)的自身故障以及對(duì)端節(jié)點(diǎn)的故障信息進(jìn)行運(yùn)算,按照運(yùn)算結(jié)果確定雙機(jī)節(jié)點(diǎn)的最終表決結(jié)果。
[0060]優(yōu)選方案中,上述對(duì)檢測(cè)到的本節(jié)點(diǎn)的主機(jī)系統(tǒng)的自身故障以及對(duì)端節(jié)點(diǎn)的故障信息進(jìn)行運(yùn)算操作后,可以再次進(jìn)行三模表決以確定雙機(jī)節(jié)點(diǎn)的最終表決結(jié)果。具體的,即經(jīng)過(guò)初始化和自檢工作后,接收到某個(gè)主機(jī)的仲裁請(qǐng)求時(shí),返回仲裁算法號(hào),要求其運(yùn)行指定的仲裁算法。仲裁節(jié)點(diǎn)根據(jù)主機(jī)返回的仲裁算法運(yùn)行運(yùn)算,然后再次進(jìn)行三模表決,將表決結(jié)果返回雙主機(jī),進(jìn)入仲裁結(jié)束狀態(tài)。隨后,系統(tǒng)將對(duì)故障主機(jī)進(jìn)行復(fù)位隔離,正常主機(jī)將共享外設(shè)切換過(guò)來(lái),系統(tǒng)服務(wù)接管過(guò)來(lái),同時(shí)向系統(tǒng)發(fā)出報(bào)警信號(hào),進(jìn)行故障主機(jī)的維修。由此可以看出,此種優(yōu)選方案大大提高了仲裁結(jié)果的可靠性。
[0061]另外,檢測(cè)本節(jié)點(diǎn)的主機(jī)系統(tǒng)的自身故障一般包括檢測(cè)本節(jié)點(diǎn)的主機(jī)系統(tǒng)的硬件和服務(wù)進(jìn)程故障。
[0062]還要說(shuō)明的是,上述方法可依賴上述實(shí)施例1的仲裁系統(tǒng)來(lái)實(shí)現(xiàn)。此時(shí),上述方法的其他操作細(xì)節(jié)可參見(jiàn)上述實(shí)施例1的相應(yīng)內(nèi)容,在此不再贅述。
[0063]從上述實(shí)施例可以看出,本申請(qǐng)技術(shù)方案為了解決傳統(tǒng)仲裁機(jī)制故障覆蓋率和故障診斷成功率低的問(wèn)題,針對(duì)關(guān)鍵應(yīng)用主機(jī)系統(tǒng),提出了一種基于仲裁處理器的仲裁機(jī)制,并設(shè)計(jì)了仲裁系統(tǒng)和仲裁算法。其中仲裁處理器使用三模冗余系統(tǒng)和芯片級(jí)的容錯(cuò)設(shè)計(jì)技術(shù),仲裁算法采用分級(jí)方式,同時(shí)采用自檢測(cè)和心跳監(jiān)測(cè)相結(jié)合的故障監(jiān)測(cè)機(jī)制,有效地解決了單點(diǎn)故障和檢測(cè)成功率低的問(wèn)題。
[0064]本領(lǐng)域普通技術(shù)人員可以理解上述方法中的全部或部分步驟可通過(guò)程序來(lái)指令相關(guān)硬件完成,所述程序可以存儲(chǔ)于計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如只讀存儲(chǔ)器、磁盤或光盤等??蛇x地,上述實(shí)施例的全部或部分步驟也可以使用一個(gè)或多個(gè)集成電路來(lái)實(shí)現(xiàn)。相應(yīng)地,上述實(shí)施例中的各模塊/單元可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能模塊的形式實(shí)現(xiàn)。本申請(qǐng)不限制于任何特定形式的硬件和軟件的結(jié)合。
[0065]以上所述,僅為本發(fā)明的較佳實(shí)例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種面向關(guān)鍵應(yīng)用的仲裁系統(tǒng),其特征在于,至少包括自檢測(cè)模塊、心跳檢測(cè)模塊和仲裁管理模塊,其中: 自檢測(cè)模塊,利用系統(tǒng)自帶的檢測(cè)機(jī)制及故障檢測(cè)算法,檢測(cè)本節(jié)點(diǎn)的主機(jī)系統(tǒng)的自身故障,并將檢測(cè)到的故障信息傳送給所述仲裁管理模塊; 心跳檢測(cè)模塊,檢測(cè)對(duì)端節(jié)點(diǎn)的狀態(tài)信息,并檢測(cè)到的其他節(jié)點(diǎn)的故障信息傳送給所述仲裁管理模塊; 仲裁管理模塊,根據(jù)所述自檢測(cè)模塊和心跳檢測(cè)模塊傳送的故障信息,通過(guò)自身的仲裁算法對(duì)雙機(jī)節(jié)點(diǎn)進(jìn)行最終的表決。
2.如權(quán)利要求1所述的仲裁系統(tǒng),其特征在于,所述仲裁管理模塊包括運(yùn)行在節(jié)點(diǎn)主機(jī)上的仲裁處理單元和運(yùn)行在仲裁板上的仲裁子系統(tǒng),其中: 仲裁處理單元,接收節(jié)點(diǎn)主機(jī)發(fā)起的仲裁請(qǐng)求并轉(zhuǎn)發(fā)給所述仲裁子系統(tǒng),接收所述自檢測(cè)模塊和心跳檢測(cè)模塊傳送的故障信息并轉(zhuǎn)發(fā)給所述仲裁子系統(tǒng),以及按照仲裁子系統(tǒng)的指示,調(diào)用對(duì)應(yīng)的仲裁算法,根據(jù)所述故障信息進(jìn)行運(yùn)算,并將運(yùn)算結(jié)果轉(zhuǎn)發(fā)給所述仲裁子系統(tǒng); 仲裁子系統(tǒng),接收到所述仲裁請(qǐng)求后,根據(jù)接收到的故障信息從仲裁算法庫(kù)中選擇的對(duì)應(yīng)仲裁算法,并指示所述仲裁處理按照所選擇的仲裁算法進(jìn)行仲裁運(yùn)算,以及按照所述仲裁處理模塊發(fā)送的運(yùn)算結(jié)果確定雙機(jī)節(jié)點(diǎn)的最終表決結(jié)果。
3.如權(quán)利要求2所述的仲裁系統(tǒng),其特征在于,所述仲裁處理單元包括: 仲裁處理器,驅(qū)動(dòng)節(jié)點(diǎn)主機(jī)與仲裁板之間的通信,接收節(jié)點(diǎn)主機(jī)發(fā)起的仲裁請(qǐng)求并轉(zhuǎn)發(fā)給所述仲裁子系統(tǒng),接收所述自檢測(cè)模塊和心跳檢測(cè)模塊傳送的故障信息并轉(zhuǎn)發(fā)給所述仲裁子系統(tǒng); 仲裁控制子模塊,按照仲裁子系統(tǒng)的指示,調(diào)用對(duì)應(yīng)的仲裁算法,根據(jù)所述故障信息進(jìn)行運(yùn)算,并將運(yùn)算結(jié)果轉(zhuǎn)發(fā)給所述仲裁子系統(tǒng)。
4.如權(quán)利要求3所述的仲裁系統(tǒng),其特征在于, 所述仲裁控制子模塊采用三模表決法。
5.如權(quán)利要求1至4任一項(xiàng)所述的仲裁系統(tǒng),其特征在于, 所述自檢測(cè)模塊,檢測(cè)本節(jié)點(diǎn)的主機(jī)系統(tǒng)的自身故障指: 檢測(cè)本節(jié)點(diǎn)的主機(jī)系統(tǒng)的硬件和服務(wù)進(jìn)程故障。
6.一種面向關(guān)鍵應(yīng)用的仲裁方法,其特征在于,該方法包括: 利用系統(tǒng)自帶的檢測(cè)機(jī)制及故障檢測(cè)算法,檢測(cè)本節(jié)點(diǎn)的主機(jī)系統(tǒng)的自身故障; 檢測(cè)對(duì)端節(jié)點(diǎn)的故障信息; 根據(jù)所檢測(cè)到的本節(jié)點(diǎn)的主機(jī)系統(tǒng)的自身故障以及對(duì)端節(jié)點(diǎn)的故障信息,通過(guò)自身的仲裁算法對(duì)雙機(jī)節(jié)點(diǎn)進(jìn)行最終的表決。
7.如權(quán)利要求6所述的方法,其特征在于,根據(jù)所檢測(cè)到的本節(jié)點(diǎn)的主機(jī)系統(tǒng)的自身故障以及對(duì)端節(jié)點(diǎn)的故障信息,通過(guò)自身的仲裁算法對(duì)雙機(jī)節(jié)點(diǎn)進(jìn)行最終的表決指: 接收節(jié)點(diǎn)主機(jī)發(fā)起的仲裁請(qǐng)求時(shí),根據(jù)所檢測(cè)到的本節(jié)點(diǎn)的主機(jī)系統(tǒng)的自身故障以及對(duì)端節(jié)點(diǎn)的故障信息從仲裁算法庫(kù)中選擇的對(duì)應(yīng)仲裁算法; 調(diào)用所選擇的仲裁算法,對(duì)檢測(cè)到的本節(jié)點(diǎn)的主機(jī)系統(tǒng)的自身故障以及對(duì)端節(jié)點(diǎn)的故障信息進(jìn)行運(yùn)算,按照運(yùn)算結(jié)果確定雙機(jī)節(jié)點(diǎn)的最終表決結(jié)果。
8.如權(quán)利要求7所述的方法,其特征在于,對(duì)檢測(cè)到的本節(jié)點(diǎn)的主機(jī)系統(tǒng)的自身故障以及對(duì)端節(jié)點(diǎn)的故障信息進(jìn)行運(yùn)算后,再次進(jìn)行三模表決以確定雙機(jī)節(jié)點(diǎn)的最終表決結(jié)果ο
9.如權(quán)利要求6至8任一項(xiàng)所述的方法,其特征在于,檢測(cè)本節(jié)點(diǎn)的主機(jī)系統(tǒng)的自身故障指: 檢測(cè)本節(jié)點(diǎn)的主機(jī)系統(tǒng)的硬件和服務(wù)進(jìn)程故障。
【文檔編號(hào)】G06F11/16GK104133744SQ201410377840
【公開(kāi)日】2014年11月5日 申請(qǐng)日期:2014年8月1日 優(yōu)先權(quán)日:2014年8月1日
【發(fā)明者】周恒釗, 劉璧怡 申請(qǐng)人:浪潮(北京)電子信息產(chǎn)業(yè)有限公司