基于任务级的双冗余热备份设备的数据同步方法与流程

文档序号:11590145阅读:478来源:国知局

本发明涉及冗余热备份技术领域。更具体地,涉及一种基于任务级的双冗余热备份设备的数据同步方法。



背景技术:

随着互联网的飞速发展,网络已经成为社会生活中不可或缺的重要部分,企业和个人的通信与交流均离不开网络的使用,因此对网络的可靠性的要求也越来越高。热备份技术是一种软硬件结合的较高容错的应用方法,其能够在不中断运行的情况下,使用备用的模块替换故障模块,并在故障消除之后,系统能自动重新同步运行,从而有效提高设备的可靠性,避免因设备故障而中断运行。

目前,为提高地面装备设备的可靠性,采用冗余热备份设计已成为广泛应用的方法。冗余热备份即为当一个设备出现故障后,另一个热备份的设备在无人为干涉情况下实现快速无缝切换,接管主设备的所有功能,确保设备故障切换后执行任务的持续性。实现冗余热备份的关键技术为余度之间的数据同步技术,热备份的设备需要知道主设备的运行状态,并与之保持一致才能保证故障切换后设备可以接续当前状态继续运行。

根据同步的同步方式包括时钟同步、任务同步、松散同步。其中,时钟同步适用于高精度的实时计算系统中,要求冗余的两个模块在时钟周期内执行严格数据同步过程,需要硬件设计的支持且实现难度较大;任务同步以任务为单位实施同步减少了余度之间的交互及同步等待时间,适用于基于任务调度方式工作的设备中;而松散同步适用于对双机同步精度要求不高的设备中。数据同步的实现可以通过反射内存卡、双端口ram的存储器方式实现,也可以通过串、并行通讯链路实现,基于反射内存卡或双端口ram的数据同步方式需要对设备硬件进行重新设计,难度大、成本高,通常高精度时钟同步方式采用此方法,而基于串、并行通讯链路进行数据同步的方式简单易操作、成本低,满足任务级同步的非大数据量同步交互需求。

因此,需要提供一种基于任务级的双冗余热备份设备的数据同步方法。



技术实现要素:

本发明的目的在于提供一种基于任务级的双冗余热备份设备的数据同步方法。

为达到上述目的,本发明采用下述技术方案:

一种基于任务级的双冗余热备份设备的数据同步方法,将业务模块按功能分成多个任务来执行,当任务执行结束后调用任务同步模块进行一次数据同步操作,同时任务同步模块实施心跳状态的发送处理,该方法包括设备自身业务处理后的状态数据同步,具体地

第一cpu模块的第一业务模块完成一任务并发送第一任务同步请求至第一任务同步模块;第一任务同步模块接收第一任务同步请求并创建第一同步任务,将第一同步任务发送至第二cpu模块;第一cpu模块为主cpu模块,第二cpu模块为热备份cpu模块;

第二cpu模块的第二业务模块完成任务并发送第二任务同步请求至第二任务同步模块;第二任务同步模块接收第二任务同步请求并创建第二同步任务;

第二cpu模块的第二任务同步模块接收第一同步任务,并判断第二任务同步模块是否创建完成第二同步任务,若是,则对比第一同步任务和第二同步任务的同步数据并得出同步结果;若否,则继续等待;

基于同步结果判断是否执行下一任务。

第一cpu模块通过直连网线将第一同步任务发送至第二cpu模块。

优选地,

基于同步结果判断是否执行下一任务,包括:

第二任务同步模块将同步结果发送至第一任务同步模块;

第一、第二任务同步模块分别将同步结果发送至第一、第二业务模块;

若同步结果为正常,则第一、第二业务模块分别执行下一任务;

若同步结果为异常,则第一、第二业务模块将同步结果发送至仲裁模块;

仲裁模块基于同步结果进行故障处理。

第一同步任务和第二同步任务的同步数据相同,则同步结果为正常;第一同步任务和第二同步任务的同步数据不相同,则同步结果为异常。

优选地,

故障处理为对第一cpu模块执行断电处理或对第二cpu模块执行断电处理。

优选地,

数据同步方法还包括输入数据同步,具体地

接收外部节点的通信数据并判断是否需要应答处理;

若是,则第一、第二cpu模块进行接收应答和输入同步处理;

若否,则第一、第二cpu模块进行输入同步处理。

进一步优选地,

输入同步处理包括:

第一、第二cpu模块分别接收输入数据;

执行设备自身业务处理后的状态数据同步过程,任务为数据输入;

