一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种定位故障内存的方法、系统、BMC及服务器与流程

2022-06-02 16:33:36 来源:中国专利 TAG:

一种定位故障内存的方法、系统、bmc及服务器
技术领域
1.本发明涉及定位故障内存的技术领域,特别是涉及一种定位故障内存的方法、系统、bmc及服务器。


背景技术:

2.现有技术中,服务器可能包含多个cpu,每个cpu下连接了多个通道,每个通道下又连接了多个存储器,当cpu开启内存检测功能时,若一个存储器出现故障,cpu可能检测到该存储器所属的通道的输出信号不合格,此时cpu会禁用该通道,导致该通道下的所有存储器均被禁用;cpu也可能检测到自身连接的多个通道输出的信号总体不合格,此时cpu会禁用自身连接的多个通道,导致该多个通道下的所有存储器均被禁用;上述情况导致了一个存储器出现故障而牵连多个未出现故障的存储器被禁用,现有技术的处理方法是将所有被禁用的存储器进行更换,造成了未出现故障的存储器的不必要更换。


技术实现要素:

3.本技术的目的是提供一种定位故障内存的方法、系统、bmc及服务器,该方案中,判定内存故障码为真正内存故障码时,表明该内存故障码对应的存储器出现故障,对其进行标记,进而使维修人员根据标记进行存储器的更换,避免了未出现故障的存储器的不必要更换。
4.为解决上述技术问题,本技术提供了一种定位故障内存的方法,应用于服务器中的bmc,所述服务器还包括与所述bmc连接的bios芯片、与所述bios芯片连接的n个cpu、与每个所述cpu连接的m个通道和与每个所述通道连接的h个存储器,n、m、h为正整数;
5.所述定位故障内存的方法包括:
6.在接收到所述bios芯片发送的不小于预设数量的日志时,判断n个所述cpu中是否存在cpu开启内存检测功能;
7.在存在cpu开启内存检测功能时,获取每个所述日志中的内存故障码,所述内存故障码为真正内存故障码或非真正内存故障码;
8.若所述内存故障码为真正内存故障码,则对所述内存故障码对应的存储器进行标记。
9.优选的,还包括:
10.在不存在cpu开启内存检测功能时,对每个所述日志对应的存储器进行标记。
11.优选的,判断n个所述cpu中是否存在cpu开启内存检测功能,包括:
12.在检测到存储区域内存储的信息中包含所述bios芯片控制所述cpu开启内存检测功能的信息时,判定n个所述cpu中存在cpu开启内存检测功能;
13.在检测到存储区域内存储的信息中不包含所述bios芯片控制所述cpu开启内存检测功能的信息时,判定n个所述cpu中不存在cpu开启内存检测功能。
14.优选的,所述非真正内存故障码包括majorcode=0x0a,minorcode=0x04;
majorcode=0x0a,minorcode=0x03;和majorcode=0x39,minorcode=0x05。
15.优选的,对所述内存故障码对应的存储器进行标记之后,还包括:
16.控制提示模块对被标记的存储器进行提示。
17.优选的,所述提示模块为显示模块。
18.优选的,还包括:
19.若所述内存故障码为非真正内存故障码,则控制提示模块对所述内存故障码对应的存储器进行提示。
20.为解决上述技术问题,本技术还提供了一种定位故障内存的系统,应用于服务器,所述服务器包括bmc、与所述bmc连接的bios芯片、与所述bios芯片连接的n个cpu、与每个所述cpu连接的m个通道和与每个所述通道连接的h个存储器,n、m、h为正整数;
21.所述定位故障内存的系统包括:
22.判断单元,用于在接收到所述bios芯片发送的不小于预设数量的日志时,判断n个所述cpu中是否存在cpu开启内存检测功能;
23.获取单元,用于在存在cpu开启内存检测功能时,获取每个所述日志中的内存故障码,所述内存故障码为真正内存故障码或非真正内存故障码;
24.标记单元,用于若所述内存故障码为真正内存故障码,则对所述内存故障码对应的存储器进行标记。
25.为解决上述技术问题,本技术还提供了一种bmc,所述bmc连接bios芯片,所述bios芯片连接n个cpu,每个所述cpu连接m个通道,每个所述通道连接h个存储器,n、m、h为正整数;所述bmc包括:
26.存储器,用于存储计算机程序;
27.处理器,用于执行所述计算机程序以实现所述定位故障内存的方法的步骤。
28.为解决上述技术问题,本技术还提供了一种服务器,包括所述bmc、与所述bmc连接的bios芯片、与所述bios芯片连接的n个cpu、与每个所述cpu连接的m个通道和与每个所述通道连接的h个存储器,n、m、h为正整数。
29.本技术提供了一种定位故障内存的方法、系统、bmc及服务器,该方案中,在接收到bios芯片发送的不小于预设数量的日志时,判断n个cpu中是否存在cpu开启内存检测功能;在存在cpu开启内存检测功能时,获取每个日志中的内存故障码,内存故障码为真正内存故障码或非真正内存故障码;若内存故障码为真正内存故障码,则对内存故障码对应的存储器进行标记。判定内存故障码为真正内存故障码时,表明该内存故障码对应的存储器出现故障,对其进行标记,进而使维修人员根据标记进行存储器的更换,避免了未出现故障的存储器的不必要更换。
附图说明
30.为了更清楚地说明本技术实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
31.图1为本技术提供的一种定位故障内存的方法的流程图;
32.图2为本技术提供的一种定位故障内存的系统的结构示意图;
33.图3为本技术提供的一种bmc的结构示意图;
34.图4为本技术提供的一种服务器的结构示意图。
具体实施方式
35.本技术的核心是提供一种定位故障内存的方法、系统、bmc及服务器,该方案中,判定内存故障码为真正内存故障码时,表明该内存故障码对应的存储器出现故障,对其进行标记,进而使维修人员根据标记进行存储器的更换,避免了未出现故障的存储器的不必要更换。
36.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
37.图1为本技术提供的一种定位故障内存的方法的流程图,该方法应用于服务器中的bmc,服务器还包括与bmc连接的bios芯片、与bios芯片连接的n个cpu、与每个cpu连接的m个通道和与每个通道连接的h个存储器,n、m、h为正整数;
38.定位故障内存的方法包括:
39.s11:在接收到bios芯片发送的不小于预设数量的日志时,判断n个cpu中是否存在cpu开启内存检测功能;
40.s12:在存在cpu开启内存检测功能时,获取每个日志中的内存故障码,内存故障码为真正内存故障码或非真正内存故障码;
41.s13:若内存故障码为真正内存故障码,则对内存故障码对应的存储器进行标记。
42.现有技术中,当cpu开启内存检测功能时,就可能导致一个存储器出现故障而牵连其它的未出现故障的存储器也被禁用,而被禁用的存储器会被维修人员进行更换,导致未出现故障的存储器的不必要更换,浪费了大量的存储器。
43.而本技术则在cpu开启内存检测功能时,通过对日志中的内存故障码进行筛选,确定出真正出现故障的存储器,从而避免了未出现故障的存储器的不必要更换。
44.其中,内存检测功能可以为enforce popluation por(enforce population project on a roadmap),指的是按照cpu厂商推荐的方法对内存进行组合后,cpu会自动按照厂商定义好的规则对内存的故障进行检测,当检测到通道上的信号不合格时,会禁用与该通道连接的所有存储器,当检测到自身多个通道上的信号整体不合格时,会禁用与该多个通道连接的所有存储器,其中,检测信号不合格,即检测信号质量有问题或者内存数据不可信,具体检测方法是cpu厂商内部的方法,对外不公开。不同的内存组合,检测内存故障的方法不同,将enforce population por功能打开后,cpu就会按照预先设定好的规则检查内存,此处的内存即为内存条,也就是存储器。
45.x86平台的服务器能够支持enforce population por功能,具体的,在bios芯片的功能设置选项下可以人为地设置该功能的开启或者关闭,当该功能开启时,在某个存储器发生故障时,可能出现将同一个通道下的其它存储器禁用,或者将同一个cpu下的其它通道下的存储器禁用,呈现出多个存储器不可用的状态,但是这些存储器都不是真正的发生故
障的存储器。而bios芯片可以与cpu进行信息交互,获取各个存储器的状态,并可以将被禁用的存储器的信息以日志的形式发送给bmc,一个被禁用的存储器可以对应一条日志,每个日志中包含了一个内存故障码。其中,内存故障码可以为majorcode和minorcode;日志可以为sel日志。
46.bmc(baseboard management controller,基板管理控制器)是服务器特有的管理控制器,bmc的主要功能之一是自动监控服务器运行状态,主要包括各硬件的健康状态。bmc监测各硬件的健康状态,获取各硬件的信息,有助于运维人员及时了解服务器的运行状况,保证服务器正常运行。当bmc接收到不小于预设数量的日志时,此时存在大量的存储器被禁用,有可能是存在cpu开启了内存检测功能引起的,所以首先判断该功能是否开启。若开启,则根据日志中的内存故障码来判断是否为真正的故障,进而对真正发生故障的存储器进行标记,以便维修人员进行更换。
47.综上,通过内存故障码可以快速定位到真正发生故障的存储器,当产线或者客户机房发生多个存储器被禁用的情况时,可以根据该方法快速定位到真正发生故障的存储器,进行更换,其余没有发生故障的存储器依旧可用。这样可以避免存储器被误更换,节约了大量的存储器,降低了维修成本,节约了人力,同时也提高了维修速度。
48.本技术提供了一种定位故障内存的方法,该方案中,在接收到bios芯片发送的不小于预设数量的日志时,判断n个cpu中是否存在cpu开启内存检测功能;在存在cpu开启内存检测功能时,获取每个日志中的内存故障码,内存故障码为真正内存故障码或非真正内存故障码;若内存故障码为真正内存故障码,则对内存故障码对应的存储器进行标记。判定内存故障码为真正内存故障码时,表明该内存故障码对应的存储器出现故障,对其进行标记,进而使维修人员根据标记进行存储器的更换,避免了未出现故障的存储器的不必要更换。
49.在上述实施例的基础上:
50.作为一种优选的实施例,还包括:
51.在不存在cpu开启内存检测功能时,对每个日志对应的存储器进行标记。
52.本实施例中,当不存在cpu开启内存检测功能时,此时bmc接收到的日志中没有基于该功能开启而导致被禁用的存储器的信息生成的日志,此时每个日志对应的存储器都认为发生了故障,都进行标记,以便维修人员进行更换。
53.其中,日志可以是bios芯片基于被禁用的存储器的信息生成的,所以由日志可以得出对应的存储器的信息,进而进行标记。
54.综上,不存在cpu开启内存检测功能时,即不存在存储器未发生故障而被禁用,此时不需内存故障码的判断,省去了内存故障码的判断过程。
55.作为一种优选的实施例,判断n个cpu中是否存在cpu开启内存检测功能,包括:
56.在检测到存储区域内存储的信息中包含bios芯片控制cpu开启内存检测功能的信息时,判定n个cpu中存在cpu开启内存检测功能;
57.在检测到存储区域内存储的信息中不包含bios芯片控制cpu开启内存检测功能的信息时,判定n个cpu中不存在cpu开启内存检测功能。
58.本实施例中,需要判断是否存在cpu开启内存检测功能。具体的,由于cpu的内存检测功能是bios芯片来控制开启或关闭的,而bios芯片又与bmc存在信息交互,bios芯片的功
能设置中,内存检测功能的设置可以发送给bmc。因此在bmc的存储区域中如果存储有bios芯片控制cpu开启内存检测功能的信息时,则判定n个cpu中存在cpu开启内存检测功能,否则,则判定n个cpu中不存在cpu开启内存检测功能。
59.综上,通过bmc与bios芯片的信息交互,利用bios芯片发送给bmc的信息,来快速确定是否存在cpu开启了内存检测功能。
60.作为一种优选的实施例,非真正内存故障码包括majorcode=0x0a,minorcode=0x04;majorcode=0x0a,minorcode=0x03;和majorcode=0x39,minorcode=0x05。
61.本实施例中,列举了常出现的三种非真正内存故障码,其对应的存储器是由于其它原因导致的被禁用,而不是存储器本身真正的故障。
62.具体的,不同情况下,内存故障码,即bios芯片发送给bmc的存储器的majorcode,minorcode是不一样的。当majorcode=0x0a,minorcode=0x04时,表示该存储器被禁用的原因是插法问题,不是真正的故障;当majorcode=0x0a,minorcode=0x03时,表示该存储器被禁用的原因是cpu认为其所在的通道上的信号质量有问题或者数据不可信,直接将该通道禁用,导致该通道上的所有存储器均被禁用,不是真正的故障;当majorcode=0x39,minorcode=0x05时,表示该存储器被禁用的原因是存储器准备失败,即存储器初始化失败,不是真正的故障。除了上述三种,其余的majorcode和minorcode可以认为是存储器真正发生故障而引起的被禁用,此时存储器需要被更换。
63.还需要说明的是,当一个存储器被禁用时,bios芯片可能给bmc发送多条关于该存储器被禁用的日志,即一个被禁用的存储器对应多条日志,该多条日志可能携带不同的majorcode和minorcode,但只要有一条日志中的majorcode和minorcode为真正内存故障码,其对应的存储器即为真正发生故障的存储器。
64.综上,通过常出现的三种非真正内存故障码,快速查找出真正内存故障码,从而可以快速定位出真正发生故障的存储器,进而快速进行更换。
65.作为一种优选的实施例,对内存故障码对应的存储器进行标记之后,还包括:
66.控制提示模块对被标记的存储器进行提示。
67.本实施例中,在标记出真正内存故障码对应的存储器后,还可以通过提示模块对维修人员进行提示,使维修人员能够及时根据提示对存储器进行更换。
68.作为一种优选的实施例,提示模块为显示模块。
69.本实施例中,提示模块可以为显示模块,也可以为语音模块或其它模块,此处不作特别限定。具体的,当产线生产或者客户机房发生大量存储器被禁用时,维修人员可以在显示模块中bmc的页面下查看bmc对存储器的标记,快速找到真正发生故障的存储器并进行更换,然后重新开机,对存储器再次检测,可以查看问题是否解决。
70.作为一种优选的实施例,还包括:
71.若内存故障码为非真正内存故障码,则控制提示模块对内存故障码对应的存储器进行提示。
72.本实施例中,通过提示模块对没有真正发生故障的存储器也进行提示,使维修人员可以根据提示对存储器进行重新插拔,因为一般没有真正发生故障的存储器在重新插拔后基本都可以恢复正常,重新插拔就能够快速解决没有真正发生故障的存储器的问题,然后重新开机,对存储器再次检测,可以查看问题是否解决。
73.请参照图2,图2为本技术提供的一种定位故障内存的系统的结构示意图,系统应用于服务器,服务器包括bmc、与bmc连接的bios芯片、与bios芯片连接的n个cpu、与每个cpu连接的m个通道和与每个通道连接的h个存储器,n、m、h为正整数;
74.定位故障内存的系统包括:
75.判断单元21,用于在接收到bios芯片发送的不小于预设数量的日志时,判断n个cpu中是否存在cpu开启内存检测功能;
76.获取单元22,用于在存在cpu开启内存检测功能时,获取每个日志中的内存故障码,内存故障码为真正内存故障码或非真正内存故障码;
77.标记单元23,用于若内存故障码为真正内存故障码,则对内存故障码对应的存储器进行标记。
78.对于本技术提供的一种定位故障内存的系统的介绍,请参照上述实施例,本技术此处不再赘述。
79.请参照图3,图3为本技术提供的一种bmc的结构示意图,bmc连接bios芯片,bios芯片连接n个cpu,每个cpu连接m个通道,每个通道连接h个存储器,n、m、h为正整数;bmc包括:
80.存储器31,用于存储计算机程序;
81.处理器32,用于执行计算机程序以实现定位故障内存的方法的步骤。
82.对于本技术提供的一种bmc的介绍,请参照上述实施例,本技术此处不再赘述。
83.请参照图4,图4为本技术提供的一种服务器的结构示意图,图中以n=1且m=h=2为例,服务器包括bmc41、与bmc41连接的bios芯片42、与bios芯片42连接的n个cpu43、与每个cpu43连接的m个通道44和与每个通道44连接的h个存储器45,n、m、h为正整数。
84.对于本技术提供的一种服务器的介绍,请参照上述实施例,本技术此处不再赘述。
85.需要说明的是,在本说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
86.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其他实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献