Purley平台服务器的PCIE故障定位方法、装置、设备及介质与流程

文档序号:18939713发布日期:2019-10-23 01:03阅读:407来源:国知局
Purley平台服务器的PCIE故障定位方法、装置、设备及介质与流程

本申请涉及计算机领域,特别涉及一种purley平台服务器的pcie故障定位方法、装置、设备及介质。



背景技术:

当前,随着信息技术的飞速发展,以及云计算和物联网的落地,用户对服务器的可靠性和信息处理能力有了更高的要求。与传统服务器相比,基于purley平台的新一代服务器在计算性能和可靠性上与传统服务器相比具有很大的优势,并在对实时性、可靠性和可用性要求苛刻的领域中应用越来越广泛。同时基于purley平台的新一代服务器在pcie设备(pcie,即peripheralcomponentinterconnectexpress,高速串行计算机扩展总线标准)应用上更加多样化,pcie设备发生故障的原因更加复杂,分析更加困难。

在pcie设备发生故障时,目前bmc(即baseboardmanagementcontroller,基板管理控制器)通过bios(即basicinputoutputsystem,基本输入输出系统)上报的故障信息来定位故障发生的位置,但在bios的故障信息上报功能出现异常时,如遇到系统hardhang的情况致使bios无法上报故障信息,或者bios虽然可以上报故障信息但故障信息和bmc资产信息无法对应的时候,bmc将无法准确地定位出pcie设备故障的位置。



技术实现要素:

有鉴于此,本申请的目的在于提供一种purley平台服务器的pcie故障定位方法、装置、设备及介质,能够在bios的故障信息上报功能出现异常时依然能够实现对pcie故障的准确定位。其具体方案如下:

第一方面,本申请公开了一种purley平台服务器的pcie故障定位方法,应用于bmc,包括:

监测pcie是否发生故障;

若监测到所述pcie发生故障,则获取与pcie故障相关的寄存器数据;其中,所述寄存器数据为能够反映所述pcie故障的位置信息的数据;

利用所述寄存器数据对所述pcie故障进行定位。

可选的,所述获取与pcie故障相关的寄存器数据,包括:

通过peci协议读取cpu的mci_addr寄存器数据。

可选的,所述利用所述寄存器数据对所述pcie故障进行定位,包括:

判断所述mci_addr寄存器数据是否位于purley平台服务器的当前系统地址空间内;

如果是,则根据pcie增强配置机制对所述pcie故障进行定位。

可选的,所述判断所述mci_addr寄存器数据是否位于purley平台服务器的当前系统地址空间内之前,还包括:

获取bios在purley平台服务器开机启动时通过ipmi协议传输的所述purley平台服务器的当前系统地址空间。

可选的,所述根据pcie增强配置机制对所述pcie故障进行定位,包括:

利用pcie增强配置机制解析得到所述pcie的bus/device/function数据;

利用所述bus/device/function数据确定所述pcie故障的位置信息。

可选的,所述获取与pcie故障相关的寄存器数据之前,还包括:

监视bios的故障信息上报功能状态;

判断所述故障信息上报功能状态与预设状态是否相符;

如果是,则在监测到所述pcie发生故障时,启动所述获取与pcie故障相关的寄存器数据的步骤;

如果否,则在监测到所述pcie发生故障时,获取bios上报的相应的故障信息,并根据所述故障信息对pcie故障进行定位。

可选的,所述预设状态包括:

bios无法上报故障信息,和,bios上报的故障信息与bmc资产信息不对应。

第二方面,本申请公开了一种purley平台服务器的pcie故障定位装置,应用于bmc,包括:

故障监测模块,用于监测pcie是否发生故障;

数据获取模块,用于当监测到所述pcie发生故障,则获取与pcie故障相关的寄存器数据;其中,所述寄存器数据为能够反映所述pcie故障的位置信息的数据;

故障定位模块,用于利用所述寄存器数据对所述pcie故障进行定位。

第三方面,本申请公开了一种purley平台服务器的pcie故障定位设备,包括:

存储器,用于保存计算机程序;