判断同步结果是否正常,若是,则第一、第二业务模块分别执行下一任务;若否,则将同步结果进行提示并发送至仲裁模块;

仲裁模块基于同步结果进行故障处理。

优选地,

数据同步方法还包括输出数据同步,具体地

执行设备自身业务处理后的状态数据同步过程,任务为数据输出;

判断同步结果是否正常,若是,则主cpu模块向外部节点发送数据;若否,则将同步结果进行提示并发送至仲裁模块;

仲裁模块基于同步结果进行故障处理。

优选地,

第一、第二cpu模块上电后,应用软件自启动开始运行,第一、第二业务模块按照预定时间间隔分别调用第一、第二任务同步模块向仲裁模块发送心跳信息。

优选地,

等待时间小于最长等待时间,超时后结束等待,将超时故障发送给仲裁模块并将超时故障状态进行提示。

优选地,

发送时间小于最长发送时间。超时后结束发送,将超时故障发送给仲裁模块并将超时故障状态进行提示。

本发明的有益效果如下:

本发明的基于任务级的双冗余热备份设备的数据同步方法,通过余度之间的通信链路及运行在cpu模块上的任务同步软件模块,实现了两个cpu模块间的任务同步,该方法易于实现,对现有设备的硬件、软件改动量小,可靠性高。

附图说明

下面结合附图对本发明的具体实施方式作进一步详细的说明。

图1示出基于任务级的双冗余热备份设备的数据同步方法流程图。

具体实施方式

为了更清楚地说明本发明,下面结合优选实施例和附图对本发明做进一步的说明。附图中相似的部件以相同的附图标记进行表示。本领域技术人员应当理解,下面所具体描述的内容是说明性的而非限制性的,不应以此限制本发明的保护范围。

本发明的说明书和权利要求书及上述附图中的属于“第一”、“第二”等是用于区别不同的对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一些列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法或设备固有的气体步骤或单元。

本发明提出一种双冗余热备份设备的任务级数据同步方法,适用于地面装备车辆的车载综合控制设备,由于综合控制设备主要执行流程控制及通信功能,不进行算法处理,在输入相同情况下每一过程的执行结果是确定的,所以采取任务同步方式,既可降低数据同步的复杂度,同时也满足综合控制设备的同步功能需求。

本发明中的基于任务级的双冗余热备份设备包括两个完全相同的cpu模块、一个仲裁模块,两个cpu模块通过直连网线实现数据通信完成任务同步功能,cpu模块定时向仲裁模块发送心跳数据及自身运行状态信息,仲裁模块完成对两个cpu模块的心跳检测,接收cpu模块的状态信息,完成故障的处理,实现两个cpu模块的主备切换功能。综合控制设备上电后,默认第一个槽位上的cpu模块为主cpu模块,负责与外部的通讯、控制功能,另一个作为热备份cpu模块,只接收外部的数据,不对外发送信息。

设备工作过程中,两个冗余热备份cpu模块运行相同的软件,需要进行数据同步从而保证彼此状态的一致性和任务同步性。

本发明中,一种基于任务级的双冗余热备份设备包括:第一cpu模块、第二cpu模块和仲裁模块,其中第一cpu模块包括第一业务模块和第一任务同步模块,第二cpu模块包括第二业务模块和第二任务同步模块。将cpu模块上的软件分为业务模块及任务同步模块,业务模块实现单余度时的设备功能,任务同步模块实现两个冗余cpu模块之间的任务数据同步。

一种用于上述设备的数据同步方法,将业务模块按功能分成多个任务来执行,当任务执行结束后调用任务同步模块进行一次数据同步操作,同时任务同步模块实施心跳状态的发送处理。该方法包括设备自身业务处理后的状态数据同步、接收外部节点发送数据输入数据同步和发送给外部节点的输出数据同步三部分,其中

设备自身业务处理后的状态数据同步包括:

s1:第一cpu模块的第一业务模块完成一任务并发送第一任务同步请求至第一任务同步模块;第二cpu模块的第二业务模块完成任务并发送第二任务同步请求至第二任务同步模块。

s2:第一任务同步模块接收第一任务同步请求并创建第一同步任务,将第一同步任务发送至第二cpu模块;第二任务同步模块接收第二任务同步请求并创建第二同步任务。

s3:第二cpu模块的第二任务同步模块接收第一同步任务,并判断第二任务同步模块是否创建完成第二同步任务,若是,则对比第一同步任务和第二同步任务的同步数据并得出同步结果;若否,则继续等待。

