一种故障信息的记录方法和系统与流程

文档序号:19350071发布日期:2019-12-06 21:17阅读:475来源:国知局
一种故障信息的记录方法和系统与流程

本发明涉及计算机领域,尤指一种故障信息的记录方法和系统。



背景技术:

伴随云计算应用的发展,信息化逐渐覆盖到社会的各个领域。人们的日常工作生活越来越多的通过网络来进行交流,网络数据量也在不断增加;同时对于云空间的应用也逐步增加,对于提供云计算和云空间的数据中心机房,提出了高密度、高稳定的要求,同时对服务器问题处理的时效性也提出了高的要求,及时的定位分析,可以保证云计算和云空间的稳定运行。

其中,服务器的板卡属于高集成、高密度的情况;且在机房中,服务器也属于高密度的存在,对于服务器的故障如不及时处理,会对整个机房产生不可估量的影响和风险。

通常服务器的故障信息都是记录于服务器的bmc(baseboardmanagementcontroller,基板管理控制器)中;bmc通过带外方式,抓取服务器的故障信息,保存在黑盒日志中。但是bmc也会出现故障,如果bmc出现故障挂死,则无法实时抓取bmc中的黑盒日志,确认故障现象;而且bmc挂死后,需要重启服务器才能恢复,但有的主板上bmc中的数据在断电后会丢失,因此对于故障信息将无法进行保留。且断电后重启对于服务器相当于是进行了一次置位,对于当时的故障信息的抓取和后续的故障复现会产生比较大的影响,进而对故障分析和定位产生较大影响,且不利于故障的及时解决和风险的评估。



技术实现要素:

本申请提供一种故障信息的记录方法和系统,可以在服务器出现故障且bmc挂死的情况下,也能够得到故障信息并保留故障现场。

本申请实施例提供了一种故障信息的记录方法,包括:

基板管理控制器bmc获取到所在服务器的故障信息后,写入黑盒日志;

bmc在满足触发条件时,将所述黑盒日志发送给所在服务器中的复杂可编程逻辑器件cpld;

所述cpld将所收到的黑盒日志写入自身的闪存中。

一种示例性的实施例中,所述将黑盒日志发送给所在服务器中的cpld可以包括:

通过28个字节的数据将黑盒日志发送给所在服务器中的cpld;所述28个字节的数据分别用于指示故障发生时间、故障类型、故障地址、相关寄存器的信息。

一种示例性的实施例中,其特征在于,所述cpld将所收到的黑盒日志写入自身的闪存中后还可以包括:

当服务器出现故障且所述bmc挂死时,通过所述cpld的联合测试行为组织jtag接口,读取所述cpld的闪存中存储的黑盒日志。

一种示例性的实施例中,其特征在于,所述cpld将所收到的黑盒日志写入自身的flash中可以包括:

所述cpld用所收到的所述黑盒日志替代自身的闪存中原先保存的黑盒日志;

其中,cpld将黑盒日志保存在闪存的预定区域中,或者,所述黑盒日志具有预定的数据标识。

一种示例性的实施例中,其特征在于,所述bmc在满足触发条件时,将黑盒日志发送给所在服务器中的cpld可以包括:

所述bmc当产生新的黑盒日志时,将新产生的黑盒日志发送给所在服务器中的cpld;

或者,

所述bmc周期性将本周期新产生的黑盒日志发送给所在服务器中的cpld。

本申请实施例还提供了一种故障信息的记录系统,包括:服务器中的基板管理控制器bmc,其特征在于,还包括:所述服务器中的复杂可编程逻辑器件cpld;

所述bmc用于获取到所在服务器的故障信息后,写入黑盒日志;以及在满足触发条件时,将所述黑盒日志发送给所述cpld;

所述cpld用于将所收到的黑盒日志写入自身的闪存中。

一种示例性的实施例中,所述将黑盒日志发送给cpld可以包括:

通过28个字节的数据将黑盒日志发送给cpld;所述28个字节的数据分别用于指示故障发生时间、故障类型、故障地址、相关寄存器的信息。

一种示例性的实施例中,所述cpld可以提供联合测试行为组织jtag接口,用于当服务器出现故障且所述bmc挂死时,供外部读取所述cpld的闪存中存储的黑盒日志。

一种示例性的实施例中,所述cpld将所收到的黑盒日志写入自身的闪存中可以包括:

所述cpld用所收到的所述黑盒日志替代自身的闪存中原先保存的黑盒日志;