处理器,用于执行所述计算机程序,以实现前述的pcie故障定位方法的步骤。

第四方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述的pcie故障定位方法的步骤。

可见,本申请在监测到pcie出现故障时,获取与pcie故障相关的寄存器数据,所述寄存器数据为能够反映pcie故障的位置信息的数据,然后利用上述寄存器数据对pcie故障进行定位。也即,本申请在pcie出现故障时,是利用与pcie故障相关的寄存器数据进行故障定位的。由于bios的故障信息上报功能出现异常时,并不影响与pcie故障相关的寄存器数据的正常获取,所以通过本申请的上述技术方案,可以使得即便在bios的故障信息上报功能出现异常时,依然可以通过能够正常获取到的与bios故障相关的寄存器数据对pcie故障进行准确定位。由此可见,本申请实现了在bios的故障信息上报功能出现异常时依然能够对pcie故障进行准确定位的目的。

附图说明

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

图1为本申请实施例公开的一种purley平台服务器的pcie故障定位方法流程图;

图2为本申请实施例公开的一种具体的purley平台服务器的pcie故障定位方法流程图;

图3为pcie增强配置机制示意图;

图4为本申请实施例公开的一种具体的purley平台服务器的pcie故障定位方法流程图;

图5为本申请实施例公开的一种具体的purley平台服务器的pcie故障定位方法流程图;

图6为本申请实施例公开的一种purley平台服务器的pcie故障定位装置结构示意图;

图7为本申请实施例公开的一种purley平台服务器的pcie故障定位设备结构图。

具体实施方式

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

在pcie设备发生故障时,目前bmc通过bios上报的故障信息来定位故障发生的位置,但在bios的故障信息上报功能出现异常时,如遇到系统hardhang的情况致使bios无法上报故障信息,或者bios虽然可以上报故障信息但故障信息和bmc资产信息无法对应的时候,bmc将无法准确地定位出pcie设备故障的位置。为此,本申请提供了一种pcie故障定位方案,能够克服上述技术问题,能够在bios的故障信息上报功能出现异常时依然能够实现对pcie故障的准确定位。

参见图1所示,本申请实施例公开了一种purley平台服务器的pcie故障定位方法,应用于bmc,包括:

步骤s11:监测pcie是否发生故障。

本实施例中,可以实时监测pcie是否发生故障,以确保能够及时发现pcie故障。当然,为了减少监测进程所消耗的计算机资源,本实施例也可以按照预设的监测周期,定期对pcie是否发生故障进行监测。可以理解的是,为了不明显降低上述监测结果的时效性,本实施例不宜将上述监测周期设置的过大。

步骤s12:若监测到所述pcie发生故障,则获取与pcie故障相关的寄存器数据。

本实施例中,若bmc监测到pcie发生故障,则可以触发所述获取pcie故障相关的寄存器数据的步骤。

在一种具体实施方式中,可以是在bmc监测到pcie发生故障时,立刻启动数据获取进程,以获取与当前pcie故障相关的寄存器数据,这样可以减少获取到的寄存器数据的冗余量,使得上述获取到的寄存器数据恰好是与pcie故障相关的寄存器数据。

在另一种具体实施方式中,也可以对上述寄存器进行持续监视并持续获取其中的数据,当bmc监测到pcie发生故障时,便可以直接从上述持续获取的寄存器数据中调取出与pcie故障相关的数据即可,提高了寄存器数据获取过程的可靠性和便捷性。

可以理解的是,本实施例的上述寄存器具体是指能够记录与pcie故障相关的并且能够反映pcie故障位置的数据的寄存器。也即,所述寄存器数据具体为能够反映所述pcie故障的位置信息的寄存器数据。

步骤s13:利用所述寄存器数据对所述pcie故障进行定位。

本实施例中,由于上述与pcie故障相关的寄存器数据是能够反映pcie故障位置的数据,所以,在获取上述寄存器数据之后,便可以利用上述寄存器数据确定pcie故障所在的位置,从而实现对pcie故障的定位。

