一种基于双控存储的故障修复方法及系统与流程

文档序号:14279628阅读:263来源:国知局
一种基于双控存储的故障修复方法及系统与流程

本发明涉及云计算数据中心技术领域,特别涉及一种基于双控存储的故障修复方法、系统及计算机可读存储介质。



背景技术:

随着现代社会科技的发展,在如今的云计算时代,对存储的需求越来越大,可靠性要求越来越高。

现有技术中,双控存储的设计都是两个控制器各自工作,互为冗余,若其中一个控制器异常,另外一个控制器接管,继续提供服务;如果一个控制器出现故障,目前的方法往往是直接进行报修更换,这样的控制器故障处理方式,使得控制器的故障率过高,影响存储服务器的可靠性,并增加了工作人员的工作量。因此,如何能够自动对故障的控制器进行修复,降低控制器的故障率,提高存储服务器的可靠性,减少工作人员的工作量,是现今急需解决的问题。



技术实现要素:

本发明的目的是提供一种基于双控存储的故障修复方法、系统及计算机可读存储介质,以利用双控存储中的一个控制器的自动对故障的另一控制器进行修复,降低控制器的故障率,提高存储服务器的可靠性。

为解决上述技术问题,本发明提供一种基于双控存储的故障修复方法,包括:

第一控制器中的第一处理器通过与第二控制器中的第二处理器相连的pcie总线获取所述第二控制器的状态信息;

根据所述状态信息判断所述第二控制器是否出现故障;

若是,则控制所述第一控制器中的第一cpld向所述第二控制器中的第二cpld发送重启信号,使所述第二控制器进行关机重启;其中,所述第一cpld与所述第二cpld通过gpio相连。

可选的,该方法还包括:

所述第一处理器根据所述第一控制器中的第一ses芯片发送的第二控制器异常信息,判断所述第二控制器是否出现故障;其中,所述第一ses芯片与所述第二控制器中的第二ses芯片相连;

若是,则执行所述控制所述第一控制器中的第一cpld向所述第二控制器中的第二cpld发送重启信号,使所述第二控制器进行关机重启的步骤。

可选的,所述第一ses芯片与所述第二ses芯片通过两路uart相连。

可选的,所述控制所述第一控制器中的第一cpld向所述第二控制器中的第二cpld发送重启信号,使所述第二控制器进行关机重启,包括:

控制所述第一cpld向所述第二cpld发送大于或等于4秒的低电平信号,使所述第二控制器关机;

控制所述第一cpld向所述第二cpld发送大于或等于40毫秒的低电平信号,使所述第二控制器启动。

本发明还提供了一种基于双控存储的故障修复系统,包括:第一控制器和第二控制器;

其中,所述第一控制器中的第一处理器与所述第二控制器中的第二处理器通过pcie总线相连;所述第一控制器中的第一cpld与所述第二控制器中的第二cpld通过gpio相连。

可选的,所述第一控制器中的第一ses芯片与所述第二控制器中的第二ses芯片相连。

可选的,所述第一ses芯片与所述第二ses芯片通过两路uart相连。

此外,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的基于双控存储的故障修复方法的步骤。

本发明所提供的一种基于双控存储的故障修复方法,包括:第一控制器中的第一处理器通过与第二控制器中的第二处理器相连的pcie总线获取第二控制器的状态信息;根据状态信息判断第二控制器是否出现故障;若是,则控制第一控制器中的第一cpld向第二控制器中的第二cpld发送重启信号,使第二控制器进行关机重启;其中,第一cpld与第二cpld通过gpio相连;

可见,本发明通过第一控制器中的第一处理器通过与第二控制器中的第二处理器相连的pcie总线获取第二控制器的状态信息,可以使双控存储中的两个控制器的健康状况同步;通过控制第一控制器中的第一cpld向第二控制器中的第二cpld发送重启信号,使第二控制器进行关机重启,可以使双控存储中的一个控制器通过cpld对故障的另一控制器进行关机重启操作,令故障的控制器自动重启修复,降低了控制器的故障率,提高了存储服务器的可靠性,减少了工作人员的工作量。此外,本发明还提供了一种基于双控存储的故障修复系统及计算机可读存储介质,同样具有上述有益效果。

附图说明

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

图1为本发明实施例所提供的一种基于双控存储的故障修复方法的流程图;

图2为本发明实施例所提供的一种基于双控存储的故障修复方法的两个控制器的结构示意图;

图3为本发明实施例所提供的一种基于双控存储的故障修复系统的结构图。

具体实施方式

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

请参考图1,图1为本发明实施例所提供的一种基于双控存储的故障修复方法的流程图。该方法可以包括:

