APP下载

双冗余热备份技术的综合控制设备设计与实现

2018-10-29罗悦陶然赵明李正天

现代防御技术 2018年5期
关键词:备份仲裁状态

罗悦,陶然,赵明,李正天

(1.北京电子工程总体研究所,北京 100854;2.北京航天自动控制研究所,北京 100854)

0 引言

目前,为满足地面武器装备车辆低成本、高可靠、信息化的发展需求,采用集成化、一体化的综合控制设备完成车辆的一体化控制功能已成为未来发展的重要方向[1],车载综合控制设备作为武器装备可靠执行任务的地面核心控制设备,主要功能包括流程控制、人机交互、接收其他车载设备状态信息并进行分析处理、对外发送控制命令完成控制功能,其可靠性、安全性将直接影响装备车辆的整车性能,同时综合控制设备作为装车设备,其使用环境条件恶劣,会受到外界环境的各种干扰,可能导致设备出现死机、通信故障、程序跑飞等故障,一旦综合控制设备出现故障后,地面装备车辆的任务将被迫终止,最终导致武器装备无法正常使用。因此车载综合控制设备已逐步采用容错技术来提高可靠性[2],即针对关键设备、部件、元器件采用冗余热备份的设计方法,但并非余度越多设备可靠性越高,因为余度提高后对应的冗余部件也将增加,使得用于故障检测和余度切换的部件增多[3],仲裁模块功能越复杂,可靠性反而可能降低[4]。本文提出一种基于双冗余热备份技术的综合控制设备,通过仲裁方式实现主、备状态监测及故障切换功能,通过同步软件模块实现余度间的任务同步,对系统软件改动小、易于实现,提高了地面装备的任务可靠性。

1 冗余热备份方案设计

冗余热备份即为当一个设备出现故障后,另一个热备份的设备在无人为干涉情况下实现快速、平滑地切换,接管主设备的所有功能,确保设备故障切换后执行任务的持续性[5-6]。

实现冗余热备份的方式包括整机热备和板级热备2种,同时板级热备可采取对所有板卡进行热备份设计或者针对部分板卡进行热备份设计,针对综合控制设备的故障模式进行分析,发现电源模块和CPU模块是设备的故障易发点,因此针对设备中的关键部件电源模块、CPU模块采用双冗余热备份设计来提高可靠性,同时基于仲裁方式对冗余的2个CPU模块进行余度管理[7],由于电源模块的热备份技术比较成熟,本设计中不再赘述。

数据同步技术是实现冗余热备份的关键技术,热备份的设备需要知道主设备的运行状态,并与之保持一致才能保证故障切换后设备可以接续当前状态继续运行。目前同步方式包括时钟同步、任务同步、松散同步[8],时钟同步适用于高精度的实时计算系统中,要求冗余的2个模块在时钟周期内执行严格数据同步过程,需要硬件设计的支持且实现难度较大;任务同步以任务为单位实施同步减少了余度之间的交互及同步等待时间,适用于基于任务调度方式工作的设备中;而松散同步适用于对双机同步精度要求不高的设备中。数据同步可以通过反射内存卡、双端口RAM的存储器、磁盘阵列方式实现[9-10],也可以通过串、并行通讯链路实现,基于反射内存卡或双端口RAM的数据同步方式需要对设备硬件进行重新设计,难度大、成本高,通常高精度时钟同步方式采用此方法,而基于串、并行通讯链路进行数据同步的方式简单易操作、成本低,满足任务级同步的非大数据量同步交互需求。由于综合控制设备主要执行流程控制及通信功能,不进行算法处理,在输入相同情况下每一过程的执行结果是确定的,因此采取基于通信链路的任务同步方式,即可以降低数据同步的复杂度,同时也满足综合控制设备的同步功能需求。

综合考虑可靠性、复杂度、实现难度以及成本因素,车载综合控制设备采用板卡级热备份方式,针对CPU模块及电源模块进行冗余热备设计,同时采用仲裁的方式实现余度管理共能,并采用基于任务的数据同步方法进行同步设计。

2 冗余热备份综合控制设备设计

2.1 硬件设计

综合控制设备包括2个硬件完全相同的CPU模块、1个仲裁模块、2个冗余的电源模块、1个背板模块以及其他功能模块,各模块通过VPX总线与背板模块相连接,原理图如图1所示。其中CPU模块具有自检测功能,通过模块上自带传感器及自检程序完成对自身状态的实时监测,2个CPU模块的DVI视频输出信号连接至仲裁模块,仲裁模块控制主CPU模块的视频信号输出至显示屏,同时仲裁模块将外部键盘、鼠标的USB信号进行一分为二的分路处理后输入给2个CPU模块,2个CPU模块通过直连网线实现数据通信完成主、备间的任务同步功能。

