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