步骤101:第一控制器中的第一处理器通过与第二控制器中的第二处理器相连的pcie总线获取第二控制器的状态信息。

其中,第一控制器和第二控制器为双控存储中的两个控制器,本实施中的第一处理器可以为双控存储中的任一控制器中的处理器,只要实现本实施例利用第一处理器监控双控存储中的另一控制器(第二控制器)的健康状态,并第二控制器故障时,对第二控制器进行关机重启操作的目的,对于第一处理器具体选择,可以由设计人员根据实用场景和用户需求自行设置,如可以将双控存储中的两个控制器中的处理器均分别作为第一处理器,实现两个控制器的相互监控。

可以理解的是,本步骤的目的可以为第一处理器通过与第二处理之间的连接,获取第二控制器的状态信息,以利用该状态信息判断第二控制器是否出现故障。对于第一处理器获取的第二控制器的状态信息的具体内容,可以由设计人员根据实用场景和用户需求自行设置,只要第一处理器可以根据该状态信息确定第二控制器是否出现故障,本实施例对此不做任何限制。

需要说明的是,对于第一处理器获取第二控制器的状态信息的具体方式,也就是,第一控制器中的第一处理器与第二控制器中的第二处理器的具体连接方式,可以由设计人员自行设置,可以如图2所示,第一控制器(控制器a)中的第一处理器(cpu)通过与第二控制器(控制器b)中的第二处理器(cpu)相连的pcie总线获取第二处理器发送的第二控制器的状态信息,也就是说,双控存储中的两个控制器中的处理器之间可以通过pcie总线组成的ntb(non-transparentbridge,非透明桥),进行数据高速缓存同步。只要可以保证第一处理器可以获取第二处理器发送的第二控制器的状态信息,本实施例对此不做任何限制。

具体的,对于第一处理器获取第二控制器的状态信息的具体过程,可以由设计人员自行设置,如第一处理器可以按预设时间间隔获取第二控制器的状态信息或实时获取第二控制器的状态信息。本实施例对此不做任何限制。

步骤102:根据状态信息判断第二控制器是否出现故障;若是,则进入步骤103。

其中,本步骤的目的可以为第一处理器根据获取的第二控制器的状态信息,判断第二控制器是否出现故障,以在第二控制器出现故障的情况下,通过步骤103使第二控制器进行关机重启。对于本步骤中根据状态信息判断第二控制器是否出现故障的具体过程,可以由设计人员根据实用场景和用户需求自行设置,只要第一处理器可以利用获取的状态信息确定第二控制器是否出现故障,本实施例对此不做任何限制。

可以理解的是,本实施例中通过第一处理器通过与第二处理之间的pcie总线组成的ntb,使得在第二控制器出现故障时,第一处理器可以感知。为了进一步提高第一处理器对第二控制器故障的感知能力,避免由于第一处理器通过与第二处理之间的pcie总线出现问题,造成的第一处理器造成的无法感知第二控制器故障的问题,可以将双控存储中的两个控制器的ses(scsienclosureservices,scsi机箱管理)芯片相连,也就是,将第一控制器中的第一ses芯片与第二控制器中的第二ses芯片相连,使第一ses芯片可以获取第二控制器的硬件健康状况信息,如温度,电压等信息,感知第二控制器是否出现异常,从而使第一ses芯片在确定第二控制器出现异常时,向第一处理器发送第二控制器异常信息,提高第一处理器对第二控制器故障的感知能力。

也就是说,本步骤还可以为第一处理器根据获取的状态信息和第一ses芯片发送的第二控制器异常信息,判断第二控制器是否出现故障,如第一处理器可以根据状态信息和第二控制器异常信息对应的第二控制器的异常程度,确定第二控制器是否出现故障。或者,本实施所提供的方法还可以包括在第一处理器通过与第二处理之间的pcie总线出现问题时,第一处理器根据第一ses芯片发送的第二控制器异常信息,判断第二控制器是否出现故障的步骤。以提高第一处理器对第二控制器故障的感知能力。

具体的,对于第一ses芯片发送的第二控制器异常信息的具体内容,可以由设计人员根据是实用场景或用户需求自行设置,如可以为第一ses芯片确定第二控制器发生异常后,对应的异常状态信息或硬件健康状况信息,也就是,第一ses芯片可以先根据获取第二控制器的硬件健康状况信息,确定第二控制器是否出现异常,在第二控制器发生异常后,将异常状态对应的预设信息或原始的硬件健康状况信息发送到第一处理器,使第一处理器确定第二控制器是否出现故障;还可以为第一ses芯片获取的第二控制器的硬件健康状况信息,也就是,第一ses芯片直接将获取的硬件健康状况信息发送到第一处理器,由第一处理器根据硬件健康状况信息确定第二控制器是否出现故障。只要第一处理器可以根据第一ses芯片发送的第二控制器异常信息确定第二控制器是否出现故障,对于第二控制器异常信息的具体内容,本实施例对此不做任何限制。

