一种多分区多节点服务器的报错收集方法与流程

文档序号:25856938发布日期:2021-07-13 16:10阅读:189来源:国知局
一种多分区多节点服务器的报错收集方法与流程

本发明属于多节点服务器技术领域,具体涉及一种多分区多节点服务器的报错收集方法。



背景技术:

随着服务器的应用日渐广泛,在政府、金融、医疗、能源等行业中,对于大型核心数据库、虚拟化整合、内存计算、高性能计算的需求越来越高,相继出现了两路、四路、八路服务器,即将多个cpu集中在一个主控制板上从而使服务器可以多路并行执行,从而使服务器处理性能大大提升。

随着cpu支持的pcie、upi等协议的速率越来越高,并且cpu的核数越来越多,导致cpu的功耗越来越高。在intel最新eaglestream平台中,cpu最高功耗已达到350w。在一个八路服务器中,为了实现高密度以及散热的需求,设计的是两路的主板,即四块相同的主板共同组合成一个八路系统,从而争取更大的散热空间。

为保证服务器安全运行,在服务器工作时故障报错是必不可少的关键信息,每个计算节点都有各自的报错信息。cpu的报错信息有thermtrip、error0/1/2、proc_hot、mem_hot等,对于这些信号,在多路服务器中,硬件上一般是主计算节点的cpld汇总所有节点的信息,然后在统一报给bmc,此时在bmc的报错log中,只能看到系统报了thermtrip或proc_hot等信息,但并不能确认具体是哪个节点,或者是哪个cpu报错。在系统发生故障时,无法快速判断系统异常原因。如图一所示,单分区模式下,每个节点的报错信息汇总给节点0上的cpld,然后cpld0再发给本节点上的bmc0(单分区时,节点0的bmc主bmc,cpld是主cpld)。

从图中可以看出,在系统发生故障时,只能判断出系统发生的是哪种故障,并不能快速的判断异常节点或者异常cpu。而且对于多节点服务器,由主计算节点的cpld汇总所有节点的报错信息,会增加cpld给bmc报错的信号数量,也会增加cpld芯片使用的gpio数量,导致需要选取更多gpio的cpld,从而造成成本上涨。



技术实现要素:

针对现有技术的上述不足,本发明提供一种多分区多节点服务器的报错收集方法,以解决上述技术问题。

本发明提供一种多分区多节点服务器的报错收集方法,包括:

获取多路服务器的计算节点的分区情况,并根据分区情况获取主计算节点,从而判断主bmc及其管辖的节点;

cpu将报错信息发送给本节点的cpld;

cpld将所述报错信息存储到内部的寄存器,并发送信号给主bmc;

主bmc收集所管辖节点的cpld内部寄存器信息,并定位报错信息的来源节点及cpu。

进一步的,所述方法还包括:

将报错信息存储在主bmc的系统日志中。

进一步的,所述获取多路服务器的计算节点的分区情况,包括:

根据管理板上跳帽的mode信号判断计算节点的分区情况;

所述多路服务器为八路服务器,所述计算节点的分区情况包括:单分区、双分区、四分区。

进一步的,所述方法还包括:

获取主板上的ms信号,根据ms信号获取计算节点的主从关系。

进一步的,所述并根据分区情况获取主计算节点,从而判断主bmc及其管辖的节点,包括:

所述单分区设置一个主计算节点,所述一个主计算节点的bmc管辖除主计算节点的另外三个计算节点的报错信息;

所述双分区设置两个主计算节点,所述两个主计算节点的bmc分别管辖一个计算节点的报错信息;

所述四分区内的所有计算节点均为主计算节点,各自bmc管辖各自节点上的报错信息。

进一步的,

所述cpu报错信息包括:过热触发下电告警信号,运行错误信号、处理器过热信号以及内存过热信号。

本发明的有益效果在于,

本发明提供的一种多分区多节点服务器的报错收集方法,针对于多节点的服务器,通过主板上的cpld寄存器暂存本节点的所有异常信息,利用bmc读取cpld内的寄存器状态,来判断具体异常信息来自的具体位置;并可通过bmc读取log,快速定位报错信息的具体位置,减少维护异常机器的时间和成本,提高维护效率。

此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。

附图说明

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

图1是本发明现有技术的结构示意图。

图2是本发明一个实施例的方法的示意性流程框图。

图3是本发明一个实施例中八路服务器各计算节点的分区和节点位置示意图。

图4是本发明一个实施例中八路服务器报错机制方案示意图。

具体实施方式

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

在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以通过具体情况理解上述术语在本发明中的具体含义。

下面对本发明中出现的关键术语进行解释。

cpld:complexprogrammablelogicdevice,是complexpld的简称,一种较pld为复杂的逻辑元件。

bmc:baseboardmanagementcontroller,基板管理控制器。

下面将参考附图并结合实施例来详细说明本发明。

图2是本发明一个实施例的方法的示意性流程图。

如图2所示,该方法100包括:

步骤110,获取多路服务器的计算节点的分区情况,并根据分区情况获取主计算节点,从而判断主bmc及其管辖的节点;

步骤120,cpu将报错信息发送给本节点的cpld;

步骤130,cpld将所述报错信息存储到内部的寄存器,并发送信号给主bmc;

步骤140,主bmc收集所管辖节点的cpld内部寄存器信息,并定位报错信息的来源节点及cpu。

可选地,作为本发明一个实施例,所述方法还包括:

将报错信息存储在主bmc的系统日志中。

可选地,作为本发明一个实施例,所述获取多路服务器的计算节点的分区情况,包括:

根据管理板上跳帽的mode信号判断计算节点的分区情况;

所述多路服务器为八路服务器,所述计算节点的分区情况包括:单分区、双分区、四分区。

可选地,作为本发明一个实施例,所述方法还包括:

获取主板上的ms信号,根据ms信号获取计算节点的主从关系。

可选地,作为本发明一个实施例,所述并根据分区情况获取主计算节点,从而判断主bmc及其管辖的节点,包括:

所述单分区设置一个主计算节点,所述一个主计算节点的bmc管辖除主计算节点的另外三个计算节点的报错信息;

所述双分区设置两个主计算节点,所述两个主计算节点的bmc分别管辖一个计算节点的报错信息;

所述四分区内的所有计算节点均为主计算节点,各自bmc管辖各自节点上的报错信息。

可选地,作为本发明一个实施例,

所述cpu报错信息包括:过热触发下电告警信号,运行错误信号、处理器过热信号以及内存过热信号。

对于一个多路服务器,比如8路服务器,每个计算节点都有bmc、cpld等管理芯片,cpu输出的报错信号有:thermtrip信号、error[2:0]信号proc_hot信号、mem_hot_out信号等。

每个cpu把自己的报错信号分别给到cpld,当cpld收到这些信息后,先将这些信息存储到内部的寄存器中,再发送alert信号,告诉bmc,自己有收到报错。bmc收到alert信号后,去读取所有的节点的cpld内部寄存器信息,从而每个主计算节点的bmc能知道这个报错信息具体是哪个节点的哪个cpu报出的,再将异常信息显示在log中。等到服务器需要进行维护时,可快速通过bmc的log,知道具体是哪个位置报了什么样的错误,更有针对性的对系统进行维护,对于一个复杂的八路服务器系统,可大大减少分析问题的时间,提高维护效率。

为了便于对本发明的理解,下面以本发明服务器报错收集方法的原理,以八路服务器为例,结合图3、图4对本发明提供的一种多分区多节点服务器的报错收集方法做进一步的描述。

在管理板上有两个跳帽,可以设置八路服务器为单分区、双分区、四分区,mode[1:0]=11,代表系统为单分区,mode[1:0]=10/01,代表系统为双分区,mode[1:0]=00,代表系统为四分区。每块主板上有ms[1:0]信号接到中背板上,ms[1:0]=11时,代表此计算节点在0的位置,ms[1:0]=10时,代表此计算节点在1的位置,ms[1:0]=01时,代表此计算节点在2的位置,ms[1:0]=00时,代表此计算节点在3的位置。

当系统是单分区时,计算节点0是主计算节点,bmc需要汇总其他3个节点上的信息;当系统是双分区时,计算节点0和2都是主计算节点,bmc0需要汇总节点1上的信息,bmc2需要汇总节点3上的信息;当系统是四分区时,每个计算节点都是主计算节点,各自bmc汇总各自节点上的信息。计算节点上的bmc通过分区模式的信号,以及所在节点所在位置,判断自己是否在主计算节点,如果是在主计算节点上,bmc在收到alert信号后,要作为主bmc通过smbus去访问所有节点的cpld,从cpld内部寄存器获取信息,如果是从节点,bmc不会通过smbus访问任何cpld,以免造成smbus链路异常。

cpld可根据节点所在位置,设置自己smbus的地址,节点0设置为0x20,节点1设置为0x22,节点2设置为0x24,节点3设置为0x26。cpld的smbus地址和节点位置绑定,节点之间的地址不会一样,这样可以保证任意分区模式下,主bmc访问本节点的cpld和其他从节点的cpld时,不会有地址冲突的问题。

以单分区中的cpu1的thermtrip信号为例。当cpu1的温度达到最高安全运行温度时,cpu1发出cpu1_thermtrip_n信号给cpld1,cpld1收到此信号后,将代表cpu1的thermtrip的寄存器置为有效,然后发出alert信号给主bmc0。bmc0收到cpld_alert_n信号后,给所有节点的cpld发送命令,读取所有cpld内部的寄存器信息。bmc将读回的内容解析,判断具体是哪个节点的cpld内部寄存器被置位,从而可以定位到cpu1,再继续判断是cpu1报的什么样的错误,并将异常信息存储在log中,显示在ui界面中。从而使用者能够直接通过log信息判断异常节点,有针对性的对异常节点进行维护,不用花时间在正常的节点上。

尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

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