掌桥专利:专业的专利平台
掌桥专利
首页

一种主备控制器的切换方法、装置、设备及介质

文献发布时间:2023-06-19 09:23:00


一种主备控制器的切换方法、装置、设备及介质

技术领域

本发明涉及计算机技术领域,特别涉及一种主备控制器的切换方法、装置、设备及介质。

背景技术

在服务器产品中,有时为了提高服务器的稳定性,一般会在服务器中设置两个互为冗余的控制器,也即,一个主控制器和一个备控制器。在服务器中,会存在一部分硬件设备是主控制器和备控制器都可以进行访问的,其中,能够被主控制器和备控制器同时进行访问的硬件设备称之为共享设备。

在现有技术中,为了防止主控制器和备控制器通过同一条通信链路在访问同一个共享设备时所出现的访问冲突问题,一般是将主控制器设置为主状态,将备控制器设置为从状态,其中,通常是由主控制器持有对共享设备的访问权,也即,主控器从共享设备中获取共享数据,然后,再将共享数据发送至备控制器,并以此来实现主控制器和备控制器对共享设备的资源共享。但是,如果主控制器和备控制器出现了访问冲突,在此情况下,主控制器和备控制器就无法获取得到共享设备中的共享数据,并由此导致服务器出现宕机现象或者是数据丢失的现象,从而严重影响了服务器的正常稳定可靠运行。目前,针对这一问题,还没有较为有效的解决办法。

由此可见,如何进一步提高服务器在运行过程中的稳定性与可靠性,是本领域技术人员亟待解决的技术问题。

发明内容

有鉴于此,本发明的目的在于提供一种主备控制器的切换方法、装置、设备及介质,以进一步提高服务器在运行过程中的稳定性与可靠性。其具体方案如下:

一种主备控制器的切换方法,应用于服务器中的备控制器,其中,所述服务器中设置有互为冗余的主控制器和所述备控制器;包括:

当所述主控制器和所述备控制器同时访问共享设备时,则对所述备控制器自身和所述主控制器的运行状态进行检测;

若所述主控制器的运行状态出现异常,且所述备控制器自身的运行状态正常,则将所述备控制器自身切换为主状态,获取所述共享设备的访问权,并获取所述共享设备的共享数据,以将所述共享数据发送至所述主控制器;

若所述主控制器的运行状态正常,则将所述备控制器自身切换为从状态,等待所述主控制器获取所述共享设备的访问权,并等待所述主控制器向所述备控制器自身发送所述共享设备的共享数据。

优选的,所述对所述备控制器自身和所述主控制器的运行状态进行检测过程,包括:

判断所述主控制器是否处于在位状态;

若所述主控制器不在位,则判定所述主控制器的运行状态出现异常。

优选的,所述判断所述主控制器是否处于在位状态的过程,包括:

判断所述主控制器是否正确插接在转换板上;其中,所述转换板为所述服务器中插接所述主控制器和所述备控制器的控制板;

若所述主控制器正确插接在所述转换板上,则判定所述主控制器处于所述在位状态;

若所述主控制器错误插接在所述转换板上,则判定所述主控制器不处于所述在位状态。

优选的,所述判断所述主控制器是否处于在位状态的过程之后,还包括:

若所述主控制器在位,则检测所述主控制器的心跳是否正常;

若所述主控制器的心跳异常,则检测所述主控制器的异常心跳时间是否超过预设时长;

若所述主控制器的异常心跳时间超过所述预设时长,则判断所述主控制器是否在所述服务器的CPLD中正常更新;

若所述主控制器在所述CPLD中更新异常,则判定所述主控制器的运行状态出现异常。

优选的,所述检测所述主控制器的心跳是否正常的过程之后,还包括:

若所述主控制器的心跳正常,则检测所述主控器和所述备控制器自身的主从状态是否正常;

若所述主控制器和所述备控制器自身的主从状态异常,则检测所述备控制器自身的管脚ID是否正确;

若所述备控制器自身的管脚ID不正确,则判定所述主控制器的运行状态正常。

优选的,所述将所述备控制器自身切换为主状态的过程,包括:

按照预设周期从所述服务器的CPLD中读取所述主控制器访问所述共享设备的状态;

若读取到所述主控制器访问所述共享设备失败,则在所述CPLD中将所述备控制器自身更新为所述主状态;

当读取到所述主控制器在所述CPLD中将所述主控制器的状态更新为从状态时,则将所述备控制器自身由所述从状态切换为所述主状态。

优选的,所述获取所述共享设备的共享数据,以将所述共享数据发送至所述主控制器的过程之后,还包括:

当所述主控制器的运行状态恢复正常时,则将所述共享设备的访问权归还至所述主控制器。

相应的,本发明还公开了一种主备控制器的切换装置,应用于服务器中的备控制器,其中,所述服务器中设置有互为冗余的主控制器和所述备控制器;包括:

状态检测模块,用于当所述主控制器和所述备控制器同时访问共享设备时,则对所述备控制器自身和所述主控制器的运行状态进行检测;

第一切换模块,用于若所述主控制器的运行状态出现异常,且所述备控制器自身的运行状态正常,则将所述备控制器自身切换为主状态,获取所述共享设备的访问权,并获取所述共享设备的共享数据,以将所述共享数据发送至所述主控制器;

第二切换模块,用于若所述主控制器的运行状态正常,则将所述备控制器自身切换为从状态,等待所述主控制器获取所述共享设备的访问权,并等待所述主控制器向所述备控制器自身发送所述共享设备的共享数据。

相应的,本发明还公开了一种主备控制器的切换设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如前述所公开的一种主备控制器的切换方法。

相应的,本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前述公开的一种主备控制器的切换方法。

可见,在本发明中,当主控制器和备控制器同时访问共享设备时,备控制器对自身和主控制器的运行状态同时进行检测;如果主控制器的运行状态出现异常,而备控制器自身的运行状态正常,在此情况下,备控制器会直接获取共享设备的访问权,获取共享设备的共享数据,并将共享数据发送至主控制器;如果主控制器的运行状态正常,则说明备控制器的运行状态出现了异常,在此情况下,备控制器会将其自身切换为从状态,同时只需等待主控制器获取共享设备的访问权,并等待主控制器向备控制器发送共享设备的共享数据即可。显然,因为通过此种设置方式能够避免服务器在遇到主控制器和备控制器同时访问共享设备时所出现的宕机现象或者是数据丢失现象,所以,通过该方法就可以进一步提高服务器在运行过程中的稳定性与可靠性。相应的,本发明实施例所提供的一种主备控制器的切换装置、设备及介质,同样具有上述有益效果。

附图说明

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

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

图2为主控制器和备控制器在访问共享设备时的示意图;

图3为本发明实施例所提供的一种对主控制器和备控制器进行检测的流程图;

图4为本发明实施例所提供的一种主备控制器的切换装置的结构图;

图5为本发明实施例所提供的一种主备控制器的切换设备的结构图。

具体实施方式

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

请参见图1,图1为本发明实施例所提供的一种主备控制器的切换方法的流程图,该切换方法包括:

步骤S11:当主控制器和备控制器同时访问共享设备时,则对备控制器自身和主控制器的运行状态进行检测;

步骤S12:若主控制器的运行状态出现异常,且备控制器自身的运行状态正常,则将备控制器自身切换为主状态,获取共享设备的访问权,并获取共享设备的共享数据,以将共享数据发送至主控制器;

步骤S13:若主控制器的运行状态正常,则将备控制器自身切换为从状态,等待主控制器获取共享设备的访问权,并等待主控制器向备控制器自身发送共享设备的共享数据。

请参见图2,图2为主控制器和备控制器在访问共享设备时的示意图,当主控制器和备控制器通过同一条通信链路同时访问共享设备时,会出现访问冲突的问题,并由此导致服务器出现宕机现象或者是数据丢失现象。因此,在本实施例中,为了避免上述现象的发生,是提供了一种主备控制器的切换方法,通过该方法可以进一步提高服务器在运行过程中的稳定性与可靠性。

需要说明的是,在本实施例所提供的主备控制器切换方法中,是在服务器中设置有相互冗余的主控制器和备控制器,在该切换方法中,是以服务器中的备控制器为执行主体进行具体说明。另外,在实际应用中,一般默认会将主控制器设置为主状态,将备控制器设置为从状态,如果主控制器和备控制器出现了同时访问共享设备的现象,则说明主控制器和备控制器的主从状态发生了异常。

具体的,在本实施例中,当主控制器和备控制器同时访问共享设备时,备控制器会对备控制器自身和主控制器的运行状态进行检测,显然,此操作步骤的目的是为了确定到底是主控制器在运行过程中出现了异常,还是备控制器在运行过程中出现了异常。

在备控制器对其自身和主控制器进行检测的过程中,如果主控制器的运行状态出现异常,而备控制器自身的运行状态正常,那么,备控制器会将其自身切换为主状态,并继续执行主控制器的操作逻辑。也即,备控制器会获取共享设备的访问权,并获取共享设备的共享数据,当备控制器获取得到共享设备的共享数据时,会将共享设备的共享数据发送至主控制器;如果备控制器检测出主控制器的运行状态正常,此时则说明备控制器自身的运行状态出现了异常,在此情况下,备控制器会将其自身切换为从状态,此时备控制器只需等待主控制器获取得到共享设备的访问权,并等待主控制器向其发送共享设备的共享数据即可。

