一种服务器开机故障定位方法、装置、终端及存储介质与流程

文档序号:33561180发布日期:2023-03-22 14:24阅读:37来源:国知局
一种服务器开机故障定位方法、装置、终端及存储介质与流程

1.本发明涉及服务器开机故障检测领域,具体涉及一种服务器开机故障定位方法、装置、终端及存储介质。


背景技术:

2.基本输入输出系统(basic input output system,简称bios)是一组固化到计算机内主板上一个rom(read-only memory,只读内存)芯片上的程序,负责完成整机系统的芯片初始化、开机自检、系统引导等等。
3.目前在生产过程中,组装完成后,经常遇到开机异常的情况。目前的故障诊断方法一般是bios中自检程序检测到错误,然后进行上报,上报信息可以输出到数码管、蜂鸣器、屏幕、串口、bmc日志等,但这些都依赖于bios自检程序的故障检测模块,自检模块通常通过查询设备状态的形式实现,如内存rmt,能覆盖的故障很有限,当自检模块没有检测到故障,开机过程中遇到其他错误时,比如最常见的组装连接导致的信号不稳问题,则会导致相关驱动发生宕机等严重故障,此时一般由现场维修工程师通过逐步更换/减少配置去交叉验证问题设备或者研发工程师更新debug版本bios、连接xdp、jtag等调试工具,通过串口、寄存器分析去定位故障,但这两种方式的整体调试效率都不高,或者更是需要专业工程师介入,时效更慢。除了自检程序外,服务器故障处理依赖收集cpu等硬件寄存器信息分析故障,但这种方式更适合系统运行阶段,开机过程中很多程式、硬件都没有准备好,无法用于故障定位。


技术实现要素:

