两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

通信系統(tǒng)中實(shí)現(xiàn)高可用性(ha)的裝置和方法

文檔序號:7682495閱讀:361來源:國知局
專利名稱:通信系統(tǒng)中實(shí)現(xiàn)高可用性(ha)的裝置和方法
技術(shù)領(lǐng)域
本發(fā)明屬于通信領(lǐng)域,具體涉及通信系統(tǒng)中實(shí)現(xiàn)高可用性(HA)的裝置和方法。
目前的HA系統(tǒng)基本上是以硬件平臺和軟件兩個方面進(jìn)行設(shè)計來提高系統(tǒng)的HA特性。硬件平臺的實(shí)現(xiàn)方法主要包括硬件冗余備份、硬件故障的監(jiān)測和隔離、增強(qiáng)的高可用性結(jié)構(gòu)等。軟件的實(shí)現(xiàn)方法主要包括監(jiān)測本地任務(wù)或線程的運(yùn)行狀態(tài),對對端的(硬件冗余備份時)任務(wù)或線程進(jìn)行監(jiān)測,發(fā)現(xiàn)軟件故障并進(jìn)行報告和處理(隔離、恢復(fù))并向?qū)Χ?硬件冗余備份時)報告處理的結(jié)果等。
目前的HA系統(tǒng)或者只提供對硬件冗余的支持和管理,或者只對軟件的HA提出一些解決方法或支持。在硬件實(shí)現(xiàn)中,提供盡可能的硬件冗余資源(節(jié)點(diǎn)、網(wǎng)絡(luò)、磁盤);在軟件管理方面,一般的解決方案為應(yīng)用提供具有一致性和完整性的數(shù)據(jù)訪問,包括卷管理、文件系統(tǒng)、在線數(shù)據(jù)備份等;提供進(jìn)程守護(hù),對本地任務(wù)進(jìn)行守護(hù),并對守護(hù)的任務(wù)進(jìn)行維護(hù),這種方法考慮的是單機(jī)情況下的操作,沒有考慮冗余備份時的數(shù)據(jù)一致和狀態(tài)一致的解決辦法,并不完全滿足于冗余系統(tǒng)的HA實(shí)現(xiàn)。對于電信設(shè)備的高HA要求,由于對硬件和軟件的HA缺乏一定的管理和協(xié)調(diào),不管采用現(xiàn)有技術(shù)的那一種方案(包括兩種方案同時使用),可能不能保證可以實(shí)現(xiàn)電信系統(tǒng)的HA要求。
本發(fā)明提供一種通信系統(tǒng)中實(shí)現(xiàn)高可用性(HA)的裝置,包括面向平臺的裝置(HA-OP),用于與所述通信系統(tǒng)中使用的平臺進(jìn)行數(shù)據(jù)交互,其中,包括中斷接口裝置和異常觸發(fā)裝置,分別用于處理所述平臺的中斷請求和異常觸發(fā)信號;面向應(yīng)用的裝置(HA-OA),用于監(jiān)測本地任務(wù)或線程的運(yùn)行;監(jiān)測對端任務(wù)或者線程和進(jìn)行心跳檢測;HA判決裝置(HA-ARB),包括平臺決策裝置,用于決策所述面向平臺的裝置中不能處理的異常觸發(fā)信號;和任務(wù)決策裝置,根據(jù)所述面向應(yīng)用的裝置的檢測結(jié)果,決定切換或重新啟動。
可選地,所述面向平臺的裝置還包括檢測裝置,用于檢測本端和對端的硬件資源;管理裝置,用于管理節(jié)點(diǎn)之間的競爭資源,獲得競爭資源的所屬關(guān)系,決定面向平臺部分的狀態(tài)信息,其中,競爭資源的所屬關(guān)系可以通過在高層軟件的控制而改變;其中,所述HA判決裝置處理所述管理裝置和檢測裝置的信息。
優(yōu)選地,所述管理裝置包括管理看門狗定時器的裝置;管理備板I/O的驅(qū)動器的裝置;管理當(dāng)前節(jié)點(diǎn)的狀態(tài)(變量值)的裝置;所述檢測裝置包括檢測CPU、風(fēng)扇和電源模塊、以太網(wǎng)卡及串口、并口和SCSI(小型計算機(jī)系統(tǒng)接口)接口的子裝置。
可選地,所述面向應(yīng)用的裝置包括判斷裝置,用于判斷本地和對端任務(wù)或線程的運(yùn)行是否死鎖,其中,包括發(fā)送裝置,通過發(fā)送信息判定線程或者任務(wù)是否出現(xiàn)問題;心跳檢測裝置,用于檢測對端的HA-OA的狀態(tài),發(fā)現(xiàn)對端心跳丟失時,向所述HA判決裝置報告;傳輸裝置;連接所述判斷裝置和所述心跳檢測裝置,用于與所述HA判決裝置進(jìn)行交互。
優(yōu)選地,所述HA判決裝置還包括記錄裝置,用于記錄節(jié)點(diǎn)的工作狀態(tài),平臺的狀態(tài),節(jié)點(diǎn)任務(wù)或線程的狀態(tài);
處理裝置,用于根據(jù)所述記錄裝置記錄的信息和與所述面向平臺的裝置和所述面向應(yīng)用的裝置交互的信息,確定所述HA的決策。
本發(fā)明還提供一種利用如權(quán)利要求1所述的裝置實(shí)現(xiàn)通信系統(tǒng)中高可用性(HA)的方法,其特征在于,包括步驟確定至少兩個HA-OA的狀態(tài),其中,一個為主用,其它為備用;主用端HA-OA對本節(jié)點(diǎn)上的應(yīng)用和對端的備用節(jié)點(diǎn)進(jìn)行心跳檢測;HA-ARB根據(jù)檢測結(jié)果,判斷所述應(yīng)用是否可以重啟且重啟是否成功;如果可以重啟且成功,結(jié)束本方法;如果不可以重啟或重啟不成功,HA-OA向HA-ARB請求切換。
如果HA-ARB向HA-OA返回可以切換,進(jìn)行切換;如果返回不可以切換,結(jié)束本方法。
可選地,所述主用端HA-OA對本節(jié)點(diǎn)上的應(yīng)用和對端的備用節(jié)點(diǎn)進(jìn)行心跳檢測的步驟;包括如果失去某一個應(yīng)用的心跳檢測,HA-OA向HA-ARB詢問需要重啟或切換;如果失去了對端的備用節(jié)點(diǎn)HA-OA的心跳,記錄該狀態(tài),并向HA-ARB報告。
優(yōu)選地,所述進(jìn)行心跳檢測的步驟包括連續(xù)三次未收到心跳應(yīng)答,判斷為失去心跳檢測。
可選地,所述進(jìn)行切換的步驟包括HA-OA向HA-ARB通知進(jìn)行應(yīng)用切換,同時啟動一個定時器;
如果在定時器間隔內(nèi)收到應(yīng)用的切換完成應(yīng)答,或者定時器超時,通知HA-ARB進(jìn)行切換。
優(yōu)選地,所述確定至少兩個HA-OA的狀態(tài)的步驟還包括設(shè)定初始化所述HA系統(tǒng)或協(xié)商初始化所述HA系統(tǒng);其中,所述設(shè)定初始化所述HA系統(tǒng)的步驟包括讀取預(yù)存儲的設(shè)定信息,設(shè)定主用HA和備用HA;所述協(xié)商初始化所述HA系統(tǒng)的步驟包括判定所述至少兩個HA-OA中的一個獲取對系統(tǒng)控制的HA-OA,設(shè)定所述獲取控制的HA-OA為主用HA-OA,通知其它HA-OA為備用HA-OA。
可選地,所述判定所述至少兩個HA-OA中的一個獲取對系統(tǒng)控制的HA-OA的步驟包括判斷所述至少兩個HA-OA的那個首先加電,設(shè)定首先加電的HA-OA為主用,其它為備用;和/或判斷系統(tǒng)總線由所述至少兩個HA-OA中的那個控制,設(shè)定所述獲得控制權(quán)的HA-OA為主用,其它為備用;如果沒有一個HA-OA控制系統(tǒng)總線或首先加電,所有HA-OA通信確認(rèn)一個HA-OA為主用,其它為備用。
優(yōu)選地,所述所有HA-OA通信確認(rèn)一個HA-OA為主用的步驟包括根據(jù)設(shè)定優(yōu)先權(quán)確定主用;或根據(jù)所有的HA-OA產(chǎn)生的隨機(jī)數(shù)的大小確定主用。
可選地,所述所有HA-OA通信確認(rèn)一個HA-OA為主用的步驟包括所述至少兩個HA-OA中的任一個發(fā)出要求控制或被控制的請求,如果未在預(yù)定時間內(nèi)收到其它HA-OA的拒絕消息,確認(rèn)該HA-OA為主用或備用。
優(yōu)選地,所述確定至少兩個HA-OA的狀態(tài)的步驟由HA-ARB執(zhí)行,其中,還包括步驟所述HA-ARB通知HA-OA當(dāng)前節(jié)點(diǎn)的狀態(tài)。
可選地,所述判斷所述應(yīng)用是否可以重啟的步驟包括,在本地應(yīng)用故障和/或本地平臺故障和本地和對端節(jié)點(diǎn)故障時,HA-ARB發(fā)送不可重啟消息,在本地和對端節(jié)點(diǎn)正常運(yùn)行或?qū)Χ斯?jié)點(diǎn)故障時,HA-ARB根據(jù)預(yù)先設(shè)定,發(fā)送可以或不可以重啟消息;所述方法還包括步驟在HA-OA報告應(yīng)用異常時,如果出現(xiàn)本地平臺故障,進(jìn)入本地應(yīng)用和平臺故障狀態(tài),如果節(jié)點(diǎn)正常運(yùn)行,進(jìn)入本地應(yīng)用故障狀態(tài);如果對端節(jié)點(diǎn)故障,進(jìn)入對端節(jié)點(diǎn)和本地故障狀態(tài);所述如果HA-ARB向HA-OA返回可以切換的步驟包括,判斷對端節(jié)點(diǎn)是否正常,如果正常,可以切換;所述方法還包括步驟,在切換后,改變系統(tǒng)的狀態(tài),如果不能切換,報告故障。
本發(fā)明提供硬件冗余資源;和軟件管理冗余備份時的數(shù)據(jù)一致和狀態(tài)一致的解決辦法,可以實(shí)現(xiàn)電信系統(tǒng)的HA要求。
圖4為圖3中的主用端HA面向應(yīng)用部分(HA-OA)的工作流程圖;圖5為圖3中的備用端HA面向應(yīng)用部分(HA-OA)的工作流程圖;圖6為圖3中的HA判決部分(HA-ARB)的工作流程圖。
針對電信設(shè)備對HA管理系統(tǒng)的較高要求,本發(fā)明的實(shí)施例的HA管理裝置和方法解決在對HA特性要求高(采用硬件和軟件共同來實(shí)現(xiàn)高可用性)的系統(tǒng)的HA管理的實(shí)現(xiàn)。