可见,在本实施例中,当主控制器和备控制器同时访问共享设备时,备控制器对自身和主控制器的运行状态同时进行检测;如果主控制器的运行状态出现异常,而备控制器自身的运行状态正常,在此情况下,备控制器会直接获取共享设备的访问权,获取共享设备的共享数据,并将共享数据发送至主控制器;如果主控制器的运行状态正常,则说明备控制器的运行状态出现了异常,在此情况下,备控制器会将其自身切换为从状态,同时只需等待主控制器获取共享设备的访问权,并等待主控制器向备控制器发送共享设备的共享数据即可。显然,因为通过此种设置方式能够避免服务器在遇到主控制器和备控制器同时访问共享设备时所出现的宕机现象或者是数据丢失现象,所以,通过该方法就可以进一步提高服务器在运行过程中的稳定性与可靠性。

基于上述实施例,本实施例对技术方案作进一步的说明与优化,请参见图3,图3为本发明实施例所提供的一种对主控制器和备控制器进行检测的流程图。作为一种优选的实施方式,上述步骤:对备控制器自身和主控制器的运行状态进行检测过程,包括:

步骤S101:判断主控制器是否处于在位状态;

步骤S102:若主控制器不在位,则判定主控制器的运行状态出现异常。

可以理解的是,如果主控制器和/或备控制器不在位,则会出现主控制器和备控制器同时访问共享设备的现象,并由此引发服务器出现宕机现象或者是数据丢失现象。

所以,在本实施例中,备控制器在对主控制器的运行状态进行检测的过程中,首先是判断主控制器是否处于在位状态,如果主控制器不在位,则说明主控制器的运行状态出现了问题,在此情况下,备控制器就可以将其自身切换为主状态,并开始执行主控制器的操作逻辑。

作为一种优选的实施方式,上述步骤S101:判断主控制器是否处于在位状态的过程,包括:

判断主控制器是否正确插接在转换板上;

其中,转换板为服务器中插接主控制器和备控制器的控制板;

若主控制器正确插接在转换板上,则判定主控制器处于在位状态;

若主控制器错误插接在转换板上,则判定主控制器不处于在位状态。

可以理解的是,如果主控制器和备控制器均处于正常运行状态,那么,主控制器和备控制器都会按照预先所约定好的规则插接在转换板的固定位置上。

因此,在本实施例中,是利用主控制器和备控制器所具有的这一属性特征来判断主控制器是否处于在位状态,也即,如果主控制器正确插接在转换板上,则说明主控制器处于在位状态,如果主控制器没有正确插接在转换板上,则说明主控制器处于非在位状态,也就是说主控制器此时处于异常运行状态。

作为一种优选的实施方式,上述步骤S101:判断主控制器是否处于在位状态的过程之后,还包括:

步骤S103:若主控制器在位,则检测主控制器的心跳是否正常;

步骤S104:若主控制器的心跳异常,则检测主控制器的异常心跳时间是否超过预设时长;

步骤S105:若主控制器的异常心跳时间超过预设时长,则判断主控制器是否在服务器的CPLD中正常更新;

步骤S106:若主控制器在CPLD中更新异常,则判定主控制器的运行状态出现异常。

具体的,在本实施例中,在判断主控制器是否处于正常运行状态的过程中,如果主控制器处于在位状态,则继续检测主控制器的心跳是否正常,如果主控制器的心跳异常,一种可能是主控制器在执行升级操作,另一种可能是主控制器处于异常运行状态,所以,当检测出主控制器的心跳不正常时,为了确定主控制器是否处于异常运行状态,还需要进一步检测主控制器的异常心跳时间是否超过预设时长。

如果主控制器的异常心跳时间超过预设时长,说明主控制器不是在执行升级操作,此时,则需要继续判断主控制器是否在服务器的CPLD(Complex Programming LogicDevice,复杂可编程逻辑器件)中正常更新,因为主控制器如果处于正常运行状态,那么,主控制器会在CPLD中正常更新自己的状态,所以,如果主控制器没有在CPLD中正常更新自己的状态,则说明主控制器的运行状态出现了异常。

可见,通过本实施例所提供的技术方案,可以使得主控制器运行状态的判断结果更加准确与可靠。

作为一种优选的实施方式,上述步骤:检测主控制器的心跳是否正常的过程之后,还包括:

步骤S107:若主控制器的心跳正常,则检测主控器和备控制器自身的主从状态是否正常;

步骤S108:若主控制器和备控制器自身的主从状态异常,则检测备控制器自身的管脚ID是否正确;

步骤S109:若备控制器自身的管脚ID不正确,则判定主控制器的运行状态正常。

在实际应用中,如果主控制器的心跳正常,也无法说明主控制器处于正常运行状态,此时,备控制器还需要进一步检测主控制器和备控制器自身的主从状态是否正常,也即,检测主控制器是否处于主状态,备控制器是否处于从状态,如果主控制器不处于主状态或者是备控制器自身不处于从状态,则说明主控制器和备控制器中的某一个控制器运行状态出现了错误。