其中,cpld将黑盒日志保存在闪存的预定区域中,或者,所述黑盒日志具有预定的数据标识。

一种示例性的实施例中,所述bmc在满足触发条件时,将黑盒日志发送给cpld可以包括:

所述bmc当产生新的黑盒日志时,将新产生的黑盒日志发送给cpld;

或者,

所述bmc周期性将本周期新产生的黑盒日志发送给cpld。

本申请可以在服务器出现故障且bmc挂死的情况下,也能够得到故障信息并保留故障现场,从而可以保证黑盒日志的可获取和可保存性。

本申请一个示例性的实施例中,可以通过jtag接口从cpld的flash中读取黑盒日志,从而能够及时而准确的进行故障定位、分析和风险评估;进而可以避免产生批量性问题,造成机房整体宕机的情况。

本申请的一个示例性的实施例中,可以通过修改bmc和cpld的代码来实现故障记录的方法,具有功用性且能节省成本。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。

图1为本申请实施例中故障信息的记录方法的流程示意图;

图2是本申请示例中故障信息的记录方法的实现逻辑示意图;

图3是本申请实施例中故障信息的记录系统的示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本申请的一个实施例给出了一种故障信息的记录方法,如图1所示,包括步骤s110-s130。

s110、bmc获取到所在服务器的故障信息后,写入黑盒日志;

s120、bmc在满足触发条件时,将所述黑盒日志发送给所在服务器中的cpld(complexprogrammablelogicdevice,复杂可编程逻辑器件);

s130、cpld将所收到的黑盒日志写入自身的flash(闪存)中。

本实施例中,所述bmc可以在服务器上电后开始工作,并在黑盒日志中记录所述服务器运行过程的严重故障的故障信息。

本实施例中,当服务器出现故障且bmc挂死时,可以从cpld中获取黑盒日志,从而得到故障信息。

一种示例性的实施例中,所述bmc可以但不限于通过i2c(inter-integratedcircuit,两线式串行)总线,将黑盒日志发送给cpld。

本实施例中,在服务器的主板上的cpld和bmc之间通过i2c总线连接,bmc可以通过i2c总线获取cpld的相关信息,同样的cpld也可以通过i2c总线获取bmc的相关信息;本实施例中借助i2c总线,bmc将黑盒日志传递到cpld中,cpld在写到自己的flash中保存。在服务器故障且bmc挂死时,仍可以通过cpld得到黑盒日志。

一种示例性的实施例中,所述故障信息可以包括以下一种或多种参数:

故障发生时间;

故障类型;

故障地址;

相关寄存器的信息。

相应的,所述黑盒日志也可以包括故障信息中的所有参数。

一种示例性的实施例中,所述将黑盒日志发送给所在服务器中的cpld可以包括:

通过28个byte(字节)的数据将黑盒日志发送给所在服务器中的cpld;所述28个byte的数据分别用于指示故障发生时间(可以但不限于包括故障发生的年、月、日、时、分、秒)、故障类型、故障地址、相关寄存器的信息。

本实施例中,黑盒日志用28个byte表示时的数据格式可以如表一所示。

表一、黑盒日志的数据格式

一种示例性的实施例中,可以采用其它数据格式、协议传输黑盒数据。

一种示例性的实施例中,所述步骤s130后还可以包括:

当服务器出现故障且所述bmc挂死时,通过所述cpld的jtag(jointtestactiongroup,联合测试行为组织)接口,读取所述cpld的flash中存储的黑盒日志。

本实施例中,在服务器出现故障且bmc挂死时,依然能够导出黑盒日志,以用于及时定位故障和故障位置;并且,不需要立即重启服务器以激活bmc,因此可以保留故障现场。

一种示例性的实施例中,当服务器出现故障且所述bmc挂死时,可以通过重启服务器后,将cpld中的黑盒日志写回到bmc中,来实现黑盒日志的还原。

一种示例性的实施例中,cpld将黑盒日志保存在flash的预定区域中。

本实施例中,cpld将黑盒日志保存在flash的预定区域中可以但不限于包括:cpld以预定地址作为起点,保存所述黑盒日志。

本实施例中,在读取cpld的flash中存储的黑盒日志时,是在cpld的flash的预定区域中进行读取。

一种示例性的实施例中,黑盒日志具有预定的数据标识。

本实施例中,所述预定的数据标识可以但不限于设置于每条日志的头部。

本实施例中,在读取cpld的flash中存储的黑盒日志时,是通过所述预定的数据标识,在cpld的flash中进行读取。

