CN104579774B - 主控设备的切换方法和装置 - Google Patents
主控设备的切换方法和装置 Download PDFInfo
- Publication number
- CN104579774B CN104579774B CN201410857090.6A CN201410857090A CN104579774B CN 104579774 B CN104579774 B CN 104579774B CN 201410857090 A CN201410857090 A CN 201410857090A CN 104579774 B CN104579774 B CN 104579774B
- Authority
- CN
- China
- Prior art keywords
- main control
- control device
- mentioned
- slot position
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Hardware Redundancy (AREA)
- Selective Calling Equipment (AREA)
Abstract
本发明公开了一种主控设备的切换方法和装置。该方法包括:位于第一槽位上的第一主控设备检测第二主控设备是否在第二槽位上,若第一主控设备检测出第二主控设备在第二槽位上,则第一主控设备与第二主控设备协商第一主控设备和第二主控设备的主备状态,若主备状态指示第一主控设备为备用主控设备、且第二主控设备为主用主控设备,则第一主控设备监测第二主控设备的工作状态,当工作状态指示第二主控设备出现故障时,第一主控设备将自身切换为主用主控设备,指示第二主控设备切换为备用主控设备。本发明解决了独立于主控设备之外的仲裁芯片出现故障时无法确定主控设备的主备关系的技术问题。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种主控设备的切换方法和装置。
背景技术
随着通信技术的高速发展,在实际应用中对大型通信设备的可靠性要求也越来越高,经常要求极短的MTTR(平均故障恢复时间),这样,实现一种全冗余的硬件系统则显得极为重要。
全冗余硬件系统是说整个硬件设备中不存在单点故障点,所有故障器件都可以在正常通信业务不中断的情况下进行更换。
在通信硬件系统中,一般会有主控设备(卡)来对整个系统进行控制(配置、查询和修复等)操作。为防止主控设备(卡)出现异常而导致整个系统崩溃,在要求高可靠性的通信系统中会再增加一个主控设备(卡)作为控制备份,这样就形成了一个双主控设备(卡)的配置。一般的,在双主控(卡)系统中,会有一个主用的主控设备(卡)和一个备用的主控设备(卡),主控设备(卡)的身份的由独立于上述两个主控设备之外的一个仲裁芯片(可以为CPU/CPLD/FPGA等)根据主控设备(卡)的状态仲裁出来,被赋予主用主控身份的主控设备(卡)将会实现对整个系统的控制操作。
但是,当上述负责仲裁的仲裁芯片(单点故障点)出现故障需要更换时,系统将无法确认双主控设备的主备关系,从而使整个系统进入一个不可靠的状态(或崩溃、或重启等),不满足全冗余系统的要求。
针对现有技术中在独立于主控设备之外的仲裁芯片出现故障时无法确定主控设备的主备关系的技术问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种主控设备的切换方法和装置,以至少解决独立于主控设备之外的仲裁芯片出现故障时无法确定主控设备的主备关系的技术问题。
根据本发明实施例的一个方面,提供了一种主控设备的切换方法,包括:位于第一槽位上的第一主控设备检测第二主控设备是否在第二槽位上;若上述第一主控设备检测出上述第二主控设备在上述第二槽位上,则上述第一主控设备与第二主控设备协商上述第一主控设备和上述第二主控设备的主备状态;若上述主备状态指示上述第一主控设备为备用主控设备、且上述第二主控设备为主用主控设备,则上述第一主控设备监测上述第二主控设备的工作状态;当上述工作状态指示上述第二主控设备出现故障时,上述第一主控设备将自身切换为主用主控设备,并指示上述第二主控设备切换为备用主控设备。
进一步地,上述第一主控设备与第二主控设备协商上述第一主控设备和上述第二主控设备的主备状态包括:上述第一主控设备在向上述第二主控设备发送用于请求切换为主用主控设备的第一请求之前判断是否接收到上述第二主控设备发送的用于请求切换为主用主控设备的第二请求;若上述第一主控设备判断出接收到上述第二请求,则上述第一主控设备将上述第一主控设备的主备状态设置为用于指示上述第一主控设备为上述备用主控设备。
进一步地,在上述第一主控设备向上述第二主控设备发送用于请求切换为主用主控设备的第一请求之前,还包括:上述第一主控设备根据上述第一槽位的槽位ID设置上述第一请求的第一发送时刻;其中,上述第一发送时刻晚于上述第二主控设备根据上述第二槽位的槽位ID设置的上述第二请求的第二发送时刻。
进一步地,在上述第一主控设备在向上述第二主控设备发送用于请求切换为主用主控设备的第一请求之前判断是否接收到上述第二主控设备发送的用于请求切换为主用主控设备的第二请求之后,还包括:若上述第一主控设备判断出未接收到上述第二请求时,则上述第一主控设备将上述第一主控设备的主备状态设置为用于指示上述第一主控设备为上述主用主控设备。
进一步地,在上述第一主控设备向上述第二主控设备发送用于请求切换为主用主控设备的第一请求之前,还包括:上述第一主控设备根据上述第一槽位的槽位ID设置上述第一请求的第一发送时刻;其中,上述第一发送时刻早于上述第二主控设备根据上述第二槽位的槽位ID设置的上述第二请求的第二发送时刻。
进一步地,在位于第一槽位上的上述第一主控设备检测上述第二主控设备是否在第二槽位上之后,还包括:若上述第一主控设备检测出上述第二主控设备不在上述第二槽位上,则上述第一主控设备将上述第一主控设备的主备状态设置为用于指示上述第一主控设备为上述主用主控设备。
进一步地,上述位于第一槽位上的上述第一主控设备检测上述第二主控设备是否在第二槽位上包括:上述第一主控设备检测是否接收到上述第二主控设备发送的第一心跳信号,其中,上述第一心跳信号用于指示上述第二主控设备的硬件工作状态;若接收到上述第一心跳信号,则上述第一主控设备判断出上述第二主控设备在上述第二槽位上。
进一步地,上述第一主控设备监测上述第二主控设备的工作状态包括:上述第一主控设备采集上述第二主控设备发出的第一心跳信号和第二心跳信号,其中,上述第一心跳信号用于指示上述第二主控设备的硬件工作状态,上述第二心跳信号用于指示上述第二主控设备的软件工作状态;若采集到的上述第一心跳信号的周期大于第一预定阈值,则上述第一主控设备判断出上述第二主控设备的工作状态为指示上述第二主控设备出现故障;若采集到的上述第二心跳信号的周期大于第二预定阈值,则上述第一主控设备判断出上述第二主控设备的工作状态为指示上述第二主控设备出现故障;若采集到上述第一心跳信号的周期小于等于上述第一预定阈值、且采集到的上述第二心跳信号的周期小于等于上述第二预定阈值,则上述第一主控设备判断出上述第二主控设备的工作状态为指示上述第二主控设备未出现故障。
进一步地,所述第一主控设备将自身切换为主用主控设备之前,还包括:所述第一主控设备根据第三心跳信号和第四心跳信号判断自身是否出现故障;其中,所述第三心跳信号用于指示所述第一主控设备的硬件工作状态,所述第四心跳信号用于指示所述第一主控设备的软件工作状态;所述第一主控设备将自身切换为主用主控设备包括:若未出现故障,则所述第一主控设备将自身切换为主用主控设备。
根据本发明实施例的另一方面,还提供了一种主控设备的切换装置,设置在位于第一槽位的第一主控设备上,包括:检测单元,用于检测第二主控设备是否在第二槽位上;协商单元,用于在检测出上述第二主控设备在上述第二槽位上时,与上述第二主控设备协商上述第一主控设备和上述第二主控设备的主备状态;监测单元,用于在上述主备状态指示上述第一主控设备为备用主控设备、且上述第二主控设备为主用主控设备时,监测上述第二主控设备的工作状态;切换单元,用于在上述工作状态指示上述第二主控设备出现故障时,将上述第一主控设备切换为主用主控设备,并指示上述第二主控设备切换为备用主控设备。
进一步地,上述协商单元包括:判断模块,用于在上述第一主控设备向上述第二主控设备发送用于请求切换为主用主控设备的第一请求之前判断上述第一主控设备是否接收到上述第二主控设备发送的用于请求切换为主用主控设备的第二请求;设置模块,用于在上述判断模块判断出上述第一主控设备接收到上述第二请求时,将上述第一主控设备的主备状态设置为用于指示上述第一主控设备为上述备用主控设备。
进一步地,上述设置模块还包括:第一设置模块,用于在上述第一主控设备向上述第二主控设备发送用于请求切换为主用主控设备的第一请求之前,根据上述第一槽位的槽位ID设置上述第一请求的第一发送时刻;其中,上述第一发送时刻晚于上述第二主控设备根据上述第二槽位的槽位ID设置的上述第二请求的第二发送时刻。
进一步地,上述设置模块还用于在上述判断模块判断出上述第一主控设备未接收到上述第二请求时,将上述第一主控设备的主备状态设置为用于指示上述第一主控设备为上述主用主控设备。
进一步地,上述设置模块还包括:第一设置模块,用于在上述第一主控设备向上述第二主控设备发送用于请求切换为主用主控设备的第一请求之前,根据上述第一槽位的槽位ID设置上述第一请求的第一发送时刻;其中,上述第一发送时刻早于上述第二主控设备根据上述第二槽位的槽位ID设置的上述第二请求的第二发送时刻。
进一步地,上述主控设备的切换装置还包括:设置单元,用于在上述检测单元检测出上述第二主控设备不在上述第二槽位上,将上述第一主控设备的主备状态设置为用于指示上述第一主控设备为上述主用主控设备。
进一步地,上述检测单元包括:检测模块,用于检测是否接收到上述第二主控设备发送的第一心跳信号,其中,上述第一心跳信号用于指示上述第二主控设备的硬件工作状态;第一判断模块,用于在接收到上述第一心跳信号时,判断出上述第二主控设备在上述第二槽位上。
进一步地,上述监测单元包括:第一采集模块,用于采集上述第二主控设备发出的第一心跳信号,其中,上述第一心跳信号用于指示上述第二主控设备的硬件工作状态;第二采集模块,用于采集上述第二主控设备发出的第二心跳信号,其中,上述第二心跳信号用于指示上述第二主控设备的软件工作状态;第二判断模块,用于在采集到的上述第一心跳信号的周期大于第一预定阈值时,判断出上述第二主控设备的工作状态为指示上述第二主控设备出现故障;在采集到的上述第二心跳信号的周期大于第二预定阈值时,判断出上述第二主控设备的工作状态为指示上述第二主控设备出现故障;在采集到上述第一心跳信号的周期小于等于上述第一预定阈值、且采集到的上述第二心跳信号的周期小于等于上述第二预定阈值时,判断出上述第二主控设备的工作状态为指示上述第二主控设备未出现故障。
进一步地,所述切换单元还包括:第三判断模块,用于根据第三心跳信号和第四心跳信号判断自身是否出现故障,若未出现故障,则将所述第一主控设备切换为主用主控设备;其中,所述第三心跳信号用于指示所述第一主控设备的硬件工作状态,所述第四心跳信号用于指示所述第一主控设备的软件工作状态。
在本发明实施例中,第一主控设备与第二主控设备协商得到主用主控设备状态和备用主控设备状态,从而不依赖独立的仲裁芯片,解决了现有技术中在独立于主控设备之外的仲裁芯片出现故障时无法确定主控设备的主备关系的技术问题,在无仲裁芯片的情况实现主控设备的主备关系的仲裁和切换,且简化了结构。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种主控设备的切换系统图;
图2是根据本发明实施例的一种主控设备的切换方法的示意图;
图3是根据本发明实施例的另一种主控设备的切换方法的示意图;
图4是根据本发明实施例的又一种主控设备的切换方法的示意图;
图5是根据本发明实施例的一种主控设备的切换装置的示意图;
图6是根据本发明实施例的另一种主控设备的切换装置的示意图;以及
图7是根据本发明实施例的又一种主控设备的切换装置的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种主控设备的切换系统图,如图1所示,该系统包括:第一主控设备10、第二主控设备20、第一槽位30、第二槽位40、机架50,子卡60,其中,子卡60与第一主控设备10和第二主控设备20连接。
可选地,第一主控设备10安装在第一槽位30内,第二主控设备20安装在第二槽位40,第一槽位30和第二槽位40固定安装在机架50上。第一槽位30的槽位ID为1#,第二槽位40的槽位ID为2#。上述第一主控设备10和第二主控设备20通过高速普通信号组和带校验信号组进行通讯,上述第一主控设备10和第二主控设备20中的主用主控设备通过低速信号组与一组子卡60连接。可选地,高速普通信号组由简单I/O组成,本组信号可完成全部的主备协商和切换的功能,高速普通信号组的优点是简单、可靠。带校验信号组由较少的I/O组成带内数据传输协议,且传输数据带校验信息,保证数据的可靠,作为高速普通信号组的补充,以保证状态传递的正确,当带校验信号组传递的数据与高速普通信号组传递的数据出现矛盾时,以带校验信号组的数据为高优先级的数据命令,带校验信号组信号还可以在系统有高可靠要求时使用。在本实施例中,当第一主控设备10或第二主控设备20为主用主控设备时,对子卡60和外部通讯线路(图中未示出)进行监控。
基于图1所示的主控设备的切换系统,本实施例提供了一种主控设备的切换方法,如图2所示,本实施例中的主控设备的切换方法包括步骤S202-S208,具体如下:
S202,位于第一槽位30上的第一主控设备10检测第二主控设备20是否在第二槽位40上。
可选地,上述第一主控设备10和上述第二主控设备20在插入对应的槽位后上电,第一主控设备10和第二主控设备20的硬件自动进行复位操作,复位成功后以一定频率向外部广播由该主控设备的硬件产生的心跳信号,用来指示该主控设备的硬件工作状态。例如,第一主控设备10向外部设备(例如,第二主控设备20,子卡60)广播由第一主控设备10的硬件产生的心跳信号,用来指示第一主控设备10的硬件工作状态,若外部设备(例如,第二主控设备20,子卡60)接收或者检测到上述心跳信号,则表示第一主控设备10已经上电在位并且处于正常工作状态。
可选地,在本实施例中,第一主控设备10检测第二主控设备20是否在第二槽位上的步骤包括:
S1,上述第一主控设备10检测是否接收到上述第二主控设备20发送的第一心跳信号,其中,上述第一心跳信号用于指示上述第二主控设备20的硬件工作状态;
S2,若接收到上述第一心跳信号,则上述第一主控设备10判断出上述第二主控设备20在上述第二槽位40上;若未接收到上述第一心跳信号,则上述第一主控设备10判断出上述第二主控设备20不在第二槽位40上。
若上述第一主控设备10检测出上述第二主控设备20不在上述第二槽位40上,则上述第一主控设备10将上述第一主控设备10的主备状态设置为用于指示上述第一主控设备10为上述主用主控设备,即,将第一主控设备10设置为主用主控设备。
可选地,在第一主控设备10将上述第一主控设备10的主备状态设置为用于指示上述第一主控设备10为上述主用主控设备之后,上述第一主控设备10还可以按预定周期检测上述第二主控设备20是否在上述第二槽位40上。
可选地,当第二主控设备20不在上述第二槽位40上,则表示没有第二主控设备20,主控设备只有第一主控设备10,第一主控设备10不需进行协商而默认自身是主用主控设备。可选地,在上述场景下,第一主控设备10还可以产生报警信息,指示第二槽位40上的第二主控设备20没有在位,防止因人为原因没有把第二主控设备20没插好,或者槽位故障而产生的问题,同时第一主控设备10按一定周期检测上述第二主控设备是否在上述第二槽位40上,如每10S检测一次是否接收到上述第二主控设备发送的第一心跳信号,若第一主控设备10检测到第二主控设备20回归到上述第二槽位40上,则执行S204。
S204,若上述第一主控设备10检测出上述第二主控设备20在上述第二槽位40上,则上述第一主控设备10与第二主控设备20协商上述第一主控设备10和上述第二主控设备20的主备状态。
可选地,上述第一主控设备10和第二主控设备20的主备状态可以为:第一主控设备10为主用主控设备,第二主控设备20为备用主控设备;或者,第一主控设备10为备用主控设备,第二主控设备20为主用主控设备。
可选地,本实施例提供了一种可选的实现方式,以实现第一主控设备与第二主控设备协商上述第一主控设备和上述第二主控设备的主备状态,具体如图3所示,第一主控设备与第二主控设备协商上述第一主控设备和上述第二主控设备的主备状态包括:
S304,上述第一主控设备10在向上述第二主控设备20发送用于请求切换为主用主控设备的第一请求之前判断是否接收到上述第二主控设备发送的用于请求切换为主用主控设备的第二请求。
可选地,第一主控设备10所在的第一槽位30的槽位ID为1#,第二主控设备20所在的第二槽位40的槽位ID为2#,第一主控设备10和第二主控设备20在插入槽位后,读取各自所在槽位ID,然后,在向对方发送用于请求切换为主用主控设备的请求之前判断是否已经接收到对方发送的用于请求切换为主用主控设备的请求,若已经接收到对方发送的用于请求切换为主用主控设备的请求,则认为对方是主用主控设备,自身是备用主控设备。
可选地,在上述步骤S304之前,或者,在上述第一主控设备向上述第二主控设备发送用于请求切换为主用主控设备的第一请求之前,还包括:步骤S302,即,上述第一主控设备根据上述第一槽位的槽位ID设置上述第一请求的第一发送时刻。在本实施例中,上述第一发送时刻晚于上述第二主控设备根据上述第二槽位的槽位ID设置的上述第二请求的第二发送时刻。需要说明的是,上述第一发送时刻晚于上述第二发送时刻,这仅是一种示例,本申请对此不做限定,还可以设置上述第一发送时刻早于上述第二发送时刻。
可选地,设置读取到槽位ID为1#的主控设备延迟一段时间再发送用于请求切换为主用主控设备的请求,读取到槽位ID为2#的主控设备则不需要延迟直接发送用于请求切换为主用主控设备的请求。例如,第一主控设备10位于第一槽位30上,上电读取到槽位ID为1#时,设置上述第一请求的第一发送时刻需要在读取ID后延迟5S,如第一主控设备10在00:00:10时刻读取到所在第一槽位30的槽位ID为1#,第二主控设备20也在00:00:10时刻读取到所在第二槽位40的槽位ID为2#,则第一主控设备10设置在00:00:15时刻发送第一请求,第二主控设备20设置在00:00:10时刻发送第二请求。在此场景下,第一主控设备10在00:00:15时刻之前判断是否接收到上述第二主控设备20发送的用于请求切换为主用主控设备的第二请求,第二主控设备20在00:00:10时刻之前判断是否接收到上述第一主控设备10发送的用于请求切换为主用主控设备的第一请求,若第一主控设备10在00:00:15时刻已经接收到上述第二请求,则表示第二主控设备20先于第一主控设备10发出用于请求切换为主用主控设备的请求,则执行S306。
S306,若上述第一主控设备判断出接收到上述第二请求,则上述第一主控设备将上述第一主控设备的主备状态设置为用于指示上述第一主控设备为上述备用主控设备。
可选地,若第二主控设备20在向上述第一主控设备10发送用于请求切换为主用主控设备的上述第二请求之前,上述第二主控设备判断出未接收到上述第一请求,表示第一主控设备10还未发出用于请求切换为主用主控设备的上述第一请求,则上述第二主控设备20向上述第一主控设备10发送用于请求切换为主用主控设备的上述第二请求,第一主控设备10接收到上述第二请求后,可以执行以下任意一种步骤:
1、直接将第一主控设备10的主备状态设置为用于指示上述第一主控设备为上述备用主控设备,而不发送上述第一请求。
2、向第二主控设备20返回确认响应,表示已收到第二请求并承认第二主控设备为主用主控设备,然后将第一主控设备10的主备状态设置为用于指示上述第一主控设备10为上述备用主控设备,而不发送上述第一请求。
3、向第二主控设备20发送用于请求切换为主用主控设备的第一请求,第二主控设备接收到第一主控设备发送的第一请求后,向第一主控设备10返回拒绝响应,第一主控设备10接收到拒绝响应后将第一主控设备10的主备状态设置为用于指示上述第一主控设备10为上述备用主控设备。
可选地,在上述第一主控设备在向上述第二主控设备发送用于请求切换为主用主控设备的第一请求之前判断是否接收到上述第二主控设备发送的用于请求切换为主用主控设备的第二请求,若未接收到上述第二请求,则执行S308。
S308,若上述第一主控设备判断出未接收到上述第二请求时,则上述第一主控设备将上述第一主控设备的主备状态设置为用于指示上述第一主控设备为上述主用主控设备。
可选地,上述第一主控设备向上述第二主控设备发送用于请求切换为主用主控设备的第一请求之前,还包括S302,上述第一主控设备根据上述第一槽位的槽位ID设置上述第一请求的第一发送时刻;其中,上述第一发送时刻早于上述第二主控设备根据上述第二槽位的槽位ID设置的上述第二请求的第二发送时刻。
可选地,系统设置读取到槽位ID为1#的主控设备延迟一段时间再发送用于请求切换为主用主控设备的请求,读取到槽位ID为2#的主控设备则不需要延迟直接发送用于请求切换为主用主控设备的请求。例如,第一主控设备10位于第一槽位30上,上电读取到槽位ID为1#时,设置上述第一请求的第一发送时刻需要在读取ID后延迟5S,如第一主控设备10在00:00:10时刻读取到所在第一槽位30的槽位ID为1#,第二主控设备20在00:00:20时刻读取到所在第二槽位40的槽位ID为2#,则第一主控设备10设置在00:00:15时刻发送第一请求,第二主控设备20设置在00:00:20时刻发送第二请求。在此场景下,则第一主控设备10延时5S后在00:00:15时刻之前判断是否接收到上述第二主控设备20发送的用于请求切换为主用主控设备的第二请求,第二主控设备20需要在00:00:20时刻判断是否接收到上述第一主控设备10发送的用于请求切换为主用主控设备的第一请求,若第一主控设备10在00:00:15时刻还没接收到上述第二请求,则表示第二主控设备20还未发出用于请求切换为主用主控设备的请求,第一主控设备10将上述第一主控设备10的主备状态设置为用于指示上述第一主控设备10为上述主用主控设备。
第一主控设备10判断还未接收到上述第二请求后,可以执行以下任意一种步骤:
1、向第二主控设备20发送用于请求切换为主用主控设备的第一请求,将第一主控设备10的主备状态设置为用于指示上述第一主控设备10为上述主用主控设备。
2、向第二主控设备20发送用于请求切换为主用主控设备的第一请求消息,第二主控设备20返回表示已经接收第一请求并承认第一主控设备10为主用主控设备的确认响应后,然后将第一主控设备10的主备状态设置为用于指示上述第一主控设备10为上述主用主控设备。
3、向第二主控设备20发送用于请求切换为主用主控设备的第一请求,并在接收第二主控设备20发送的第二请求后向第二主控设备20返回拒绝响应,然后将第一主控设备10的主备状态设置为用于指示上述第一主控设备10为上述主用主控设备。
可选地,第一主控设备10在延迟5S后未检测到上述第二请求消息,而第二主控设备20同时也未检测到上述第一请求消息,例如第一主控设备10位于第一槽位30上,上电读取到槽位ID为1#时,设置上述第一请求的第一发送时刻需要在读取ID后延迟5S,第一主控设备10在00:00:00时刻读取到所在第一槽位30的槽位ID为1#,第二主控设备20在00:00:06时刻读取到所在第二槽位40的槽位ID为2#,则第一主控设备10延时5S后在00:00:05时刻判断是否接收到上述第二主控设备20发送的用于请求切换为主用主控设备的第二请求上述第一请求消息和上述第二请求消息,请求消息到达另一个主控设备的通讯时间为2S,则第一请求消息和第二请求消息同时在通讯线路上,上述第一主控设备10在发出上述第一请求消息后,收到上述第二请求消息,在这种情况下,第一主控设备10不向第二主控设备返回第一确认消息,并自动复位,进行下一轮的协商,第二主控设备20等待接收第一确认消息,在等待1S后认为超时,也自动复位,进行下一轮的协商。这样避免了因为外界产生的延时而导致第一主控设备10和第二主控设备20同时向对方发送请求成为主要主控设备的逻辑死循环,由于下一轮协商的开始时第二槽位上的第二主控设备20要延时5S才发送上述第二请求,在延时期间第一主控设备已经将上述第一请求发送给第二主控设备,这样系统可以跳出死循环而在第二轮协商出主用主控设备。
S206,若上述主备状态指示上述第一主控设备为备用主控设备、且上述第二主控设备为主用主控设备,则上述第一主控设备监测上述第二主控设备的工作状态。
可选地,上述第二主控设备20同时监控上述第一主控设备10的工作状态,当处于备用主控状态的第一主控设备10出现故障时,发出告警信息,以提示操作人员对备用主控设备实现更换。
上述第一主控设备监测上述第二主控设备的工作状态,如图4所示,步骤具体为:S402-S404
S402,上述第一主控设备采集上述第二主控设备发出的第一心跳信号和第二心跳信号,其中,上述第一心跳信号用于指示上述第二主控设备的硬件工作状态,上述第二心跳信号用于指示上述第二主控设备的软件工作状态。
可选地,第二主控设备在上电后正常工作期间,按一定周期向外联设备(例如,第一主控设备)发出第一心跳信号和第二心跳信号,第一心跳信号为第二主控设备20上的硬件产生的心跳信号,第二心跳信号为第二主控设备20上的软件产生的心跳信号,软硬件心跳分离,硬件产生的心跳信号表明硬件层面状态,当硬件状态发生变化(例如,故障或者有卡插拔)时,可以根据硬件产生的心跳信号(例如,上述的第一心跳信号)快速(纳秒或更快速度)做出响应;软件产生的心跳信号(例如,上述的第二心跳信号)通常为速度较慢(1-10s左右)的心跳信号,用于表明软件层面状态,速度较慢的软件产生的心跳信号可以大幅减小CPU的占用率。此特性既保证了系统的快速相应,也不需要占用太多的CPU资源。
S404,上述第一主控设备根据采集的第一心跳信号和第二心跳信号判断第二主控设备是否出现故障。
若采集到的上述第一心跳信号的周期大于第一预定阈值,则上述第一主控设备判断出上述第二主控设备的工作状态为指示上述第二主控设备出现故障;若采集到的上述第二心跳信号的周期大于第二预定阈值,则上述第一主控设备判断出上述第二主控设备的工作状态为指示上述第二主控设备出现故障;若采集到上述第一心跳信号的周期小于等于上述第一预定阈值、且采集到的上述第二心跳信号的周期小于等于上述第二预定阈值,则上述第一主控设备判断出上述第二主控设备的工作状态为指示上述第二主控设备未出现故障。
可选地,第一预定阈值为1ms,第二预定阈值为5s,当第一主控设备采集到第一心跳信号的周期为2ms时表示第二主控设备20出现故障,当第一主控设备采集到第二心跳信号的周期为10s时表示第二主控设备20出现故障,当第一主控设备采集到第一心跳信号的周期为0.1ms,第二心跳信号的周期为4s时,表示第二主控设备20未出现故障。
可选地,当第二主控设备20在进入休眠或者执行插拔卡操作等情况时,硬件状态发生变化,导致硬件产生的心跳信号不能按正常周期发出,而当第二主控设备20在运行软件崩溃,无法启动等情况时,软件心跳信号不能按正常周期发出,第一主控设备10接收上述第二主控设备20的第一心跳信号和第二心跳信号,根据上述第一心跳信号和第二心跳信号的周期和预定阈值周期比较,来判断上述第二主控设备20的工作状态是否指示上述第二主控设备20出现故障。同时发出告警信息,用于指示主用主控设备故障,系统将执行自动切换。
当上述工作状态指示上述第二主控设备20出现故障时,执行S208。
S208,当上述工作状态指示上述第二主控设备出现故障时,上述第一主控设备将自身切换为主用主控设备,并指示上述第二主控设备切换为备用主控设备。
可选地,所述第一主控设备10将自身切换为主用主控设备之前还包括:所述第一主控设备10根据第三心跳信号和第四心跳信号判断自身是否出现故障,其中,所述第三心跳信号用于指示所述第一主控设备10的硬件工作状态,所述第四心跳信号用于指示所述第一主控设备10的软件工作状态,所述第一主控设备10将自身切换为主用主控设备包括:若未出现故障,则所述第一主控设备10将自身切换为主用主控设备。在第一主控设备10自身出现故障的情况下,可能发送错误的命令,如将自身切换为主用主控设备,并指示上述第二主控设备切换为备用主控设备的切换指令,导致第一主控设备10和第二主控设备20在没有出现故障的情况下被第一主控设备10强制切换,而通过第一主控设备10在将自身切换为主用主控设备之前根据第三心跳信号和第四心跳信号判断自身是否出现故障,若出现故障,则所述第一主控设备10拒绝将自身切换为主用主控设备,同时还可以产生报警信息,以指示第一主控设备10出现故障,若未出现故障,则所述第一主控设备10将自身切换为主用主控设备。这样通过判断切换指令发送方是否出现故障,避免了因主控设备出现故障而强制切换的情况,进一步保证了切换指令的正确性和系统的可靠性。
可选地,第一主控设备10采集到上述第三心跳信号的周期大于第三预定阈值,则上述第一主控设备10判断自身的工作状态为指示上述第一主控设备10出现故障;若采集到的上述第四心跳信号的周期大于第四预定阈值,则上述第一主控设备判断出自身的工作状态为指示上述第一主控设备10出现故障;若采集到上述第三心跳信号的周期小于等于上述第三预定阈值、且采集到的上述第四心跳信号的周期小于等于上述第四预定阈值,则上述第一主控设备判断出自身的工作状态为指示上述第一主控设备10未出现故障。
可选地,上述第二主控设备20切换为备用主控设备后,为主用主控设备的第一主控设备10对第二主控设备20执行强制复位,第一主控设备10向第二主控设备20发送请求成为主用主控设备的第一请求,将第二主控设备20的主控状态设置为备用主控状态。
通过本实施例,第一主控设备10与第二主控设备20协商得到主用主控设备状态和备用主控设备状态,从而不依赖独立的仲裁芯片,解决了现有技术中在独立于主控设备之外的仲裁芯片出现故障时无法确定主控设备的主备关系的技术问题,在无仲裁芯片的情况实现主控设备的主备关系的仲裁和切换,且简化了结构。
实施例2
根据本发明实施例,还提供了一种用于实施上述主控设备的切换装置示意图,上述主控设备的切换装置设置在位于第一槽位30的第一主控设备10上,如图5所示,该装置包括:检测单元502、协商单元504、监测单元506、切换单元508。
检测单元502,用于检测第二主控设备20是否在第二槽位40上。
可选地,上述第一主控设备10和上述第二主控设备20在插入对应的槽位后上电,第一主控设备10和上述第二主控设备20的硬件自动进行复位操作,复位成功后以一定频率向外部广播由该主控设备的硬件产生的心跳信号,用来指示该主控设备的硬件工作状态。例如,第一主控设备10向外部(例如,第二主控设备20,子卡60)广播由第一主控设备10的硬件产生的心跳信号,用来指示第一主控设备10的硬件工作状态,若外部设备(例如,第二主控设备20,子卡60)接收或者检测到上述心跳信号,则表示第一主控设备10已经上电在位并且处于正常工作状态。如图6所示,检测单元502还包括:检测模块602、第一判断模块604。
检测模块602,用于检测是否接收到上述第二主控设备20发送的第一心跳信号,其中,上述第一心跳信号用于指示上述第二主控设备20的硬件工作状态;
第一判断模块604,用于在检测模块602检测已经接收到上述第一心跳信号时,判断上述第二主控设备20在上述第二槽位40上;若检测未接收到上述第一心跳信号,则上述第一主控设备10判断出上述第二主控设备20不在上述第二槽位40上。
可选地,如图6所示,上述主控设备的切换装置还包括设置单元510,用于在上述检测单元检测出上述第二主控设备20不在上述第二槽位40上,将上述第一主控设备10的主备状态设置为用于指示上述第一主控设备10为上述主用主控设备即,将第一主控设备10设置为主用主控设备。
若上述检测单元502检测出上述第二主控设备20不在上述第二槽位40上,则上述设置单元510将上述第一主控设备10的主备状态设置为用于指示上述第一主控设备10为上述主用主控设备,检测模块602还可以按预定周期检测上述第二主控设备20是否在上述第二槽位40上。
可选地,当第二主控设备20不在上述第二槽位40上,则表示没有第二主控设备20,主控设备只有第一主控设备10,第一主控设备10不需进行协商而默认自身是主用主控设备。可选地,在上述场景下,检测模块602还还可以产生报警信息,指示第二槽位40上的第二主控设备20没有在位,防止因人为原因没有把第二主控设备20没插好,或者槽位故障而产生的问题,同时检测模块602按一定周期检测上述第二主控设备20是否在上述第二槽位40上,如每10S检测一次是否接收到上述第二主控设备20发送的第一心跳信号。
协商单元504,用于在检测出上述第二主控设备20在上述第二槽位40上时,与上述第二主控设备20协商上述第一主控设备10和上述第二主控设备20的主备状态。
可选地,上述第一主控设备10和第二主控设备20的主备状态可以为:第一主控设备10为主用主控设备,第二主控设备20为备用主控设备;或者,第一主控设备10为备用主控设备,第二主控设备20为主用主控设备。
本实施例提供了一种可选的实现方式,以实现第一主控设备10与第二主控设备20协商上述第一主控设备10和上述第二主控设备20的主备状态,具体如图6所示,协商单元504还包括:判断模块606、设置模块608。
判断模块606,用于在上述第一主控设备10向上述第二主控设备20发送用于请求切换为主用主控设备的第一请求之前判断上述第一主控设备10是否接收到上述第二主控设备20发送的用于请求切换为主用主控设备的第二请求。
可选地,第一主控设备10所在的第一槽位30的槽位ID为1#,第二主控设备20所在的第二槽位40的槽位ID为2#,第一主控设备10和第二主控设备20在插入槽位后,读取各自所在的槽位ID号,然后在向对方发送用于请求切换为主用主控设备的请求之前判断是否已经接收到对方发送的用于请求切换为主用主控设备的请求,若已经接收到对方发送的用于请求切换为主用主控设备的请求,则认为对方是主用主控设备,自身是备用主控设备。
可选地,设置模块608还包括第一设置模块6081,第一设置模块6081用于在上述第一主控设备10向上述第二主控设备20发送用于请求切换为主用主控设备的第一请求之前,根据上述第一槽位30的槽位ID设置上述第一请求的第一发送时刻;在本实施例中,上述第一发送时刻晚于上述第二主控设备根据上述第二槽位的槽位ID设置的上述第二请求的第二发送时刻。需要说明的是,上述第一发送时刻晚于上述第二发送时刻,这仅是一种示例,本申请对此不做限定,还可以设置上述第一发送时刻早于上述第二发送时刻。
可选地,设置读取到槽位ID为1#的主控设备延迟一段时间再发送用于请求切换为主用主控设备的请求,读取到槽位ID为2#的主控设备则不需要延迟直接发送用于请求切换为主用主控设备的请求。例如,第一主控设备10位于第一槽位30上,上电读取到槽位ID为1#时,第一设置模块6081设置上述第一请求的第一发送时刻需要在读取ID后延迟5S,如第一主控设备10在00:00:10时刻读取到所在第一槽位30的槽位ID为1#,第二主控设备20也在00:00:10时刻读取到所在第二槽位40的槽位ID为2#,则第一设置模块6081设置在00:00:15时刻发送第一请求,第二主控设备20设置在00:00:10时刻发送第二请求。在此场景下,第一主控设备10需要在00:00:15时刻之前判断是否接收到上述第二主控设备20发送的用于请求切换为主用主控设备的第二请求,第二主控设备20需要在00:00:10时刻之前判断是否接收到上述第一主控设备10发送的用于请求切换为主用主控设备的第一请求,若第一主控设备10在00:00:15时刻已经接收到上述第二请求,则表示第二主控设备20先于第一主控设备10发出用于请求切换为主用主控设备的请求。
设置模块608,用于在上述判断模块判断出上述第一主控设备10接收到上述第二请求时,将上述第一主控设备10的主备状态设置为用于指示上述第一主控设备10为上述备用主控设备。
可选地,若第二主控设备20在向上述第一主控设备10发送用于请求切换为主用主控设备的上述第二请求之前,判断模块606判断出未接收到上述第一请求,表示第一主控设备10还未发出用于请求切换为主用主控设备的上述第一请求,则上述第二主控设备20向上述第一主控设备10发送用于请求切换为主用主控设备的上述第二请求,判断模块606判断出第一主控设备10接收到上述第二请求后,设置模块608可以执行以下任意一种步骤:
1、直接将第一主控设备10的主备状态设置为用于指示上述第一主控设备为上述备用主控设备,而不发送上述第一请求。
2、在第一主控设备10向第二主控设备20返回确认响应,表示已收到第二请求并承认第二主控设备为主用主控设备之后,将第一主控设备10的主备状态设置为用于指示上述第一主控设备10为上述备用主控设备,而不发送上述第一请求。
3、在第一主控设备10向第二主控设备20发送用于请求切换为主用主控设备的第一请求,第二主控设备20接收到第一主控设备10发送的第一请求并向第一主控设备10返回拒绝响应,第一主控设备10接收到拒绝响应后,将第一主控设备10的主备状态设置为用于指示上述第一主控设备10为上述备用主控设备。
可选地,在上述第一主控设备10在向上述第二主控设备20发送用于请求切换为主用主控设备的第一请求之前判断是否接收到上述第二主控设备20发送的用于请求切换为主用主控设备的第二请求,若判断模块606判断未接收到上述第二请求,上述设置模块608还用于在上述判断模块判断出上述第一主控设备10未接收到上述第二请求时,将上述第一主控设备10的主备状态设置为用于指示上述第一主控设备10为上述主用主控设备。
可选地,第一设置模块6081在上述第一主控设备10向上述第二主控设备20发送用于请求切换为主用主控设备的第一请求之前,根据上述第一槽位30的槽位ID设置上述第一请求的第一发送时刻,其中上述第一发送时刻早于上述第二主控设备20根据上述第二槽位40的槽位ID设置的上述第二请求的第二发送时刻。
可选地,系统设置读取到槽位ID为1#的主控设备延迟一段时间再发送用于请求切换为主用主控设备的请求,读取到槽位ID为2#的主控设备则不需要延迟直接发送用于请求切换为主用主控设备的请求。例如,第一主控设备10位于第一槽位30上,上电读取到槽位ID为1#时,第一设置模块6081设置上述第一请求的第一发送时刻需要在读取ID后延迟5S,如第一主控设备10在00:00:10时刻读取到所在第一槽位30的槽位ID为1#,第二主控设备20也在00:00:20时刻读取到所在第二槽位40的槽位ID为2#,第一设置模块6081设置第一主控设备10在00:00:15时刻发送第一请求,第二主控设备20设置在00:00:20时刻发送第二请求。在此场景下,则第一主控设备10延时5S后在00:00:15时刻之前判断是否接收到上述第二主控设备20发送的用于请求切换为主用主控设备的第二请求,第二主控设备20需要在00:00:20时刻判断是否接收到上述第一主控设备10发送的用于请求切换为主用主控设备的第一请求,若第一主控设备10在00:00:15时刻还没接收到上述第二请求,则表示第二主控设备20还未发出用于请求切换为主用主控设备的请求,第一主控设备10将上述第一主控设备10的主备状态设置为用于指示上述第一主控设备10为上述主用主控设备。
判断模块606判断出还未接收到上述第二请求后,设置模块608可以执行以下任意一种步骤:
1、在第一主控设备10向第二主控设备20发送用于请求切换为主用主控设备的第一请求之后,将第一主控设备10的主备状态设置为用于指示上述第一主控设备10为上述主用主控设备。
2、在第一主控设备10向第二主控设备20发送用于请求切换为主用主控设备的第一请求消息,第二主控设备20返回表示已经接收第一请求并承认第二主控设备20为主用主控设备的确认响应后,将第一主控设备10的主备状态设置为用于指示上述第一主控设备10为上述主用主控设备。
3、在第一主控设备10向第二主控设备20发送用于请求切换为主用主控设备的第一请求,并在接收第二主控设备20发送的第二请求并向第二主控设备20返回拒绝响应,将第一主控设备10的主备状态设置为用于指示上述第一主控设备10为上述主用主控设备。
可选地,检测单元502在延迟5S后未检测到上述第二请求消息,而第二主控设备20同时也未检测到上述第一请求消息,例如第一主控设备10位于第一槽位30上,上电读取到槽位ID为1#时,第一设置模块6081设置上述第一请求的第一发送时刻需要在读取ID后延迟5S,第一主控设备10在00:00:00时刻读取到所在第一槽位30的槽位ID为1#,第二主控设备20在00:00:06时刻读取到所在第二槽位40的槽位ID为2#,则第一主控设备10延时5S后在00:00:05时刻判断是否接收到上述第二主控设备20发送的用于请求切换为主用主控设备的第二请求上述第一请求消息和上述第二请求消息,请求消息到达另一个主控设备的通讯时间为2S,则第一请求消息和第二请求消息同时在通讯线路上,上述第一主控设备10在发出上述第一请求消息后,收到上述第二请求消息,在这种情况下,第一主控设备10不向第二主控设备返回第一确认消息,并自动复位,进行下一轮的协商,第二主控设备20等待接收第一确认消息,在等待1S后认为超时,也自动复位,进行下一轮的协商。这样避免了因为外界产生的延时而导致第一主控设备10和第二主控设备20同时向对方发送请求成为主要主控设备的逻辑死循环,由于下一轮协商的开始第二槽位上的第二主控设备20要延时5S才发送上述第二请求,在延时期间第一主控设备已经将上述第一请求发送给第二主控设备,这样系统可以跳出死循环而在第二轮协商出主用主控设备。
监测单元506,用于在上述主备状态指示上述第一主控设备10为备用主控设备、且上述第二主控设备20为主用主控设备时,监测上述第二主控设备20的工作状态。
可选地,上述第二主控设备20同时监控上述第一主控设备10的工作状态,当处于备用主控状态的第一主控设备10出现故障时,发出告警信息,以提示操作人员对备用主控设备实现更换。
如图7所示,上述监测单元506还包括:第一采集模块702、第二采集模块704、第二判断模块706。
第一采集模块702,用于采集上述第二主控设备20发出的第一心跳信号,其中,上述第一心跳信号用于指示上述第二主控设备20的硬件工作状态。
第二采集模块704,用于采集上述第二主控设备20发出的第二心跳信号,其中,上述第二心跳信号用于指示上述第二主控设备20的软件工作状态。
可选地,第二主控设备在上电后正常工作期间,按一定周期向外联设备(例如,第一主控设备)发出第一心跳信号和第二心跳信号,第一心跳信号为第二主控设备20上的硬件产生的心跳信号,第二心跳信号为第二主控设备上的软件产生的心跳信号,软硬件心跳分离,硬件产生的心跳信号表明硬件层面状态,当硬件状态发生变化(例如,故障或者有卡插拔)时,可以根据硬件产生的心跳信号(例如,上述的第一心跳信号)快速(纳秒或更快速度)做出响应;软件产生的心跳信号(例如,上述的第二心跳信号)通常为速度较慢(1-10s左右)的心跳信号,用于表明软件层面状态,速度较慢的软件产生的心跳信号可以大幅减小CPU的占用率。此特性既保证了系统的快速相应,也不需要占用太多的CPU资源。
第二判断模块706,用于在采集到的上述第一心跳信号的周期大于第一预定阈值时,判断出上述第二主控设备的工作状态为指示上述第二主控设备出现故障;在采集到的上述第二心跳信号的周期大于第二预定阈值时,判断出上述第二主控设备的工作状态为指示上述第二主控设备出现故障;在采集到上述第一心跳信号的周期小于等于上述第一预定阈值、且采集到的上述第二心跳信号的周期小于等于上述第二预定阈值时,判断出上述第二主控设备20的工作状态为指示上述第二主控设备20未出现故障。
可选地,第一预定阈值为1ms,第二预定阈值为5s,当第一采集模块702采集到第一心跳信号的周期为2ms时表示第二主控设备20出现故障,当第二采集模块704采集到第二心跳信号的周期为10s时表示第二主控设备20出现故障,当第一采集模块702采集到第一心跳信号的周期为0.1ms,第二采集模块704采集到的第二心跳信号的周期为4s时,第二判断模块706判断第二主控设备20未出现故障。
可选地,当第二主控设备20在进入休眠或者执行插拔卡操作等情况时,硬件状态发生变化,导致硬件产生的心跳信号不能按正常周期发出,而当第二主控设备20在运行软件崩溃,无法启动等情况时,软件心跳信号不能按正常周期发出,第一采集模块702和第二采集模块704采集上述第二主控设备20的第一心跳信号和第二心跳信号,第二判断模块706根据上述第一心跳信号和第二心跳信号的周期和预定阈值周期比较,来判断上述第二主控设备20的工作状态是否指示上述第二主控设备20出现故障。同时发出告警信息,用于指示主用主控设备故障,系统将执行自动切换。
切换单元508,用于在上述工作状态指示上述第二主控设备出现故障时,将上述第一主控设备切换为主用主控设备,并指示上述第二主控设备切换为备用主控设备。
可选地,如图6所示,切换单元508还包括:第三判断模块5081,用于根据第三心跳信号和第四心跳信号判断自身是否出现故障,若未出现故障,则将所述第一主控设备切换为主用主控设备;其中,所述第三心跳信号用于指示所述第一主控设备10的硬件工作状态,所述第四心跳信号用于指示所述第一主控设备10的软件工作状态。在第一主控设备10自身出现故障的情况下,可能发送错误的命令,如将自身切换为主用主控设备,并指示上述第二主控设备切换为备用主控设备的切换指令,导致第一主控设备10和第二主控设备20在没有出现故障的情况下被第一主控设备10强制切换,而通过第三判断模块5081在将自身切换为主用主控设备之前根据第三心跳信号和第四心跳信号判断自身是否出现故障,若出现故障,则切换单元508拒绝将自身切换为主用主控设备,同时还可以产生报警信息,以指示第一主控设备10出现故障,若未出现故障,则切换单元508将自身切换为主用主控设备。这样通过判断切换指令发送方的是否出现故障,避免了因主控设备出现故障而强制切换的情况,进一步保证了切换指令的正确性和系统的可靠性。
可选地,采集到上述第三心跳信号的周期大于第三预定阈值,则第三判断模块5081判断自身的工作状态为指示上述第一主控设备10出现故障;若采集到的上述第四心跳信号的周期大于第四预定阈值,则第三判断模块5081判断出自身的工作状态为指示上述第一主控设备10出现故障;若采集到上述第三心跳信号的周期小于等于上述第三预定阈值、且采集到的上述第四心跳信号的周期小于等于上述第四预定阈值,则第三判断模块5081判断出自身的工作状态为指示上述第一主控设备10未出现故障。
可选地,切换单元508将第二主控设备20切换为备用主控设备后,成为主用主控设备的第一主控设备10对第二主控设备20执行强制复位,第一主控设备10向第二主控设备20发送请求成为主用主控设备的第一请求,将第二主控设备20的的主控状态设置为备用主控状态。
通过本实施例,第一主控设备10与第二主控设备20协商得到主用主控设备状态和备用主控设备状态,从而不依赖独立的仲裁芯片,解决了现有技术中在独立于主控设备之外的仲裁芯片出现故障时无法确定主控设备的主备关系的技术问题,在无仲裁芯片的情况实现主控设备的主备关系的仲裁和切换,且简化了结构。
上述本发明实施例序只是在第一主控设备侧描述实施的情况,不代表实施例的优劣,同样的上述主控设备的切换装置也可以设置在位于第二槽位的第二主控设备上。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、移动终端、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (16)
1.一种主控设备的切换方法,其特征在于,包括:
位于第一槽位上的第一主控设备检测第二主控设备是否在第二槽位上;
若所述第一主控设备检测出所述第二主控设备在所述第二槽位上,则所述第一主控设备与第二主控设备协商所述第一主控设备和所述第二主控设备的主备状态;
若所述主备状态指示所述第一主控设备为备用主控设备、且所述第二主控设备为主用主控设备,则所述第一主控设备监测所述第二主控设备的工作状态;
当所述工作状态指示所述第二主控设备出现故障时,所述第一主控设备将自身切换为主用主控设备,并指示所述第二主控设备切换为备用主控设备;
其中,所述第一主控设备与第二主控设备协商所述第一主控设备和所述第二主控设备的主备状态包括:
所述第一主控设备在向所述第二主控设备发送用于请求切换为主用主控设备的第一请求之前判断是否接收到所述第二主控设备发送的用于请求切换为主用主控设备的第二请求;
若所述第一主控设备判断出接收到所述第二请求,则所述第一主控设备将所述第一主控设备的主备状态设置为用于指示所述第一主控设备为所述备用主控设备;
其中,所述第一主控设备和所述第二主控设备通过高速普通信号组和带校验信号组进行通讯,当所述带校验信号组传递的数据与所述高速普通信号组传递的数据出现矛盾时,以所述带校验信号组的数据为高优先级的数据命令。
2.根据权利要求1所述的方法,其特征在于,在所述第一主控设备向所述第二主控设备发送用于请求切换为主用主控设备的第一请求之前,还包括:
所述第一主控设备根据所述第一槽位的槽位ID设置所述第一请求的第一发送时刻;
其中,所述第一发送时刻晚于所述第二主控设备根据所述第二槽位的槽位ID设置的所述第二请求的第二发送时刻。
3.根据权利要求1所述的方法,其特征在于,在所述第一主控设备在向所述第二主控设备发送用于请求切换为主用主控设备的第一请求之前判断是否接收到所述第二主控设备发送的用于请求切换为主用主控设备的第二请求之后,还包括:
若所述第一主控设备判断出未接收到所述第二请求时,则所述第一主控设备将所述第一主控设备的主备状态设置为用于指示所述第一主控设备为所述主用主控设备。
4.根据权利要求3所述的方法,其特征在于,在所述第一主控设备向所述第二主控设备发送用于请求切换为主用主控设备的第一请求之前,还包括:
所述第一主控设备根据所述第一槽位的槽位ID设置所述第一请求的第一发送时刻;
其中,所述第一发送时刻早于所述第二主控设备根据所述第二槽位的槽位ID设置的所述第二请求的第二发送时刻。
5.根据权利要求1所述的方法,其特征在于,在位于第一槽位上的所述第一主控设备检测所述第二主控设备是否在第二槽位上之后,还包括:
若所述第一主控设备检测出所述第二主控设备不在所述第二槽位上,则所述第一主控设备将所述第一主控设备的主备状态设置为用于指示所述第一主控设备为所述主用主控设备。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述位于第一槽位上的所述第一主控设备检测所述第二主控设备是否在第二槽位上包括:
所述第一主控设备检测是否接收到所述第二主控设备发送的第一心跳信号,其中,所述第一心跳信号用于指示所述第二主控设备的硬件工作状态;
若接收到所述第一心跳信号,则所述第一主控设备判断出所述第二主控设备在所述第二槽位上。
7.根据权利要求1所述的方法,其特征在于,所述第一主控设备监测所述第二主控设备的工作状态包括:
所述第一主控设备采集所述第二主控设备发出的第一心跳信号和第二心跳信号,其中,所述第一心跳信号用于指示所述第二主控设备的硬件工作状态,所述第二心跳信号用于指示所述第二主控设备的软件工作状态;
若采集到的所述第一心跳信号的周期大于第一预定阈值,则所述第一主控设备判断出所述第二主控设备的工作状态为指示所述第二主控设备出现故障;
若采集到的所述第二心跳信号的周期大于第二预定阈值,则所述第一主控设备判断出所述第二主控设备的工作状态为指示所述第二主控设备出现故障;
若采集到所述第一心跳信号的周期小于等于所述第一预定阈值、且采集到的所述第二心跳信号的周期小于等于所述第二预定阈值,则所述第一主控设备判断出所述第二主控设备的工作状态为指示所述第二主控设备未出现故障。
8.根据权利要求1所述的方法,其特征在于,
所述第一主控设备将自身切换为主用主控设备之前,还包括:所述第一主控设备根据第三心跳信号和第四心跳信号判断自身是否出现故障;其中,所述第三心跳信号用于指示所述第一主控设备的硬件工作状态,所述第四心跳信号用于指示所述第一主控设备的软件工作状态;
所述第一主控设备将自身切换为主用主控设备包括:若未出现故障,则所述第一主控设备将自身切换为主用主控设备。
9.一种主控设备的切换装置,设置在位于第一槽位的第一主控设备上,其特征在于,包括:
检测单元,用于检测第二主控设备是否在第二槽位上;
协商单元,用于在检测出所述第二主控设备在所述第二槽位上时,与所述第二主控设备协商所述第一主控设备和所述第二主控设备的主备状态;
监测单元,用于在所述主备状态指示所述第一主控设备为备用主控设备、且所述第二主控设备为主用主控设备时,监测所述第二主控设备的工作状态;
切换单元,用于在所述工作状态指示所述第二主控设备出现故障时,将所述第一主控设备切换为主用主控设备,并指示所述第二主控设备切换为备用主控设备;
其中,所述协商单元包括:
判断模块,用于在所述第一主控设备向所述第二主控设备发送用于请求切换为主用主控设备的第一请求之前判断所述第一主控设备是否接收到所述第二主控设备发送的用于请求切换为主用主控设备的第二请求;
设置模块,用于在所述判断模块判断出所述第一主控设备接收到所述第二请求时,将所述第一主控设备的主备状态设置为用于指示所述第一主控设备为所述备用主控设备;
其中,所述第一主控设备和所述第二主控设备通过高速普通信号组和带校验信号组进行通讯当所述带校验信号组传递的数据与所述高速普通信号组传递的数据出现矛盾时,以所述带校验信号组的数据为高优先级的数据命令。
10.根据权利要求9所述的装置,其特征在于,所述设置模块还包括:
第一设置模块,用于在所述第一主控设备向所述第二主控设备发送用于请求切换为主用主控设备的第一请求之前,根据所述第一槽位的槽位ID设置所述第一请求的第一发送时刻;
其中,所述第一发送时刻晚于所述第二主控设备根据所述第二槽位的槽位ID设置的所述第二请求的第二发送时刻。
11.根据权利要求9所述的装置,其特征在于,所述设置模块还用于在所述判断模块判断出所述第一主控设备未接收到所述第二请求时,将所述第一主控设备的主备状态设置为用于指示所述第一主控设备为所述主用主控设备。
12.根据权利要求11所述的装置,其特征在于,所述设置模块还包括:
第一设置模块,用于在所述第一主控设备向所述第二主控设备发送用于请求切换为主用主控设备的第一请求之前,根据所述第一槽位的槽位ID设置所述第一请求的第一发送时刻;
其中,所述第一发送时刻早于所述第二主控设备根据所述第二槽位的槽位ID设置的所述第二请求的第二发送时刻。
13.根据权利要求9所述的装置,其特征在于,还包括:
设置单元,用于在所述检测单元检测出所述第二主控设备不在所述第二槽位上,将所述第一主控设备的主备状态设置为用于指示所述第一主控设备为所述主用主控设备。
14.根据权利要求9至13中任一项所述的装置,其特征在于,所述检测单元包括:
检测模块,用于检测是否接收到所述第二主控设备发送的第一心跳信号,其中,所述第一心跳信号用于指示所述第二主控设备的硬件工作状态;
第一判断模块,用于在接收到所述第一心跳信号时,判断出所述第二主控设备在所述第二槽位上。
15.根据权利要求9所述的装置,其特征在于,所述监测单元包括:
第一采集模块,用于采集所述第二主控设备发出的第一心跳信号,其中,所述第一心跳信号用于指示所述第二主控设备的硬件工作状态;
第二采集模块,用于采集所述第二主控设备发出的第二心跳信号,其中,所述第二心跳信号用于指示所述第二主控设备的软件工作状态;
第二判断模块,用于在采集到的所述第一心跳信号的周期大于第一预定阈值时,判断出所述第二主控设备的工作状态为指示所述第二主控设备出现故障;在采集到的所述第二心跳信号的周期大于第二预定阈值时,判断出所述第二主控设备的工作状态为指示所述第二主控设备出现故障;在采集到所述第一心跳信号的周期小于等于所述第一预定阈值、且采集到的所述第二心跳信号的周期小于等于所述第二预定阈值时,判断出所述第二主控设备的工作状态为指示所述第二主控设备未出现故障。
16.根据权利要求9所述的装置,其特征在于,所述切换单元还包括:第三判断模块,用于根据第三心跳信号和第四心跳信号判断自身是否出现故障,若未出现故障,则将所述第一主控设备切换为主用主控设备;其中,所述第三心跳信号用于指示所述第一主控设备的硬件工作状态,所述第四心跳信号用于指示所述第一主控设备的软件工作状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410857090.6A CN104579774B (zh) | 2014-12-31 | 2014-12-31 | 主控设备的切换方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410857090.6A CN104579774B (zh) | 2014-12-31 | 2014-12-31 | 主控设备的切换方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104579774A CN104579774A (zh) | 2015-04-29 |
CN104579774B true CN104579774B (zh) | 2018-08-03 |
Family
ID=53095039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410857090.6A Active CN104579774B (zh) | 2014-12-31 | 2014-12-31 | 主控设备的切换方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104579774B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108462529B (zh) * | 2018-04-27 | 2023-12-19 | 上海欣诺通信技术股份有限公司 | 主备板卡切换方法、光传送网络设备及存储介质 |
CN108983695A (zh) * | 2018-07-23 | 2018-12-11 | 郑州云海信息技术有限公司 | 一种基于复杂可编程逻辑器件的主从切换方法和装置 |
CN111628880A (zh) * | 2019-02-27 | 2020-09-04 | 深圳迈瑞生物医疗电子股份有限公司 | 院内设备的故障转移方法和监护系统 |
CN110658718A (zh) * | 2019-11-08 | 2020-01-07 | 北京市轨道交通建设管理有限公司 | 一种多主控冗余切换控制方法及系统 |
CN111338992A (zh) * | 2020-02-25 | 2020-06-26 | 邦彦技术股份有限公司 | 基于fpga的vpx机框板卡管理方法和装置 |
CN112698989B (zh) * | 2020-12-31 | 2024-01-02 | 科华恒盛股份有限公司 | 数据采集系统的双机互备方法及系统 |
CN113742165B (zh) * | 2021-07-23 | 2024-05-24 | 文华学院 | 双主控设备及主备控制方法 |
CN114745400B (zh) * | 2022-03-11 | 2023-10-27 | 百倍云(无锡)智能装备有限公司 | 一种双网关多通道的物联网通信方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1109416C (zh) * | 2000-04-25 | 2003-05-21 | 华为技术有限公司 | 交换机的主备倒换方法及其实现装置 |
CN100477547C (zh) * | 2006-03-02 | 2009-04-08 | 迈普(四川)通信技术有限公司 | 通信设备主从切换方法及通信设备 |
CN101060391A (zh) * | 2007-05-16 | 2007-10-24 | 华为技术有限公司 | 主备服务器切换方法及系统及主用服务器、备用服务器 |
JP5450545B2 (ja) * | 2011-09-15 | 2014-03-26 | 株式会社東芝 | サーバ装置 |
CN103731407B (zh) * | 2012-10-12 | 2017-08-11 | 华为技术有限公司 | Ike报文协商的方法及系统 |
CN103634209B (zh) * | 2013-09-13 | 2017-02-08 | 华为技术有限公司 | 一种传输数据的方法及设备 |
-
2014
- 2014-12-31 CN CN201410857090.6A patent/CN104579774B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN104579774A (zh) | 2015-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104579774B (zh) | 主控设备的切换方法和装置 | |
US10560315B2 (en) | Method and device for processing failure in at least one distributed cluster, and system | |
US10423560B2 (en) | Hot plug method, host controller, host, and PCIE bridge device | |
US10499453B2 (en) | Method and device for bluetooth connection control for multiple playing devices, and music playing system | |
CN107038137B (zh) | 一种热插拔的设备及方法 | |
CN105491635A (zh) | 一种无线设备的匹配方法、装置及系统 | |
CN109417498B (zh) | 信息处理系统、电池模块、控制方法和计算机可读存储介质 | |
CN102840992B (zh) | 一种基于星上网的星载自测试方法 | |
US9859969B2 (en) | Relay apparatus and method of controlling relay apparatus | |
CN111107572A (zh) | 一种冗余备份方法及装置 | |
US20170272339A1 (en) | Method and apparatus for detecting connectivity | |
EP3835903B1 (en) | Fault diagnosis system and server | |
CN103580913A (zh) | 网络装置内发生信号丢失事件之后的自动恢复 | |
CN108983695A (zh) | 一种基于复杂可编程逻辑器件的主从切换方法和装置 | |
CN104503947B (zh) | 多路服务器及其信号处理方法 | |
CN109217922A (zh) | 一种光模块上报接收信号丢失告警的方法及装置 | |
CN113645048B (zh) | 网卡切换方法、装置以及现场可编程逻辑门阵列fpga | |
CN107333252B (zh) | 通信异常处理方法、装置及智能卡终端 | |
CN116137603B (zh) | 链路故障的检测方法和装置、存储介质及电子装置 | |
CN109582626B (zh) | 一种访问总线的方法、装置、设备及可读存储介质 | |
EP2177999B1 (en) | Terminal device | |
CN115987999A (zh) | 多机系统的主从竞争方法、装置、arm及存储介质 | |
US11108589B2 (en) | Battery module, control method, program, and information processing system | |
CN104850522B (zh) | 一种信号输出方法及装置 | |
CN105843336A (zh) | 具有多机柜管理模块的机柜及其韧体更新方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |