一种控制器主备切换的方法及系统与流程

文档序号:13685686阅读:534来源:国知局
一种控制器主备切换的方法及系统与流程

本发明涉及存储管理设备领域,特别涉及一种控制器主备切换的方法及系统。



背景技术:

随着科技的迅猛发展,大数据技术和云服务技术如同雨后春笋一样快速成长,因此对存储设备的需要和要求也越来越高,特别在金融、政务、电商等领域,存储设备的可靠性变得越来越重要。存储设备是存储领域的中高端产品,保证产品的可靠性、安全性、冗余备份等特性,是产品的核心价值之一。

cmc(chassismanagementcontroller,即管理控制单元)不但负责整个设备的管理和监控,还负责对外的管理控制接口,是整个机箱设备中非常重要的一部分,因此通常设置主备管理控制单元,防止cmc发生故障,因此主备切换机制尤为重要。

在现有技术中,主管理控制器与副管理控制器通过i2c互相进行脉冲检测(即心跳检测),若主管理控制器发生故障则将副管理控制器切换为新的主管理控制器。但是,这种方案的主备切换不准确,可能存在无法切换成功,甚至是信息丢失的情况。

因此,如何提高主备切换的准确率和成功率,是本领域技术人员目前需要解决的技术问题。



技术实现要素:

本申请的目的是提供一种控制器主备切换的方法及系统,能够提高主备切换的准确率和成功率。

为解决上述技术问题,本申请提供一种控制器主备切换的方法,该方法包括:

操作系统接收第一检测信息和第二检测消息;其中,所述第一检测信息由副管理控制器通过检测链路检测主管理控制器得到,所述第二检测信息由所述主管理控制器通过所述检测链路检测所述副管理控制器得到;

根据所述第一检测消息和所述第二检测消息,判断所述主管理控制器是否存在故障,得到判断结果;

若所述判断结果为所述主管理控制器存在故障,则将所述主管理控制器切换为所述副管理控制器。

可选的,根据所述第一检测消息和所述第二检测消息,判断所述主管理控制器是否存在故障,得到判断结果包括:

根据所述第一检测消息判断所述主管理控制器是否存在脉冲信号;

若所述主管理控制器不存在所述脉冲信号,则根据所述第二检测消息判断所述副管理控制器是否存在所述脉冲信号;

若所述副管理控制器存在所述脉冲信号,则得到所述主管理控制器存在故障的所述判断结果;

若所述副管理控制器不存在所述脉冲信号,则将所述检测链路切换为备用链路,并接收所述副管理控制器通过所述备用链路检测所述主管理控制器得到的第三检测信息;

根据所述第三检测信息,判断所述主管理控制器是否存在所述脉冲信号;若不存在,则得到所述主管理控制器存在故障的所述判断结果。

可选的,将所述检测链路切换为备用链路,并接收所述副管理控制器通过所述备用链路检测所述主管理控制器得到的第三检测信息包括:

将所述检测链路切换为网络通道sgmii,并接收所述副管理控制器通过所述网络通道sgmii检测所述主管理控制器得到的所述第三检测信息。

可选的,该方法还包括:

当检测到用户发出的主备切换指令时,将所述主管理控制器切换为所述副管理控制器。

本申请还提供了一种控制器主备切换的系统,该系统包括:

接收模块,操作系统接收第一检测信息和第二检测消息;其中,所述第一检测信息由副管理控制器通过检测链路检测主管理控制器得到,所述第二检测信息由所述主管理控制器通过所述检测链路检测所述副管理控制器得到;

判断模块,用于根据所述第一检测消息和所述第二检测消息,判断所述主管理控制器是否存在故障,得到判断结果;

切换模块,用于当所述判断结果为所述主管理控制器存在故障时,将所述主管理控制器切换为所述副管理控制器。

可选的,所述判断模块包括:

主管理控制器判断单元,用于根据所述第一检测消息判断所述主管理控制器是否存在脉冲信号;

副管理控制器判断单元,用于当所述主管理控制器不存在所述脉冲信号时,根据所述第二检测消息判断所述副管理控制器是否存在所述脉冲信号;

第一结果生成单元,用于当所述副管理控制器存在所述脉冲信号时,得到所述主管理控制器存在故障的所述判断结果;

链路切换单元,用于当所述副管理控制器不存在所述脉冲信号时,将所述检测链路切换为备用链路,并接收所述副管理控制器通过所述备用链路检测所述主管理控制器得到的第三检测信息;

第二结果生成单元,用于根据所述第三检测信息,判断所述主管理控制器是否存在所述脉冲信号;若不存在,则得到所述主管理控制器存在故障的所述判断结果。

