一种服务器运行阶段传送故障信息的方法和设备与流程

文档序号:25543574发布日期:2021-06-18 20:40
一种服务器运行阶段传送故障信息的方法和设备与流程

本领域涉及计算机领域,并且更具体地涉及一种服务器运行阶段传送故障信息的方法和设备。



背景技术:

随着近几年互联网时代的发展,对海量数据处理能力的需求正在快速增长,从而对服务器提出了更高的要求,作为服务器产业的原始动力,先进技术的应用于对于用户采购会起到决定性的作用,在网络技术、虚拟化技术、分布式应用快速发展的今天,对服务器要求的可用性,可靠性,可服务性的指标越来越高。

在服务器运行阶段出现故障时如何能高效并精准定位故障位置成为一个需要解决的技术问题,当出现硬件故障,需要及时将详细的错误上报到带外监控管理系统,用户能及时通过故障日志信息获取故障发生时的错误详情,采取对应的硬件维护或更深层次的故障分析。对已经告警的部件,客户可以在方便的时候停机更换故障部件。

故障信息的解析诊断需要在smi(系统管理中断)中断完成,而smi中断的时间长短直接影响系统的性能,当bios检测到故障后,需要通过一系列算法解析错误再整合数据,发送sel(系统错误日志)日志给bmc,每次执行解析算法都要读取一次配置信息,带内处理耗时较长影响系统的健壮性。



技术实现要素:

有鉴于此,本发明实施例的目的在于提出一种服务器运行阶段传送故障信息的方法和设备,通过使用本发明的技术方案,能够减少带内smi中断的故障处理时间,能够明显减少由于频繁的触发smi中断导致的操作系统性能的问题。

基于上述目的,本发明的实施例的一个方面提供了一种服务器运行阶段传送故障信息的方法,包括以下步骤:

定义硬件故障信息的数据格式,并在服务器运行阶段持续检测服务器的硬件状态;

响应于在服务器运行阶段检测到硬件故障,触发smi中断并按照所述数据格式收集发生故障的硬件的信息;

响应于发生故障的硬件的信息收集完成,将收集到的信息发送到bmc中并退出smi中断以使服务器恢复运行;

经由所述bmc将收集到的所述发生故障的硬件的信息进行解析以得到发生故障的硬件的详细信息。

根据本发明的一个实施例,所述数据格式包括数据接收时间、smi中断累积计数、单次smi中断内收集数据产生的随机数、硬件类别、错误级别、故障位置和错误信息的原始数据。

根据本发明的一个实施例,响应于在服务器运行阶段检测到硬件故障,触发smi中断并按照所述数据格式收集发生故障的硬件的信息包括:

响应于smi中断开始,经由bios检测硬件故障并将相应的故障信息写入故障信息表中;

将所述故障信息表中的所述smi中断累积计数加1并基于通过标准库函数生成一个字符的随机数写入所述故障信息表中。

根据本发明的一个实施例,经由所述bmc将收集到的所述发生故障的硬件的信息进行解析以得到发生故障的硬件的详细信息包括:

将所述故障信息表中相同随机数对应的故障信息进行合并后存储到系统错误日志中;

将所述故障信息表中不相同随机数对应的故障信息分别存储到系统错误日志中;

对所述系统错误日志中记录的故障信息进行解析以得到发生故障的硬件的详细信息。

根据本发明的一个实施例,响应于发生故障的硬件的信息收集完成,将收集到的信息发送到bmc中并退出smi中断以使服务器恢复运行包括:

经由ipmi命令将收集到的信息发送到bmc中。

本发明的实施例的另一个方面,还提供了一种服务器运行阶段传送故障信息的设备,设备包括:

定义模块,所述定义模块配置为定义硬件故障信息的数据格式,并在服务器运行阶段持续检测服务器的硬件状态;

收集模块,所述收集模块配置为响应于在服务器运行阶段检测到硬件故障,触发smi中断并按照所述数据格式收集发生故障的硬件的信息;

发送模块,所述发送模块配置为响应于发生故障的硬件的信息收集完成,将收集到的信息发送到bmc中并退出smi中断以使服务器恢复运行;

解析模块,所述解析模块配置为经由所述bmc将收集到的所述发生故障的硬件的信息进行解析以得到发生故障的硬件的详细信息。

根据本发明的一个实施例,所述数据格式包括数据接收时间、smi中断累积计数、单次smi中断内收集数据产生的随机数、硬件类别、错误级别、故障位置和错误信息的原始数据。

