一种服务器记录内存故障的方法技术

技术编号:35095988 阅读:30 留言:0更新日期:2022-10-01 16:59
本发明专利技术属于计算机固件技术领域,具体涉及一种服务器记录内存故障的方法。本发明专利技术的方法在服务器内存不在位或内存故障发生后,通过查看日志的方式获知服务器内存故障状态,从而快速定位到服务器无法正常开机的问题,并较少占用BMC的系统资源。用BMC的系统资源。用BMC的系统资源。

【技术实现步骤摘要】
一种服务器记录内存故障的方法


[0001]本专利技术属于计算机固件
,具体涉及一种服务器记录内存故障的方法。

技术介绍

[0002]BMC(Baseboard Management Controller)与IPMI(Intelligent Platform Management Interface),即基板管理控制器与智能型平台管理接口,是服务器的基本核心功能子系统,负责服务器的硬件状态管理、操作系统管理、健康状态管理、功耗管理等核心功能。
[0003]BMC是独立于服务器系统之外的小型操作系统,是一个集成在主板上的芯片,也有产品是通过PCIE等形式插在主板上,对外表现形式只是一个标准的RJ45网口,拥有独立IP的固件系统。服务器集群一般使用BMC指令或进行大规模无人值守操作,包括服务器的远程管理、监控、安装、重启等。
[0004]现有的服务器发生内存故障时,存在以下问题:
[0005]1)现有的服务器在DIMM0不在位或DIMM0故障时,BIOS无法正常运行。在内存问题解决后,BIOS不能记录此前存在过DIMM0不在位或故障的日志,即无法与BMC记录的服务器告警日志保持统一,不利于用户查看服务器运行状况。
[0006]2)BIOS从BMC获取数据记录日志存在重复记录的风险。
[0007]3)服务器内存故障后,BMC获取内存故障状态的方式繁琐。

技术实现思路