需要说明的是,第一ses芯片与第二ses芯片的连接方式,可以由设计人员自行设置,如可以直接通过一路uart(universalasynchronousreceiver/transmitter,通用异步收发传输器)相连,还可以如图2所示,通过两路uart相连,提高连接的可靠性。只要通过第一ses芯片与第二ses芯片之间的连接,使第一ses芯片可以向第一处理器发送第二控制器异常信息,本实施例对此不做任何限制。

步骤103:控制第一控制器中的第一cpld向第二控制器中的第二cpld发送重启信号,使第二控制器进行关机重启;其中,第一cpld与第二cpld通过gpio相连。

可以理解的是,本步骤的目的可以为第一处理器通过控制第一控制器中的第一cpld(complexprogrammablelogicdevice,复杂可编程逻辑器件),利用第一cpld与第二控制器中的第二cpld之间的gpio(generalpurposeinputoutput,通用输入输出)的高低模拟开关按键,从而实现控制第二控制器进行关机重启。也就是说,本步骤中的重启信号可以为第一cpld拉低gpio大于或等于4秒向第二cpld发送的大于或等于4秒的低电平信号和拉高gpio后再拉低gpio大于或等于40毫秒的低电平信号,使第二控制器先关机再启动。对于重启信号的具体内容,可以由设计人员自行设置,可以如上述设置,也可以采用其他方式设置,只要可以保证第二控制器可以根据该重启信号进行重启,本实施例对此不做任何限制。

需要说明的是,对于本步骤第一处理器控制第一cpld的具体方式,可以如图2所示,当第一处理器确定第二控制器出现故障后,可以通过与第一控制器通过pcie总线连接的第一sas芯片(sas,serialattachedscsi串行式scsi总线)控制与第一sas芯片通过sas连接的第一ses芯片,使第一ses芯片利用i2c控制第一cpld,由第二cpld执行第二控制器的关机重启。只要第一处理器可以控制第一cpld向第二cpld发送重启信号,使第二控制器进行关机重启,本实施例对此不做任何限制。

其中,本实施例所提供的方法可以为第一控制器中的第一处理器所执行的过程。具体的,可以如图2所示,由第一处理器执行本实施例所提供的方法对应的上层软件(计算机程序)实现本实施例所提供的方法。只要第一处理器可以执行实现本实施例所提供的方法,对于具体的上层软件的设置,可以由设计人员根据实用场景和用户需求自行设置,本实施例对此不做任何限制。

本实施例中,本发明实施例通过第一控制器中的第一处理器通过与第二控制器中的第二处理器相连的pcie总线获取第二控制器的状态信息,可以使双控存储中的两个控制器的健康状况同步;通过控制第一控制器中的第一cpld向第二控制器中的第二cpld发送重启信号,使第二控制器进行关机重启,可以使双控存储中的一个控制器通过cpld对故障的另一控制器进行关机重启操作,令故障的控制器自动重启修复,降低了控制器的故障率,提高了存储服务器的可靠性,减少了工作人员的工作量。

请参考图3,图3为本发明实施例所提供的一种基于双控存储的故障修复系统的结构图。该系统可以包括:第一控制器100和第二控制器200;

其中,第一控制器100中的第一处理器110与第二控制器中200的第二处理器210通过pcie总线相连;第一控制器100中的第一cpld120与第二控制器200中的第二cpld220通过gpio相连。

可选的,第一控制器100中的第一ses芯片与第二控制器200中的第二ses芯片相连。

可选的,第一ses芯片与第二ses芯片通过两路uart相连。

本实施例中,本发明实施例通过第一控制器100中的第一处理器110通过与第二控制器200中的第二处理器210相连的pcie总线获取第二控制器的状态信息,可以使双控存储中的两个控制器的健康状况同步;通过控制第一控制器100中的第一cpld120向第二控制器200中的第二cpld220发送重启信号,使第二控制器200进行关机重启,可以使双控存储中的一个控制器通过cpld对故障的另一控制器进行关机重启操作,令故障的控制器自动重启修复,降低了控制器的故障率,提高了存储服务器的可靠性。

此外,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述实施例所提供的基于双控存储的故障修复方法的步骤。该存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

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

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本发明所提供的基于双控存储的故障修复方法、系统及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

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