用于服务器的控制处理器单元重启的方法、装置及服务器与流程

文档序号:11133221 阅读:302 来源:国知局
用于服务器的控制处理器单元重启的方法、装置及服务器与制造工艺

本发明涉及电路控制技术领域,更具体地,本发明涉及一种控制服务器内处理器断电重启的方法、装置及服务器。



背景技术:

服务器要求能够长时间无人值守工作,但是因为电磁干扰或者软件设计存在Bug等问题,工作一段时间后每一个处理器都存在宕机可能性。针对这种情况,一般通过看门狗(Watchdog)来提高系统的可用性;在系统没有按照预定的流程执行时,看门狗会超时,重启系统以恢复到正常状态。

但是因为软硬件设计不可能做到完美,该方法并不总是奏效,在很多情况下存在无法重启或者重启无效的情况,比如由于软件设计缺陷,看门狗没有起到应有的作用;或者系统已经异常了,由于喂狗位置设置不合理,仍然有例程在继续喂狗;或者还没启动看门狗,系统就进入了一个死锁状态等。可也能由于硬件设计缺陷,重启反而让系统进入不可预测的状态;某些存储芯片必须要1ms以上的断电时间才能够进入启动模式。还可能由于存在残留的状态,即便重启也无法恢复,必须断电才能让系统恢复到正常状态。



技术实现要素:

本发明的一个目的是提供一种用于服务器的控制处理器单元重启的新技术方案。

根据本发明的第一方面,提供了一种用于服务器的控制处理器单元重启的方法,所述服务器包括至少两个处理器单元构成的处理器集群,每一所述处理器单元独立供电,所述方法包括:

检测每一处理器单元的工作状态是否存在异常,如是,则:

检测出所述处理器集群中的异常处理器单元及与每一所述异常处理器单元对应的正常处理器单元;

发送指令至任一所述正常处理器单元、以使所述任一所述正常处理器单元控制对应的异常处理器单元重启。

可选的是,与所述异常处理器单元对应的正常处理器单元具体为能够控制所述异常处理器单元断电重启的正常处理器单元。

可选的是,所述发送指令至所述正常处理器单元、以使所述正常处理器单元控制所述异常处理器单元断电重启具体为:

发送指令至任一所述正常处理器单元、以使所述任一所述正常处理器单元输出断电信号;

根据所述断电信号输出重启信号至所述异常处理器单元、以使所述异常处理器单元断电重启。

根据本发明的第二方面,提供了一种用于服务器的控制处理器单元重启的装置,所述服务器包括至少两个处理器构成的处理器集群,每一所述处理器独立供电,所述装置包括:

异常检测模块,用于检测每一处理器单元的工作状态是否存在异常;

处理器单元检测模块,用于在所述异常检测模块的检测结果为是的情况下,检测出所述处理器集群中的异常处理器单元及与每一所述异常处理器单元对应的正常处理器单元;

指令发送模块,用于发送指令至任一所述正常处理器单元、以使所述任一所述正常处理器单元控制对应的异常处理器重启。

可选的是,与所述异常处理器单元对应的正常处理器单元具体为能够控制所述异常处理器单元断电重启的正常处理器单元。

可选的是,所述指令发送模块还包括:

指令发送单元,用于发送指令至任一所述正常处理器单元、以使所述任一所述正常处理器单元输出断电信号;

在重启信号输出单元,用于根据所述断电信号输出重启信号至所述异常处理器单元、以使所述异常处理器单元断电重启。

根据本发明的第三方面,提供了一种服务器,包括处理器和存储器,其中,所述存储器用于存储指令,所述指令用于控制所述处理器进行操作以执行根据本发明第一方面所述的方法。

根据本发明的第四方面,提供了一种服务器,包括:

本发明第二方面所述的装置;

至少两个处理器单元构成的处理器集群,且每一所述处理器独立供电。

可选的是,每一所述处理器单元的电源使能端均连接至所述服务器的电源总线上,所述指令发送模块具体用于发送指令至任一所述正常处理器单元、以使所述任一所述正常处理器单元通过所述电源总线控制对应的异常处理器重启。

可选的是,所述处理器单元至少包括ARM处理器单元或者CPU单元。

本发明的发明人发现,在现有技术中,存在处理器无法重启或者重启无效的问题。在本发明的实施例中,通过操作正常处理器控制异常处理器断电重启,以便使异常处理器恢复正常工作,能够大幅度提高多处理器的服务器的可用性。因此,本发明所要实现的技术任务或者所要解决的技术问题是本领域技术人员从未想到的或者没有预期到的,故本发明是一种新的技术方案。

通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。

附图说明

被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。

图1是现有多处理器架构服务器的一种实施结构的示意图;

图2是根据本发明一种用于服务器的控制处理器单元重启的方法的一种实施方式的流程图;

图3是根据本发明处理器单元与电源总线之间一种连接结构的电路原理图;

图4是根据本发明一种多处理器架构服务器的一种实施结构的方框原理图;

图5是根据本发明一种用于服务器的控制处理器单元重启的装置的一种实施结构的方框原理图。

具体实施方式

现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。

在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

现有的多处理器架构服务器,如图1所示,该服务器包括至少两个处理器构成的处理器集群,每个处理器之间相互独立,并且电源可独立控制,具体的是,每个处理器都具有电源使能端,该电源使能端均连到电源控制总线上,可以通过向该电源使能端发送使能信号以控制相应处理器的供电。

为了解决现有技术中存在多处理器架构服务器中的处理器无法重启或者重启无效的问题,提供了一种用于服务器的控制处理器单元重启的方法,通过操作正常处理器控制异常处理器断电重启,以便使异常处理器恢复正常工作,能够大幅度提高多处理器的服务器的可用性。

图2是根据本发明一种用于服务器的控制处理器单元重启的方法的一种实施方式的流程图。

根据图2所示,该方法包括以下步骤:

步骤S201,检测所有处理器单元的工作状态是否存在异常,如是,则执行步骤S202,如否,则继续执行步骤S201。

进一步地,由于所有的处理器单元实时发送各自的工作状态,可以通过检测接收到的工作状态是否完整来检测是否存在工作状态存在异常的处理器单元。

下面以一多ARM集群服务器为例进行说明,例如该服务器在一个标准3U机箱内集成了80个ARM处理器单元,这80个ARM处理器单元组成一个集群,对外提供编解码服务。

服务器采用插卡背板的设计模式,每一个ARM处理器单元都是一块类似于内存的卡片(本领域技术人员也将其称为业务卡),这些卡片通过金手指连接到背板总线上,金手指上有以太网信号、状态信号、控制信号等。以太网信号汇聚到4块交换芯片上,以4个上行千兆口对外输出;如果80个ARM处理器单元的以太网不经过汇聚直接输出,将有80个网口,对于布线都是一个挑战。

每一个ARM处理器单元通过网络,以心跳的方式向中心服务器(一般是X86架构)报告自己的状态。

这样,如果接收到的工作状态为80个,则说明所有ARM处理器单元均正常,如果接收到的工作状态少于80个,则说明存在工作状态异常的处理器单元,对于异常的处理器单元,断电重启是最干净彻底的恢复正常的方法。

步骤S202,检测出处理器集群中的异常处理器单元、及与每一异常处理器单元对应的正常处理器单元。

其中,工作状态正常的处理器为正常处理器,工作状态存在异常的处理器为异常处理器。

进一步地,与异常处理器单元对应的正常处理器单元可以为能够控制该异常处理器单元重启的正常处理器单元。

例如,中心服务器综合接收到的状态报告,再根据机箱的结构检测出发生异常的ARM处理器单元;比如中心服务器接收到xxx号机箱(机箱ID),第1号至第53号、以及第55号至第80号ARM处理器单元的报告,缺了第54号ARM处理器单元的报告;则可以断定第54号ARM处理器单元发生了异常。

每一个ARM处理器单元的GPIO可以按照图3所示的集电极开路方式输出,或者也可以是开漏输出,然后连接到电源总线BUS[1..N]上面。ARM处理器单元与BUS[1..N]之间的连接方法如图4所示,其中M=8表示ARM处理器单元有8个GPIO用于单元间断电重启,L=4表示在BUS[1-N]中选择第4个信号用于本ARM处理器单元的重启,N=80表示机箱中一共有80个ARM处理器单元。

如果将由BUS[L]控制的ARM处理器单元命名为第L号ARM处理器单元,则第4号ARM处理器单元可以重启第1号至第8号ARM处理器单元,第5号ARM处理器单元可以重启第2号至第9号ARM处理器单元,以此类推。对于靠后面的第n号ARM处理器单元,如果L+n>N,第L+n号其实指的是第[(L+n)Mod N]号ARM处理器单元;如果M+n>N,第M+n号其实指的是第[(L+n)Mod N]号ARM处理器单元,其中,mod运算即求余运算,是在整数运算中求一个整数(L+n)除以另一个整数N的余数的运算,且不考虑运算的商。比如第80号ARM处理器单元可以由第77号至第84号ARM处理器单元重启,其实指的可以被第77号至第80号,第1号至第4号ARM处理器单元重启。比如第81号ARM处理器单元可以由第78号至第85号ARM处理器单元重启,其实指的是第1号ARM处理器单元,可以被第78号至第80号,第1号至第5号ARM处理器单元重启。这样,也就可以是每一个ARM处理器单元都能够重启其前面3个后面4个ARM处理器单元,每一个ARM处理器单元都能够被其前面4个后面3个ARM处理器单元重启。