[0008]有鉴于此,本专利技术提供了一种服务器记录内存故障的方法,能够解决记录内存故障的问题。<br/>[0009]本专利技术的技术解决方案是:
[0010]一种服务器记录内存故障的方法,该方法实现的步骤包括:
[0011]1.BMC
[0012]步骤一、服务器开机。可通过向BMC发送IPMI开机命令或在BMC Web页面点击开机按键远程控制服务器开机。
[0013]步骤二、定时器开始计时。在判断服务器为开机状态后,BMC系统内的定时器模块开始计时,记录已开机时间。
[0014]步骤三、判断已开机时间是否大于4分钟且小于8分钟。因为不同服务器硬件环境不同,BMC获取CPU的IIC控制权的时间会有差异,所以定义该时间段是为适用于不同服务器。当开机时间大于8分钟,则停止对开机时间计时。当开机时间小于4分钟,则继续计时。
[0015]步骤四、当开机时间满足大于等于4分钟且小于等于8分钟的条件时,BMC获取自检码(POST code)。BMC通过IIC总线从CPU寄存器(寄存器地址0x28800024)获取POST code,该寄存器默认值为0x20171018。BMC与CPU的IIC拓扑示意图如图2。
[0016]步骤五、检测POST code是否提示内存故障,如果有上报内存故障告警。POST code
错误码的定义如表2。BMC对获取的POST code进行解析,在判断获取到的POST code的值为0时,BMC在系统日志记录DIMM0不在位的日志。在判断获取到的POST code值为1时,BMC在系统日志记录DIMM0故障的日志。
[0017]Post code值描述0没找到内存(服务器dimm0)1初始化失败(服务器dimm0)
…………
[0018]表2POST code错误码的定义示例
[0019]步骤六、存储POST code和当前时间。
[0020]步骤七、结束流程。
[0021]2.BIOS
[0022]步骤一、服务器开机,当BIOS检测到DIMM0不在位或DIMM0故障时,结束步骤。
[0023]步骤二、BIOS发送IPMI OEM命令获取上一次开机BMC存储的POST code和时间戳。
[0024]步骤三、BIOS记录内存告警日志。BIOS对获取的POST code进行解析,当获取到的POST code值为0时,BIOS记录DIMM0不在位的日志,当获取到的POST code值为1时,BIOS记录DIMM0故障日志。BIOS获取的时间用于避免重复记录内存故障日志,当BIOS获取的时间与上一次获取的POST code的时间相同,不记录内存故障日志,当BIOS获取的时间与上一次获取的POST code的时间不同,记录内存故障日志,与BMC系统日志统一。
[0025]步骤四、结束流程。
[0026]所述的方法所记录的内存故障包括硬件层面、固件层面和操作系统层面。
[0027]所述的硬件层面包括了处理器平台、内存、CPLD计算机关键元器件。
[0028]所述的固件层面为BIOS固件,包括BIOS日志模块、与BMC的通信模块、与CPLD的通信模块和内存检测模块。
[0029]所述的操作系统层面包括定时器模块、与BIOS的通信模块、与CPLD的通信模块、自检码解析模块和自检码读取模块。
[0030]所述的BIOS固件通过BMC通信模块,实现了与BMC的信息交互;通过CPLD通信模块,使BIOS向CPLD发送内存初始化完成的信号,CPLD收到信号后,将CPU的IIC访问权交给BMC,实现BMC通过IIC总线访问CPU寄存器;通过内存检测模块,实现内存故障检测,当监测到DIMM0不在位或DIMM0故障时,BIOS无法运行。
[0031]所述的BMC系统通过定时器模块,对服务器开机时间进行计时,当服务器开机时长在4~8分钟时间段,BMC通过自检码读取模块获取POST code,通过POST code解析模块实现对POST code的解析和存储,在服务器开机时长超过8分钟后,停止计时,即在开机时长超过8分钟后,获取POST code程序不再运行。
[0032]有益效果
[0033](1)本专利技术的一种服务器记录内存故障的方法,在服务器开机时通过向BMC发送IPMI开机命令或在BMC Web页面点击开机按键远程控制服务器开机,定时器开始计时并记录已开机时间,并判断已开时间的大小,检测POST code是否提示内存故障;
[0034](2)本专利技术的一种服务器记录内存故障的方法,通过对获取存储的POST code和时间戳,并进行解析得到POST code为0或1时的故障日志,当获取的时间不同时记录内存故障
日志,使得与BMC系统的日志统一;
[0035](3)本专利技术的一种服务器记录内存故障的方法,通过对所记录的内存故障的层面进行划分,更清晰的获取内存的故障状态,从而快速定位到服务器不能正常开机的问题,并减少占用BMC的系统资源;
[0036](4)本专利技术的一种服务器记录内存故障的方法,对硬件层面的具体内容进行了详细说明,根据故障结果快速定位到服务器不能正常开机的问题,并减少占用BMC的系统资源;
[0037](5)本专利技术的一种服务器记录内存故障的方法,对固件层面的具体内容进行了详细说明,根据故障结果快速定位到服务器不能正常开机的问题,并减少占用BMC的系统资源;
[0038](6)本专利技术的一种服务器记录本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种服务器记录内存故障的方法,其特征在于该方法实现的步骤包括:步骤11、服务器开机,通过向BMC发送IPMI开机命令或在BMC Web页面点击开机按键远程控制服务器开机;步骤12、定时器开始计时,在判断服务器为开机状态后,BMC系统内的定时器模块开始计时,记录已开机时间;步骤13、判断已开机时间是否大于4分钟且小于8分钟,当开机时间大于8分钟,则停止对开机时间计时,当开机时间小于4分钟,则继续计时;步骤14、当开机时间满足大于等于4分钟且小于等于8分钟的条件时,BMC获取POST code,BMC通过IIC总线从CPU寄存器获取POST code,该寄存器默认值为0x20171018;步骤15、检测POST code是否提示内存故障,如果有上报内存故障告警,BMC对获取的POST code进行解析,在判断获取到的POST code的值为0时,BMC在系统日志记录DIMM0不在位的日志,在判断获取到的POST code值为1时,BMC在系统日志记录DIMM0故障的日志;步骤六、存储POST code和当前时间。2.根据权利要求1所述的一种服务器记录内存故障的方法,其特征在于该方法的步骤还包括:步骤21、服务器开机,当BIOS检测到DIMM0不在位或DIMM0故障时,结束步骤,否则进入下一步;步骤22、BIOS发送IPMI OEM命令获取上一次开机BMC存储的POST code和时间戳;步骤23、BIOS记录内存告警日志,BIOS对获取的POST code进行解析,当获取到的POST code值为0时,BIOS记录DIMM0不在位的日志,当获取到的POST code值为1时,BIOS记录DIMM0故障日志,当BIOS获取的时间与上一次获取的POST code的时间相同,不记录内存故障日志,当...

【专利技术属性】
技术研发人员:陈小春张超朱立森孙亮郭馨王亚洲
申请(专利权)人:昆仑太科北京技术股份有限公司
类型:发明
国别省市:

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

1