一种设备异常检测方法和设备的制作方法

文档序号:7808687阅读:653来源:国知局
一种设备异常检测方法和设备的制作方法
【专利摘要】本发明实施例公开了一种设备异常检测方法和设备,通过应用本发明实施例所提出的技术方案,把心跳报文的收发从板卡的CPU上独立出来,并与其他故障检测机制(例如:看门狗逻辑)相结合,板卡的CPU无需参与心跳报文的收发和处理,从而,在板卡因为其他故障检测机制触发重启的过程中,仍可以继续进行心跳报文的发送,避免因为心跳报文未能正常发送而导致板卡的二次重启,基于这样的处理,可以在不降低异常检测时间的前提下,解决分布式网络设备板卡异常恢复重启两次的问题,提高分布式网络设备的可靠性和性能。
【专利说明】一种设备异常检测方法和设备

【技术领域】
[0001]本发明涉及通信【技术领域】,特别涉及一种设备异常检测方法和设备。

【背景技术】
[0002]网络设备具有高可靠性、远程可维护性、在线诊断和自动恢复的特点,所以网络设备需要对系统异常(包括死循环、CPU访问不存在的地址,CPU运行指令被改写,多核CPU死锁等)进行监控。网络设备主要有两种异常监控机制,一种是板卡内部的看门狗检测;一种是分布式网络设备不同板卡间的心跳检测。
[0003]分布式网络设备上每块板卡都有看门狗装置,看门狗装置可能是一个独立的硬件芯片,也可能是CPLD (Complex Programmable Logic Device,复杂可编程逻辑器件)或FPGA(Field 一 Programmable Gate Array,现场可编程门阵列)内的一块逻辑实现,也可能是SOC (System on Chip,系统级芯片)CPU片内硬件看门狗模块。在板卡CPU发生异常的情况下,CPU无法清狗会导致板卡看门狗超时触发板卡重启。看门狗是网络设备最主要的异常监控手段,但是对于CPU软件在死循环中主动清看门狗的情况,则无法起到监控作用。
[0004]分布式网络设备为了解决看门狗的局限,主控板会定期发送心跳报文来监控接口板运行情况。主控板发送心跳报文给特定接口板,主控板在规定时间内收到特定接口板的确认心跳报文表示该接口板运行正常,主控板在规定时间内没有收到特定接口板发送的确认心跳报文则表示该接口板运行异常。主控板在判定特定接口板异常后,会通过硬件复位管脚重启特定接口板。双主控之间,也可以采用心跳检测的方法进行异常监控,如图1所示,为现有技术中的分布式设备心跳监控机制示意图。需要说明的是,现有心跳实现方案,主控板监控接口板的心跳,主控板向接口板发送心跳报文不是必须的,但接口板向主控板发送心跳报文是必须的。
[0005]分布式网络设备在运行过程中,普遍采用看门狗和心跳检测相结合的异常监控机制,其中主控板和接口板之间心跳检测,常规实现是主控板的CPU和接口板的CPU之间,通过以太网总线互连,主用主控板CPU定期向备用主控板CPU和接口板CPU发送心跳报文,收到心跳报文后备用主控板CPU和接口板CPU需要在规定时间内发送心跳应答报文;其中看门狗监控,常规实现每块板卡都有独立于板卡CPU的看门狗装置,用CPLD或FPGA内逻辑芯片实现。如图2所示,为现有技术中的分布式网络设备现有异常监控方案的示意图。
[0006]在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
[0007]现有两种监控机制相结合的方案提高了分布式网络设备的可靠性,但由于两种监控机制都是相互独立运行在同一个分布式网络设备中,在某些情况下会引入问题。
[0008]例如,在分布式网络设备中,假如接口板发生异常(包括CPU死循环等),由于接口板内部采用看门狗异常检测机制会导致看门狗超时使接口板重启,但是在接口板重启过程中因为无法应答主控板心跳报文,主控板一段时间内收不到接口板应答心跳报文导致主控板心跳超时,在接口板重启过程中,主控板通过硬件复位管脚再次重启接口板。
[0009]这样的二次重启导致接口板业务恢复变慢,并且,使异常板卡最终重启原因和实际异常重启原因不一致,增加了定位和解决问题的难度。


【发明内容】

[0010]本发明实施例提供一种设备异常检测方法和设备,解决现有的心跳检测和看门狗检测相结合的故障检测技术会导致板卡二次重启的问题。
[0011]为达到上述目的,本发明实施例一方面提供了一种设备异常检测方法,应用于包括多个板卡的网络系统中,所述板卡被配置为主控板或接口板,所述各板卡包括CPU、心跳检测装置和故障检测装置,所述方法包括:
[0012]当所述接口板启动时,所述接口板的心跳检测装置接收所述接口板的CPU的指示进入CPU控制心跳模式;
[0013]在所述CPU控制心跳模式下,当所述接口板的心跳检测装置检测到所述接口板的CPU完成了预定操作时,所述接口板的心跳检测装置向所述主控板的心跳检测装置发送心跳报文;
[0014]当所述接口板的故障检测装置判断所述CPU发生故障时,所述接口板的心跳检测装置接收所述接口板的故障检测装置的指示进入独立心跳模式;
[0015]在所述独立心跳模式下,所述接口板的心跳检测装置按照预设的心跳检测周期自动向所述主控板的心跳检测装置发送心跳报文。
[0016]另一方面,本发明实施例还提供了一种板卡,应用于包括多个板卡的网络系统中,所述板卡被配置为主控板或接口板,所述各板卡包括CPU、心跳检测装置和故障检测装置:
[0017]当所述板卡被设置为接口板时,
[0018]所述CPU,用于当所述接口板启动时,向所述心跳检测装置发送进入CPU控制心跳模式的指示,并通过执行预定操作触发所述心跳检测装置向所述主控板的心跳检测装置发送心跳报文;
[0019]所述故障检测装置,用于检测所述板卡是否出现故障,并在确定出现故障需要对所述板卡进行重新启动时,向所述心跳检测装置发送进入独立心跳模式的指示;
[0020]所述心跳检测装置,用于在所述CPU控制心跳模式下,当检测到所述CPU完成了预定操作时,向所述主控板的心跳检测装置发送心跳报文,或在独立心跳模式下,按照预设的心跳检测周期自动向所述主控板的心跳检测装置发送心跳报文。
[0021]与现有技术相比,本发明实施例所提出的技术方案具有以下优点:
[0022]通过应用本发明实施例所提出的技术方案,把心跳报文的收发从板卡的CPU上独立出来,并与其他故障检测机制(例如:看门狗逻辑)相结合,板卡的CPU无需参与心跳报文的收发和处理,从而,在板卡因为其他故障检测机制触发重启的过程中,仍可以继续进行心跳报文的发送,避免因为心跳报文未能正常发送而导致板卡的二次重启,基于这样的处理,可以在不降低异常检测时间的前提下,解决分布式网络设备板卡异常恢复重启两次的问题,提高分布式网络设备的可靠性和性能。