根据本发明的一个实施例,所述收集模块还配置为:

响应于smi中断开始,经由bios检测硬件故障并将相应的故障信息写入故障信息表中;

将所述故障信息表中的所述smi中断累积计数加1并基于通过标准库函数生成一个字符的随机数写入所述故障信息表中。

根据本发明的一个实施例,所述解析模块还配置为:

将所述故障信息表中相同随机数对应的故障信息进行合并后存储到系统错误日志中;

将所述故障信息表中不相同随机数对应的故障信息分别存储到系统错误日志中;

对所述系统错误日志中记录的故障信息进行解析以得到发生故障的硬件的详细信息。

根据本发明的一个实施例,所述发送模块还配置为:

经由ipmi命令将收集到的信息发送到bmc中。

本发明具有以下有益技术效果:本发明实施例提供的服务器运行阶段传送故障信息的方法,通过定义硬件故障信息的数据格式,并在服务器运行阶段持续检测服务器的硬件状态;响应于在服务器运行阶段检测到硬件故障,触发smi中断并按照所述数据格式收集发生故障的硬件的信息;响应于发生故障的硬件的信息收集完成,将收集到的信息发送到bmc中并退出smi中断以使服务器恢复运行;经由所述bmc将收集到的所述发生故障的硬件的信息进行解析以得到发生故障的硬件的详细信息的技术方案,能够减少带内smi中断的故障处理时间,能够明显减少由于频繁的触发smi中断导致的操作系统性能的问题。

附图说明

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

图1为根据本发明一个实施例的服务器运行阶段传送故障信息的方法的示意性流程图;

图2为根据本发明一个实施例的服务器运行阶段传送故障信息的设备的示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。

基于上述目的,本发明的实施例的第一个方面,提出了一种服务器运行阶段传送故障信息的方法的一个实施例。图1示出的是该方法的示意性流程图。

如图1中所示,该方法可以包括以下步骤:

s1定义硬件故障信息的数据格式,并在服务器运行阶段持续检测服务器的硬件状态,预定义的数据格式主要包括数据接收时间、smi中断累积计数、单次smi中断内收集数据产生的随机数、硬件类别、错误级别、故障位置和错误信息的原始数据,服务器在开机后,当bios内的故障处理模块初始化完成后,配置硬件故障发生后触发smi中断,由bios扫描所有硬件的错误状态信息,当错误状态有效时,收集不同的硬件类别有效的错误信息,按照上述预定义的数据格式发送给bmc;

s2响应于在服务器运行阶段检测到硬件故障,触发smi中断并按照所述数据格式收集发生故障的硬件的信息,bios在启动阶段将相关配置配置为如果发生硬件错误则触发smi中断,初始化故障信息表(该表包括上述数据格式的内容),并定义全局的smi中断累积次数,用于故障信息发送,在操作系统运行阶段,如果系统发生硬件故障,bios检测到硬件故障,按照上述故障信息格式收集硬件错误信息,smi中断累积次数自动加1,每次触发smi中断,中断累积次数都会自动加1,通过标准库函数生成一个字符的随机数填入故障信息表,一次smi中断可能收集到多个错误数据息;

s3响应于发生故障的硬件的信息收集完成,将收集到的信息发送到bmc中并退出smi中断以使服务器恢复运行,在每次中断中发生故障的硬件信息收集完成都会立刻退出smi中断以减少服务器中断时间,也就是说,在发生故障时,服务器内只进行短暂的中断来收集数据,将分析数据的工作转移到带外系统进行;

s4经由所述bmc将收集到的所述发生故障的硬件的信息进行解析以得到发生故障的硬件的详细信息。

通过本发明的技术方案,能够减少带内smi中断的故障处理时间,能够明显减少由于频繁的触发smi中断导致的操作系统性能的问题。

在本发明的一个优选实施例中,所述数据格式包括数据接收时间、smi中断累积计数、单次smi中断内收集数据产生的随机数、硬件类别、错误级别、故障位置和错误信息的原始数据。其中,以硬件类别主要用于区分故障信息错误源,如:cpu、内存、pcie设备等,错误级别主要用于区分可纠正错误、非致命错误、致命错误,故障位置主要用于区分不同故障部件的位置信息,原始数据用于收集的硬件错误信息,区分cpu、内存、pcie设备等,包含配置信息、错误状态信息。