可选的,链路切换单元具体为将所述检测链路切换为网络通道sgmii,并接收所述副管理控制器通过所述网络通道sgmii检测所述主管理控制器得到的所述第三检测信息的单元。

可选的,该系统还包括:

用户切换模块,用于当检测到用户发出的主备切换指令时,将所述主管理控制器切换为所述副管理控制器。

本申请还提供了一种机箱管理控制器,该机箱管理控制器包括:

操作系统,接收第一检测信息和第二检测消息;根据所述第一检测消息和所述第二检测消息,判断所述主管理控制器是否存在故障,得到判断结果;若所述判断结果为所述主管理控制器存在故障,则将所述主管理控制器切换为所述副管理控制器。

副管理控制器,用于通过第一i2c链路将所述第一检测结果发送给所述操作系统;

主管理控制器,用于通过第二i2c链路将所述第二检测结果发送给所述操作系统。

本发明提供了一种控制器主备切换的方法,操作系统接收第一检测信息和第二检测消息;根据所述第一检测消息和所述第二检测消息,判断所述主管理控制器是否存在故障,得到判断结果;若所述判断结果为所述主管理控制器存在故障,则将所述主管理控制器切换为所述副管理控制器。

本方法中引入了操作系统来进行主备切换的整个流程,在整个流程中,操作系统通过副管理控制器发送的第一检测结果判断主管理控制器是否出现故障。其中,判断主管理控制器出现故障的原因有两种,第一种是主管理控制器真的出现了故障,第二种是主管理控制器与副管理控制器之间的检测链路出现了故障带来的故障误报。若是检测链路出现故障,操作系统通过主管理控制器发送的第二检测结果可以判断副管理控制器是否出现故障,若副管理控制器出现未出现故障,则说明检测链路正常,主管理控制器出现故障需要进行主备切换。该方法增加了备用检测链路提升了主备切换的可靠性,在主备切换过程中增加了操作系统管理机制提升了主备切换的成功率和准确率。本申请同时还提供了一种控制器主备切换的系统,具有上述有益效果,在此不再赘述。

附图说明

为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例所提供的一种控制器主备切换的方法的流程图;

图2为本申请实施例所提供的另一种控制器主备切换的方法的流程图;

图3为本申请提供的一种控制器主备切换的系统的结构示意图;

图4为本申请提供的一种机箱管理控制器的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

下面请参见图1,图1为本申请实施例所提供的一种控制器主备切换的方法的流程图;

具体步骤可以包括:

步骤s101:操作系统接收第一检测信息和第二检测消息;其中,所述第一检测信息由副管理控制器通过检测链路检测主管理控制器得到,所述第二检测信息由所述主管理控制器通过所述检测链路检测所述副管理控制器得到;

其中,本方法的实施主体是操作系统(operatingsystem,即os),本步骤的目的是判断主管理控制器是否存在故障。可以理解的是,在本步骤之前已经默认主管理控制器与副管理控制器将检测对方的检测结果发送给操作系统。主管理控制器通过检测链路i2c检测副管理控制器的脉冲状况(即心跳检测),并将检测结果发送给操作系统;同理,副管理控制器通过检测链路i2c检测主管理控制器的脉冲状况,并将检测结果发送给操作系统。

可以理解的是副管理控制器在主管理控制器进行管理控制的时候,副管理控制器是处于一种待备状态。故而,副管理控制器是不可能因工作出现故障的情况,因此操作系统根据主管理控制器发送的第二检测结果在绝大多数情况下是检测不到副管理控制器出现故障的,而即使检测到副管理控制器出现故障,由于副管理控制器不在工作状态,在主管理控制器未出现故障的前提下,副管理控制器出现故障是丝毫不影响整个系统工作的。但是,由于主管理控制器不但负责整个设备的管理和监控还负责对外的管理控制接口,当主管理控制器出现故障时则必须选择副管理控制器进行切换,以使副管理控制器接手原主管理控制器的任务,保证整个系统能够继续保持高效稳定的状态继续运行。

由于第一检测结果是副管理控制器检测主管理控制器脉冲状态的检测结果,所以通常来讲,若能够检测到主管理控制器的脉冲则说明主管理控制器不存在故障,若不能检测到主管理控制器的脉冲则说明主管理控制器存在故障。判断主管理控制器中是否有脉冲这个步骤可以是副管理控制器将脉冲状态上报给操作系统,由操作系统进行判断,也就是说第一检测结果中包括主管理控制器的脉冲状态,由操作系统来判断主管理控制器中是否存在脉冲;也可以是副管理控制器先对主管理控制器中的脉冲状态进行判断获得关于脉冲状态的判断结果,再将包含这个判断结果的第一检测结果发送给操作系统进行再次的判断。可以理解的是,在上述两种判断方法都可以实现对主管理控制器是否出现故障的检测,其中第一种方法更加高效省去了副管理控制器进行判断的时间,第二种方法可以缓解操作系统的压力,具体操用哪种方法进行判断本领域的技术人员可以根据具体实际情况进行选择,此处不进行具体的限定。

