一种故障定位方法及服务器技术

技术编号:13278310 阅读:58 留言:0更新日期:2016-05-19 03:02
本发明专利技术提供一种故障定位方法及服务器,涉及计算机技术领域,用于在发生CATERR或IERR类故障时,快速准确地定位到故障所在。包括:检测到故障通知消息;故障通知消息指示已出现挂死类故障;获取错误数据,并在错误数据中确定与挂死类故障对应的超时类错误;在超时类错误的地址寄存器中读取错误地址;将错误地址与预存储的PCIe设备地址空间表中进行匹配;若PCIe设备地址空间表中存在与所述错误地址匹配的地址空间,则确定地址空间对应的PCIe设备为导致挂死类故障的故障源。

【技术实现步骤摘要】

本专利技术涉及计算机
,尤其涉及一种故障定位方法及服务器
技术介绍
x86服务器运行过程中会出现CATERR(Catastrophic Error,灾难性错误)或IERR(Internal Error,灾难性错误),导致系统挂死,进而系统业务突然中断。由于CATERR死机故障发生后,很难得到完整的MCA(Machine Check Architecture,硬件故障检查架构)故障记录,另外即使收集到了 MCA故障记录,根据大量的MCA寄存器数据无法快速准确地进行故障定位。目前,对于CATERR或IERR故障定位的方法主要是依靠人工经验判断,或是运行诊断程序定位故障,或替换器件以确定发生故障的器件,都无法快速定位出故障。总之,现有技术对于CATERR或IERR引起的死机现象,故障定位的效率较低,严重影响用户体验。
技术实现思路
本专利技术提供一种故障定位方法及服务器,能够在出现CATERR或IERR时,快速准确地定位到故障所在,提高了故障定位的效率。为达到上述目的,本专利技术的实施例采用如下技术方案:第一方面,公开了一种故障定位方法,包括:当服务器出现挂死类故障(即上述CATERR或IERR)时,服务器的MCA(MachineCheck Architecture,硬件故障检查架构)会向服务器的BMC (Baseboard ManagementController,基板管理控制器)发送指示已出现挂死类故障接的故障通知消息。需要说明的是,在计算机
,通常将CATERR或IERR类故障称为3-Strike,出现CATERR或IERR类故障后,一般会在MCA的MCA Bank报告中生成针对3-Strike的MCA错误码,且MCA错误码的类型为timeout(超时)。BMC接收到该故障通知消息后获取错误数据。实际上,就是BMC在上述MCA Bank中获取错误数据。所述错误数据用于记录服务器发生故障时产生的错误,所述超时类错误为所述服务器发生所述挂死类故障时产生的错误。进而,BMC在所述错误数据中确定与挂死类故障对应的超时类错误。随后在所述超时类错误的地址寄存器中读取错误地址。所述超时类错误,S卩CATERR或IERR类故障对应的错误数据为MCA Bank中的timeout类错误。具体实现中,可以遍历MCA Bank中的所有MCA错误,确定出类型标识为超时类(即标注为timeout)的错误为所述挂死类故障对应的超时类错误。当然,确定出的超时类错误不只一个。接着,BMC将所述错误地址与预存储的PCI e设备地址空间表中的PCI e设备的地址空间进行匹配;所述PCIe设备地址空间表中记录有每一个PCIe设备与所述每一个PCIe设备的地址空间的对应关系。通常,服务器的B1S进行初始化时会为每一个PCIe设备分配地址空间,在本专利技术实施例中,B1S还会读取每一个PCIe设备的地址空间,并将每一个PCIe设备的地址空间发送给BMC,以便BMC生成PCIe设备地址空间表。这里所述的PCIe设备是所述服务器的PCIe设备。若所述PCIe设备地址空间表中存在与所述错误地址匹配的地址空间,BMC则确定所述地址空间对应的PCIe设备为导致所述挂死类故障的故障源。需要说明的是,BMC会在MCA Bank中确定出多个timeout类错误,因此需要针对每一个timeout类错误对应的错误地址,执行上述与预存储的PCIe设备地址空间表中进行匹配的过程,以确定其是否落入了PCIe设备地址空间表中的某一个地址空间,以便将其落入的地址空间对应的PCIe设备确定为故障源。现有技术中,依靠人工经验,确定故障的准确率较低。或是,耗费大量时间精力,运行诊断程序定位故障,均无法快速准确地定位出故障源,故障定位效率较低。而本专利技术实施例中,BMC预先存储了每一个PCIe设备的地址空间,当出现CATERR或IERR类故障时,首先收集错误数据,再确定导致错误的地址,最后将导致错误的地址依次与存储的PCIe设备的地址空间进行匹配,若该地址落入某个PCIe设备的地址空间,则确定该PCIe设备为故障源。这样,就可以快速精确地定位出引起CATERR或IERR类故障的故障源,提高故障定位的效率,进而提尚了客户体验。结合第一方面,所述检测到故障通知消息之前,还需要预先存储每一个PCIe设备的地址空间,可以生成PCIe设备地址空间表。具体地,BMC接收B10S(Basic Input Output System,基本输入输出系统)传递的每一个PCIe设备的地址空间,并根据所述每一个PCIe设备的地址空间生成所述PCIe设备地址空间表。现有技术中,B10S只会在系统初始化时,为每一个PCIe设备分配地址空间,而本专利技术实施例中,B1S还会读取每一个PCIe设备的地址空间,并将每一个PCIe设备的地址空间发送给BMC,以便BMC确定出哪个PCIe设备是本次引起故障的故障源。结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,对于具有热插拔能力的服务器,在热插拔PCIe设备后会重新为当前的PCIe设备分配地址空间。因此,为了保证BMC生成的PCIe设备地址空间表与当前PCIe设备严格对应,在热插拔PCIe设备后,BMC还会接收所述B1S传递的更新后的每一个PCIe设备的地址空间,并根据所述更新后的每一个PCIe设备的地址空间,生成新的PCIe设备地址空间表。 最后,BMC还要将所述PCIe设备地址空间表更新为所述新的PCIe设备地址空间表。这样,BMC生成的PCIe设备地址空间表始终是与服务器当前的PCIe设备对应的,以免由于热插拔后PCIe设备被重新分配地址空间导致PCIe设备地址空间表未更新,进而使得上述错误地址无法匹配到地址空间,无法定位出故障源。结合第一方面或第一方面的第一或第二种可能的实现方式,在第一方面的第三种可能的实现方式中,在所述超时类错误的地址寄存器中读取所述错误地址之前,BMC还需要确定所述超时类错误的地址寄存器有效。通常在MCA Bank中存储有每一个地址寄存器的指示位,用于指示该指示位对应的地址寄存器是否有效。BMC查看某地址寄存器对应的指示位就可以确定该地址寄存器是否有效。结合第一方面,在第一方面的第四种可能的实现方式中,通常,地址空间的形式示例的可以为A?B,其中A是低于B的一个地址参数。同样的,所述PCIe设备的地址空间为从第一地址参数到第二地址参数间的内存空间,其中,所述第一地址参数低于所述第二地址参数,即所述第一地址参数在所述第二地址参数之前。示例的,可以是0x0000000092401000?0x00000000924017f f,其中,92401000是较低的地址参数,924017f f较高的地址参数。所述将所述错误地址与预存储的PCIe设备的地址空间进行匹配具体包括:针对所述预存储的PCIe设备的地址空间中的每一个地址空间,判断所述错误地址是否落在所述地址空间内,即是否落在所述地址空间的第一地址参数和所述地址空间的第二地址参数之间。这样,就可以依次确定每一个timeout类错误对应的错误地址是否有匹配的PCIe设备的地址空间。结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述若所本文档来自技高网...

【技术保护点】
一种故障定位方法,其特征在于,包括:获取错误数据,并在所述错误数据中确定与挂死类故障对应的超时类错误;所述错误数据用于记录服务器发生故障时产生的错误,所述超时类错误为所述服务器发生所述挂死类故障时产生的错误;在所述超时类错误的地址寄存器中读取错误地址;将所述错误地址与预存储的总线和接口标准PCIe设备地址空间表中的PCIe设备的地址空间进行匹配;所述PCIe设备地址空间表中记录有每一个PCIe设备与所述每一个PCIe设备的地址空间的对应关系;若所述PCIe设备地址空间表中存在与所述错误地址匹配的地址空间,则确定所述地址空间对应的PCIe设备为导致所述挂死类故障的故障源。

【技术特征摘要】

【专利技术属性】
技术研发人员:宋刚
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1