在本发明的一个优选实施例中,响应于在服务器运行阶段检测到硬件故障,触发smi中断并按照所述数据格式收集发生故障的硬件的信息包括:

响应于smi中断开始,经由bios检测硬件故障并将相应的故障信息写入故障信息表中;

将所述故障信息表中的所述smi中断累积计数加1并基于通过标准库函数生成一个字符的随机数写入所述故障信息表中。在服务器上电时,smi中断累积次数会被初始化,如果服务器在运行过程中发生smi中断,则smi中断累计次数自动加1,每次触发smi中断,中断累积次数都会自动加1,该中断累积次数可以更好的区分每次smi中断收集到的数据,避免数据混淆。

在本发明的一个优选实施例中,经由所述bmc将收集到的所述发生故障的硬件的信息进行解析以得到发生故障的硬件的详细信息包括:

将所述故障信息表中相同随机数对应的故障信息进行合并后存储到系统错误日志中;

将所述故障信息表中不相同随机数对应的故障信息分别存储到系统错误日志中;

对所述系统错误日志中记录的故障信息进行解析以得到发生故障的硬件的详细信息。一次smi中断可能收集到多个错误数据,bmc收到bios发送的故障信息后,将同一次的smi中断记录到一次硬件故障记录中,通过解析随机数,将相同随机数的一笔或多笔故障信息合并后存入故障数据记录文件中,时间由bmc记录,同时结合故障信息解析规则及算法,对原始数据解析完成后,添加故障硬件的位置信息,定位具体硬件的错误,如不可纠正内存错误,内存位置等,然后按照ipmi规范的sel格式记录到sel日志中。

在本发明的一个优选实施例中,响应于发生故障的硬件的信息收集完成,将收集到的信息发送到bmc中并退出smi中断以使服务器恢复运行包括:

经由ipmi命令将收集到的信息发送到bmc中。

通过本发明的技术方案,能够减少带内smi中断的故障处理时间,能够明显减少由于频繁的触发smi中断导致的操作系统性能的问题。

需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,上述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中存储介质可为磁碟、光盘、只读存储器(read-onlymemory,rom)或随机存取存储器(randomaccessmemory,ram)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。

此外,根据本发明实施例公开的方法还可以被实现为由cpu执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被cpu执行时,执行本发明实施例公开的方法中限定的上述功能。

基于上述目的,本发明的实施例的第二个方面,提出了一种服务器运行阶段传送故障信息的设备,如图2所示,设备200包括:

定义模块,所述定义模块配置为定义硬件故障信息的数据格式,并在服务器运行阶段持续检测服务器的硬件状态;

收集模块,所述收集模块配置为响应于在服务器运行阶段检测到硬件故障,触发smi中断并按照所述数据格式收集发生故障的硬件的信息;

发送模块,所述发送模块配置为响应于发生故障的硬件的信息收集完成,将收集到的信息发送到bmc中并退出smi中断以使服务器恢复运行;

解析模块,所述解析模块配置为经由所述bmc将收集到的所述发生故障的硬件的信息进行解析以得到发生故障的硬件的详细信息。

在本发明的一个优选实施例中,所述数据格式包括数据接收时间、smi中断累积计数、单次smi中断内收集数据产生的随机数、硬件类别、错误级别、故障位置和错误信息的原始数据。

在本发明的一个优选实施例中,所述收集模块还配置为:

响应于smi中断开始,经由bios检测硬件故障并将相应的故障信息写入故障信息表中;

将所述故障信息表中的所述smi中断累积计数加1并基于通过标准库函数生成一个字符的随机数写入所述故障信息表中。

在本发明的一个优选实施例中,所述解析模块还配置为:

将所述故障信息表中相同随机数对应的故障信息进行合并后存储到系统错误日志中;

将所述故障信息表中不相同随机数对应的故障信息分别存储到系统错误日志中;

对所述系统错误日志中记录的故障信息进行解析以得到发生故障的硬件的详细信息。

在本发明的一个优选实施例中,所述发送模块还配置为:

经由ipmi命令将收集到的信息发送到bmc中。

上述实施例,特别是任何“优选”实施例是实现的可能示例,并且仅为了清楚地理解本发明的原理而提出。可以在不脱离本文所描述的技术的精神和原理的情况下对上述实施例进行许多变化和修改。所有修改旨在被包括在本公开的范围内并且由所附权利要求保护。

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