可以理解的是,bmc利用上述寄存器数据对pcie故障进行定位之后,可以进行相应的提醒操作,以便用户能够及时对pcie故障进行处理。本实施例中,上述提醒操作包括但不限于手机短信提醒、邮件提醒、专用app消息提醒、通过蜂鸣器提醒、通过指示灯提醒等。

另外,需要指出的是,本实施例中的pcie故障定位方案具体是对基于purley平台的服务器中的pcie故障进行的定位。

可见,本申请实施例在监测到pcie出现故障时,获取与pcie故障相关的寄存器数据,所述寄存器数据为能够反映pcie故障的位置信息的数据,然后利用上述寄存器数据对pcie故障进行定位。也即,本申请实施例在pcie出现故障时,是利用与pcie故障相关的寄存器数据进行故障定位的。由于bios的故障信息上报功能出现异常时,并不影响与pcie故障相关的寄存器数据的正常获取,所以通过本申请的上述技术方案,可以使得即便在bios的故障信息上报功能出现异常时,依然可以通过能够正常获取到的与bios故障相关的寄存器数据对pcie故障进行准确定位。由此可见,本申请实施例实现了在bios的故障信息上报功能出现异常时依然能够对pcie故障进行准确定位的目的。

参见图2所示,本申请实施例公开了一种具体的一种purley平台服务器的pcie故障定位方法,应用于bmc,包括:

步骤s21:监测pcie是否发生故障。

步骤s22:若监测到所述pcie发生故障,则通过peci(即platformenvironmentcontrolinterface,平台环境式控制接口)协议读取cpu的mci_addr寄存器数据。

也即,本实施例中,bmc监测到pcie出现故障后,可以通过peci协议来读取cpu中的有效的mci_addr寄存器数据。上述mci_addr寄存器数据能够反映pcie故障的位置信息。

步骤s23:判断所述mci_addr寄存器数据是否位于purley平台服务器的当前系统地址空间内。

步骤s24:如果是,则根据pcie增强配置机制(即enhancedconfigurationmechanism)对所述pcie故障进行定位。

本实施例中,bmc通过peci协议读取到上述mci_addr寄存器数据之后,对上述mci_addr寄存器数据和purley平台服务器的当前系统地址空间进行比对,即对上述mci_addr寄存器数据和purley平台服务器的mmcfg空间进行比对,如果发现上述mci_addr寄存器数据在上述mmcfg空间范围之内,便可进一步根据pcie增强配置机制对所述pcie故障进行定位。

可以理解的是,本实施例在所述判断所述mci_addr寄存器数据是否位于purley平台服务器的当前系统地址空间内之前,还可以进一步包括:获取bios在purley平台服务器开机启动时通过ipmi协议(ipmi,即intelligentplatformmanagementinterface,智能平台管理接口)传输的所述purley平台服务器的当前系统地址空间。

本实施例中,所述根据pcie增强配置机制对所述pcie故障进行定位,具体可以包括:利用pcie增强配置机制解析得到所述pcie的bus/device/function数据,然后利用所述bus/device/function数据确定所述pcie故障的位置信息。

也即,本实施例中,若上述mci_addr寄存器数据位于purley平台服务器的当前系统地址空间内,则可以基于如图3所示的pcie增强配置机制,解析当前pcie设备的bus编号、device编号和function编号,然后根据上述bus/device/function数据确定pcie故障所对应的位置。其中,上述解析过程对应的解析公式具体如下:

mci_addr=mmcfgbase+(bus<<20)+(device<<15)+(function<<12)+register;

式中,mci_addr表示上述mci_addr寄存器数据,mmcfgbase表示当前系统地址空间mmcfg的起始地址,register为系统分配的一个地址。

参见图4所示,本申请实施例公开了一种具体的一种purley平台服务器的pcie故障定位方法,应用于bmc,包括:

步骤s31:监视bios的故障信息上报功能状态。

步骤s32:判断所述故障信息上报功能状态与预设状态是否相符。

可以理解的是,本实施例中,当上述所述故障信息上报功能状态与预设状态相符,则意味着当前bios的故障信息上报功能出现异常,当上述所述故障信息上报功能状态与预设状态不相符,则意味着当前bios的故障信息上报功能是正常的。