一种示例性的实施例中,cpld的flash仅用于保存黑盒日志。

本实施例中,可以直接读取cpld的flash中存储的黑盒日志。

一种示例性的实施例中,可以采用其它方式定位flash中的黑盒日志,或者可以通过jtag接口读取cpld的flash中的全部数据,再从中筛选出所述黑盒日志。

一种示例性的实施例中,所述bmc在满足触发条件时,将黑盒日志发送给所在服务器中的cpld可以包括:

所述bmc当产生新的黑盒日志时,将新产生的黑盒日志发送给所在服务器中的cpld。

本实施例中,是每当获取到一条故障信息,形成新一条的黑盒日志,就将该新一条的黑盒日志发送给cpld。

一种示例性的实施例中,所述bmc在满足触发条件时,将黑盒日志发送给所在服务器中的cpld可以包括:

所述bmc周期性将本周期新产生的黑盒日志发送给所在服务器中的cpld。

本实施例中可以设置一个定时器,定时时间长度设置为一个周期的时间长度;每当定时时间到达时,bmc将本周期内的黑盒日志增量发送给cpld。

一种示例性的实施例中,所述bmc在满足触发条件时,将黑盒日志发送给所在服务器中的cpld可以采用其它的实现细节,比如新增的黑盒日志达到预定条数时进行发送,比如发送全部的黑盒日志。

一种示例性的实施例中,所述cpld将所收到的黑盒日志写入自身的flash中可以包括:

所述cpld用所收到的所述黑盒日志替代自身的flash中原先保存的黑盒日志。

本实施例中,会不断刷新flash中的黑盒日志,用最新的黑盒日志替换旧的黑盒日志,从而节省flash的空间。

其它实施例中,可以周期性删除flash中的黑盒日志,或者按照写入时间清理黑盒日志,比如删除预定时长之前写入的黑盒日志,从而达到节省flash空间的效果。

下面用一个实例说明上述实施例。

示例一、一种故障信息的记录方法,实现逻辑如图2所示,包括:

bmc中记录所在服务器运行过程中出现的故障信息,并存储在黑盒日志中;bmc通过i2c总线将黑盒日志发送给所在服务器中的cpld,cpld将通过i2c总线接收到黑盒日志记录到自身的flash中。当所述服务器故障且bmc挂死时,可以通过外部的工具连接jtag后,从cpld中读取出来黑盒日志,并用于故障分析和问题定位。

本示例可以通过cpld获取bmc的黑盒日志,可以在服务器出现故障且bmc挂死的情况下,保证黑盒日志的可获取,并保证黑盒日志的可保存性,而且能够保证服务器故障现场不被破坏从而便于现场的故障分析。

本示例可以主要通过软层代码实现,节省成本,且共用性强;数据格式灵活,可自行定义。

其中,bmc和cpld的数据交换格式以28个byte进行,cpld发送给bmc的请求数据的格式可以如表二所示;bmc可以通过响应数据发送黑盒日志,格式可以如上文的表一所示。

表二、请求数据的格式

本申请实施例还提供了一种故障信息的记录系统,如图3所示,包括:服务器中的bmc31和cpld32;

所述bmc31用于获取到所在服务器的故障信息后,写入黑盒日志;以及在满足触发条件时,将所述黑盒日志发送给所述cpld32;

所述cpld32用于将所收到的黑盒日志写入自身的闪存中。

一种示例性的实施例中,所述将黑盒日志发送给cpld可以包括:

通过28个字节的数据将黑盒日志发送给cpld;所述28个字节的数据分别用于指示故障发生时间、故障类型、故障地址、相关寄存器的信息。

一种示例性的实施例中,所述cpld可以提供联合测试行为组织jtag接口,用于当服务器出现故障且所述bmc挂死时,供外部读取所述cpld的闪存中存储的黑盒日志。

一种示例性的实施例中,所述cpld将所收到的黑盒日志写入自身的闪存中可以包括:

所述cpld用所收到的所述黑盒日志替代自身的闪存中原先保存的黑盒日志;

其中,cpld将黑盒日志保存在闪存的预定区域中,或者,所述黑盒日志具有预定的数据标识。

一种示例性的实施例中,所述bmc在满足触发条件时,将黑盒日志发送给cpld可以包括:

所述bmc当产生新的黑盒日志时,将新产生的黑盒日志发送给cpld;

或者,

所述bmc周期性将本周期新产生的黑盒日志发送给cpld。

其它实施细节可参见前文。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

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