步骤s102:根据所述第一检测消息和所述第二检测消息,判断所述主管理控制器是否存在故障,得到判断结果;

其中,本步骤中提到的主管理控制器存在故障既可以是主管理控制器本身存在故障,也可以是副管理控制器检测主管理控制器所通过的检测链路存在故障,也就是说可能存在链路故障带来的无法检测副管理控制器的脉冲状态的情况。可以理解的是,若仅仅是因为检测链路i2c发生故障时,而主管理控制器正常工作的情况下,会导致主备切换的误动作,而当副管理控制器切换为主时主管理控制器也无法检测到副管理控制器的脉冲状况,就会导致不断地循环切换,造成整个系统的故障。

经过上述分析可以理解的是,当操作系统根据第一检测结果判断主管理控制器存在故障时,此时的判断可能是正确的判断,有可能是错误的判断,所以此时还需要引入另一个判断依据来对主管理控制器的状态进行再次确认。在本步骤中,操作系统根据主管理控制器发送的第二检测结果来判断副管理控制器是否存在故障。本步骤的目的是确认在步骤s101中是否出现误判的情况。在本步骤中提到的第二检测结果是主管理控制器通过检测链路i2c对副管理控制器的脉冲状态的检测,虽然在步骤s101中解释到副管理控制器的判断结果并不影响主备切换,但是在此处的判断结果起到了判断是否需要进行主备切换的参考作用。

检测链路i2c是主管理控制器与副管理控制器之间进行脉冲检测必须经过的一条链路,若检测链路i2c存在故障,则主管理控制器无法检测到副管理控制器的脉冲状况,副管理控制器也无法检测到主管理控制器的脉冲状况,也就是说此时操作系统会判定主管理控制器和副管理控制器均出现故障。可以理解的是,当检测链路i2c出现故障时,不会出现操作系统检测主管理控制器存在故障而副管理控制器不存在故障的状况;也不会出现操作系统检测副管理控制器存在故障而主管理控制器不存在故障的情况。可以理解的是,上述提到的在检测链路i2c出现故障时操作系统检测到的故障情况都属于误报,也就是说主管理控制器或副管理控制器不一定存在故障。在步骤s101中已经分析过副管理控制器是极少出现故障的,在检测到主管理控制器出现故障的前提下检测到副管理控制器出现故障则说明检测链路i2c出现故障。同理可知,若检测到副管理控制器不存在故障则说明主管理控制器存在故障,而检测链路不存在故障。

步骤s103:若所述判断结果为所述主管理控制器存在故障,则将所述主管理控制器切换为所述副管理控制器;

其中,在进行主备切换时先通过主管理控制器与副管理控制器之间的检测链路和备用链路一起进行信息同步,当信息同步完毕后,将主管理控制器切换为副管理控制器,使副管理控制器在系统中承担管理和监控以及提供对外的管理控制接口的任务。

下面请参见图2,图2为本申请实施例所提供的另一种控制器主备切换的方法的流程图;

具体步骤可以包括:

步骤s201:副管理控制器通过第一i2c链路将所述第一检测结果发送给所述操作系统;

其中,副管理控制器检测主管理控制器的脉冲状况,并将获得的主管理控制器脉冲状况发送给操作系统。可以理解的是,副管理控制器是按照预设周期对主管理控制器的脉冲状况进行检测的,本领域的技术人员可以根据具体实际状况进行设定预设周期,总之只要能够将主管理控制器的状况快速反馈给操作系统即可,并不对预设周期的具体数值进行限定。

步骤s202:所述主管理控制器通过第二i2c链路将所述第二检测结果发送给所述操作系统;

其中,主管理控制器检测副管理控制器的脉冲状况,并将获得的副管理控制器脉冲状况发送给操作系统。在本步骤中主管理控制器也是按照预设周期对副管理控制器进行检测的,对于预设周期的设置可以参见步骤s201,此处不再赘述,但是为了检测精确本步骤中的预设周期与步骤s201中的周期最好相同。

可以理解的是,步骤s201与步骤s202的先后顺序可以调换,步骤s201与步骤s202也可以同时进行。

步骤s203:操作系统接收第一检测信息和第二检测消息;

步骤s204:根据所述第一检测消息判断所述主管理控制器是否存在脉冲信号;