仲裁模块完成对2个CPU模块的心跳检测,接收CPU模块的状态信息,完成故障的处理,实现2个CPU模块的主备切换功能,完成CPU模块对外输出信号的切换控制功能,包括键盘、USB、IO信号,仲裁模块通过 RS422 串口与2个CPU模块进行数据通讯,CPU模块通过RS422串口定时向仲裁模块发送心跳数据及自身运行状态信息。仲裁模块实施故障的分析处理,完成对2个CPU模块的通、断电控制功能及对外输出信号的切换控制功能,包括键盘、鼠标、视频信号,从而实现综合控制设备2个CPU模块的主备切换功能。

综合控制设备上电后,默认第1个槽位上的CPU模块为主CPU模块,负责与外部的通讯、控制功能,另一个作为热备份CPU模块,只接收外部的数据,不对外发送信息,2个CPU模块上电自检无误后开始工作,构成双余度系统,2个CPU模块定时以10 ms的间隔向仲裁模块发送心跳信息,仲裁模块根据CPU模块的健康状态信息及心跳监测状态[11]判断CPU模块是否出现故障。

2.2 故障检测

故障检测是完成高可靠仲裁切换的重要保证条件,综合控制设备的故障检测包括以下几个方面:

(1) CPU模块硬件故障[12]:每个CPU模块上电后,采用自检程序实时对自身工作状态进行监控,自检状态包括对CPU模块温度、CPU使用率、CPU电压值、CPU工作频率、内存温度、内存使用率等进行快速自检,若自检结果不正常则直接发送状态信息给仲裁模块;

(2) 2个CPU模块定时向仲裁模块发送心跳,如果仲裁模块连续5次未接收到某个CPU模块的心跳,则认为该CPU模块出现故障;

(3) CPU模块上运行的应用软件中设置看门狗,用看门狗定时器监控程序状态,当程序出现跑飞或锁死故障时,向仲裁模块上报故障状态;

(4) 通信链路故障:CPU模块与外部节点通信过程中,因为通信链路故障导致数据接收或发送失败,CPU模块向仲裁模块上报故障状态;

(5) 如果2个CPU模块之间的直连网线出现链路故障,导致数据同步失败,输出主CPU模块的结果,同时将故障信息上报给仲裁模块;

(6) 2个CPU模块的同步不一致故障:如果2个CPU模块进行任务同步过程中出现同步结果不一致,导致2个CPU模块的状态不一致,此时综合控制设备将输出主CPU模块的处理结果,同时上报故障信息。

故障检测的流程图如图2所示。

2.3 切换处理

综合控制设备上电后,主CPU模块、备CPU模块同时上电工作,构成双余度系统,仲裁模块根据CPU模块的健康状态信息及心跳监测状态判断CPU模块是否出现故障。当仲裁模块监测到某一CPU模块出现故障后,立即进行故障的切换处理,同时在综合控制设备前面板上通过状态指示灯进行故障指示,仲裁模块的切换处理方式如下:

(1)当主CPU模块出现故障时,仲裁模块进行主备切换处理,切换工作完成将对外输出的视频信号以及输入的键盘、鼠标等USB信号从故障CPU模块切换到正常CPU模块上,同时对主CPU模块实施断电处理,备CPU模块后续以单余度状态工作,不再进行任务同步操作,并向综合控制系统内的其他节点发送切换通知,当节点收到切换通知后,向综合控制设备发送数据时仅对正常工作的CPU模块发送即可。

图1 一种基于仲裁方式的双冗余热备份综合控制设备原理框图Fig.1 Functional block diagram of synthetic control equipment based on dual hot-redundancy

图2 故障检测流程图Fig.2 Flow chart of fault detection

(2) 如果备CPU模块出现故障,则直接将备CPU模块进行断电处理,主CPU模块后续以单余度状态工作,不再进行任务同步操作,同时向综合控制系统内的其他节点发送切换通知。

(3) 如果2个CPU模块均出现故障,则仲裁模块对2个CPU模块均实施断电处理,综合控制设备故障,等待维修。

3 基于任务的数据同步处理方法设计

设备工作过程中,2个冗余热备份CPU模块运行相同的软件,需要进行数据同步从而保证彼此状态的一致性和任务同步性[13-15]。本文提出的任务同步方法包括3个部分的同步,分别为设备自身业务处理后的状态数据同步、发送给外部节点的输出数据同步、接收外部节点发送数据的同步。将CPU模块上的软件分为业务模块及任务同步模块,业务模块实现单余度时的设备功能,任务同步模块实现2个冗余CPU模块之间的任务数据同步。具体同步方式如图3所示。