设定等待时间小于最长等待时间,超时后结束等待,将超时故障发送给仲裁模块并将超时故障状态进行提示。

s4:基于同步结果判断是否执行下一任务。

s5:第二任务同步模块将同步结果发送至第一任务同步模块。

s6:第一、第二任务同步模块分别将同步结果发送至第一、第二业务模块,若同步结果为正常,则第一、第二业务模块分别执行下一任务;若同步结果为异常,则第一、第二业务模块将同步结果发送至仲裁模块。

s7:仲裁模块基于同步结果进行故障处理。

在上述过程中,第一cpu模块为主cpu模块,第二cpu模块为热备份cpu模块。第一cpu模块通过直连网线将第一同步任务发送至第二cpu模块。第一同步任务和第二同步任务的同步数据相同,则同步结果为正常;第一同步任务和第二同步任务的同步数据不相同,则同步结果为异常。

第一、第二cpu模块上电后,应用软件自启动开始运行,第一、第二业务模块按照预定时间间隔分别调用第一、第二任务同步模块向仲裁模块发送心跳信息。

输入数据同步包括:

s8:接收外部节点的通信数据并判断是否需要应答处理,若是,则第一、第二cpu模块进行接收应答和输入同步处理;若否,则第一、第二cpu模块进行输入同步处理。

s9:第一、第二cpu模块分别接收输入数据。

s10:执行设备自身业务处理后的状态数据同步过程,任务为数据输入。

s11:判断同步结果是否正常,若是,则第一、第二业务模块分别执行下一任务;若否,则将同步结果进行提示并发送至仲裁模块。

s12:仲裁模块基于同步结果进行故障处理。

输出数据同步包括:

s13:执行设备自身业务处理后的状态数据同步过程,任务为数据输出。

s14:判断同步结果是否正常,若是,则主cpu模块向外部节点发送数据;若否,则将同步结果进行提示并发送至仲裁模块。

s15:仲裁模块基于同步结果进行故障处理。

上述各发送过程中,设定发送时间小于最长发送时间。超时后结束发送,将超时故障发送给仲裁模块并将超时故障状态进行提示。

应注意的是,初始状态下第一cpu模块为主cpu模块,第二cpu模块为热备份cpu模块。若仲裁模块判定主cpu模块发生故障,对第一cpu模块执行断电处理;若仲裁模块判定热备份cpu模块发生故障,对第二cpu模块执行断电处理。

下面结合具体示例进行详细说明

如图1所示,本示例中,第一cpu模块为cpu-a,包括其业务模块和任务同步模块第二cpu模块为cpu-b,包括其业务模块和任务同步模块。cpu-a和cpu-b为两个完全相同的cpu模块。

(1)自身业务状态数据同步

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

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

b)如果cpu-a完成任务1,则发送任务同步请求至其任务同步模块,该任务同步模块接收上述任务同步请求并创建同步任务,完成任务同步过程;

c)cpu-a的任务同步模块通过直连网线向另一个余度的cpu-b发送同步数据;

d)cpu-b接收到同步数据后,交给其任务同步模块,该任务同步模块等待cpu-b的任务模块的任务同步请求,接收到业务模块发送的同步请求后,同样创建一个同步任务;

应注意的是,cpu-b的同步请求可以在cpu-b接收到同步数据之前,也可以在cpu-b接收到同步数据之后。

e)cpu-b的任务同步模块将两个cpu模块的同步任务数据进行比对,将同步结果发送给cpu-a的任务同步模块,

f)两个cpu模块的任务同步模块将同步结果发给业务模块,然后结束同步任务;

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

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

(2)输入数据同步处理

设备接收外部节点的通信数据,并判断是否需要应答处理:如果无需应答处理,则两个cpu模块接收到数据后进行输入同步处理;如果有应答机制,则两个cpu模块接收到数据后先进行接收应答然后进行输入同步处理。

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

(3)输出数据同步处理

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

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

本领域普通技术人员可以意识到,结合本文中所公开的各示例的模块及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

尽管为使解释简单化将上述方法图示并描述为一系列动作,但是应理解并体会这些方法不受动作的次序所限,因为根据一个或多个实施例,一些动作可按不同次序发生,和/或与来自本文中图示和描述或本文中未图示和描述但本领域技术人员可以理解的其他动作并发地发生。

显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定,对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动,这里无法对所有的实施方式予以穷举,凡是属于本发明的技术方案所引伸出的显而易见的变化或变动仍处于本发明的保护范围之列。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1