步骤s205:若所述主管理控制器不存在所述脉冲信号,则根据所述第二检测消息判断所述副管理控制器是否存在所述脉冲信号;

其中,若副管理控制器存在故障,则说明检测链路i2c存在故障,需要进行更换。但是检测链路i2c存在故障并不说明主管理控制器不存在故障,可能存在这样的情况:主管理控制器与检测链路i2c均出现故障,此时在更换备用链路后还是需要进行主备切换。因此,将检测链路i2c切换为备用链路后还需要操作系统对主管理控制器是否存在故障进行判断。此时检测主管理控制器是否存在故障的方法与步骤s101中的检测方法基本一致,也是通过副管理控制器检测主管理控制器得到的检测结果进行判断,但是值得注意的是,此处利用的检测结果是副管理控制器通过备用链路对主管理控制器进行检测得到的检测结果,即第三检测结果。

当操作系统根据第三检测结果判断主管理控制器不存在故障时,不进行主备切换,说明检测链路存在故障;当操作系统根据第三检测结果判断主管理控制器存在故障时,进行主备切换。进行主备切换的具体流程与步骤s103基本一致,此处不再赘述。

步骤s206:若所述副管理控制器存在所述脉冲信号,则得到所述主管理控制器存在故障的所述判断结果,进入步骤s209;

其中,由于在之前的分析中可以知道若检测链路i2c存在故障将会造成主管理控制器和副管理控制器互相无法检测到对方的脉冲信号,若在本步骤检测到副管理控制器存在脉冲信号,则说明检测链路i2c并不存在故障,若以说明在步骤s205中检测到的故障为主管理控制器存在故障,需要将主管理控制器更换为副管理控制器。

步骤s207:若所述副管理控制器不存在所述脉冲信号,则将所述检测链路切换为备用链路,并接收所述副管理控制器通过所述备用链路检测所述主管理控制器得到的第三检测信息;

步骤s208:根据所述第三检测信息,判断所述主管理控制器是否存在所述脉冲信号;若不存在,则得到所述主管理控制器存在故障的所述判断结果。

步骤s209:若所述判断结果为所述主管理控制器存在故障,则将所述主管理控制器切换为所述副管理控制器。

请参见图3,图3为本申请提供的一种控制器主备切换的系统的结构示意图;

该系统可以包括:

接收模块110,操作系统接收第一检测信息和第二检测消息;其中,所述第一检测信息由副管理控制器通过检测链路检测主管理控制器得到,所述第二检测信息由所述主管理控制器通过所述检测链路检测所述副管理控制器得到;

判断模块120,用于根据所述第一检测消息和所述第二检测消息,判断所述主管理控制器是否存在故障,得到判断结果;

切换模块130,用于当所述判断结果为所述主管理控制器存在故障时,将所述主管理控制器切换为所述副管理控制器。

在本申请提供的另一种控制器主备切换的系统的实施例中,所述判断模块120包括:

主管理控制器判断单元,用于根据所述第一检测消息判断所述主管理控制器是否存在脉冲信号;

副管理控制器判断单元,用于当所述主管理控制器不存在所述脉冲信号时,根据所述第二检测消息判断所述副管理控制器是否存在所述脉冲信号;

第一结果生成单元,用于当所述副管理控制器存在所述脉冲信号时,得到所述主管理控制器存在故障的所述判断结果;

链路切换单元,用于当所述副管理控制器不存在所述脉冲信号时,将所述检测链路切换为备用链路,并接收所述副管理控制器通过所述备用链路检测所述主管理控制器得到的第三检测信息;

第二结果生成单元,用于根据所述第三检测信息,判断所述主管理控制器是否存在所述脉冲信号;若不存在,则得到所述主管理控制器存在故障的所述判断结果。

进一步的,链路切换单元具体为将所述检测链路切换为网络通道sgmii,并接收所述副管理控制器通过所述网络通道sgmii检测所述主管理控制器得到的所述第三检测信息的单元。

进一步的,该系统还包括:

用户切换模块,用于当检测到用户发出的主备切换指令时,将所述主管理控制器切换为所述副管理控制器。

由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

请参见图4,图4为本申请提供的一种机箱管理控制器的结构示意图,包括:

操作系统100,接收第一检测信息和第二检测消息;根据所述第一检测消息和所述第二检测消息,判断所述主管理控制器是否存在故障,得到判断结果;若所述判断结果为所述主管理控制器存在故障,则将所述主管理控制器切换为所述副管理控制器。

副管理控制器200,用于通过第一i2c链路将所述第一检测结果发送给所述操作系统;

主管理控制器300,用于通过第二i2c链路将所述第二检测结果发送给所述操作系统。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

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