【专利附图】

【附图说明】
[0023]图1为现有技术中的分布式设备心跳监控机制示意图;
[0024]图2为现有技术中的分布式网络设备现有异常监控方案的示意图;
[0025]图3为本发明实施例所提出的一种设备异常检测方法的流程示意图;
[0026]图4为本发明实施例所提出的一种主控板上进行心跳检测监控的流程示意图;
[0027]图5为本发明实施例所提出的一种心跳检测监控的流程示意图;
[0028]图6为本发明实施例所提出的一种看门狗装置的处理流程;
[0029]图7为本发明实施例所提出的网络结构示意图;
[0030]图8为本发明实施例所提出的一种具体的实施场景中的心跳检测装置和看门狗装置(故障检测装置)的结构示意图;
[0031]图9为本发明实施例所提出的另一种具体的实施场景中的心跳检测装置和看门狗装置(故障检测装置)合并后的物理实体的结构示意图;
[0032]图10为本发明实施例所提出的一种板卡的结构示意图。

【具体实施方式】
[0033]如【背景技术】所述,在现有的看门狗和心跳检测相结合的异常监控机制下,由于两种监控方式彼此独立,可能会分别触发异常回复处理,即在出现异常接口板时,会存在需要对异常接口板反复重启两次才能恢复业务的情况,可能会导致出现以下问题:
[0034]1、异常接口板的两次重启会导致接口板业务恢复变慢。
[0035]2、异常接口板的两次重启会导致最终重启原因和实际异常重启原因不一致,增加了定位和解决问题的难度。
[0036]不仅如此,在现有心跳检测方案中,通过板卡的CPU发送以太心跳报文的处理方式占用了部分CPU资源,减少了 CPU可用于处理其他业务的时间,影响路由器性能。
[0037]虽然现有技术存在上述不足,但是,如果关闭分布式网络设备的板卡心跳检测机制,又会导致板卡异常(挂死并且能正常喂狗)时分布式网络设备可能无法自我恢复问题,影响设备的健壮性和可靠性。
[0038]另一方面,如果延长分布式网络设备板卡心跳超时时间,设置心跳超时时间大于板卡重启时间,虽然可以规避异常接口板重启两次问题,但接口板重启时间可能受业务流量、主控板CPU占用率、主控板存储介质访问速度(接口板重启时一般都是从主控板重新加载版本)等多方面因素影响,是一个变化值,只能把心跳超时时间设置的超长,但超长的心跳超时时间就会加到板卡异常检测时间,导致接口板异常后无法快速恢复。
[0039]综上所述,现有的技术方案中,没有能够妥善解决上述缺陷的处理方案。
[0040]为了解决这样的问题,本发明提出了一种设备异常检测方法,把心跳报文的收发从板卡的CPU上独立出来,并与其他故障检测机制(例如:看门狗逻辑)相结合,板卡的CPU无需参与心跳报文的收发和处理,从而,在板卡因为其他故障检测机制触发重启的过程中,仍可以继续进行心跳报文的发送,避免因为心跳报文未能正常发送而导致板卡的二次重启的问题。
[0041]如图3所示,为本发明实施例所提出的一种设备异常检测方法的流程示意图,该方法应用于包括多个板卡的网络系统中,系统中的板卡被配置为主控板或接口板,各板卡包括CPU、心跳检测装置和故障检测装置,该方法具体包括以下步骤:
[0042]步骤S301、当所述接口板启动时,所述接口板的心跳检测装置接收所述接口板的CPU的指示进入CPU控制心跳模式。
[0043]需要说明的是,本步骤所指的接口板启动,包括板卡的初始化启动,也包括板卡因为主控板指示或者自身的故障检测装置所触发的重新启动,具体启动类型的变化都不会改变接口板在启动后触发CPU控制心跳模式的技术方案,这样的变化并不会影响本发明的保护范围。
[0044]在所述CPU控制心跳模式下,所述接口板的心跳检测装置对所述接口板的CPU是否完成了预定操作进行检测。
[0045]在所述接口板的心跳检测装置没有检测到所述接口板的CPU完成预定操作的情况下,所述接口板的心跳检测装置放弃进行心跳报文的发送,从而,如果所述主控板的心跳检测装置在所述预设的心跳检测周期内没有收到所述接口板的心跳检测装置发送的心跳报文,所述主控板的CPU指示所述接口板进行重新启动,这样的处理满足了心跳检测机制对于板卡异常的监控。
[0046]当然,在接口板根据主控板的指示进行重启之后,本发明实施例所提出的技术方案重新返回步骤S301,执行相应的流程。
[0047]反之,当所述接口板的心跳检测装置检测到所述接口板的CPU完成了预定操作时,执行步骤S302。
[0048]其中,需要说明的是,在具体的应用场景中,所述接口板的心跳检测装置检测到所述接口板的CPU完成了预定操作,具体包括以下两种方式:
[0049]方式一、所述接口板的心跳检测装置检测到所述接口板的CPU对预设的任务程序进行了调度。
[0050]其中,在具体的实施场景中,所述接口板的CPU在正常工作的情况下,按照预设的调度策略对所述预设的任务程序进行调度。
[0051]所述预设的调度策略至少包括,对所述预设的任务程序的调度周期小于或等于所述心跳检测周期。
[0052]方式二、所述接口板的心跳检测装置接收到所述接口板的CPU发送的指示所述CPU状态正常的通知消息。
[0053]其中,在具体的实施场景中,所述接口板的CPU发送的指示所述CPU状态正常的通知消息,具体为所述接口板的CPU根据预设的通知策略所进行的一次性的逻辑接口写操作,所述逻辑接口与所述接口板的心跳检测装置相对应。
[0054]所述预设的通知策略至少包括,所述逻辑接口写操作的执行周期小于或等于所述心跳检测周期。
[0055]在具体的应用场景中,可以根据系统设置,具体选择应用上述的哪种方式,具体方式的变化并不会影响本发明的保护范围。
[0056]步骤S302、所述接口板的心跳检测装置向所述主控板的心跳检测装置发送心跳报文。
[0057]上述的过程不断循环,只要所述接口板的心跳检测装置检测到所述接口板的CPU完成了预定操作,机会触发心跳报文的上报过程,保证了主控板可以通过心跳检测机制对接口板进行故障检测。
[0058]在本发明的技术方案中,除了主控板通过心跳检测机制对接口板进行故障检测以外,还包括接口板自身的故障检测装置对于接口板自身的故障检测机制。
[0059]当所述接口板的故障检测装置判断所述CPU发生故障时,为了对CPU进行故障恢复,需要对所述接口板进行重新启动,同时,执行步骤S303。
[0060]需要进一步说明的是,在具体的应用场景中,所述接口板的故障检测装置对所述接口板进行重新启动,具体可以通过以下方式确定:
[0061]所述接口板的故障检测装置判断在当前的故障检测周期内是否接收到所述接口板的CPU发送的计时清零消息。
[0062]如果接收到,所述接口板的故障检测装置将当前的计时清零,并重新开始新的故障检测周期的计时;
[0063]如果没有接收到,所述接口板的故障检测装置确定所述接口板需要重新启动,触发所述接口板进行重新启动,并向所述接口板的心跳检测装置发送进入独立心跳模式的指
/Jn ο
[0064]其中,在具体的实施场景中,所述接口板的CPU发送的计时清零消息,具体为所述接口板的CPU根据预设的清零策略所进行的一次性的逻辑接口写操作,所述逻辑接口与所述接口板的故障检测装置相对应。
[0065]所述预设的清零策略至少包括,所述逻辑接口写操作的执行周期小于或等于预设的故障检测周期。
[0066]需要进一步指出的是,在具体的应用场景中,所述接口板的故障检测装置,具体为看门狗装置。
[0067]当然,看门狗装置只是故障检测装置的一种具体物理形式,其他能够达到相同技术效果的物理实体同样可以应用于本方案,这样的变化并不会影响本发明的保护范围。
[0068]步骤S303、所述接口板的心跳检测装置接收所述接口板的故障检测装置的指示进入独立心跳模式。
[0069]步骤S304、在所述独立心跳模式下,所述接口板的心跳检测装置按照预设的心跳检测周期自动向所述主控板的心跳检测装置发送心跳报文。
[0070]在接口板重新启动完成之前,步骤S304循环进行,保证心跳报文的正常发送,在接口板重新启动完成之后,返回步骤S301,重新进入CPU控制心跳模式。
[0071 ] 通过上述的步骤S303和步骤S304,所述接口板的心跳检测装置可以在CPU出现故障,进行重启回复的情况下,继续进行心跳报文的正常发送,从而,保证主控板对接口板的心跳检测的正常进行,即在板卡因为故障检测装置的故障检测机制触发重启的过程中,仍可以继续进行心跳报文的发送,避免因为心跳报文未能正常发送而导致板卡的二次重启。
[0072]通过上述流程,接口板上的心跳报文发送机制得以完整实现,而进一步的,当上述的板卡被设置为主控板时,其所实现的心跳报文检测机制则需要通过以下流程来实现,具体包括:
[0073]所述主控板的心跳检测装置判断在当前的心跳检测周期内是否接收到所述接口板的心跳检测装置所发送的心跳报文;
[0074]如果接收到,所述主控板的心跳检测装置将当前的计时清零,并重新开始新的心跳检测周期的计时;
[0075]如果没有接收到,所述主控板的心跳检测装置确定所述接口板需要重新启动,所述主控板的CPU向所述接口板发送指示,触发所述接口板进行重新启动。
[0076]需要指出的是,上述的主控板或接口板中所提及的预设的心跳检测周期等参数,可以预先在板卡中进行配置,当板卡被设置了相应的身份(主控板或接口板)之后,会调用相应的数据进行处理,当然,也可以是在设置了板卡身份后,通过具体的参数配置流程完成的整个分布式网络系统的配置,这样的变化并不会影响本发明的保护范围。
[0077]与现有技术相比,本发明实施例所提出的技术方案具有以下优点:
[0078]通过应用本发明实施例所提出的技术方案,把心跳报文的收发从板卡的CPU上独立出来,并与其他故障检测机制(例如:看门狗逻辑)相结合,板卡的CPU无需参与心跳报文的收发和处理,从而,在板卡因为其他故障检测机制触发重启的过程中,仍可以继续进行心跳报文的发送,避免因为心跳报文未能正常发送而导致板卡的二次重启,基于这样的处理,可以在不降低异常检测时间的前提下,解决分布式网络设备板卡异常恢复重启两次的问题,提高分布式网络设备的可靠性和性能。
[0079]为了进一步阐述本发明的技术思想,现结合具体的应用场景,对本发明的技术方案进行说明。
[0080]首先,对于现有技术的缺陷进行分析,可以知晓,现有分布式网络设备板卡异常恢复重启两次的原因在于:
[0081]板卡上看门狗装置和板卡间心跳检测装置是互相独立的,板卡CPU和板卡实现看门狗的逻辑芯片互连,主控板CPU和接口板CPU通过以太网总线或其它1总线互连;
[0082]板卡看门狗超时触发板卡重启后,导致板卡上CPU暂时失去处理心跳报文的能力,而主控板CPU只能通过心跳报文区分板卡正常状态和板卡异常状态,无法区分板卡异常状态和板卡异常恢复重启状态。
[0083]针对现有分布式网络设备板卡异常恢复重启两次的问题,本发明实施例一种创新的分布式网络设备的异常检测方法及实现装置,该装置即为前述的心跳检测装置,其与故障检测装置和CPU—起部署在一块板卡上,为了方便说明,其中的故障检测装置具体以看门狗装置为例进行描述,这样的情况并不会影响本发明的保护范围。
[0084]具体的,包含上述装置的板卡具有以下特征:
[0085]1、心跳检测装置把心跳报文的收发从板卡的CPU上独立出来,与看门狗装置相结合,从而,使上述板卡同时兼具心跳报文收发检测和看门狗检测双重功能。
[0086]上述的看门狗装置在保留现有看门狗功能的同时,还会触发心跳检测装置切换心跳报文的发送模式。
[0087]在默认情况(初始情况)下,心跳检测装置工作在CPU控制心跳模式下,接收板卡的CPU的指示(操作或命令)进行板间心跳报文的收发,及时反映板卡CPU的状态;而在板卡的看门狗装置超时触发板卡重启后,心跳检测装置自动切换为独立心跳模式,无需板卡CPU的参与,即可独立收发心跳报文;板卡异常恢复的重启结束后,心跳检测装置自动切换回CPU控制心跳模式。
[0088]2、本发明实施例所提出的板卡的CPU完全实现现有板卡CPU收发和处理心跳报文的功能,并且,仅需通过简单命令或操作即可通知心跳检测装置当前板卡状态正常,减轻CPU的心跳报文处理负担,提高CPU处理能力。
[0089]3、在板卡上的看门狗装置触发板卡进行异常恢复重启期间,本发明实施例所提出的心跳检测装置会切换为独立心跳模式,无需板卡的CPU参与,独立收发和处理心跳报文,保证主控板的CPU不会错误的把板卡异常恢复重启状态判断为板卡异常状态。
[0090]4、在板卡的看门狗装置没有超时,但板卡的CPU停止通过预定操作(简单命令或操作)通知心跳检测装置板卡状态正常时,本发明实施例所提出的心跳检测装置会停止收发心跳报文,保证主控板的CPU可以通过心跳报文超时的方式检测到板卡处于异常状态(即板卡CPU陷入死循环中,但又主动清零看门狗装置的异常情况),并通过硬件复位管脚复位异常板卡。
[0091]5、本发明实施例所提出的看门狗装置会在板卡的CPU没有下发清狗命令时,主动计时,当看门狗装置计时超时后,本发明实施例所提出的看门狗装置会触发板卡异常恢复重启,并触发心跳检测装置切换到独立心跳模式。
[0092]6、本发明实施例所提出的板卡可通过板卡逻辑芯片间的一对异步差分总线实现心跳传输,摆脱现有实现方案中板间心跳报文和其它控制报文共用CPU的控制通道(一般是以太总线或PC1-E总线)的局限,而且实现简单的心跳报文传输,无需构造复杂的心跳报文。
[0093]综上所述,基于上述说明,本发明实施例所提出的技术方案的设计思想是,把心跳报文的收发从板卡CPU上独立出来,与看门狗逻辑相结合。板卡CPU无需参与心跳报文的收发和处理,板卡CPU通过简单的一次性读写逻辑接口实现原有复杂的心跳报文收发和处理。
[0094]进一步的,板卡间心跳报文可采用现有复杂以太总线或其它1总线进行传输,也可采用简单一对异步差分总线,在板卡逻辑芯片间进行传输。
[0095]在后续的实施例中,重点描述采用异步差分总线(也称为板间心跳总线)的实现方案。
[0096]在具体的分布式网络系统(或设备,下同,不再重复说明)中,本发明实施例所提出的各板卡上都维护一份心跳超时定时器,当收到特定板卡发送的板卡状态正常报文后,心跳检测装置会清零相应板卡的心跳超时定时器。
[0097]当板卡初始化时,板卡CPU会设置需要监控哪些特定板卡的心跳超时,常规实现是分布式网络系统中的主用主控板监控其他的所有板卡,即分布式网络系统中主用主控板(PU初始化时,会设置本板卡的心跳检测装置需要监控分布式网络系统中所有板卡的心跳超时,分布式网络系统中的其它板卡上的心跳检测装置只负责发送本板卡状态正常的心跳报文,不负责监控其它板卡的心跳超时。
[0098]具体的,如图4所示,为本发明实施例所提出的一种主控板上进行心跳检测监控的流程示意图,具体包括以下步骤:
[0099]步骤S401、分布式网络系统中的主控板启动时,主控板CPU设置本板卡的心跳检测装置需要监控分布式网络系统中所有板卡的心跳超时。
[0100]即为分布式网络系统中所有板卡分别维护一个心跳超时定时器。
[0101]步骤S402、主控板的心跳检测装置监控各板卡所对应的心跳超时定时器是否超时。
[0102]如果没有超时,并且接收到相应板卡发送的心跳报文,则执行步骤S403 ;
[0103]如果超时,则执行步骤S404。
[0104]步骤S403、主控板的心跳检测装置对相应的心跳超时定时器清零,然后返回步骤S402。
[0105]步骤S404、主控板的心跳检测装置通知CPU相应的板卡的心跳定时器超时。
[0106]即如果特定板卡在一定时间内没有发出板卡状态正常报文,则主控板上心跳检测装置就会确定特定板卡心跳定时器超时,并通知CPU。
[0107]步骤S405、主控板的CPU对心跳超时的板卡进行复位。
[0108]主控板的CPU接收到本板卡的心跳检测装置上报的特定板卡心跳超时事件,通过硬件复位管脚主动复位特定板卡。
[0109]进一步的,为了避免CPU控制心跳报文收发所导致的CPU资源被占用的情况,本发明实施例进一步对CPU与心跳报文相关的处理过程进行调整,减少CPU资源的占用,具体说明如下:
[0110]在板卡正常工作时,板卡的CPU会按照一定策略一次性写简单的逻辑接口,通知板卡的心跳检测装置,板卡目前状态正常。在具体的应用场景中,一种可用的策略是板卡的CPU专门有一个心跳监控软件任务,在该软件任务中,板卡的CPU写逻辑接口,触发板卡状态正常的通知。在心跳检测装置收到CPU触发的正常状态通知命令后,心跳检测装置会通过异步差分总线向其它板卡发送表示本板状态正常的心跳报文。其它板卡上的心跳检测装置收到这样的心跳报文,就会对本板卡上相对应的心跳超时定时器进行清零。板卡CPU的心跳监控软件任务如果在规定时间内(与主控板上心跳检测装置中的板卡心跳超时时间,即前述的心跳检测周期相对应)没有被调度,板卡上的心跳检测装置就不会发送板卡状态正常的心跳报文,主控板的心跳检测装置就会判定心跳超时,主控板CPU收到心跳超时事件的通知后,就会复位板卡。
[0111]具体的,如图5所示,为本发明实施例所提出的一种心跳检测监控的流程示意图,具体包括以下步骤:
[0112]步骤S501、接口板启动,接口板的CPU配置心跳检测装置进入CPU控制心跳模式。
[0113]步骤S502、接口板的心跳检测装置判断CPU是否按照调度周期对心跳监控软件任务进行调度。
[0114]如果判断结果为是,则执行步骤S503 ;
[0115]如果判断结果为否,则执彳了步骤S504。
[0116]在本步骤中,接口板的CPU按照调度周期,对心跳监控软件任务进行调度,该心跳监控软件任务与心跳检测装置相对应,对于该任务的调度会使心跳检测装置确认CPU当前状态正常。其中,调度周期小于或等于前述的心跳检测周期。
[0117]这是CPU按照一定策略一次性写简单的逻辑接口的一种具体操作示例,在具体的应用场景中,CPU也可以直接向心跳检测装置发送状态正常的通知消息,相应的发送周期同样小于或等于前述的心跳检测周期,这同样是上述对逻辑接口进行简单写操作的一种具体实例,这样的变化并不会影响本发明的保护范围。
[0118]步骤S503、心跳检测装置向主控板心跳检测装置发送心跳报文,并返回步骤S502。
[0119]步骤S504、心跳检测装置放弃向主控板心跳检测装置发送心跳报文,主控板因为在心跳检测周期内没有收到接口板发送的心跳检测报文,确定该接口板的心跳定时器超时,对该板卡进行复位。
[0120]另一方面,本发明实施例中对于看门狗装置的处理流程进行了一些修改,在其触发板卡重启时,会触发心跳检测装置进入独立心跳模式,以保证心跳报文的正常收发,具体如图6所示,为本发明实施例所提出的一种看门狗装置的处理流程,具体包括以下步骤:
[0121]步骤S601、板卡初始化,使能看门狗装置。
[0122]步骤S602、看门狗装置判断当前是否接收到CPU发送的计时清零消息。
[0123]如果判断结果为是,则对当前的计时进行清零,并返回步骤S602 ;
[0124]如果判断结果为否,则执彳了步骤S603。
[0125]其中,所述接口板的CPU发送的计时清零消息,具体为所述接口板的CPU根据预设的清零策略所进行的一次性的逻辑接口写操作,所述逻辑接口与所述接口板的故障检测装置相对应,所述预设的清零策略至少包括,所述逻辑接口写操作的执行周期小于或等于预设的故障检测周期(即看门狗装置中所设置的计时周期)。
[0126]具体的,板卡CPU可以在软件任务切换间清零看门狗超时定时器。
[0127]步骤S603、看门狗装置判断当前的看门狗计时器是否超时。
[0128]如果判断结果为否,则返回步骤S602 ;
[0129]如果判断结果为是,则执彳了步骤S604。
[0130]步骤S604、看门狗装置指示心跳检测装置进入独立心跳模式,自动进行心跳报文的发送。
[0131]步骤S605、看门狗装置对本板卡进行重启。
[0132]在重启期间,心跳检测装置无需板卡CPU参与,自动发送板卡状态正常心跳报文,保证主控板不会因为心跳检测周期超时而触发板卡的二次重启。
[0133]步骤S606、板卡重启完成后,CPU通知心跳检测装置恢复到CPU控制心跳模式。
[0134]基于上述说明,可以看出,本发明实施例所提出的技术方案需要分别在分布式网络设备的主控板和接口板上进行部署,这样的方案可以用独立的逻辑芯片实现,也可以作为独立的逻辑单元集成在SOC CPU中,如图7所示,为本发明实施例所提出的网络结构示意图。
[0135]进一步的,如图8所示,为本发明实施例所提出的一种具体的实施场景中的心跳检测装置和看门狗装置(故障检测装置)的结构示意图。
[0136]其中,看门狗装置81主要包括看门狗逻辑子模块811、看门狗超时定时器812、看门狗复位逻辑子模块813。
[0137]心跳检测装置82主要包括心跳逻辑控制子模块821、心跳监控逻辑子模块822、CPU控制心跳逻辑子模块823、独立心跳逻辑子模块824、心跳超时定时器825、心跳报文发送模块826、心跳报文接收模块827。
[0138]各模块的具体说明如下:
[0139]看门狗逻辑子模块811:负责接收本板CPU发出的看门狗使能、看门狗关闭和清看门狗命令。当看门狗逻辑子模块811接收到CPU的看门狗使能命令,就开始通知看门狗超时定时器812开始计时;当看门狗逻辑子模块811接收到CPU的清看门狗命令,就开始清O看门狗超时定时器812 ;当看门狗逻辑子模块811接收到CPU的看门狗关闭命令,就通知清O看门狗超时定时器812停止计时。
[0140]看门狗超时定时器812:负责看门狗超时计时,默认设置一个看门狗超时时间。看门狗超时定时器812超时后,会触发看门狗复位逻辑子模块813复位版本,同时会触发心跳逻辑控制子模块821,切换到独立心跳模式。看门狗超时定时器812受看门狗逻辑子模块811控制,可被看门狗逻辑子模块811使能、关闭和清O。
[0141]看门狗复位逻辑子模块813:被看门狗超时定时器812触发后,会有效本板复位管脚,复位本板上的CPU和其它芯片。
[0142]心跳逻辑控制子模块821:负责接收本板CPU发出的其它板卡心跳监控使能命令和板卡状态正常命令,还负责被看门狗超时定时器812触发为独立心跳模式。心跳监控逻辑子模块822收到本板CPU发出的其它板卡心跳监控使能命令(分布式网络设备中都是主控板CPU下发此命令),就会通知心跳监控逻辑子模块822开始监控其它板卡的心跳超时;心跳监控逻辑子模块822收到本板CPU发出的板卡状态正常命令,就会通知CPU控制心跳逻辑子模块823,开始发送板卡正常的心跳报文,并通知独立心跳逻辑子模块824停止工作;心跳监控逻辑子模块822收到看门狗超时定时器812超时的触发信号,就会通知独立心跳逻辑子模块824,由独立心跳逻辑子模块824负责连续发送板卡正常的心跳报文。
[0143]心跳监控逻辑子模块822:负责对分布式网络设备中所有板卡的心跳报文解析和监控,并通知所有板卡的心跳超时定时器825开始计数。如果心跳监控逻辑子模块822收到特定板卡的心跳报文,就会清O该板卡对应的心跳超时定时器825。
[0144]CPU控制心跳逻辑子模块823:收到心跳逻辑控制子模块821发出板卡状态正常通知,就构造板卡状态正常的心跳报文,并通过心跳报文发送模块826发到板间心跳总线上。CPU控制心跳逻辑子模块823是一次性工作,每收到一个板卡状态正常通知,仅发送一个板卡状态正常的心跳报文。
[0145]独立心跳逻辑子模块824:收到心跳逻辑控制子模块821发出的通知后,构造板卡状态正常的心跳报文,并通过心跳报文发送模块826按照一定时间间隔(远小于板卡心跳超时时间)连续发送。收到心跳逻辑控制子模块821发出的停止工作通知后,独立心跳逻辑子模块824不再连续发送板卡状态正常的心跳报文。
[0146]心跳超时定时器825:对应分布式网络设备中每块板卡都有一个的心跳超时定时器825,默认设置一个板卡心跳超时时间。接收到心跳监控逻辑子模块822发出的特定板卡的心跳超时定时器825使能命令后,特定板卡的心跳超时定时器825就开始计数。收到心跳监控逻辑子模块822发出的特定板卡的心跳超时定时器825清O命令后,特定板卡的心跳超时定时器825就会被清O。特定板卡的心跳超时定时器825超时后,就会主动通知本板的CPU,由本板CPU(分布式网络设备是主控板CPU)复位特定板卡。
[0147]心跳报文发送模块826:负责通过板间心跳总线(一般采用异步差分总线,传输速率高,管脚资源少,报文构造简单)发出心跳报文。
[0148]心跳报文接收模块827:负责通过板间心跳总线接收心跳报文。
[0149]需要指出的是,上述的两个装置也可以合并到一个物理实体中来实现,其结构示意图如图9所示,这样的变化并不会影响本发明的保护范围,各模块的功能与前述内容类似,不再重复说明。
[0150]与现有技术相比,本发明实施例所提出的技术方案具有以下优点:
[0151]通过应用本发明实施例所提出的技术方案,把心跳报文的收发从板卡的CPU上独立出来,并与其他故障检测机制(例如:看门狗逻辑)相结合,板卡的CPU无需参与心跳报文的收发和处理,从而,在板卡因为其他故障检测机制触发重启的过程中,仍可以继续进行心跳报文的发送,避免因为心跳报文未能正常发送而导致板卡的二次重启,基于这样的处理,可以在不降低异常检测时间的前提下,解决分布式网络设备板卡异常恢复重启两次的问题,提高分布式网络设备的可靠性和性能。
[0152]为了实现本发明的技术方案,本发明还提出了一种板卡,应用于包括多个板卡的网络系统中,所述板卡被配置为主控板或接口板,其结构示意图如图10所示,各板卡包括CPUlO1、心跳检测装置102和故障检测装置103:
[0153]当所述板卡被设置为接口板时,
[0154]所述CPU101,用于当所述接口板启动时,向所述心跳检测装置103发送进入CPU控制心跳模式的指示,并通过执行预定操作触发所述心跳检测装置103向所述主控板的心跳检测装置103发送心跳报文;
[0155]所述故障检测装置102,用于检测所述板卡是否出现故障,并在确定出现故障需要对所述板卡进行重新启动时,向所述心跳检测装置103发送进入独立心跳模式的指示;
[0156]所述心跳检测装置103,用于在所述CPU控制心跳模式下,当检测到所述CPUlOl完成了预定操作时,向所述主控板的心跳检测装置103发送心跳报文,或在独立心跳模式下,按照预设的心跳检测周期自动向所述主控板的心跳检测装置103发送心跳报文。
[0157]在具体的应用场景中,所述CPUlOl所执行的预定操作,具体包括:
[0158]所述CPUlOl对预设的任务程序进行调度,其中,所述CPUlOl在正常工作的情况下,按照预设的调度策略对所述预设的任务程序进行调度,所述预设的调度策略至少包括,对所述预设的任务程序的调度周期小于或等于所述心跳检测周期;或,
[0159]所述CPUlOl向所述心跳检测装置103接发送指示所述CPUlOl状态正常的通知消息,其中,所述CPUlOl发送的指示所述CPU状态正常的通知消息,具体为所述CPUlOl根据预设的通知策略所进行的一次性的逻辑接口写操作,所述逻辑接口与所述心跳检测装置103相对应,所述预设的通知策略至少包括,所述逻辑接口写操作的执行周期小于或等于所述心跳检测周期。
[0160]进一步的,
[0161]所述CPU101,还用于按照预设的故障检测周期,向所述故障检测装置102发送计时清零消息,其中,所述计时清零消息,具体为所述CPUlOl根据预设的清零策略所进行的一次性的逻辑接口写操作,所述逻辑接口与所述接口板的故障检测装置102相对应,所述预设的清零策略至少包括,所述逻辑接口写操作的执行周期小于或等于预设的故障检测周期;
[0162]所述故障检测装置102,具体用于:
[0163]判断在当前的故障检测周期内是否接收到所述接口板的CPUlOl发送的计时清零消息;
[0164]如果接收到,则将当前的计时清零,并重新开始新的故障检测周期的计时;
[0165]如果没有接收到,则确定所述接口板需要重新启动,触发所述接口板进行重新启动,并向所述心跳检测装置103发送进入独立心跳模式的指示。
[0166]在具体的应用场景中,所述故障检测装置102,具体为看门狗装置。
[0167]另一方面,当所述板卡被设置为主控板时,所述心跳检测装置103,还用于:
[0168]判断在当前的心跳检测周期内是否接收到所述接口板的心跳检测装置103所发送的心跳报文;
[0169]如果接收到,则将当前的计时清零,并重新开始新的心跳检测周期的计时;
[0170]如果没有接收到,则确定所述接口板需要重新启动,触发所述接口板进行重新启动。
[0171]与现有技术相比,本发明实施例所提出的技术方案具有以下优点:
[0172]通过应用本发明实施例所提出的技术方案,把心跳报文的收发从板卡的CPU上独立出来,并与其他故障检测机制(例如:看门狗逻辑)相结合,板卡的CPU无需参与心跳报文的收发和处理,从而,在板卡因为其他故障检测机制触发重启的过程中,仍可以继续进行心跳报文的发送,避免因为心跳报文未能正常发送而导致板卡的二次重启,基于这样的处理,可以在不降低异常检测时间的前提下,解决分布式网络设备板卡异常恢复重启两次的问题,提高分布式网络设备的可靠性和性能。
[0173]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是⑶-R0M,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施场景所述的方法。
[0174]本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
[0175]本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
[0176]上述本发明序号仅仅为了描述,不代表实施场景的优劣。
[0177]以上公开的仅为本发明的几个具体实施场景,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
【权利要求】
1.一种设备异常检测方法,应用于包括多个板卡的网络系统中,所述板卡被配置为主控板或接口板,其特征在于,所述各板卡包括CPU、心跳检测装置和故障检测装置,所述方法包括: 当所述接口板启动时,所述接口板的心跳检测装置接收所述接口板的CPU的指示进入CPU控制心跳模式; 在所述CPU控制心跳模式下,当所述接口板的心跳检测装置检测到所述接口板的CPU完成了预定操作时,所述接口板的心跳检测装置向所述主控板的心跳检测装置发送心跳报文; 当所述接口板的故障检测装置判断所述CPU发生故障时,所述接口板的心跳检测装置接收所述接口板的故障检测装置的指示进入独立心跳模式; 在所述独立心跳模式下,所述接口板的心跳检测装置按照预设的心跳检测周期自动向所述主控板的心跳检测装置发送心跳报文。
2.如权利要求1所述的方法,其特征在于,所述接口板的心跳检测装置检测到所述接口板的CPU完成了预定操作,具体为: 所述接口板的心跳检测装置检测到所述接口板的CPU对预设的任务程序进行了调度,其中,所述接口板的CPU在正常工作的情况下,按照预设的调度策略对所述预设的任务程序进行调度,所述预设的调度策略至少包括,对所述预设的任务程序的调度周期小于或等于所述心跳检测周期;或, 所述接口板的心跳 检测装置接收到所述接口板的CPU发送的指示所述CPU状态正常的通知消息,其中,所述接口板的CPU发送的指示所述CPU状态正常的通知消息,具体为所述接口板的CPU根据预设的通知策略所进行的一次性的逻辑接口写操作,所述逻辑接口与所述接口板的心跳检测装置相对应,所述预设的通知策略至少包括,所述逻辑接口写操作的执行周期小于或等于所述心跳检测周期。
3.如权利要求1所述的方法,其特征在于,所述接口板的故障检测装置判断所述CPU发生故障,具体通过以下方式确定: 所述接口板的故障检测装置判断在当前的故障检测周期内是否接收到所述接口板的CPU发送的计时清零消息; 如果接收到,所述接口板的故障检测装置将当前的计时清零,并重新开始新的故障检测周期的计时; 如果没有接收到,所述接口板的故障检测装置确定所述接口板需要重新启动,触发所述接口板进行重新启动,并向所述接口板的心跳检测装置发送进入独立心跳模式的指示; 其中,所述接口板的CPU发送的计时清零消息,具体为所述接口板的CPU根据预设的清零策略所进行的一次性的逻辑接口写操作,所述逻辑接口与所述接口板的故障检测装置相对应,所述预设的清零策略至少包括,所述逻辑接口写操作的执行周期小于或等于预设的故障检测周期。
4.如权利要求3所述的方法,其特征在于,所述接口板的故障检测装置,具体为看门狗>j-U ρ?α装直。
5.如权利要求1至4中任意一项所述的方法,其特征在于,还包括: 所述主控板的心跳检测装置判断在当前的心跳检测周期内是否接收到所述接口板的心跳检测装置所发送的心跳报文; 如果接收到,所述主控板的心跳检测装置将当前的计时清零,并重新开始新的心跳检测周期的计时; 如果没有接收到,所述主控板的心跳检测装置确定所述接口板需要重新启动,所述主控板的CPU向所述接口板发送指示,触发所述接口板进行重新启动。
6.一种板卡,应用于包括多个板卡的网络系统中,所述板卡被配置为主控板或接口板,其特征在于,所述各板卡包括CPU、心跳检测装置和故障检测装置: 当所述板卡被设置为接口板时, 所述CPU,用于当所述接口板启动时,向所述心跳检测装置发送进入CPU控制心跳模式的指示,并通过执行预定操作触发所述心跳检测装置向所述主控板的心跳检测装置发送心跳报文; 所述故障检测装置,用于检测所述板卡是否出现故障,并在确定出现故障需要对所述板卡进行重新启动时,向所述心跳检测装置发送进入独立心跳模式的指示; 所述心跳检测装置,用于在所述CPU控制心跳模式下,当检测到所述CPU完成了预定操作时,向所述主控板的心跳检测装置发送心跳报文,或在独立心跳模式下,按照预设的心跳检测周期自动向所述主控板的心跳检测装置发送心跳报文。
7.如权利要求 6所述的板卡,其特征在于,所述CPU所执行的预定操作,具体包括: 所述CPU对预设的任务程序进行调度,其中,所述CPU在正常工作的情况下,按照预设的调度策略对所述预设的任务程序进行调度,所述预设的调度策略至少包括,对所述预设的任务程序的调度周期小于或等于所述心跳检测周期;或, 所述CPU向所述心跳检测装置接发送指示所述CPU状态正常的通知消息,其中,所述(PU发送的指示所述CPU状态正常的通知消息,具体为所述CPU根据预设的通知策略所进行的一次性的逻辑接口写操作,所述逻辑接口与所述心跳检测装置相对应,所述预设的通知策略至少包括,所述逻辑接口写操作的执行周期小于或等于所述心跳检测周期。
8.如权利要求6所述的板卡,其特征在于, 所述CPU,还用于按照预设的故障检测周期,向所述故障检测装置发送计时清零消息,其中,所述计时清零消息,具体为所述CPU根据预设的清零策略所进行的一次性的逻辑接口写操作,所述逻辑接口与所述接口板的故障检测装置相对应,所述预设的清零策略至少包括,所述逻辑接口写操作的执行周期小于或等于预设的故障检测周期; 所述故障检测装置,具体用于: 判断在当前的故障检测周期内是否接收到所述接口板的CPU发送的计时清零消息; 如果接收到,则将当前的计时清零,并重新开始新的故障检测周期的计时; 如果没有接收到,则确定所述接口板需要重新启动,触发所述接口板进行重新启动,并向所述心跳检测装置发送进入独立心跳模式的指示。
9.如权利要求8所述的板卡,其特征在于,所述故障检测装置,具体为看门狗装置。
10.如权利要求6所述的板卡,其特征在于,当所述板卡被设置为主控板时,所述心跳检测装置,还用于: 判断在当前的心跳检测周期内是否接收到所述接口板的心跳检测装置所发送的心跳报文;如果接收到,则将当前的计时清零,并重新开始新的心跳检测周期的计时; 如果没有接收到,则确定所述接口板需要重新启动,通知所述主控板的CPU向所述接口板发送指示,触发所 述接口板进行重新启动。
【文档编号】H04L29/08GK104079454SQ201410330525
【公开日】2014年10月1日 申请日期:2014年7月11日 优先权日:2014年7月11日
【发明者】赵志宇, 秦占明 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1