文献标识码: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)