文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.190731
中文引用格式: 張軍永,,劉榮林,李翼瀚. 一種基于雙機熱備份的同步監(jiān)聽值守策略設(shè)計[J].電子技術(shù)應(yīng)用,,2019,,45(12):106-109,114.
英文引用格式: Zhang Junyong,,Liu Ronglin,,Li Yihan. A synchronous and listening guard strategy design based on dual-machine hot standby[J]. Application of Electronic Technique,2019,,45(12):106-109,,114.
0 引言
隨著計算機技術(shù)的迅猛發(fā)展,,計算機系統(tǒng)開始廣泛應(yīng)用于航空、航天等領(lǐng)域,。受飛機總體設(shè)計要求,,機載計算機在重量、體積等方面都有嚴(yán)格的設(shè)計限制,,因此在不增加硬件的基礎(chǔ)上,,如何盡可能提高計算機系統(tǒng)的任務(wù)可靠性,成為航空,、航天事業(yè)的一個重要課題,。
在當(dāng)今航空航天領(lǐng)域,為保證核心功能的正常運行,,常常采用雙機備份方法提高系統(tǒng)的可靠性,,當(dāng)主機故障時,能夠無縫切換至備機,,確保系統(tǒng)能夠長期穩(wěn)定運行,。
本方案基于某型機的綜合CNI系統(tǒng)。為保障系統(tǒng)的生命周期和任務(wù)的完成度,,該系統(tǒng)配置兩個系統(tǒng)控制管理模塊,,其功能完全相同,互為備份,。當(dāng)主處理設(shè)備故障時,,備處理設(shè)備能夠快速接管主處理設(shè)備職能,實現(xiàn)無縫切換,,保證綜合CNI系統(tǒng)的穩(wěn)定運行,。
1 冗余備份概述
在實際的工程應(yīng)用中,雙機冗余備份一般采用雙機冷備份,、雙機溫備份,、雙機熱備份主從及雙工[1-2]4種模式,拓?fù)浣Y(jié)構(gòu)如圖1所示,,其工作特點如表1所示,。
一般而言,系統(tǒng)可用度較高的為雙機熱備主從模式及雙工模式。其中,,雙工模式能夠通過結(jié)果比較來及時地確定輸出方,,確保了系統(tǒng)的連續(xù)工作,但是該模式要求所有冗余模塊必須嚴(yán)格同步,,同時表決器設(shè)計也比較復(fù)雜,隨著表決器工作時間的增長,,其仲裁可靠度逐漸降低。而主從模式則設(shè)計相對簡單,,當(dāng)備控計算機通過檢測到主控計算機故障時,,能夠通過仲裁將發(fā)生故障的主控計算機隔離,使備控計算機變?yōu)橹骺赜嬎銠C,,行使控制職能,。
為保證雙機冗余系統(tǒng)的高可靠性,,同時盡可能降低模塊設(shè)計復(fù)雜度,,本文提出了一種基于雙機熱備份主從工作模式,同時通過一定的表決算法,,模擬實現(xiàn)全雙工工作的設(shè)計方法,。
2 系統(tǒng)設(shè)計
系統(tǒng)控制管理模塊作為綜合CNI系統(tǒng)的核心處理單元,實現(xiàn)了對系統(tǒng)的健康狀態(tài)檢測,、資源調(diào)度,、綜合控制和綜合管理等,其系統(tǒng)連接概圖如圖2所示,。
初始默認(rèn)系統(tǒng)控制管理模塊1為主控計算機,,系統(tǒng)控制管理模塊2為備控計算機,處于熱備份狀態(tài),。
為實現(xiàn)雙機熱備同步監(jiān)聽值守策略,,本文主要通過故障檢測、控制表決,、數(shù)據(jù)同步,、監(jiān)聽值守四方面對系統(tǒng)控制管理模塊進(jìn)行功能設(shè)計。
2.1 故障檢測
故障檢測是實現(xiàn)雙機熱備份的前提,,是完成控制表決的基礎(chǔ),。為保證系統(tǒng)高可靠性前提下最大限度地簡化設(shè)計,降低復(fù)雜度,,本方案采用通過軟件實現(xiàn)的自檢測和心跳檢測等方法作為故障檢測手段,。
其中,自檢測主要完成對系統(tǒng)控制管理模塊軟硬件的狀態(tài)檢測,,包括CPU狀態(tài),、I/O狀態(tài)、內(nèi)存狀態(tài)、進(jìn)程及任務(wù)狀態(tài)等,;心跳檢測則采用基于PULL模型[3]的雙冗余心跳檢測[4]機制,,分別通過雙冗余CAN總線及千兆以太網(wǎng)檢測對方狀態(tài)。
當(dāng)主控計算機通過雙冗余總線進(jìn)行心跳詢問時,,其心跳判斷狀態(tài)如表2所示,。
如果兩總線心跳狀態(tài)正常,則證明對方軟件處理正常和總線正常,;如果一條總線異常,,另一總線正常,則證明軟件處理正常,,而心跳異??偩€故障;如果兩條總線心跳狀態(tài)全部異常,,因該故障概率較小,,則可以判定為對方軟件處理故障。
以主控計算機發(fā)起心跳詢問,,備控計算機心跳應(yīng)答為例進(jìn)行功能設(shè)計說明,,其控制流程如圖3所示。
故障檢測流程主要包括心跳正常處理流程及心跳異常處理流程,,其中,,正常處理流程為能夠正常接收心跳應(yīng)答信息;異常處理流程為未能正常接收心跳應(yīng)答信息,。
定義心跳詢問周期為50 ms,,在系統(tǒng)運行過程中,主控計算機分別通過CAN總線及以太網(wǎng)以50 ms周期發(fā)送心跳詢問信息至備控計算機,,備控計算機接收到主控計算機心跳詢問信息后,,將當(dāng)前自身故障信息及外部功能故障信息同步至主控計算機。
定義心跳超時周期為50 ms,,若主控計算機在2個周期內(nèi)未接收到心跳應(yīng)答信號則置對方總線故障,。
2.2 控制表決
系統(tǒng)運行過程中,主備控制權(quán)的狀態(tài)取決于系統(tǒng)控制管理模塊運行狀態(tài),,而運行狀態(tài)則通過故障檢測及故障處理機制進(jìn)行表決,。
故障處理是指對發(fā)生的故障或錯誤進(jìn)行屏蔽、定位,、限制等處理,,以保證系統(tǒng)在出現(xiàn)故障仍能正常運行。故障處理的行為與健康監(jiān)控器具體報告的事件有關(guān),,如圖4所示,。
健康監(jiān)控器需要向故障管理器報告所有確認(rèn)的故障,。故障管理器在接收到故障后根據(jù)已設(shè)定好的故障處理流程對故障進(jìn)行一系列處理,包括故障關(guān)聯(lián),、識別和定位,、失效判斷等,并根據(jù)判決結(jié)果進(jìn)行狀態(tài)輸出,,由控制表決器進(jìn)行控制表決,。本方案基于自檢測數(shù)據(jù)及歷史信息的自適應(yīng)一致性表決算法[5-6]進(jìn)行控制表決,其表決流程如圖5所示,。
在進(jìn)行基于自檢測及歷史信息數(shù)據(jù)一致性表決時,,需注意:
(1)設(shè)置本機自檢測狀態(tài)信息獲取門限(≥3次),避免表決周期內(nèi)的瞬態(tài)錯誤,,獲取本機實際狀態(tài)信息,;
(2)實時接收另一計算機同步的自檢測信息,并針對不同的自檢測狀態(tài)信息進(jìn)行顆粒度細(xì)化,,按子控制塊進(jìn)行功能性分解,;
(3)實時獲取歷史記錄表決信息,并根據(jù)實時表決次數(shù),,獲取當(dāng)前模塊表決可靠性等級,,為本次表決提供一定的依據(jù);
(4)本機狀態(tài)信息與他機狀態(tài)信息進(jìn)行一致性表決,,對多個冗余信息進(jìn)行表決后產(chǎn)生表決結(jié)果,輸出當(dāng)前主備控制狀態(tài),,同時記錄當(dāng)前表決信息,,為下次表決可靠性提供依據(jù)。
2.3 數(shù)據(jù)同步
為確??刂茩?quán)搶占后系統(tǒng)的連續(xù)平穩(wěn)運行,,需通過同步來保證兩系統(tǒng)控制管理模塊彼此間狀態(tài)的一致性及任務(wù)的同步性。數(shù)據(jù)同步主要包括靜態(tài)數(shù)據(jù)同步及實時數(shù)據(jù)同步[7],,其中:
(1)靜態(tài)數(shù)據(jù)同步
靜態(tài)參數(shù)主要包括對系統(tǒng)各功能的配置,、硬件描述以及任務(wù)的定義等各類配置文件,在未進(jìn)行數(shù)據(jù)加載,、數(shù)據(jù)刪除等操作時,,該類數(shù)據(jù)基本不會發(fā)生變化。
本方案采用基于rsync算法及服務(wù)器與客戶端的FTP傳輸技術(shù)進(jìn)行文件同步,。在靜態(tài)參數(shù)發(fā)生變化后,,通過對比主備設(shè)備中相同文件號的文件屬性,獲取靜態(tài)參數(shù)同步策略,。并通過FTP客戶端與服務(wù)器端的“控制連接”和“數(shù)據(jù)連接”實現(xiàn)文件同步傳輸,。
(2)實時數(shù)據(jù)同步
實時數(shù)據(jù)主要包括關(guān)鍵數(shù)據(jù)及預(yù)干預(yù)數(shù)據(jù)。鑒于實時數(shù)據(jù)的可變性及可擴展性,本方案采用基于XML的數(shù)據(jù)定義方式,,其處理流程如圖6所示,。
主控計算機實時接收外部數(shù)據(jù),并進(jìn)行數(shù)據(jù)處理及狀態(tài)更新,,待數(shù)據(jù)處理完成后,,根據(jù)XML中的封裝格式進(jìn)行封裝,并同步至備控計算機,。
備控計算機實時接收主控計算機的同步數(shù)據(jù),,并根據(jù)XML數(shù)據(jù)格式進(jìn)行解析處理,確保與主控計算機實時數(shù)據(jù)的一致性[8],。
2.4 監(jiān)聽值守
本方案中兩系統(tǒng)控制管理模塊的總體控制策略如下:
(1)初始默認(rèn)系統(tǒng)控制管理模塊1為主處理計算機,,負(fù)責(zé)整個系統(tǒng)資源調(diào)度和管理,系統(tǒng)控制管理模塊2為備控計算機,,處于熱備份監(jiān)控狀態(tài),;
(2)主控計算機實時將系統(tǒng)工作狀態(tài)同步至備控計算機,備控計算機則實時將采集到的數(shù)據(jù)透明轉(zhuǎn)發(fā)至主控計算機,;
(3)主控計算機故障時,,若喪失部分或全部控制權(quán),備控計算機則“無縫”搶占已喪失部分或全部控制權(quán),;
(4)主控計算機由故障變?yōu)檎:?,根?jù)表決狀態(tài)重新?lián)屨枷到y(tǒng)控制權(quán),同時備控計算機轉(zhuǎn)為熱備份狀態(tài),。
系統(tǒng)控制管理模塊監(jiān)聽值守流程如圖7所示,。
在系統(tǒng)運行過程中,兩系統(tǒng)控制管理模塊均正常工作,,且產(chǎn)生運算結(jié)果,,在對外輸出處理時則通過自身表決狀態(tài)進(jìn)行輸出判斷。
3 結(jié)論
本文分析了多種冗余備份的工作特點,,提出一種模擬全雙工工作的雙機熱備份設(shè)計方法,,并從故障檢測、控制表決,、數(shù)據(jù)同步及監(jiān)聽值守四方面進(jìn)行雙機熱備份設(shè)計,。
本方案當(dāng)前已成功應(yīng)用于某綜合化CNI系統(tǒng),通過長期航電系統(tǒng)聯(lián)試及試飛驗證,,證明在主控計算機功能全部失效或部分失效的情況下,,該方案能夠?qū)⑾鄳?yīng)功能的控制權(quán)快速、“無縫”地切換到備控計算機,,切實提高整個系統(tǒng)的可靠性,,降低了計算機長期失效帶來的風(fēng)險,。本方案具有普遍通用性,可以為航空,、航天或其他工業(yè)控制的雙機熱備方案提供一定的思路,。
參考文獻(xiàn)
[1] 趙豫峰,張善從.一種雙機熱備的嵌入式計算機系統(tǒng)設(shè)計[J].國外電子測量技術(shù),,2013,,32(5):75-78.
[2] 張科超,崔剛.實時嵌入式系統(tǒng)中的雙機熱備份容錯設(shè)計[J].計算機研究與發(fā)展,,2010,,47(S):133-136.
[3] 鄒見效.分布式測控系統(tǒng)容錯關(guān)鍵技術(shù)研究[D].成都:電子科技大學(xué),2009.
[4] 徐一鳳,,豐大軍,,王皓,等,基于麒麟系統(tǒng)的SCADA狀態(tài)診斷系統(tǒng)的設(shè)計與實現(xiàn)[J].電子技術(shù)應(yīng)用,,2018,,44(5):134-136.
[5] 俞功兵,王俊峰.基于自檢測的自適應(yīng)一致表決算法[J].電子設(shè)計工程,,2012,,20(21):19-21.
[6] 歐陽城添,王曦,,鄭劍,,等.自適應(yīng)一致表決算法[J].計算機科學(xué),2011,,38(7):130-133.
[7] 羅悅,,陶然,趙明,,等,雙冗余熱備份技術(shù)的綜合控制設(shè)備設(shè)計與實現(xiàn)[J].現(xiàn)代防御技術(shù),2018,,46(5):129-134.
[8] 張雅妮.基于熱備份的雙余度嵌入式系統(tǒng)的容錯設(shè)計[J].西北工業(yè)大學(xué)學(xué)報,,2017,35(S):120-123.
作者信息:
張軍永,,劉榮林,,李翼瀚
(天津七一二通信廣播股份有限公司,天津300140)