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