本发明涉及服务器,尤其涉及一种服务器的pcie链路状态检测方法及服务器。
背景技术:
1、为了满足日益增长的计算资源和存储空间的需求,服务器中往往需要配置更多的pcie设备以及多个pcie设备层级。服务器在上电自检阶段会对各个pcie设备进行初始化,并基于上述pcie设备建立pcie链路。为了及时发现和解决上述pcie链路的潜在故障,因此,需要服务器的bmc能够实时监控pcie链路的运行状态。
2、现有的pcie链路检测方法通常会在pcie设备中设置监控自身速率状态的寄存器,通过bios(basic input/output system基本输入/输出系统)在系统运行阶段对所有pcie设备所对应的寄存器进行不断监测,若寄存器的值发生变化,则根据预先保存的相关的pcie信息向bmc(baseboard management controller,基板管理控制器)上报。bmc根据上报的所述pcie信息获取告警日志,以供客户端查询。
3、由于bios内部的资源有限、兼容性不足,无法对服务器中日益复杂的pcie链路层级以及高性能模块进行监控,同时,bios只能通过各个pcie设备所提供的寄存器对pcie链路进行检测,因此,上述pcie链路检测方法不能确保及时发现和解决潜在的pcie链路故障。
技术实现思路
1、针对现有技术中存在的pcie链路检测正确性以及精确性不足的问题,本发明实施例提供了一种服务器的pcie链路状态检测方法及服务器。
2、第一方面,本技术实施例提供了一种服务器的pcie链路状态检测及告警方法,
3、其特征在于,服务器包括处理器、与处理器相连的pcie链路以及第一基板控制器,pcie链路包括多个pcie设备,处理器与第一基板控制器相连,方法用于第一基板控制器,包括:服务器包括处理器、与处理器相连的pcie链路以及第一基板控制器,pcie链路包括多个pcie设备,处理器与第一基板控制器相连,方法用于第一基板控制器,包括:获取多个pcie设备的设备信息,根据设备信息确定pcie链路的链路监控树;确定链路监控树中多个监控节点,获得多个监控节点的链路信息;多个监控节点中每个监控节点对应一个pcie设备;根据多个监控节点的链路信息,确定pcie链路中的故障设备。如此,pcie链路检测方法可以实现复杂的监控告警和恢复策略,又避免了影响系统的稳定性,同时,支持模块提供的高性能接口,并且通过pcie链路的多级检测不会产生漏告警,可以帮助客户更加准确、精确的对服务器的pcie链路进行检测。
4、在一些实施例中,确定链路监控树中多个监控节点,之前还包括:在bios上电自检阶段,对pcie链路进行监测,获得pcie链路的故障信息;确定链路监控树中多个监控节点,包括:基于故障信息确定链路监控树中多个监控节点。如此,基于上述多个监控节点,第一基板管理控制器可以通过带外管理的方式对pcie链路建立过程以及训练过程的故障设备进行监测,不会产生漏告警。
5、在一些实施例中,根据多个监控节点的链路信息,确定pcie链路中的故障设备,之后还包括:输出针对于故障设备的告警信息,并向故障设备发送自愈指令。如此,能够通过向客户端提供监控告警信息,帮助客户对服务器的pcie链路进行检测。同时能够向故障设备发送自愈指令为客户提供服务器的pcie链路的恢复策略。
6、在一些实施例中,第一基板管理控制器通过第一总线与处理器相连,获取多个pcie设备的设备信息包括,通过第一总线从处理器处获取多个pcie设备的设备信息。如此,第一基板控制器不需额外配置资源,能够通过带外管理的方式,从处理器处获得多个节点设备的设备信息生成链路监控树,不影响服务器的带内业务。
7、在一些实施例中,获得多个监控节点的链路信息,包括:通过第一总线从处理器处获得多个监控节点的链路信息。如此,第一基板控制器不需额外配置资源,能够通过带外管理的方式,从处理器处获得多个监控节点的链路信息,主动发起对pcie链路的检测,不影响服务器的带内业务。
8、在一些实施例中,服务器还包括管理芯片,管理芯片与处理器相连,第一基板管理控制器通过第二总线与管理芯片相连,其特征在于,获取多个pcie设备的设备信息包括,通过第二总线从管理芯片处获取多个pcie设备的设备信息。如此,第一基板控制器不需额外配置资源,能够通过带外管理的方式,从管理芯片处获得多个节点设备的设备信息生成链路监控树,主动发起对pcie链路的检测,不影响服务器的带内业务。
9、在一些实施例中,获得多个监控节点的链路信息,还包括:通过第二总线从管理芯片处获得多个监控节点的链路信息。如此,第一基板控制器不需额外配置资源,能够通过带外管理的方式,从管理芯片处获得多个监控节点的链路信息,主动发起对pcie链路的检测,不影响服务器的带内业务。
10、在一些实施例中,服务器还包括第一板卡,第一板卡之上设置有pcie设备、以及第二基板控制器,pcie设备与第二基板控制器相连,第二基板控制器通过第一接口与第一基板控制器的接口相连,链路信息的获得方法,还包括:通过第一接口从第二基板控制器获得pcie设备的链路信息。如此,通过第二基板控制器提供的第一接口,直接获得第一板卡之上所有监控节点的链路信息,以便更加精确的对第一板卡的多个节点设备的链路状态进行检测。当pcie链路包括多个板卡时,第一基板控制器可以通过多个板卡提供的各自的高性能接口和每个板卡之上的基板管理控制器建立通信,获取任一板卡之上的所有根节点以及叶子节点的链路信息。
11、在一些实施例中,链路信息包括多个pcie设备的设备速率的预期值和当前值,根据多个监控节点的链路信息,确定pcie链路中的故障设备,包括:根据第一pcie设备的设备速率的链路信息,判断第一pcie设备的链路状态;第一pcie设备包括,多个监控节点中除根节点以外的,任一节点之上的pcie设备;若第一pcie设备的设备速率的预期值小于当前值,则确定第一pcie设备为pcie链路中的故障设备。如此,可以帮助客户更加精确的对pcie链路进行检测。
12、在一些实施例中,根据多个监控节点的链路信息,确定pcie链路中的故障设备,还包括:若第一pcie设备的设备速率与预期值符合当前值,则根据第二pcie设备的设备速率的当前值,判断第一pcie设备的链路状态;第二pcie设备为第一pcie设备上游的任一桥设备;若第二pcie设备的设备速率的当前值小于第一pcie设备的设备速率的当前值,则确定第一pcie设备为pcie链路中的故障设备。如此,根据生成的pcie链路监控树能够准确的判断出多级pcie链路场景中终端pcie设备的链路状态,避免pcie链路检测出现漏告警。
13、另一方面,本技术实施例提供了一种服务器,包括存储器、处理器,存储器上存储有可在处理器上运行的计算机程序,其特征在于,处理器执行计算机程序时实现上述pcie链路检测方法。
14、相较于现有技术,本技术提供的pcie链路检测方法,通过记录上电自检阶段故障设备的故障信息;以及在服务器运行阶段,建立pcie链路的链路监控树,并采用多种数据通道获取链路监控树的链路信息。基于上述链路信息对链路监控树的链路状态进行判断,确定服务器的操作系统运行阶段的故障设备,根据上电自检阶段、服务器的操作系统运行阶段的故障设备的设备标识,向处理器发送告警信息,向故障设备发送自愈指令。实现复杂的监控告警和恢复策略,又避免了影响系统的稳定性,同时,支持模块提供的高性能接口,并且通过pcie链路的多级检测不会产生漏告警,可以帮助客户更加准确、精确的对服务器的pcie链路进行检测。
1.一种服务器的pcie链路状态检测方法,其特征在于,所述服务器包括处理器、与处理器相连的pcie链路以及第一基板控制器,所述pcie链路包括多个pcie设备,所述处理器与所述第一基板控制器相连,所述方法用于第一基板控制器,包括:
2.根据权利要求1所述的方法,其特征在于,所述确定所述链路监控树中多个监控节点,之前还包括:
3.根据权利要求1-2任一项所述的方法,其特征在于,所述根据所述多个监控节点的链路信息,确定所述pcie链路中的故障设备,之后方法还包括:
4.根据权利要求1所述的方法,其特征在于,所述第一基板管理控制器通过第一总线与所述处理器相连,所述获取所述多个pcie设备的设备信息包括,通过第一总线从所述从所述处理器处获取所述多个pcie设备的设备信息。
5.根据权利要求4所述的方法,其特征在于,所述获得所述多个监控节点的链路信息,包括:
6.根据权利要求3所述的方法,所述服务器还包括管理芯片,所述管理芯片与处理器相连,所述第一基板管理控制器通过第二总线与所述管理芯片相连,其特征在于,所述获取所述多个pcie设备的设备信息包括,通过第二总线从所述管理芯片处获取所述多个pcie设备的设备信息。
7.根据权利要求5所述的方法,其特征在于,所述获得所述多个监控节点的链路信息,还包括:
8.根据权利要求1所述的方法,其特征在于,所述服务器还包括第一板卡,所述第一板卡之上设置有pcie设备、以及第二基板控制器,所述pcie设备与所述第二基板控制器相连,所述第二基板控制器通过第一接口与所述第一基板控制器的接口相连,所述链路信息的获得方法,还包括:
9.根据权利要求1所述的方法,其特征在于,所述链路信息包括多个pcie设备的设备速率的预期值和当前值,所述根据所述多个监控节点的链路信息,确定所述pcie链路中的故障设备,包括:
10.根据权利要求9所述的方法,其特征在于,所述根据所述多个监控节点的链路信息,确定所述pcie链路中的故障设备,还包括:
11.一种服务器,包括存储器、第一基板控制器,所述存储器上存储有可在所述第一基板控制器上运行的计算机程序,其特征在于,所述第一基板控制器执行所述计算机程序时实现上述权利要求1至7任一项所述的方法。