圖1是本發(fā)明的實(shí)施例中HA裝置在系統(tǒng)中的原理示意圖。本發(fā)明的實(shí)施例的系統(tǒng)中存在兩個節(jié)點(diǎn),工作在2N冗余模式下。在不同系統(tǒng)中,存在不同的硬件平臺和操作系統(tǒng)。而HA的軟件經(jīng)過較小的修改后,可以運(yùn)行在不同的操作系統(tǒng)和硬件平臺上。本發(fā)明的實(shí)施例中,在RNC(無線網(wǎng)絡(luò)控制器)的應(yīng)用中,采用CPCI(Compact PCI)平臺ZT5083(這是INTEL公司生產(chǎn)的CPCI HA平臺),在CPCI平臺操作系統(tǒng)采用VxWorks 5.4(這是WIND RIVER公司的嵌入式操作系統(tǒng))。
HA管理系統(tǒng)位于應(yīng)用程序和硬件平臺之間。其主要功能是管理本節(jié)點(diǎn)和對端節(jié)點(diǎn)硬件和軟件上的HA實(shí)現(xiàn),使兩個節(jié)點(diǎn)能夠協(xié)調(diào)一致的工作,并和對端的HA管理系統(tǒng)來協(xié)商完成整個系統(tǒng)的HA實(shí)現(xiàn)。
在這個實(shí)施例中,實(shí)現(xiàn)了硬件冗余備份、硬件故障的監(jiān)測和隔離。軟件能夠監(jiān)測本地任務(wù)或線程的運(yùn)行狀態(tài),對對端的任務(wù)或線程進(jìn)行監(jiān)測,發(fā)現(xiàn)軟件故障并進(jìn)行報告和處理(隔離、恢復(fù)),并把處理的結(jié)果報告給對端節(jié)點(diǎn)。
系統(tǒng)中存在兩個節(jié)點(diǎn),工作在2N冗余模式下。在不同系統(tǒng)中,存在不同的硬件平臺和操作系統(tǒng)。HA軟件經(jīng)過較小的修改后,可以運(yùn)行在不同的操作上。在RNC(無線網(wǎng)絡(luò)控制器)的應(yīng)用中,采用CPCI(Compact PCI)平臺ZT5083(INTEL公司的CPCI HA平臺),在CPCI平臺操作系統(tǒng)采用VxWorks 5.4(WIND RIVER公司的嵌入式操作系統(tǒng))。
在本發(fā)明的實(shí)施例中的2N(1+1備份)冗余工作模式下,節(jié)點(diǎn)的狀態(tài)有兩種Active(主用)和Standby(備用)。其中,主用端10狀態(tài)的節(jié)點(diǎn)具有對競爭資源的控制權(quán),向外提供正常的功能;備用端20的節(jié)點(diǎn)一般主要是保持和主用節(jié)點(diǎn)之間的狀態(tài)和數(shù)據(jù)同步,準(zhǔn)備在主用節(jié)點(diǎn)發(fā)生故障時,接替主用節(jié)點(diǎn)的位置。
主用端10和備用端20的硬件結(jié)構(gòu)是相同的,因此,這里僅描繪主用端10。其中,硬件(HW)通過操作系統(tǒng)(OS)與HA相互作用,硬件(HW)和HA也可以直接相互作用,然后用于應(yīng)用層(Application)。主用端10和備用端20通過心跳線進(jìn)行交互和控制。
在CPCI平臺上,主用端10和備用端20的兩個CPU板對CPCI總線的控制權(quán)在系統(tǒng)加電以后就決定了,因此節(jié)點(diǎn)的主用/備用狀態(tài)只能根據(jù)對總線的控制權(quán)來決定,即加電時主用端10獲得了對總線的控制權(quán)。而在兩個獨(dú)立工作站構(gòu)成的雙機(jī)系統(tǒng)中,不存在類似的競爭資源,因此節(jié)點(diǎn)的狀態(tài)需要根據(jù)事先指定的狀態(tài)或者協(xié)商決定(在兩個獨(dú)立工作站構(gòu)成的雙機(jī)系統(tǒng)中,共享的磁盤系統(tǒng)和對外提供服務(wù)通信線路為競爭資源,但競爭資源的歸屬由節(jié)點(diǎn)狀態(tài)決定,此時的節(jié)點(diǎn)狀態(tài)主要由預(yù)先指定和協(xié)商共同作用決定)。綜合這些情況,節(jié)點(diǎn)狀態(tài)初始化的設(shè)定可以有三種方法預(yù)先設(shè)定、競爭、或者協(xié)商。節(jié)點(diǎn)初始化時首先會查詢是否存在競爭資源和競爭資源的所屬關(guān)系來決定節(jié)點(diǎn)的初始化狀態(tài)。如果沒有競爭資源,節(jié)點(diǎn)會查詢是否存在預(yù)先設(shè)定的狀態(tài),如果存在預(yù)先設(shè)定的狀態(tài),就依據(jù)預(yù)先設(shè)定的狀態(tài)來決定節(jié)點(diǎn)的狀態(tài)。如果不存在預(yù)先設(shè)定的狀態(tài),或者預(yù)先設(shè)定的狀態(tài)存在沖突,則進(jìn)行協(xié)商設(shè)定。
在本發(fā)明的實(shí)施例1中,采用競爭設(shè)定競爭設(shè)定與HA實(shí)現(xiàn)的硬件環(huán)境密切相關(guān),此時系統(tǒng)中的兩個節(jié)點(diǎn)之間存在競爭資源,并且,這種競爭資源的最初所屬關(guān)系在系統(tǒng)加電后就可以明確是那一個節(jié)點(diǎn)獲得了競爭資源。硬件平臺應(yīng)該保證不存在節(jié)點(diǎn)狀態(tài)的沖突。針對CPCI平臺,在CPCI中存在競爭資源(CPCI總線)。BSP(板級支持包)中存在函數(shù),HA軟件可以通過這些函數(shù)來查詢或者改變競爭資源的所屬關(guān)系。
在本發(fā)明的實(shí)施例2中采用預(yù)先設(shè)定HA軟件中,存在變量明確規(guī)定節(jié)點(diǎn)的狀態(tài)。HA軟件獲得這個狀態(tài)后,需要和另外的節(jié)點(diǎn)進(jìn)行確認(rèn),如果存在沖突,則通過協(xié)商設(shè)定的方法解決。如果另外節(jié)點(diǎn)不存在,則本身設(shè)為主用狀態(tài)。
協(xié)商設(shè)定如果節(jié)點(diǎn)狀態(tài)沒有預(yù)先設(shè)定和競爭設(shè)定,或者預(yù)先設(shè)定的狀態(tài)存在沖突,就進(jìn)行協(xié)商設(shè)定。節(jié)點(diǎn)之間需要通過一種通信方式來協(xié)商主備關(guān)系。
節(jié)點(diǎn)狀態(tài)的設(shè)定過程如下步驟a、系統(tǒng)啟動以后,在CPCI中調(diào)用BSP提供的函數(shù),來判斷當(dāng)前節(jié)點(diǎn)對CPCI總線的控制權(quán),獲得控制權(quán)的節(jié)點(diǎn)狀態(tài)是主用,沒有控制權(quán)的節(jié)點(diǎn)狀態(tài)是備用,節(jié)點(diǎn)狀態(tài)初始化完畢,跳到步驟d;在雙節(jié)點(diǎn)系統(tǒng)中,跳過該步驟。
步驟b、讀取HA軟件中變量規(guī)定的節(jié)點(diǎn)狀態(tài),如果沒有設(shè)置節(jié)點(diǎn)狀態(tài)則跳到步驟c;否則和對端進(jìn)行通信來確認(rèn)節(jié)點(diǎn)的狀態(tài),如果對端不存在,則設(shè)置自己為主用,狀態(tài)設(shè)置結(jié)束,跳轉(zhuǎn)道步驟d。否則,如果存在狀態(tài)沖突,且對端的狀態(tài)是明確的(一個節(jié)點(diǎn)首先啟動,只可能是主用),因此,只能設(shè)置本節(jié)點(diǎn)為備用,狀態(tài)設(shè)置完畢,跳到步驟d。如果對方狀態(tài)不明確(同時啟動),就跳轉(zhuǎn)到步驟c進(jìn)行協(xié)商確定。如果狀態(tài)不沖突,狀態(tài)設(shè)置完畢,跳到步驟d.
步驟c、協(xié)商設(shè)定和對端進(jìn)行通信來協(xié)商確定節(jié)點(diǎn)的狀態(tài)。如果對端節(jié)點(diǎn)不存在,則設(shè)置自己為主用,狀態(tài)設(shè)置結(jié)束,跳轉(zhuǎn)道步驟d。如果對端節(jié)點(diǎn)存在且狀態(tài)明確(一個節(jié)點(diǎn)首先啟動,只可能是主用),因此,只能設(shè)置本節(jié)點(diǎn)為備用,狀態(tài)設(shè)置完畢,跳到步驟d。否則根據(jù)策略進(jìn)行協(xié)商。協(xié)商策略有很多種,例如,雙方各產(chǎn)生一個隨機(jī)數(shù),隨機(jī)數(shù)大的就是主用,小的就是備用。
步驟d、結(jié)束。
圖2示出了圖1的包括HA裝置的系統(tǒng)的節(jié)點(diǎn)初始化時的狀態(tài)的流程圖。
在步驟10,HA管理系統(tǒng)開始初始化,然后在步驟11,判斷是否存在競爭資源如果存在競爭資源,到步驟12;如果不存在競爭資源,到步驟14;在步驟12,調(diào)用平臺HA的函數(shù)來判斷當(dāng)前競爭資源的控制權(quán)屬于那個節(jié)點(diǎn)。在步驟13,根據(jù)步驟12的結(jié)果,得到競爭資源的節(jié)點(diǎn)狀態(tài)為主用,沒有得到競爭資源的節(jié)點(diǎn)狀態(tài)為備用。初始化結(jié)束。
在步驟14,判斷本端節(jié)點(diǎn)的狀態(tài)是否設(shè)定,如果設(shè)定,到步驟15;如果沒有設(shè)定,到步驟21。
在步驟15,和對端節(jié)點(diǎn)通信,在步驟16,根據(jù)通信結(jié)果來判斷對端節(jié)點(diǎn)是否存在,如果對端節(jié)點(diǎn)存在,到步驟17;如果對端節(jié)點(diǎn)不存在,到步驟20;在步驟17,詢問對端節(jié)點(diǎn)狀態(tài)是否明確,如果狀態(tài)明確,到步驟18,如果不明確,到步驟1,是步驟21的開始;在步驟18,判斷和對端節(jié)點(diǎn)的狀態(tài)是否存在沖突,如果存在沖突,到步驟19;如果不存在沖突,初始化結(jié)束。在步驟19,設(shè)置本端節(jié)點(diǎn)的狀態(tài)為對端節(jié)點(diǎn)相反的狀態(tài),初始化結(jié)束。
在步驟20,由于對端節(jié)點(diǎn)不存在,設(shè)置本端節(jié)點(diǎn)的狀態(tài)為主用,初始化結(jié)束。
在步驟21,判斷對端節(jié)點(diǎn)是否存在,如果存在,到步驟22;如果不存在到步驟25。在步驟22,判斷對端節(jié)點(diǎn)的狀態(tài)是否明確,如果對端節(jié)點(diǎn)的狀態(tài)明確,到步驟23;如果對端節(jié)點(diǎn)的狀態(tài)不明確,到步驟24。在步驟23,設(shè)置本端節(jié)點(diǎn)的狀態(tài)為對端節(jié)點(diǎn)相反的狀態(tài),初始化結(jié)束。
在步驟24,根據(jù)一定的策略和對端節(jié)點(diǎn)協(xié)商確定節(jié)點(diǎn)的狀態(tài)。初始化結(jié)束。
在步驟25,由于對端節(jié)點(diǎn)不存在,設(shè)置本端節(jié)點(diǎn)的狀態(tài)為主用,初始化結(jié)束。
圖3為圖1的本發(fā)明實(shí)施例中HA裝置在系統(tǒng)中更具體的原理框圖。HA包括三個部分面向應(yīng)用的部分(HA-OA),面向平臺的部分(HA-OP)和HA判決部分(HA-ARB)。
面向平臺的部分(HA-OP)在圖3中的框33或者框33’,隨著平臺的不同而不同,一般不作為獨(dú)立任務(wù)或進(jìn)程運(yùn)行,主要由各種中斷和異常觸發(fā)來完成。在操作系統(tǒng)允許的情況下,盡可能的接管平臺運(yùn)行過程中的各種異常中斷。如果這些異常操作系統(tǒng)不能處理的話,HA-OP(面向平臺的部分)(圖3中的框33或者框33’)向HA-ARB(HA判決部分)報告這一事件,由HA-ARB(圖3中的框32或者框32’)來進(jìn)行決策。這些異常可能包括除零,非法指令,數(shù)據(jù)對齊等異常操作(需要操作系統(tǒng)的支持)。進(jìn)行雙機(jī)的硬件資源的檢測,管理節(jié)點(diǎn)之間的競爭資源,獲得競爭資源的所屬關(guān)系,決定面向平臺部分的狀態(tài)信息,在高層軟件的控制下,可以改變這種所屬關(guān)系。
1、存在競爭資源,并且已經(jīng)獲得競爭資源的控制權(quán)。
在CPCI系統(tǒng)中,競爭資源包括對CPCI總線的控制權(quán)(對背板總線的獲得和釋放)。
2、存在競爭資源,但沒有獲得競爭資源的控制權(quán)。
在CPCI系統(tǒng)中,競爭資源包括對CPCI總線的控制權(quán)(對背板總線的獲得和釋放)3、不存在競爭資源。
在雙工作站構(gòu)成的雙機(jī)系統(tǒng)中,不存在競爭資源。
4、平臺資源的狀態(tài)(正?;蛘吖收?。
在CPCI系統(tǒng)中,應(yīng)可報告或檢查的平臺資源(非競爭資源)有a)Watchdog timer(看門狗定時器)超時
b)備板I/O的Driverc)當(dāng)前節(jié)點(diǎn)的狀態(tài)(變量值)d)對端節(jié)點(diǎn)否存在CPCI系統(tǒng)使用hot swap(熱插拔)標(biāo)準(zhǔn)監(jiān)測。
e)風(fēng)扇和電源模塊是否正常(CPCI系統(tǒng))f)CPU溫度是否異常g)監(jiān)測以太網(wǎng)卡是否異常h)監(jiān)測串口、并口和SCSI(小型計算機(jī)系統(tǒng)接口)接口是否正常i)監(jiān)測I/O板的Hot swap。(CPCI系統(tǒng))面向應(yīng)用部分(HA-OA)(圖3中的框31或者框31’)一般作為一個獨(dú)立線程或任務(wù)運(yùn)行,具有以下功能1、監(jiān)測本地任務(wù)或線程的運(yùn)行是否死鎖(死鎖檢測具體由HA-OA完成),并向HA-ARB(圖中的框32或者框32’)報告,由HA-ARB(圖中的框32或者框32’)來決定是否切換,或者重新啟動該應(yīng)用,策略需要預(yù)先由應(yīng)用告訴HA-ARB(圖中的框32或者框32’)。檢測通過發(fā)送消息的方式,判定線程或者任務(wù)是否出現(xiàn)問題。此外,根據(jù)應(yīng)用的程序的具體情況,平衡各個任務(wù)或線程之間對檢測的響應(yīng)時間的不同。
2、監(jiān)測對端任務(wù)或者線程是否正常,記錄對端報告的每個對應(yīng)線程或者任務(wù)狀態(tài),并向HA-ARB報告。由HA-ARB來決策。
3、心跳檢測由于HA-OA作為獨(dú)立的任務(wù)或者線程運(yùn)行,因此需要通過心跳方式,監(jiān)測對方HA-OA的狀態(tài)。當(dāng)發(fā)現(xiàn)對端心跳丟失時,向HA-ARB報告這一事件,由HA-ARB來決策。
圖4描繪了圖3中的主用端HA-OA的工作流程圖。
在步驟41,HA-OA開始執(zhí)行。
在步驟42,主用端HA-OA向本節(jié)點(diǎn)上的應(yīng)用和對端的備用節(jié)點(diǎn)發(fā)送心跳檢測。
在步驟43,如果失去某一個應(yīng)用的心跳檢測(連續(xù)3次沒有收到心跳應(yīng)答)。
在步驟44,HA-OA向HA-ARB詢問,該應(yīng)用是否可以重啟。如果可以重啟,到步驟45;如果不可以重啟,到步驟46。
在步驟45,判斷重啟任務(wù)是否成功,如果成功,結(jié)束。
在步驟46,HA-OA記錄該應(yīng)用異常,并向HA-ARB報告這一異常。
在步驟47,HA-OA向HA-ARB請求切換。如果,HA-ARB向HA-OA返回可以切換,到步驟48,如果返回不可以切換,結(jié)束。
在步驟48,通知應(yīng)用切換,并啟動一個定時器。
在步驟49,在定時器間隔內(nèi)收到應(yīng)用的切換完成應(yīng)答,或者定時器迢時,到步驟410。
在步驟410,通知HA-ARB進(jìn)行切換。
在步驟411,如果失去了對端HA-OA的心跳(連續(xù)3次沒有收到心跳應(yīng)答)。
在步驟412,認(rèn)為對端HA-OA故障或者不存在。
在步驟413,記錄對端HA-OA故障或者不存在。并向HA-ARB報告這一異常。
圖5為圖3中的備用端HA-OA的工作流程圖。
在步驟51,HA-OA開始執(zhí)行。
在步驟52,備用端HA-OA向本節(jié)點(diǎn)上的應(yīng)用和對端的備用節(jié)點(diǎn)發(fā)送心跳檢測。
在步驟53,如果失去某一個應(yīng)用的心跳檢測(連續(xù)3次沒有收到心跳應(yīng)答)。
在步驟54,HA-OA向HA-ARB詢問,該應(yīng)用是否可以重啟。如果可以重啟,到步驟55;如果不可以重啟,到步驟56。
在步驟55,判斷重啟任務(wù)是否成功,如果成功,結(jié)束。
在步驟56,HA-OA記錄該應(yīng)用異常,并向HA-ARB報告這一異常。
在步驟57,如果失去了對端HA-OA的心跳(連續(xù)3次沒有收到心跳應(yīng)答)。
在步驟58,認(rèn)為對端HA-OA故障或者不存在。
在步驟59,記錄對端HA-OA故障或者不存在。并向HA-ARB報告這一異常。
在步驟510,通知應(yīng)用切換,并啟動一個定時器。
在步驟511,在定時器間隔內(nèi)收到應(yīng)用的切換完成應(yīng)答,或者定時器超時,到步驟510。
在步驟512,通知HA-ARB進(jìn)行切換。
HA判決部分(HA-ARB)(圖中的框32或者框32’)也是作為一獨(dú)立的線程或任務(wù)運(yùn)行。
圖6為圖3中的HA判決部分(HA-ARB)的工作流程圖。
在步驟61,HA-ARB開始運(yùn)行。
在步驟62,HA-ARB調(diào)用HA管理系統(tǒng)的初始化過程得到當(dāng)前的節(jié)點(diǎn)狀態(tài),具體過程參見圖2和圖2的執(zhí)行過程在步驟63,HA把當(dāng)前節(jié)點(diǎn)的狀態(tài)通知HA-OA.,在步驟64,HA-ARB根據(jù)HA-OA和HA-OP的信息來決定是否切換。
下面結(jié)合表1用狀態(tài)FSM(有線狀態(tài)機(jī))來描述HA-ARB決定是否切換的方法。
表1HA-ARB工作的FSM(有限狀態(tài)機(jī)) 注-無狀態(tài)變化/不期望事件,無狀態(tài)變化。
HA判決部分(HA-ARB)具有如下功能1、記錄節(jié)點(diǎn)的工作狀態(tài)(主用/備用)(來自初始化過程),記錄平臺的狀態(tài)(是否有資源故障,并對資源故障分級別記錄)來自HA-OP(圖3中的框33或者框33’),記錄本節(jié)點(diǎn)和對端節(jié)點(diǎn)任務(wù)或線程的狀態(tài)(是否工作異常或死鎖,并對故障進(jìn)行分級別記錄),來自本節(jié)點(diǎn)的HA-OA(圖中的框31或者框31’)和對端的HA-ARB(圖3中的框2或者框2’)。
2、提供一定的算法,和對端的HA-ARB(圖3中的框32或者框32’)一起,對HA-OA(圖3中的框31或者框31’)和HA-OP(圖3中的框33或者框33’)報告的HA信息進(jìn)行綜合處理,并決定相應(yīng)的決策。
3、故障分類critical(嚴(yán)重)故障立即進(jìn)行切換。
Major(重要)故障需要進(jìn)行切換隔離故障,但可進(jìn)行應(yīng)用的同步。
Minor(微小)故障可以忍受的故障,可不進(jìn)行切換。
其中,具體的決策策略和算法在下文描繪切換過程中詳細(xì)描述。
4、決定心跳信息和檢測、傳輸方法。
切換過程●應(yīng)用(非HA管理系統(tǒng))發(fā)起的切換請求應(yīng)用發(fā)起的切換命令通過任務(wù)或線程轉(zhuǎn)發(fā)給HA-OA,由HA-OA轉(zhuǎn)發(fā)給HA-ARB,由HA-ARB決定是否能夠切換,如果不能夠切換,則返回不能夠切換的原因。同時允許應(yīng)用強(qiáng)制改變節(jié)點(diǎn)的狀態(tài),即HA_ARB接到切換命令后,略過切換判斷策略,直接進(jìn)行切換。
主用端任務(wù)或線程發(fā)現(xiàn)內(nèi)部故障,首先本身進(jìn)行故障恢復(fù),如果恢復(fù)不了,則通知HA-OA,由HA-OA轉(zhuǎn)發(fā)給HA-ARB,HA-ARB決定是否重新啟動或者進(jìn)行切換,HA-ARB同時向備用端的HA-ARB報告,更新備用端記錄的任務(wù)或線程狀態(tài)。備用端任務(wù)或線程發(fā)現(xiàn)內(nèi)部故障同樣進(jìn)行處理,只是,備用端不進(jìn)行切換過程。
在錯誤恢復(fù)的過程中,如果任務(wù)或者線程允許,應(yīng)該首先選擇重新啟動發(fā)生故障的任務(wù)或者線程。HA-根據(jù)當(dāng)前節(jié)點(diǎn)和另一個節(jié)點(diǎn)運(yùn)行的狀態(tài)(包含應(yīng)用的狀態(tài)),決定是否允許進(jìn)行切換。如果可以切換,則首先發(fā)送切換準(zhǔn)備消息到各個任務(wù)或者線程,設(shè)定定時器,如果在定時器間隔內(nèi)收到應(yīng)答,或者定時器超時,根據(jù)不同的情況,進(jìn)行處理如果不存在競爭資源,則HA-OA和對方協(xié)商新的狀態(tài)。
如果存在競爭資源,則調(diào)用HA-OP,獲得或者釋放競爭資源。
不管切換是否成功,向各個任務(wù)或者線程報告新的節(jié)點(diǎn)狀態(tài)。如果切換是由于任務(wù)或者線程通過請求發(fā)起的,則應(yīng)答?!馠A管理系統(tǒng)發(fā)起的切換請求1、HA-OA發(fā)現(xiàn)本地的任務(wù)或線程死鎖或異常如果節(jié)點(diǎn)處于主用狀態(tài),HA-OA向HA-ARB報告這一事件,HA-ARB根據(jù)預(yù)先設(shè)定的策略,選擇重新啟動或進(jìn)行切換;如果節(jié)點(diǎn)處于備用狀態(tài),則不發(fā)生切換過程,其它處理相同。
如果需要進(jìn)行切換,則切換的過程和應(yīng)用(非HA管理系統(tǒng))發(fā)起的切換請求的處理相同。
2、HA-ARB收到HA-OP故障報告根據(jù)故障的級別,決定是否進(jìn)行切換,如果需要切換,則切換過程和應(yīng)用(非HA管理系統(tǒng))發(fā)起的切換請求的處理相同。
HA_OP通過檢測,將發(fā)現(xiàn)的故障上報給HA_ARB,由HA_ARB發(fā)出切換的請求。
當(dāng)HA-OP檢測到硬件、操作系統(tǒng)發(fā)生故障時,通知HA_ARB,考慮應(yīng)用情況的復(fù)雜性,這些故障需要依據(jù)不同故障類型進(jìn)行分類,不同故障采取不同的處理。
有些故障,HA-OP會采取相應(yīng)的動作,正常的節(jié)點(diǎn)主動獲得競爭資源,此時,HA-OP向HA-ARB報告競爭資源的狀態(tài)發(fā)生了變化,HA-ARB來判定新的狀態(tài)。
有些故障,HA-OP只是進(jìn)行檢測,由HA-ARB決定是否進(jìn)行切換到新的狀態(tài)。如果HA-ARB決定切換,則首先通過HA-OA向各個任務(wù)或者線程發(fā)送通知準(zhǔn)備切換,啟動定時器,在定時器超時或者全部收到應(yīng)答后,和對方協(xié)商新的狀態(tài)。
無論那種方法,當(dāng)新的狀態(tài)決定之后,如果發(fā)生變化,則向任務(wù)或者線程進(jìn)行報告,以便任務(wù)或者線程根據(jù)新的狀態(tài)進(jìn)行不同的處理。
HA-OP存在故障和正常狀態(tài),應(yīng)該盡可能的通知HA-ARB,以便HA-ARB進(jìn)行決策時,能夠得到關(guān)于平臺的信息。
3、HA-OA收到HA-ARB競爭資源所屬關(guān)系變化的通知根據(jù)競爭資源,判斷當(dāng)前的狀態(tài),然后向任務(wù)或者線程發(fā)送通知。
4、心跳監(jiān)測心跳監(jiān)測用來監(jiān)測兩個節(jié)點(diǎn)的HA運(yùn)行是否正常。
如果,主用端監(jiān)測到備用端失去心跳,則認(rèn)為備用端的HA故障,記錄故障發(fā)生,并向網(wǎng)管報告故障。如果主用HA-OA重新監(jiān)測到備用端HA-OA的心跳,則認(rèn)為故障恢復(fù),清除故障記錄。
如果,備用端監(jiān)測到主用端失去心跳,則認(rèn)為主用端的HA故障,HA-ARB進(jìn)行強(qiáng)制切換,調(diào)用HA-OP獲得競爭資源(如果需要),使其變?yōu)橹饔?,同時向各個任務(wù)或者線程發(fā)送狀態(tài)改變的通知。這時如果出現(xiàn)錯誤,則應(yīng)當(dāng)根據(jù)指定策略使備用端進(jìn)行狀態(tài)躍遷。
雖然通過實(shí)施例描繪了本發(fā)明,本領(lǐng)域普通技術(shù)人員知道,本發(fā)明有許多變形和變化而不脫離本發(fā)明的精神,希望所附的權(quán)利要求包括這些變形和變化而不脫離本發(fā)明的精神。
權(quán)利要求
1.一種通信系統(tǒng)中實(shí)現(xiàn)高可用性(HA)的裝置,其特征在于,包括面向平臺的裝置(HA-OP),用于與所述通信系統(tǒng)中使用的平臺進(jìn)行數(shù)據(jù)交互,其中,包括中斷接口裝置和異常觸發(fā)裝置,分別用于處理所述平臺的中斷請求和異常觸發(fā)信號;面向應(yīng)用的裝置(HA-OA),用于監(jiān)測本地任務(wù)或線程的運(yùn)行;監(jiān)測對端任務(wù)或者線程和進(jìn)行心跳檢測;HA判決裝置(HA-ARB),包括平臺決策裝置,用于決策所述面向平臺的裝置中不能處理的異常觸發(fā)信號;和任務(wù)決策裝置,根據(jù)所述面向應(yīng)用的裝置的檢測結(jié)果,決定切換或重新啟動。
2.如權(quán)利要求1所述的裝置,其特征在于,所述面向平臺的裝置還包括檢測裝置,用于檢測本端和對端的硬件資源;管理裝置,用于管理節(jié)點(diǎn)之間的競爭資源,獲得競爭資源的所屬關(guān)系,決定面向平臺部分的狀態(tài)信息,其中,競爭資源的所屬關(guān)系可以通過在高層軟件的控制而改變;其中,所述HA判決裝置處理所述管理裝置和檢測裝置的信息。
3.如權(quán)利要求2所述的裝置,其特征在于,所述管理裝置包括管理看門狗定時器的裝置;管理備板I/O的驅(qū)動器的裝置;管理當(dāng)前節(jié)點(diǎn)的狀態(tài)(變量值)的裝置;所述檢測裝置包括檢測CPU、風(fēng)扇和電源模塊、以太網(wǎng)卡及串口、并口和SCSI(小型計算機(jī)系統(tǒng)接口)接口的子裝置。
4.如權(quán)利要求1所述的裝置,其特征在于,所述面向應(yīng)用的裝置包括判斷裝置,用于判斷本地和對端任務(wù)或線程的運(yùn)行是否死鎖,其中,包括發(fā)送裝置,通過發(fā)送信息判定線程或者任務(wù)是否出現(xiàn)問題;心跳檢測裝置,用于檢測對端的HA-OA的狀態(tài),發(fā)現(xiàn)對端心跳丟失時,向所述HA判決裝置報告;傳輸裝置;連接所述判斷裝置和所述心跳檢測裝置,用于與所述HA判決裝置進(jìn)行交互。
5.如權(quán)利要求1所述的裝置,其特征在于,所述HA判決裝置還包括記錄裝置,用于記錄節(jié)點(diǎn)的工作狀態(tài),平臺的狀態(tài),節(jié)點(diǎn)任務(wù)或線程的狀態(tài);處理裝置,用于根據(jù)所述記錄裝置記錄的信息和與所述面向平臺的裝置和所述面向應(yīng)用的裝置交互的信息,確定所述HA的決策。
6.一種利用如權(quán)利要求1所述的裝置實(shí)現(xiàn)通信系統(tǒng)中高可用性(HA)的方法,其特征在于,包括步驟確定至少兩個HA-OA的狀態(tài),其中,一個為主用,其它為備用;主用端HA-OA對本節(jié)點(diǎn)上的應(yīng)用和對端的備用節(jié)點(diǎn)進(jìn)行心跳檢測;HA-ARB根據(jù)檢測結(jié)果,判斷所述應(yīng)用是否可以重啟且重啟是否成功;如果可以重啟且成功,結(jié)束本方法;如果不可以重啟或重啟不成功,HA-OA向HA-ARB請求切換。如果HA-ARB向HA-OA返回可以切換,進(jìn)行切換;如果返回不可以切換,結(jié)束本方法。
7.如權(quán)利要求6所述的方法,其特征在于,所述主用端HA-OA對本節(jié)點(diǎn)上的應(yīng)用和對端的備用節(jié)點(diǎn)進(jìn)行心跳檢測的步驟;包括如果失去某一個應(yīng)用的心跳檢測,HA-OA向HA-ARB詢問需要重啟或切換;如果失去了對端的備用節(jié)點(diǎn)HA-OA的心跳,記錄該狀態(tài),并向HA-ARB報告。
8.如權(quán)利要求7所述的方法,其特征在于,所述進(jìn)行心跳檢測的步驟包括連續(xù)三次未收到心跳應(yīng)答,判斷為失去心跳檢測。
9.如權(quán)利要求6所述的方法,其特征在于,所述進(jìn)行切換的步驟包括HA-OA向HA-ARB通知進(jìn)行應(yīng)用切換,同時啟動一個定時器;如果在定時器間隔內(nèi)收到應(yīng)用的切換完成應(yīng)答,或者定時器超時,通知HA-ARB進(jìn)行切換。
10.如權(quán)利要求6所述的方法,其特征在于,所述確定至少兩個HA-OA的狀態(tài)的步驟還包括設(shè)定初始化所述HA系統(tǒng)或協(xié)商初始化所述HA系統(tǒng);其中,所述設(shè)定初始化所述HA系統(tǒng)的步驟包括讀取預(yù)存儲的設(shè)定信息,設(shè)定主用HA和備用HA;所述協(xié)商初始化所述HA系統(tǒng)的步驟包括判定所述至少兩個HA-OA中的一個獲取對系統(tǒng)控制的HA-OA,設(shè)定所述獲取控制的HA-OA為主用HA-OA,通知其它HA-OA為備用HA-OA。
11.如權(quán)利要求10所述的方法,其特征在于,所述判定所述至少兩個HA-OA中的一個獲取對系統(tǒng)控制的HA-OA的步驟包括判斷所述至少兩個HA-OA的那個首先加電,設(shè)定首先加電的HA-OA為主用,其它為備用;和/或判斷系統(tǒng)總線由所述至少兩個HA-OA中的那個控制,設(shè)定所述獲得控制權(quán)的HA-OA為主用,其它為備用;如果沒有一個HA-OA控制系統(tǒng)總線或首先加電,所有HA-OA通信確認(rèn)一個HA-OA為主用,其它為備用。
12.如權(quán)利要求11所述的方法,其特征在于,所述所有HA-OA通信確認(rèn)一個HA-OA為主用的步驟包括根據(jù)設(shè)定優(yōu)先權(quán)確定主用;或根據(jù)所有的HA-OA產(chǎn)生的隨機(jī)數(shù)的大小確定主用。
13.如權(quán)利要求11所述的方法,其特征在于,所述所有HA-OA通信確認(rèn)一個HA-OA為主用的步驟包括所述至少兩個HA-OA中的任一個發(fā)出要求控制或被控制的請求,如果未在預(yù)定時間內(nèi)收到其它HA-OA的拒絕消息,確認(rèn)該HA-OA為主用或備用。
14.如權(quán)利要求11所述的方法,其特征在于,所述確定至少兩個HA-OA的狀態(tài)的步驟由HA-ARB執(zhí)行,其中,還包括步驟所述HA-ARB通知HA-OA當(dāng)前節(jié)點(diǎn)的狀態(tài)。
15.如權(quán)利要求6所述的方法,其特征在于,所述判斷所述應(yīng)用是否可以重啟的步驟包括,在本地應(yīng)用故障和/或本地平臺故障和本地和對端節(jié)點(diǎn)故障時,HA-ARB發(fā)送不可重啟消息,在本地和對端節(jié)點(diǎn)正常運(yùn)行或?qū)Χ斯?jié)點(diǎn)故障時,HA-ARB根據(jù)預(yù)先設(shè)定,發(fā)送可以或不可以重啟消息;所述方法還包括步驟在HA-OA報告應(yīng)用異常時,如果出現(xiàn)本地平臺故障,進(jìn)入本地應(yīng)用和平臺故障狀態(tài),如果節(jié)點(diǎn)正常運(yùn)行,進(jìn)入本地應(yīng)用故障狀態(tài);如果對端節(jié)點(diǎn)故障,進(jìn)入對端節(jié)點(diǎn)和本地故障狀態(tài);所述如果HA-ARB向HA-OA返回可以切換的步驟包括,判斷對端節(jié)點(diǎn)是否正常,如果正常,可以切換;所述方法還包括步驟,在切換后,改變系統(tǒng)的狀態(tài),如果不能切換,報告故障。
全文摘要
本發(fā)明提供了一種通信系統(tǒng)中實(shí)現(xiàn)高可用性(HA)的裝置和方法。其中裝置包括面向平臺的裝置(HA-OP),用于與所述通信系統(tǒng)中使用的平臺進(jìn)行數(shù)據(jù)交互,其中,包括中斷接口裝置和異常觸發(fā)裝置,分別用于處理所述平臺的中斷請求和異常觸發(fā)信號;面向應(yīng)用的裝置(HA-OA),用于監(jiān)測本地任務(wù)或線程的運(yùn)行;監(jiān)測對端任務(wù)或者線程和進(jìn)行心跳檢測;HA判決裝置(HA-ARB),包括平臺決策裝置,用于決策所述面向平臺的裝置中不能處理的異常觸發(fā)信號;和任務(wù)決策裝置,根據(jù)所述面向應(yīng)用的裝置的檢測結(jié)果,決定切換或重新啟動。本發(fā)明提供硬件冗余資源;和軟件管理冗余備份時的數(shù)據(jù)一致和狀態(tài)一致的解決辦法,可以實(shí)現(xiàn)電信系統(tǒng)的HA要求。
文檔編號H04B1/74GK1476178SQ0314628
公開日2004年2月18日 申請日期2003年7月8日 優(yōu)先權(quán)日2003年7月8日
發(fā)明者李海民, 滕建剛, 李敏行 申請人:大唐移動通信設(shè)備有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
雷山县| 茂名市| 邵武市| 上思县| 姜堰市| 久治县| 开封市| 乌鲁木齐市| 阳泉市| 红原县| 西畴县| 建始县| 大港区| 丘北县| 聂拉木县| 永嘉县| 扶沟县| 当雄县| 东宁县| 上饶县| 烟台市| 东平县| 泉州市| 微山县| 商河县| 金华市| 铁岭县| 吉安县| 安义县| 于都县| 古田县| 辛集市| 太康县| 沁阳市| 松滋市| 博湖县| 申扎县| 翁源县| 临泽县| 达尔| 治县。|