在此情况下,备控制器和主控器就会分别对自身的管脚ID进行检测,也即,主控制器和备控制器会分别检测主控制器和备控制器是否正确插接在转换板上,如果备控制器检测到自身的管脚ID不正确,则说明备控制器没有正确插接在转换板上,这也就说明了主控制器处于正常运行状态,此时,备控制器只需等待主控制器对其运行状态进行控制切换即可。

可见,通过本实施例所提供的技术方案,可以进一步保证备控制器检测结果的准确性。

基于上述实施例,本实施例对技术方案作进一步的说明与优化,作为一种优选的实施方式,上述步骤:将备控制器自身切换为主状态的过程,包括:

按照预设周期从服务器的CPLD中读取主控制器访问共享设备的状态;

若读取到主控制器访问共享设备失败,则在CPLD中将备控制器自身更新为主状态;

当读取到主控制器在CPLD中将主控制器的状态更新为从状态时,则将备控制器自身由从状态切换为主状态。

需要说明的是,在实际应用中,如果主控制器访问共享设备失败,则主控制器会在CPLD的寄存器中写入一个访问失败的标志,如果主控制器访问共享设备成功,则会在CPLD的寄存器中写入一个访问成功的标志。

因此,在本实施例中,为了进一步保证备控制器在将其自身切换为主状态过程中的准确性与可靠性,在备控制器将其自身状态转换为主状态的过程中,首先需要备控制器按照预设周期从服务器的CPLD中读取主控制器访问共享设备的状态,如果备控制器读取到主控制器访问共享设备失败,那么,备控制器先会在CPLD中将自身的状态更新为主状态。显然,备控制器的这一操作步骤是为了表示备控制器已经接收到主控制器访问共享设备失败的消息。

与此同时,当主控制器在CPLD中读取到备控制器更新为主状态的标志时,主控制器会将其自身的状态切换为从状态,并将主控制器切换为从状态的标志更新到CPLD的寄存器中,当备控制器从CPLD中读取到主控制器更新为从状态的标志时,备控制器就会将其自身的运行状态切换为主状态。

可见,通过本实施例所提供的技术方案,可以提高备控制器在状态切换过程中的准确性与可靠性。

基于上述实施例,本实施例对技术方案作进一步的说明与优化,作为一种优选的实施方式,上述步骤:获取共享设备的共享数据,以将共享数据发送至主控制器的过程之后,还包括:

当主控制器的运行状态恢复正常时,则将共享设备的访问权归还至主控制器。

可以理解的是,在实际应用中,如果主控制器和备控制器的运行状态均正常,会默认将主控制器设置为主状态,将备控制器设置为从状态,所以,当备控制器切换为主状态之后,备控制器如果检测到主控制器的运行状态恢复正常,那么,为了保证主控制器和备控制器运行机制的前后统一,备控制器还会将共享设备的访问权归还至主控制器,以继续让主控制器持有共享设备的访问权,并执行后续的数据共享流程。

可见,通过本实施例所提供的技术方案,可以进一步保证服务器在运行过程中的整体稳定性。

请参见图4,图4为本发明实施例所提供的一种主备控制器的切换装置的结构图,该切换装置包括:

状态检测模块21,用于当主控制器和备控制器同时访问共享设备时,则对备控制器自身和主控制器的运行状态进行检测;

第一切换模块22,用于若主控制器的运行状态出现异常,且备控制器自身的运行状态正常,则将备控制器自身切换为主状态,获取共享设备的访问权,并获取共享设备的共享数据,以将共享数据发送至主控制器;

第二切换模块23,用于若主控制器的运行状态正常,则将备控制器自身切换为从状态,等待主控制器获取共享设备的访问权,并等待主控制器向备控制器自身发送共享设备的共享数据。

本发明实施例所提供的一种主备控制器的切换装置,具有前述所公开的一种主备控制器的切换方法所具有的有益效果。

请参见图5,图5为本发明实施例所提供的一种主备控制器的切换设备的结构图,该切换设备包括:

存储器31,用于存储计算机程序;

处理器32,用于执行计算机程序时实现如前述所公开的一种主备控制器的切换方法。

本发明实施例所提供的一种主备控制器的切换设备,具有前述所公开的一种主备控制器的切换方法所具有的有益效果。

相应的,本发明实施例还公开了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如前述所公开的一种主备控制器的切换方法。

本发明实施例所提供的一种计算机可读存储介质,具有前述所公开的一种主备控制器的切换方法所具有的有益效果。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

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

以上对本发明所提供的一种主备控制器的切换方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

相关技术
  • 一种主备控制器的切换方法、装置、设备及介质
  • 通信终端主备服务器的切换方法、装置、设备及存储介质
技术分类

06120112148636