例如当第80号ARM处理器单元为异常处理器单元时,由于其可以被第77号至第80号,第1号至第4号ARM处理器单元重启,因此,与第80号ARM处理器单元对应的正常处理器单元为第77号至第80号,第1号至第4号ARM处理器单元。

步骤S203,发送指令至任一正常处理器单元、以使该正常处理器单元控制对应的异常处理器单元重启。

具体为,发送指令至任一正常处理器单元、以使该正常处理器单元输出断电信号;根据该断电信号输出重启信号至该异常处理器单元、以使其断电重启。

例如当前面所述第54号ARM处理器单元为异常处理器单元时,只要第51号至第58号处理器单元中任一个输出重启信号,第54号ARM处理器单元就会断电重启。

具体的,例如在一个异常ARM处理器单元可以由其他七个正常ARM处理器单元控制断电重启的情况下,只需有一个正常ARM处理器单元输出重启信号、控制该异常ARM处理器单元断电重启即可,而不是需要所有正常ARM处理器单元均输出重启信号,这是因为在这七个正常ARM处理器单元中如果同时出现异常ARM处理器单元,将使得本发明方法失效、以致无法控制这两个异常ARM处理器单元断电重启。

进一步地,处理器单元均具有电源使能端,该电源使能端连到电源控制总线上,通过该信号可以控制处理器单元的供电。

由于处理器单元的GPIO输出,通过外部电路转换为集电极开路(OC)或者开漏(OD)方式输出,连接到电源控制总线上,如图3所示,电源控制总线上的每一个信号都可以由多个处理器单元输出,他们之间是线与的关系,其中控制器单元的电源控制信号是高电平有效,这样同时也能够提高冗余度。

这样,当发现有异常的处理器单元时,通过操作正常的处理器单元控制其GPIO输出,来对异常处理器单元进行断电重启。

假设一个处理器单元发生故障的概率是1%,则它以及前面4个后面3个处理器单元同时发生故障的概率是(1%)8=0.00000000000001%,如果处理器单元通过都可以通过断电重启以恢复正常工作的话,服务器的可用性将提高1014倍,即多处理器架构服务器的可用性就提高了几个数量级。

与上述方法相对应,本发明还提供了一种用于服务器的控制处理器单元重启的装置,图5是根据本发明一种用于服务器的控制处理器单元重启的装置的一种实施结构的方框原理图。

如图5所示,该装置500包括异常检测模块501、处理器单元检测模块502和指令发送模块503,该异常检测模块501用于检测每一处理器单元的工作状态是否存在异常;该处理器单元检测模块502用于在异常检测模块的检测结果为是的情况下,检测出处理器集群中的异常处理器单元及与每一异常处理器单元对应的正常处理器单元;该指令发送模块503用于发送指令至任一正常处理器单元、以使该正常处理器单元控制对应的异常处理器重启。

其中,与所述异常处理器单元对应的正常处理器单元具体为能够控制所述异常处理器单元断电重启的正常处理器单元。

进一步地,指令发送模块503还包括指令发送单元和重启信号输出单元,该指令发送单元,用于发送指令至任一正常处理器单元、以使该正常处理器单元输出断电信号;该重启信号输出单元用于根据断电信号输出重启信号至所述异常处理器单元、以使异常处理器单元断电重启。

本发明还提供了一种服务器,在一方面,该服务器包括存储器和处理器,其中,存储器用于存储指令,该指令控制处理器进行操作以执行前述的用于服务器的控制处理器单元重启的方法。

该处理器例如可以是中央处理器CPU、微处理器MCU等。该存储器例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。

在另一方面,该服务器包括:

上述的用于服务器的控制处理器单元重启的装置300;

至少两个处理器单元构成的处理器集群,且每一所述处理器独立供电。

进一步地,每一处理器单元的电源使能端均连接至服务器的电源总线上,指令发送模块具体用于发送指令至任一正常处理器单元、以使该正常处理器单元通过电源总线控制对应的异常处理器重启。

在此基础上,上述处理器单元至少包括ARM处理器单元或者CPU单元。

上述各实施例主要重点描述与其他实施例的不同之处,但本领域技术人员应当清楚的是,上述各实施例可以根据需要单独使用或者相互结合使用。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分相互参见即可,每个实施例重点说明的都是与其他实施例的不同之处,但本领域技术人员应当清楚的是,上述各实施例可以根据需要单独使用或者相互结合使用。另外,对于装置实施例而言,由于其是与方法实施例相对应,所以描述得比较简单,相关之处参见方法实施例的对应部分的说明即可。以上所描述的系统实施例仅仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的。

本发明可以是装置、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。

这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。

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