图3 一种双冗余热备份设备的任务同步原理图Fig.3 Task synchronization schematic diagram of hot-redundancy device

3.1 自身业务状态数据同步

将业务模块按功能分成多个任务来执行,当任务执行结束后调用任务同步模块进行一次数据同步操作,同时任务同步模块实施心跳状态的发送处理,具体过程如下:

(1) CPU模块上电后,应用软件自启动开始运行,业务模块定时调用任务同步模块向仲裁模块发送心跳信息;

(2) 如果一个CPU模块完成任务1(CPU-A),调用任务同步模块完成任务同步过程;

(3) 任务同步模块接收到任务同步请求后,创建一个同步任务,然后该CPU模块通过直连网线向另一个余度的CPU模块(CPU-B)发送同步数据;

(4) CPU-B接收到同步数据后,交给任务同步模块,任务同步模块等待任务模块的任务同步请求,接收到业务模块发送的同步请求后,同样创建一个同步任务;

(5) CPU-B的任务同步模块将2个CPU模块的同步任务数据进行比对,将同步结果发送给CPU-A的任务同步模块;

(6) 2个CPU模块的任务同步模块将同步结果发给业务模块,然后结束同步任务;

(7) CPU模块收到同步结果后,如果相同则继续下一个任务,如果不同则将故障状态信息发送给仲裁模块,同时将故障状态进行提示,等待人机交互的处理结果;

(8) 在等待过程中设置最长等待时间,超时后结束等待同时将超时故障发送给仲裁模块,同时将超时故障状态进行提示,等待人机交互的处理结果。

3.2 输入数据同步处理

设备接收外部节点的通信数据,如果无需应答处理,则2个CPU模块接收到数据后进行输入同步处理,如果有应答机制,则2个CPU模块接收到数据后先进行接收应答然后进行输入同步处理,输入同步设计的具体实施方式如下:外部节点发送数据给综合控制设备时,同时向2个冗余CPU模块发送,当CPU模块收到数据后,调用任务同步模块完成任务同步,确保2个CPU模块收到数据的一致性,如果2个CPU模块接收到的数据不一致,则将故障状态信息进行提示,同时向仲裁模块上报故障信息,进行异常处理。

3.3 输出数据同步处理

设备向外部节点发送数据时,2个CPU模块进行输出同步设计,具体实施方式如下:CPU模块向外发送数据时,首先调用任务同步模块完成同步,确保输出数据的一致性,主CPU模块向外部节点发送数据,备CPU模块不向外发送数据,如果两个CPU模块输出数据不一致,则将故障状态信息进行提示,同时向仲裁模块上报故障信息,进行异常处理。

如果在业务模块的某一任务执行中出现故障,仲裁模块实施冗余切换同时通知备份的CPU模块升级为主CPU模块并接管所有系统任务,由于同步是在每次任务完成后进行的,此时备份的CPU模块未能获得主CPU模块当前的同步状态,因此备份的CPU模块在接管任务后,首先进行回滚操作,即CPU模块将业务模块的操作滚回上一次任务结束点上重新执行该次任务,确保不出现故障切换导致的数据丢失或任务不连续问题。

双冗余热备份设备的数据同步技术是实现高可靠性余度管理的核心技术,本文提出的针对综合控制设备的任务级数据同步方法,通过余度之间的通信链路及运行在CPU模块上的任务同步软件模块实现了2个CPU模块间的任务同步,这种方法易于实现,对现有设备的硬件、软件改动量小,可靠性高。

4 结束语

双冗余热备份技术是提高设备可靠性的重要设计手段,本设计提出的车载综合控制设备针对CPU模块采取双冗余热备份的设计,通过仲裁模块实现故障监测及切换处理,同时采用基于任务的数据同步,提出一种数据同步方法,在不改变设备自身业务处理软件的状态下实现主、备间的状态同步,保证了综合控制设备任务的不间断,提高了地面装备车辆的整体可靠性。

猜你喜欢

备份仲裁状态
如何只备份有用数据而不备份垃圾数据
创建vSphere 备份任务
对不属于仲裁委员会管辖范围的仲裁申请如何处理?
Windows10应用信息备份与恢复
状态联想
一种多通道共享读写SDRAM的仲裁方法
生命的另一种状态
旧瓶装新酒天宫二号从备份变实验室
坚持是成功前的状态
国际商事仲裁,机构仲裁好还是临时仲裁好?