4.为解决上述问题,本发明提供一种服务器开机故障定位方法、装置、终端及存储介质,bmc根据bios提供的开机信息,并结合资产信息进行故障分析定位,相对于bios的自检程序,可定位到较全面的故障信息,为调试维修提供数据,提高生产、维修效率。
5.第一方面,本发明的技术方案提供一种服务器开机故障定位方法,包括以下步骤:服务器开机阶段,bios记录开机信息并将其发送至bmc,其中开机信息包括进度信息、底层设备驱动调用访问信息和自检信息;bmc检测bios是否出现异常宕机;当bios出现异常宕机时,bmc基于存储的资产信息,根据开机信息判断故障位置,发出报警信息。
6.进一步地,bios将开机信息发送至bmc具体包括:服务器开机阶段,bios加载功能模块时,记录功能模块的名称、地址和调用时间戳,并发送至bmc;监测底层设备驱动调用访问状态,当有底层设备驱动被调用访问时,记录设备逻辑地址、访问逻辑地址和调用时间戳,并发送至bmc;bios对相关设备进行自检,当检测到异常信息时,将异常信息发送至bmc。
7.进一步地,该方法具体包括:底层设备驱动调用访问内,是否有当次底层设备驱动的调用访问记录;若有,则不作处理;若无,则记录当次设备逻辑地址、访问逻辑地址和调用时间戳,并发送至bmc。
8.进一步地,基于存储的资产信息,根据开机信息判断故障位置,具体包括:通过进度信息定位故障功能模块,进而从底层设备驱动调用访问信息中获取故障设备逻辑地址;基于存储的资产信息,查找故障设备逻辑地址对应的物理地址,定位出具体故障位置;根据bios自检模块检测的异常信息,获取异常逻辑地址,基于存的资产信息,查找异常逻辑地址对应的物理地址,定位出具体故障位置。
9.进一步地,bmc检测bios是否出现异常宕机,具体包括:bios启动时,bmc触发看门狗启动;若bios未出现异常宕机,bios结束上电自检后,bmc触发看门狗关闭;若看门狗超时,则bmc判定bios出现异常宕机。
10.进一步地,发出报警信息,具体包括:将报警信息输出到数码管、串口日志和sel日志;同时,重置显卡,将报警信息和/或获取的开机信息显示在屏幕。
11.第二方面,本发明的技术方案提供一种服务器开机故障定位装置,包括:开机信息记录模块、交互模块、宕机检测模块、资产信息模块、故障分析模块和故障输出模块;其中,开机信息记录模块和交互模块配置在bios,宕机检测模块、资产信息模块、故障分析模块和故障输出模块配置在bmc;开机信息记录模块:服务器开机阶段,记录开机信息;其中开机信息包括进度信息、底层设备驱动调用访问信息和自检信息;交互模块:将记录的开机信息发送至bmc;宕机检测模块:检测bios是否出现异常宕机;资产信息模块:存储资产信息;故障分析模块:基于存储的资产信息,根据开机信息判断故障位置;故障输出模块:发出报警信息。
12.进一步地,开机信息记录模块包括,进度单元:服务器开机阶段,bios加载功能模块时,记录功能模块的名称、地址和调用时间戳,并经交互模块发送至bmc;驱动访问监测单元:监测底层设备驱动调用访问状态,当有底层设备驱动被调用访问时,记录设备逻辑地址、访问逻辑地址和调用时间戳,并经交互模块发送至bmc;自检单元:对相关设备进行自检相关设备,当检测到异常信息时,将异常信息经交互模块发送至bmc。
13.第三方面,本发明的技术方案提供一种终端,包括:存储器,用于存储服务器开机故障定位程序;处理器,用于执行所述服务器开机故障定位程序时实现如上述任一项所述服务器
开机故障定位方法的步骤。
14.第四方面,本发明的技术方案提供一种计算机可读存储介质,所述可读存储介质上存储有服务器开机故障定位程序,所述服务器开机故障定位程序被处理器执行时实现如上述任一项所述服务器开机故障定位方法的步骤。
15.本发明提供的一种服务器开机故障定位方法、装置、终端及存储介质,相对于现有技术,具有以下有益效果:bios将开机阶段的进度信息、底层设备驱动调用访问信息和自检信息等开机信息发送给bmc,由bmc在bios出现异常宕机时,根据这些开机信息,结合资产信息定位出故障位置,实现除了自检出的故障外,还根据进度和驱动信息定位其他故障,覆盖较全面范围的故障检测,为故障调试维修提供数据,提供生产维修效率。
附图说明
16.为了更清楚的说明本技术实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
17.图1是典型的intel服务器架构示意图。
18.图2是本发明实施例提供的一种服务器开机故障定位方法流程示意图。
19.图3是本发明实施例提供的一种服务器开机故障定位装置结构示意框图。
20.图4是本发明实施例提供的一种服务器开机故障定位装置的工作原理示意图。
21.图5是本发明实施例提供的一种终端的结构示意图。
具体实施方式
22.为了使本技术领域的人员更好地理解本技术方案,下面结合附图和具体实施方式对本技术作进一步的详细说明。显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
23.图1是典型的intel服务器架构示意图,bmc(baseboard management controller,基板管理控制器)通过pch芯片与bios通信,同时bmc控制显卡,连接数据管、显示器等显示设备,且可将信息通过串口输出,本发明基于服务器架构,使bios将开机信息发送给bmc,由bmc根据开机信息判断故障位置,以覆盖更全面的故障信息,为调试维修提供数据,提高生产维修效率。
24.图2是本发明实施例提供的一种服务器开机故障定位方法流程示意图,如图2所示,该方法包括以下步骤。
25.s1,服务器开机阶段,bios记录开机信息并将其发送至bmc,其中开机信息包括进度信息、底层设备驱动调用访问信息和自检信息。
26.s2,bmc检测bios是否出现异常宕机。
27.s3,当bios出现异常宕机时,bmc基于存储的资产信息,根据开机信息判断故障位置,发出报警信息。
28.在服务器开机阶段,bios根据进度调用加载各个功能模块,加载功能模块的信息
构成进度信息发送给bmc,同时在各种驱动加载过程中,会访问底层设备驱动库(如pcie lib/io lib),bios同时记录底层设备驱动调用访问信息发送给bmc,bmc根据进度信息和底层设备驱动调用访问信息找出故障设备。另外,bios的自检程序检测的自检信息发送给bmc,bmc根据自检信息找出由自检检测到的故障设备。判断出故障位置后发出报警信息给维修人员以提示。
29.本实施例的服务器开机故障定位方法,bios将开机阶段的进度信息、底层设备驱动调用访问信息和自检信息等开机信息发送给bmc,由bmc在bios出现异常宕机时,根据这些开机信息,结合资产信息定位出故障位置,实现除了自检出的故障外,还根据进度和驱动信息定位其他故障,覆盖较全面范围的故障检测,为故障调试维修提供数据,提供生产维修效率。
30.作为一种可实现的方式,bios所记录的开机信息包括进度信息、底层设备驱动调用访问信息和自检信息,其中进度信息指加载功能模块的进程相关信息,底层设备驱动调用访问信息指调用访问底层设备驱动库内的驱动的相关设备的信息,自检信息指bios自检程序进行自检的结果信息。bios记录的相关信息一般是逻辑地址,而bmc存储有资产信息,资产信息包括逻辑地址对应的物理地址,bmc根据逻辑地址,从资产信息中查找对应的物理地址,从而定位出故障位置。
31.为进一步理解本发明,以下提供一具体实施例对本发明进一步详细说明,该具体实施例包括以下步骤。
32.ss1,服务器开机阶段,bios记录开机信息并将其发送至bmc。
33.1.1,bios加载功能模块时,记录功能模块的名称、地址和调用时间戳,并发送至bmc。
34.bios根据进度加载各个功能模块,进度信息包括加载的功能模块的名称、地址和调用时间戳。
35.1.2,监测底层设备驱动调用访问状态,当有底层设备驱动被调用访问时,记录设备逻辑地址、访问逻辑地址和调用时间戳,并发送至bmc。
36.启动底层设备时调用驱动,相应的,bios记录底层设备驱动调用访问信息,包括设备逻辑地址、访问逻辑地址和调用时间戳。
37.从运行时间考虑,默认记录最近几次的设备访问,减少重复记录,进而减少对系统开机时间的影响。具体地,当有底层设备驱动被调用访问时,判断包括当次在内的最近n次底层设备驱动调用访问内,是否有当次底层设备驱动的调用访问记录;若有,则不作处理;若无,则记录当次设备逻辑地址、访问逻辑地址和调用时间戳,并发送至bmc。
38.例如只记录最近5次的设备访问,预先配置设备访问记录表,将记录的信息填写到记录表格中,根据记录时间从上到下依次记录。
39.前5次访问分别访问了设备1、设备2、设备3、设备4、设备5。当前是第6次访问,如果当次访问的是设备2,则其在最近5次(包括当次)内有记录,当次不再记录;如果当次访问的是设备1,则其在最近5次内无记录,则更新设备1信息并使其移到表格最下一行。
40.1.3,bios对相关设备进行自检,当检测到异常信息时,将异常信息发送至bmc。
41.自检程序进行关键设备,如cpu、内存、upi等的自检,如果检测到异常,则将异常结果发送至bmc。需要说明的是,异常信息包含异常设备的逻辑地址。
42.ss2,bmc检测bios是否出现异常宕机。
43.该具体实施例中,可通过bmc的看门狗检测是否出现异常宕机,bios启动时,看门狗启动;若bios未出现异常宕机,bios结束上电自检后,看门狗关闭;若看门狗超时,长时间未收到关闭信息,则bmc判定bios出现异常宕机。
44.ss3,若出现异常宕机,则bmc基于存储的资产信息,根据开机信息判断故障位置。
45.资产信息包含服务器硬件组件信息,例如cpu、内存、pcie、sata等设备物理地址、对应的逻辑地址、资源信息等,当检测到故障信息时,根据故障信息的逻辑地址查找到物理地址,定位出故障信息。
46.3.1,通过进度信息定位故障功能模块,进而从底层设备驱动调用访问信息中获取故障设备逻辑地址。
47.3.2,基于存储的资产信息,查找故障设备逻辑地址对应的物理地址,定位出具体故障位置。
48.首先根据进度信息得知哪个功能模块出现问题,再通过底层设备驱动调用访问信息定位到出现问题设备的逻辑地址,bus号、 device号、function号或者io地址信息等,通过资产信息,得到逻辑位置与物理位置的对应关系,从而定位故障设备物理位置,提供最终维修建议。
49.3.3,根据bios自检模块检测的异常信息,获取异常逻辑地址,基于存的资产信息,查找异常逻辑地址对应的物理地址,定位出具体故障位置。
50.自检程序直接将异常信息发送至bmc,异常信息包含异常设备的逻辑地址,bmc结合资产信息对应找到物理位置,定位故障设备物理位置,提供最终维修建议。
51.ss4,发出报警信息。
52.4.1,将报警信息输出到数码管、串口日志和sel日志。
53.4.2,重置显卡,将报警信息和/或获取的开机信息显示在屏幕。
54.由于数码管信息太少、串口以及sel日志需要通过网络带外方式访问bmc获取,在生产过程中操作极为不便,为了加速故障维修,该具体实施例在获得故障信息后c将重置显卡,重新初始化后由bmc控制显卡,将原始屏幕信息与故障信息整合,都显示在屏幕上,方便维修人员直接查看故障原因,当检测到系统重新启动时,释放显卡控制。
55.ss5,若未出现异常宕机,则程序结束。
56.上文中对于一种服务器开机故障定位方法的实施例进行了详细描述,基于上述实施例描述的服务器开机故障定位方法,本发明实施例还提供了一种与该方法对应的服务器开机故障定位装置。
57.图3是本发明实施例提供的一种服务器开机故障定位装置结构示意框图,如图3所示,该装置包括:开机信息记录模块、交互模块、宕机检测模块、资产信息模块、故障分析模块和故障输出模块;其中,开机信息记录模块和交互模块配置在bios,宕机检测模块、资产信息模块、故障分析模块和故障输出模块配置在bmc。
58.开机信息记录模块:服务器开机阶段,记录开机信息;其中开机信息包括进度信息、底层设备驱动调用访问信息和自检信息。
59.交互模块:将记录的开机信息发送至bmc。
60.宕机检测模块:检测bios是否出现异常宕机。
61.资产信息模块:存储资产信息。
62.故障分析模块:基于存储的资产信息,根据开机信息判断故障位置。
63.故障输出模块:发出报警信息。
64.其中,开机信息记录模块包括:进度单元、驱动访问监测单元和自检单元。
65.进度单元:服务器开机阶段,bios加载功能模块时,记录功能模块的名称、地址和调用时间戳,并经交互模块发送至bmc。
66.驱动访问监测单元:监测底层设备驱动调用访问状态,当有底层设备驱动被调用访问时,记录设备逻辑地址、访问逻辑地址和调用时间戳,并经交互模块发送至bmc。
67.自检单元:对相关设备进行自检相关设备,当检测到异常信息时,将异常信息经交互模块发送至bmc。
68.本实施例提供的服务器开机故障定位装置,bios将开机阶段的进度信息、底层设备驱动调用访问信息和自检信息等开机信息发送给bmc,由bmc在bios出现异常宕机时,根据这些开机信息,结合资产信息定位出故障位置,实现除了自检出的故障外,还根据进度和驱动信息定位其他故障,覆盖较全面范围的故障检测,为故障调试维修提供数据,提供生产维修效率。
69.为进一步理解本发明,以下结合图3和图4的该实施例装置的工作原理示意图,对各模块进一步详细说明。
70.1)进度单元:除了在bios运行关键阶段打桩记录进度外,当bios调用不同功能模块时,记录并输出功能模块信息。具体在efi_loaded_image_protocol中,加载不同功能模块时,将功能模块的名称、地址、调用时间戳等相关信息通过交互模块发送给bmc。
71.2)自检单元:自检关键设备,如cpu、内存、upi等,如果异常将结果通过交互模块发送给bmc。
72.3)驱动访问监测单元:检测、记录底层设备驱动库(pcie lib/io lib)访问信息。在各种驱动加载过程中,不可避免的通过pcie、io等底层驱动对设备操作,通过这些底层驱动,可以监控各种上层驱动,比如pxe驱动、文件驱动对设备的操作访问记录,简单高效。具体的在efi_pci_io_protocol、efi_usb2_hc_protocol等pcie设备、io设备的库函数中,当有调用访问时,记录设备逻辑地址、访问逻辑地址、调用时间戳等相关信息通过交互模块发送给bmc。从运行时间考虑,默认记录最近五次的设备访问,如果本次访问跟前五次访问的设备一样,则不重复记录,减小对系统开机时间的影响。
73.4)资产信息模块:服务器硬件组件信息,包含cpu、内存、pcie、sata等设备地址、资源信息等。
74.5)故障分析模块:结合bios交互模块传递的bios进度、自检信息等,结合资产信息模块的资产信息,通过交互模块中的进度信息,得知bios的哪个功能模块出现了问题;通过交互模块中的访问记录信息,定位到了出现问题设备的逻辑位置,比如bus号、 device号、function号或者io地址信息;通过资产信息模块,得到逻辑位置与物理位置的对应关系,从而定位设备物理位置,提供最终维修建议。
75.6)宕机检测模块:bios看门狗,从检测或者收到bios启动信息是开启,到bios结束post时关闭。当bios异常宕机时,看门狗无法收到关闭通知,触发看门狗超时,此时bmc故障分析模块分析故障输出结果。
76.7)故障输出模块:输出从bios交互模块收到的信息以及故障分析模块的维修建议等。除输出到数码管、串口日志、sel日志等通用设计之外,由于数码管信息太少、串口以及sel日志需要通过网络带外方式访问bmc获取,在生产过程中操作极为不便,为了加速故障维修,本专利中故障输出模块在检测到看门狗故障时,从故障分析模块获得分析结果,bmc将重置显卡,重新初始化后由bmc控制显卡,将原始屏幕信息与故障信息整合,都显示在屏幕上,方便维修人员直接查看故障原因,当检测到系统重新启动时,释放显卡控制。
77.图5为本发明实施例提供的一种终端装置500的结构示意图,包括:处理器510、存储器520及通信单元530。所述处理器510用于实现存储器520中保存的服务器开机故障定位程序时实现以下步骤:s1,服务器开机阶段,bios记录开机信息并将其发送至bmc,其中开机信息包括进度信息、底层设备驱动调用访问信息和自检信息。
78.s2,bmc检测bios是否出现异常宕机。
79.s3,当bios出现异常宕机时,bmc基于存储的资产信息,根据开机信息判断故障位置,发出报警信息。
80.本发明bios将开机阶段的进度信息、底层设备驱动调用访问信息和自检信息等开机信息发送给bmc,由bmc在bios出现异常宕机时,根据这些开机信息,结合资产信息定位出故障位置,实现除了自检出的故障外,还根据进度和驱动信息定位其他故障,覆盖较全面范围的故障检测,为故障调试维修提供数据,提供生产维修效率。
81.该终端装置500包括处理器510、存储器520及通信单元530。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
82.其中,该存储器520可以用于存储处理器510的执行指令,存储器520可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。当存储器520中的执行指令由处理器510执行时,使得终端500能够执行以下上述方法实施例中的部分或全部步骤。
83.处理器510为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器520内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(integrated circuit,简称ic) 组成,例如可以由单颗封装的ic 所组成,也可以由连接多颗相同功能或不同功能的封装ic而组成。举例来说,处理器510可以仅包括中央处理器(central processing unit,简称cpu)。在本发明实施方式中,cpu可以是单运算核心,也可以包括多运算核心。
84.通信单元530,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。
85.本发明还提供一种计算机存储介质,这里所说的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:rom)或随机存储记忆体(英文:random access memory,简称:ram)等。
86.计算机存储介质存储有服务器开机故障定位程序,所述服务器开机故障定位程序被处理器执行时实现以下步骤:s1,服务器开机阶段,bios记录开机信息并将其发送至bmc,其中开机信息包括进度信息、底层设备驱动调用访问信息和自检信息。
87.s2,bmc检测bios是否出现异常宕机。
88.s3,当bios出现异常宕机时,bmc基于存储的资产信息,根据开机信息判断故障位置,发出报警信息。
89.本发明bios将开机阶段的进度信息、底层设备驱动调用访问信息和自检信息等开机信息发送给bmc,由bmc在bios出现异常宕机时,根据这些开机信息,结合资产信息定位出故障位置,实现除了自检出的故障外,还根据进度和驱动信息定位其他故障,覆盖较全面范围的故障检测,为故障调试维修提供数据,提供生产维修效率。
90.本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。
91.在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
92.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
93.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
94.以上公开的仅为本发明的优选实施方式,但本发明并非局限于此,任何本领域的技术人员能思之的没有创造性的变化,以及在不脱离本发明原理前提下所作的若干改进和润饰,都应落在本发明的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1