需要指出的是,本实施例中,所述预设状态具体可以包括:bios无法上报故障信息,和,bios上报的故障信息与bmc资产信息不对应。

步骤s33:如果是,则在监测到所述pcie发生故障时,获取与pcie故障相关的寄存器数据。

步骤s34:利用所述寄存器数据对所述pcie故障进行定位。

其中,关于上述步骤s33和s34的具体过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。

步骤s35:如果否,则在监测到所述pcie发生故障时,获取bios上报的相应的故障信息。

步骤s36:根据所述故障信息对pcie故障进行定位。

也即,本实施例中,后台可以在bios无法上报故障信息,或bios上报的故障信息与bmc资产信息不对应的情况下,自动选择本申请提供的基于寄存器数据的pcie故障定位方案来对pcie故障进行定位,而在bios的故障信息上报功能正常的情况下,可以自动切换至传统的pcie故障定位方案,由此提高了系统的灵活性。

参见图5所示,本申请实施例公开了一种具体的一种purley平台服务器的pcie故障定位方法,应用于bmc,包括:

步骤s41:监测pcie是否发生故障。

步骤s42:若监测到所述pcie发生故障,则获取与pcie故障相关的寄存器数据。

步骤s43:利用所述寄存器数据对所述pcie故障进行定位,得到相应的定位信息。

步骤s44:根据所述pcie故障的故障类型以及所述定位信息,从预设的故障应对数据库中获取相应的故障原因以及故障应对方案,并对获取到的故障原因和故障应对方案进行显示。

也即,本实施例中,可以预先根据pcie故障类型和pcie故障定位信息,分析出引起上述pcie故障的原因以及解决上述pcie故障的相应应对方案,并将上述分析得到的故障原因和应对方案添加至预设的故障应对数据库中。当后续出现pcie故障时,便可以根据该pcie故障的故障类型以及相应的定位信息,从上述故障应对数据库中调取出相应的故障原因和故障应对方案,这样用户便可以直接根据后台自动调取出来的故障应对方案进行相应的操作,从而有利于快速解决pcie故障,降低了服务器的维护成本,提升了产品的竞争力。

相应的,本申请实施例还公开了一种purley平台服务器的pcie故障定位装置,应用于bmc,参见图6所示,该装置包括:

故障监测模块11,用于监测pcie是否发生故障;

数据获取模块12,用于当监测到所述pcie发生故障,则获取与pcie故障相关的寄存器数据;其中,所述寄存器数据为能够反映所述pcie故障的位置信息的数据;

故障定位模块13,用于利用所述寄存器数据对所述pcie故障进行定位。

可见,本申请实施例在监测到pcie出现故障时,获取与pcie故障相关的寄存器数据,所述寄存器数据为能够反映pcie故障的位置信息的数据,然后利用上述寄存器数据对pcie故障进行定位。也即,本申请实施例在pcie出现故障时,是利用与pcie故障相关的寄存器数据进行故障定位的。由于bios的故障信息上报功能出现异常时,并不影响与pcie故障相关的寄存器数据的正常获取,所以通过本申请的上述技术方案,可以使得即便在bios的故障信息上报功能出现异常时,依然可以通过能够正常获取到的与bios故障相关的寄存器数据对pcie故障进行准确定位。由此可见,本申请实施例实现了在bios的故障信息上报功能出现异常时依然能够对pcie故障进行准确定位的目的。

本实施例中,所述数据获取模块12具体可以通过peci协议读取cpu的mci_addr寄存器数据。

另外,所述故障定位模块13,具体可以包括:

判断子模块,用于判断所述mci_addr寄存器数据是否位于purley平台服务器的当前系统地址空间内;

定位子模块,用于当所述判断子模块的判断结果为是,则根据pcie增强配置机制对所述pcie故障进行定位。

可以理解的是,本实施例中的pcie故障定位装置,还可以进一步包括:

地址空间获取模块,用于获取bios在purley平台服务器开机启动时通过ipmi协议传输的所述purley平台服务器的当前系统地址空间。

进一步的,所述定位子模块,具体可以包括:

解析单元,用于利用pcie增强配置机制解析得到所述pcie的bus/device/function数据;

位置确定单元,用于利用所述bus/device/function数据确定所述pcie故障的位置信息。

进一步的,本实施例中的pcie故障定位装置还可以包括:

bios监视模块,用于监视bios的故障信息上报功能状态;

状态判断模块,用于判断所述故障信息上报功能状态与预设状态是否相符;

第一响应模块,用于当所述状态判断模块的判断结果为是,则在监测到所述pcie发生故障时,启动所述获取与pcie故障相关的寄存器数据的步骤;

第二响应模块,用于当所述状态判断模块的判断结果为否,则在监测到所述pcie发生故障时,获取bios上报的相应的故障信息,并根据所述故障信息对pcie故障进行定位。

其中,所述预设状态具体可以包括bios无法上报故障信息,和,bios上报的故障信息与bmc资产信息不对应。

进一步的,为了达到快速解决pcie故障的效果,降低服务器维护成本,本实施例中的pcie故障定位装置还可以包括:

故障应对模块,用于根据所述pcie故障的故障类型以及pcie故障定位信息,从预设的故障应对数据库中获取相应的故障原因以及故障应对方案,并对获取到的故障原因和故障应对方案进行显示。

进一步的,参见图7所示,本申请实施例还公开了一种purley平台服务器的pcie故障定位设备,包括处理器21和存储器22;其中:

存储器22,用于保存计算机程序;

处理器21,用于执行所述计算机程序,以实现以下步骤:

监测pcie是否发生故障;若监测到所述pcie发生故障,则获取与pcie故障相关的寄存器数据;其中,所述寄存器数据为能够反映所述pcie故障的位置信息的数据;利用所述寄存器数据对所述pcie故障进行定位。

由此可见,本实施例在pcie出现故障时,是利用与pcie故障相关的寄存器数据进行故障定位的。由于bios的故障信息上报功能出现异常时,并不影响与pcie故障相关的寄存器数据的正常获取,所以通过本申请的上述技术方案,可以使得即便在bios的故障信息上报功能出现异常时,依然可通过能够正常获取到的与bios故障相关的寄存器数据对pcie故障进行准确定位。

本实施例中,所述处理器21执行所述存储器22中保存的计算机子程序时,可以具体实现以下步骤:通过peci协议读取cpu的mci_addr寄存器数据。

本实施例中,所述处理器21执行所述存储器中保存的计算机子程序时,可以具体实现以下步骤:判断所述mci_addr寄存器数据是否位于purley平台服务器的当前系统地址空间内;如果是,则根据pcie增强配置机制对所述pcie故障进行定位。

本实施例中,所述处理器21执行所述存储器22中保存的计算机子程序时,可以具体实现以下步骤:获取bios在purley平台服务器开机启动时通过ipmi协议传输的所述purley平台服务器的当前系统地址空间。

本实施例中,所述处理器21执行所述存储器中保存的计算机子程序时,可以具体实现以下步骤:利用pcie增强配置机制解析得到所述pcie的bus/device/function数据;利用所述bus/device/function数据确定所述pcie故障的位置信息。

本实施例中,所述处理器21执行所述存储器22中保存的计算机子程序时,可以具体实现以下步骤:监视bios的故障信息上报功能状态;判断所述故障信息上报功能状态与预设状态是否相符;如果是,则在监测到所述pcie发生故障时,启动所述获取与pcie故障相关的寄存器数据的步骤;如果否,则在监测到所述pcie发生故障时,获取bios上报的相应的故障信息,并根据所述故障信息对pcie故障进行定位。

本实施例中,所述处理器21执行所述存储器22中保存的计算机子程序时,可以具体实现以下步骤:根据所述pcie故障的故障类型以及所述pcie故障的定位信息,从预设的故障应对数据库中获取相应的故障原因以及故障应对方案,并对获取到的故障原因和故障应对方案进行显示。

进一步的,本申请还公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时前述公开的pcie故障定位方法的步骤。

其中,关于上述pcie故障定位方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本申请所提供的一种purley平台服务器的pcie故障定位方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

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