一种分布式系统拓扑维护方法和装置制造方法
【专利摘要】本申请公开了一种分布式系统拓扑维护方法,该方法包括:在中继报文周期到时,确定当前中继报文周期内接收到过源设备标识和目的设备标识与该第一中继信息表项匹配的报文时,将与该第一中继信息表项绑定的第一监控心跳报文复制发送,其中,所述中继报文周期小于所述中继信息表项的老化时间。基于同样的发明构思,本申请还提出一种分布式系统拓扑维护装置,能够在不增加管理链路开销的情况下,增强分布式系统的稳定性。
【专利说明】一种分布式系统拓扑维护方法和装置
【技术领域】
[0001]本申请涉及通信【技术领域】,特别涉及一种分布式系统拓扑维护方法和装置。
【背景技术】
[0002]分布式系统各设备之间通过各种媒介互连,这种物理通道可以是外设部件互连标准(Peripheral Component Interconnect, PCI) / 快速外设组件互连标准(PCI Express,PCIE)/SPI4等物理总线,也可是以太网/串口等接口,甚至可以是无线接口。但有一个共同点,都是通过互连通道交互控制数据,在逻辑上形成一台虚拟设备。
[0003]分布式系统中各设备具有一定的独立性,绝大多数布式系统都是通过源设备和目标设备间发送心跳报文来维护相互之间的关系。以分布式系统中各设备源设备和目标设备间发送维护心跳报文来维护系统拓扑为例,当目标设备在一段时间内没有收到源设备的维护心跳报文时,目标设备就会认为相关成员离开了。在现实运行中,心跳报文可能被丢失,比如分布式系统中各成员设备之间的管理通道,因为大数据量冲击导致心跳报文丢失,如果维护心跳报文丢失到一定程度,可能导致相关成员设备被误认为离开了,从面影响整个分布式系统的稳定性。
【发明内容】
[0004]有鉴于此,本申请提供一种分布式系统拓扑维护方法和装置,以解决心跳报文丢失,影响分布式系统的稳定性的问题。
[0005]为解决上述技术问题,本申请的技术方案是这样实现的:
[0006]—种分布式系统拓扑维护方法,所述方法包括:
[0007]通过分布式系统连接接口接收到第一监控心跳报文时,确定本地是否已生成与该第一监控心跳报文绑定的第一中继信息表项,如果是,刷新该中继信息表项的老化时间;否贝U,根据该第一监控心跳报文携带的源设备标识和目的设备标识,生成与该第一监控心跳报文绑定的第一中继信息表项,设置老化时间;
[0008]并发送接收到的第一监控心跳报文;
[0009]在中继报文周期到时,确定当前中继报文周期内接收到过源设备标识和目的设备标识与该第一中继信息表项匹配的报文时,将与该第一中继信息表项绑定的第一监控心跳报文复制发送,其中,所述中继报文周期小于所述中继信息表项的老化时间。
[0010]一种分布式系统拓扑维护装置,所述装置包括:接收单元、确定单元、生成单元和发送单元;
[0011]所述接收单元,用于接收报文;
[0012]所述确定单元,用于当所述接收单元通过分布式系统连接接口接收到第一监控心跳报文时,确定本地是否已生成与该第一监控心跳报文绑定的第一中继信息表项;在中继报文周期到时,确定当前中继报文周期内是否接收到过源设备标识和目的设备标识与该第一中继信息表项匹配的报文;,其中,所述中继报文周期小于所述中继信息表项的老化时间;
[0013]所述生成单元,用于当所述确定单元确定本地已生成与该第一监控心跳报文绑定的第一中继信息表项时,刷新该中继信息表项的老化时间;当所述确定单元确定本地未生成与该第一监控心跳报文绑定的第一中继信息表项时,根据该第一监控心跳报文携带的源设备标识和目的设备标识,生成与该第一监控心跳报文绑定的第一中继信息表项,设置老化时间;
[0014]所述发送单元,用于发送所述接收单元接收到的第一监控心跳报文;当所述确定单元确定当前中继报文周期内接收到过源设备标识和目的设备标识与该第一中继信息表项匹配的报文时,将所述生成单元中与该第一中继信息表项绑定的第一监控心跳报文复制发送。
[0015]综上所述,本申请通过分布式系统中的任一设备通过分布式系统连接接口接收到第一监控心跳报文时,根据第一监控心跳报文生成更新第一中继信息表项,并在中继报文周期到时,且在当前中继报文周期内已接收到过与该第一中继信息表项匹配的报文时,将与该第一中继信息表项绑定的第一监控心跳报文复制发送,从而能够在不增加管理链路开销的情况下,增强分布式系统的稳定性。
【专利附图】
【附图说明】
[0016]图1为本申请实施例中中继信息表项生成更新流程示意图;
[0017]图2为本申请实施例中分布式系统拓扑维护方法流程示意图;
[0018]图3为本申请具体实施例中应用于上述技术的装置的结构示意图。
【具体实施方式】
[0019]为使本申请的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本申请所述方案作进一步地详细说明。
[0020]在分布式系统中存在多种类型的心跳报文,如用于设备管理的心跳报文、系统拓扑维护心跳报文等。各种心跳报文都可以使用本申请的提供的维护方法进行拓扑维护,如果在一个分布式系统中多类心跳报文都使用本申请的实现方式维护时,根据各心跳报文的类型进行区分即可。本申请下文将上述每一种心跳报文统称为监控心跳报文。下面以某一种心跳报文为例,为了描述方便,称之为第一监控心跳报文。
[0021]参见图1,图1为本申请实施例中中继信息表项生成更新流程示意图。具体步骤为:
[0022]步骤101,分布式系统中的任一设备通过分布式系统连接接口接收到第一监控心跳报文。
[0023]分布式系统连接接口是指分布式系统设备之间相互连接的接口。
[0024]步骤102,该设备确定本地是否已生成与该第一监控心跳报文绑定的第一中继信息表项,如果是,执行步骤103 ;否则,执行步骤104。
[0025]步骤103,该设备刷新该中继信息表项的老化时间,执行步骤105。
[0026]步骤104,该设备根据该第一监控心跳报文携带的源设备标识和目的设备标识,生成与该第一监控心跳报文绑定的第一中继信息表项,设置老化时间。
[0027]在生成第一中继信息表项时,绑定存储该第一监控心跳报文,以便后续需要中继该第一监控心跳报文时,复制存储的该第一监控心跳报文进行中继。
[0028]步骤105,该设备发送接收到的第一监控心跳报文。
[0029]在一个例子中,设备通过分布式系统连接接口接收到的第一监控心跳报文,并将该第一监控心跳报文发送给分发单元处理,分发单元确定该报文的目的地址是否为本设备,如果是,上送该设备的主控单元进行处理;否则,通过本设备的另外一个分布式系统连接接口转发给分布式系统中的其它设备。
[0030]本实施例在具体实现时,可以直接使用接收到的第一监控心跳报文进行图1中确定本地是否已生成与该第一监控心跳报文绑定的第一中继信息表项的处理。也可以在该设备通过分布式系统连接接口接收到第一监控心跳报文时,复制所述第一监控心跳报文;使用复制的第一监控心跳报文确定本地是否已生成与该第一监控心跳报文绑定的第一中继信息表项。
[0031]如果使用复制后的第一监控心跳报文确定本地是否已生成与该第一监控心跳报文绑定的第一中继信息表项,则当确定未生成第一中继信息表项时,生成该第一中继信息表项,并将该复制的第一监控心跳报文与该第一中继信息表项绑定存储;当确定已生成第一中继信息表项,则在刷新该第一中继信息表项后,将该复制的第一监控心跳报文丢弃。
[0032]上文描述了在通过分布式系统连接接口接收到第一监控心跳报文时的处理过程,下文详细描述通过分布式系统连接接口接收到与第一中继信息表项匹配的报文,即报文携带的源设备标识和目的设备标识与该第一中继信息表项匹配的报文时的处理过程:
[0033]该设备接收到携带的源设备标识和目的设备标识与该第一中继信息表项匹配的数据报文时,记录并更新该第一中继信息表项对应的报文数目。
[0034]在具体实现时,可以在一个中继报文周期开始时,记录接收到与该第一中继信息表项对应报文的报文数目,如从O开始,接收到一条对应的报文时,将报文数目加I ;当该中继报文周期结束后,下一个中继报文周期开始时,将报文数据清零,重新开始记数;当然,也可以不清零,每个中继报文周期累计报文数目,以当前中继报文周期对应的报文数目,与前一中继报文周期对应的报文数目的差值,确定当前中继报文周期内是否接收到过该第一中继信息表项对应的报文。
[0035]在接收到第一监控心跳报文时,可以更新报文数目,也可以不更新。在具体实现时,在接收到第一监控心跳报文时,可以对该第一中继信息表项进行标识,以使当前中继报文周期到时,不再中继该第一监控心跳报文。
[0036]当该设备接收到与第一中继信息表项匹配的数据报文为定制刷新报文时,刷新该第一中继信息表项的老化时间。
[0037]本申请中的定制刷新报文可以根据实际需要设置,如一些协议报文(轻量级进程间通信(LIPC)报文、跨板调用报文)等。
[0038]本申请设置的定制刷新报文会用于中继信息表项的老化时间的刷新,也会用于更新该第一中继信息表项对应的报文数目。
[0039]当该第一中继信息表项的老化时间到时,该设备删除该第一中继信息表项。
[0040]根据上文描述,本申请具体实施例中第一中继信息表项的内容可以包含如表I中的内容。
[0041]
目的设备I源设备I老化I报文I置位心跳报文
标识标识时间数目标识
~?~ο 37~0 ToTool? 第一监控心跳报文
[0042]表I
[0043]表I中,以一个堆叠设备有多个槽位为例,目的设备标识和源设备标识均有设备号和槽位号组成;当该堆叠系统中各设备均只有一个槽位时,源设备标识和目的设备标识也可以只使用设备号表示。第一监控心跳报文,在具体实现时,可以存储在该表项中,也可以与该第一中继信息表项绑定存储,通过绑定信息查找。
[0044]表I中的置位标识用于标识当前中继报文周期内是否接收到过第一监控心跳报文,如果接收到,用“ I ”标识,若未接收到过第一监控心跳报文,用“O”标识。
[0045]表I中报文数目和置位标识为本申请实施例中给出的确定是否接收到过与该第一中继信息表项匹配的报文,是否接收到过第一监控心跳报文的一种实现方式,但不限于此种实现方式。
[0046]下面结合附图,详细描述中继第一监控心跳报文的过程:
[0047]参见图2,图2为本申请实施例中分布式系统拓扑维护方法流程示意图。具体步骤为:
[0048]步骤201,中继报文周期到时。
[0049]中继报文周期小于所述中继信息表项的老化时间。
[0050]步骤202,设备确定当前中继报文周期内是否接收到过源设备标识和目的设备标识与第一中继信息表项匹配的报文,如果是,执行步骤203 ;否则,执行步骤205。
[0051]本步骤中确定是否接收到过源设备标识和目的设备标识与第一中继信息表项匹配的报文,包括:
[0052]在当前中继报文周期内,通过第一中继信息表项对应的报文数目是否变化,确定是否接收到过源设备标识和目的设备标识与该第一中继信息表项匹配的报文,如果报文数目变化,则确定接收到过源设备标识和目的设备标识与第一中继信息表项匹配的报文;否贝U,确定未接收到过源设备标识和目的设备标识与第一中继信息表项匹配的报文。
[0053]步骤203,该设备确定当前中继报文周期内是否接收到过该第一监控心跳报文,如果是,执行步骤205 ;否则,执行步骤204。
[0054]本步骤的判断实现为了减少第一监控心跳报文的额外中继,如果在当前中继报文周期内接收到过第一监控心跳报文,则执行步骤205 ;否则,执行步骤204。
[0055]在具体实现时,当接收到该第一监控心跳报文时,在第一中继信息表项中置位标识已接收到过第一监控心跳报文,后续即可通过第一中继信息表项中是否置位确定当前中继报文周期内是否接收到过第一监控心跳报文。
[0056]步骤204,该设备将与该第一中继信息表项绑定的第一监控心跳报文复制发送,结束本流程。
[0057]步骤205,该设备不发送与该第一中继信息表项绑定的第一监控心跳报文。
[0058]具体实现时,避免频繁中继第一监控心跳报文,可以在配置中继报文周期时,要略大于系统中发送心跳报文的时间。
[0059]基于同样的发明构思,本申请还提出一种分布式系统拓扑维护装置。参见图3,图3为本申请具体实施例中应用于上述技术的装置的结构示意图。该装置包括:接收单元301、确定单元302、生成单元303和发送单元304 ;
[0060]接收单元301,用于接收报文;
[0061]确定单元302,用于当接收单元301通过分布式系统连接接口接收到第一监控心跳报文时,确定本地是否已生成与该第一监控心跳报文绑定的第一中继信息表项;在中继报文周期到时,确定当前中继报文周期内是否接收到过源设备标识和目的设备标识与该第一中继信息表项匹配的报文;其中,所述中继报文周期小于所述中继信息表项的老化时间;
[0062]生成单元303,用于当确定单元302确定本地已生成与该第一监控心跳报文绑定的第一中继信息表项时,刷新该中继信息表项的老化时间;当确定单元302确定本地未生成与该第一监控心跳报文绑定的第一中继信息表项时,根据该第一监控心跳报文携带的源设备标识和目的设备标识,生成与该第一监控心跳报文绑定的第一中继信息表项,设置老化时间;
[0063]发送单元304,用于发送接收单元301接收到的第一监控心跳报文;当确定单元302确定当前中继报文周期内接收到过源设备标识和目的设备标识与该第一中继信息表项匹配的报文时,将生成单元303中与该第一中继信息表项绑定的第一监控心跳报文复制发送。
[0064]较佳地,
[0065]确定单元302,进一步用于当确定当前中继报文周期内接收到过源设备标识和目的设备标识与该第一中继信息表项匹配的报文时,确定当前中继报文周期内是否接收到过该第一监控心跳报文;如果是,不触发发送单元304复制发送与该第一中继信息表项绑定的第一监控心跳报文;否则,触发发送单元304将与该第一中继信息表项绑定的第一监控心跳报文复制发送。
[0066]较佳地,
[0067]生成单元303,进一步用于当接收单元301接收到携带的源设备标识和目的设备标识与该第一中继信息表项匹配的数据报文时,记录并更新该第一中继信息表项对应的报文数目;
[0068]确定单元302,具体用于在当前中继报文周期内,该第一中继信息表项对应的报文数目变化时,确定接收到过源设备标识和目的设备标识与该第一中继信息表项匹配的报文。
[0069]较佳地,
[0070]生成单元303,进一步用于当所述数据报文为定制刷新报文时,刷新该第一中继信息表项的老化时间。
[0071]较佳地,
[0072]生成单元303,进一步用于当该第一中继信息表项的老化时间到时,删除该第一中继信息表项。
[0073]较佳地,
[0074]确定单元302,进一步用于当接收单元301通过分布式系统连接接口接收到第一监控心跳报文时,复制所述第一监控心跳报文;确定本地是否已生成与该第一监控心跳报文绑定的第一中继信息表项具体包括:使用复制的第一监控心跳报文确定本地是否已生成与该第一监控心跳报文绑定的第一中继信息表项。
[0075]上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元,也可以进一步拆分成多个子单兀。
[0076]综上所述,本申请通过分布式系统中的任一设备通过分布式系统连接接口接收到第一监控心跳报文时,根据第一监控心跳报文生成更新第一中继信息表项,并在中继报文周期到时,且在当前中继报文周期内已接收到过与该第一中继信息表项匹配的报文时,将与该第一中继信息表项绑定的第一监控心跳报文复制发送,从而能够在不增加管理链路开销的情况下,增强分布式系统的稳定性。
[0077]本申请提供的技术方案具有广泛适用性,只要在分布式系统链路中传递的心跳报文的分布式系统都可以使用,不增加物理链路的开销,也支持主备倒换、热插入或拔出设备系统。由于自动学习心跳报文转发目标,独立于平台软件,不增加平台软件的复杂性,可实现性强。逻辑设计简单。
[0078]本申请在具体实现时,可以如上文装置中的软件实现,也可以集成在FPGA中,或集成在多核CPU中的一个核中实现,具有绝对独立性。
[0079]以上所述,仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
【权利要求】
1.一种分布式系统拓扑维护方法,其特征在于,所述方法包括: 通过分布式系统连接接口接收到第一监控心跳报文时,确定本地是否已生成与该第一监控心跳报文绑定的第一中继信息表项,如果是,刷新该中继信息表项的老化时间;否则,根据该第一监控心跳报文携带的源设备标识和目的设备标识,生成与该第一监控心跳报文绑定的第一中继信息表项,设置老化时间; 并发送接收到的第一监控心跳报文; 在中继报文周期到时,确定当前中继报文周期内接收到过源设备标识和目的设备标识与该第一中继信息表项匹配的报文时,将与该第一中继信息表项绑定的第一监控心跳报文复制发送,其中,所述中继报文周期小于所述中继信息表项的老化时间。
2.根据权利要求1所述的方法,其特征在于,所述确定当前中继报文周期内接收到过源设备标识和目的设备标识与该第一中继信息表项匹配的报文之后,所述将与该第一中继信息表项绑定的第一监控心跳报文复制发送之前,所述方法进一步包括: 确定当前中继报文周期内是否接收到过该第一监控心跳报文,如果是,不发送与该第一中继信息表项绑定的第一监控心跳报文;否则,执行所述将与该第一中继信息表项绑定的第一监控心跳报文复制发送步骤。
3.根据权利要求1所述的方法,其特征在于,所述方法进一步包括: 接收到携带的源设备标识和目的设备标识与该第一中继信息表项匹配的数据报文时,记录并更新该第一中继信息表项对应的报文数目; 所述在中继报文周期到时,确定当前中继报文周期内接收到过源设备标识和目的设备标识与该第一中继信息表项匹配的报文,包括: 在当前中继报文周期内,该第一中继信息表项对应的报文数目变化时,确定接收到过源设备标识和目的设备标识与该第一中继信息表项匹配的报文。
4.根据权利要求3所述的方法,其特征在于,当所述数据报文为定制刷新报文时,所述方法进一步包括: 刷新该第一中继信息表项的老化时间。
5.根据权利要求4所述的方法,其特征在于,所述方法进一步包括: 当该第一中继信息表项的老化时间到时,删除该第一中继信息表项。
6.根据权利要求1-5任意一项所述的方法,其特征在于,所述通过分布式系统连接接口接收到第一监控心跳报文时,所述方法进一步包括: 复制所述第一监控心跳报文; 所述确定本地是否已生成与该第一监控心跳报文绑定的第一中继信息表项具体包括:使用复制的第一监控心跳报文确定本地是否已生成与该第一监控心跳报文绑定的第一中继信息表项。
7.一种分布式系统拓扑维护装置,其特征在于,所述装置包括:接收单元、确定单元、生成单元和发送单元; 所述接收单元,用于接收报文; 所述确定单元,用于当所述接收单元通过分布式系统连接接口接收到第一监控心跳报文时,确定本地是否已生成与该第一监控心跳报文绑定的第一中继信息表项;在中继报文周期到时,确定当前中继报文周期内是否接收到过源设备标识和目的设备标识与该第一中继信息表项匹配的报文;其中,所述中继报文周期小于所述中继信息表项的老化时间; 所述生成单元,用于当所述确定单元确定本地已生成与该第一监控心跳报文绑定的第一中继信息表项时,刷新该中继信息表项的老化时间;当所述确定单元确定本地未生成与该第一监控心跳报文绑定的第一中继信息表项时,根据该第一监控心跳报文携带的源设备标识和目的设备标识,生成与该第一监控心跳报文绑定的第一中继信息表项,设置老化时间; 所述发送单元,用于发送所述接收单元接收到的第一监控心跳报文;当所述确定单元确定当前中继报文周期内接收到过源设备标识和目的设备标识与该第一中继信息表项匹配的报文时,将所述生成单元中与该第一中继信息表项绑定的第一监控心跳报文复制发送。
8.根据权利要求7所述的装置,其特征在于, 所述确定单元,进一步用于当确定当前中继报文周期内接收到过源设备标识和目的设备标识与该第一中继信息表项匹配的报文时,确定当前中继报文周期内是否接收到过该第一监控心跳报文;如果是,不触发所述发送单元复制发送与该第一中继信息表项绑定的第一监控心跳报文;否则,触发所述发送单元将与该第一中继信息表项绑定的第一监控心跳报文复制发送。
9.根据权利要求7所述的装置,其特征在于, 所述生成单元,进一步用于当所述接收单元接收到携带的源设备标识和目的设备标识与该第一中继信息表项匹配的数据报文时,记录并更新该第一中继信息表项对应的报文数目; 所述确定单元,具体用于在当前中继报文周期内,该第一中继信息表项对应的报文数目变化时,确定接收到过源设备标识和目的设备标识与该第一中继信息表项匹配的报文。
10.根据权利要求9所述的装置,其特征在于, 所述生成单元,进一步用于当所述数据报文为定制刷新报文时,刷新该第一中继信息表项的老化时间。
11.根据权利要求10所述的装置,其特征在于, 所述生成单元,进一步用于当该第一中继信息表项的老化时间到时,删除该第一中继信息表项。
12.根据权利要求7-11任意一项所述的装置,其特征在于, 所述确定单元,进一步用于当所述接收单元通过分布式系统连接接口接收到第一监控心跳报文时,复制所述第一监控心跳报文;确定本地是否已生成与该第一监控心跳报文绑定的第一中继信息表项具体包括:使用复制的第一监控心跳报文确定本地是否已生成与该第一监控心跳报文绑定的第一中继信息表项。
【文档编号】H04L12/24GK104135393SQ201410408891
【公开日】2014年11月5日 申请日期:2014年8月19日 优先权日:2014年8月19日
【发明者】郭道荣 申请人:杭州华三通信技术有限公司