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