CN115129497A - 一种服务器记录内存故障的方法 - Google Patents

一种服务器记录内存故障的方法 Download PDF

Info

Publication number
CN115129497A
CN115129497A CN202210523794.4A CN202210523794A CN115129497A CN 115129497 A CN115129497 A CN 115129497A CN 202210523794 A CN202210523794 A CN 202210523794A CN 115129497 A CN115129497 A CN 115129497A
Authority
CN
China
Prior art keywords
bmc
memory
server
time
bios
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210523794.4A
Other languages
English (en)
Inventor
陈小春
张超
朱立森
孙亮
郭馨
王亚洲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kunlun Taike Beijing Technology Co ltd
Original Assignee
Kunlun Taike Beijing Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kunlun Taike Beijing Technology Co ltd filed Critical Kunlun Taike Beijing Technology Co ltd
Priority to CN202210523794.4A priority Critical patent/CN115129497A/zh
Publication of CN115129497A publication Critical patent/CN115129497A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping

Abstract

本发明属于计算机固件技术领域,具体涉及一种服务器记录内存故障的方法。本发明的方法在服务器内存不在位或内存故障发生后,通过查看日志的方式获知服务器内存故障状态,从而快速定位到服务器无法正常开机的问题,并较少占用BMC的系统资源。

Description

一种服务器记录内存故障的方法
技术领域
本发明属于计算机固件技术领域,具体涉及一种服务器记录内存故障的方法。
背景技术
BMC(Baseboard Management Controller)与IPMI(Intelligent PlatformManagement Interface),即基板管理控制器与智能型平台管理接口,是服务器的基本核心功能子系统,负责服务器的硬件状态管理、操作系统管理、健康状态管理、功耗管理等核心功能。
BMC是独立于服务器系统之外的小型操作系统,是一个集成在主板上的芯片,也有产品是通过PCIE等形式插在主板上,对外表现形式只是一个标准的RJ45网口,拥有独立IP的固件系统。服务器集群一般使用BMC指令或进行大规模无人值守操作,包括服务器的远程管理、监控、安装、重启等。
现有的服务器发生内存故障时,存在以下问题:
1)现有的服务器在DIMM0不在位或DIMM0故障时,BIOS无法正常运行。在内存问题解决后,BIOS不能记录此前存在过DIMM0不在位或故障的日志,即无法与BMC记录的服务器告警日志保持统一,不利于用户查看服务器运行状况。
2)BIOS从BMC获取数据记录日志存在重复记录的风险。
3)服务器内存故障后,BMC获取内存故障状态的方式繁琐。
发明内容
有鉴于此,本发明提供了一种服务器记录内存故障的方法,能够解决记录内存故障的问题。
本发明的技术解决方案是:
一种服务器记录内存故障的方法,该方法实现的步骤包括:
1.BMC
步骤一、服务器开机。可通过向BMC发送IPMI开机命令或在BMC Web页面点击开机按键远程控制服务器开机。
步骤二、定时器开始计时。在判断服务器为开机状态后,BMC系统内的定时器模块开始计时,记录已开机时间。
步骤三、判断已开机时间是否大于4分钟且小于8分钟。因为不同服务器硬件环境不同,BMC获取CPU的IIC控制权的时间会有差异,所以定义该时间段是为适用于不同服务器。当开机时间大于8分钟,则停止对开机时间计时。当开机时间小于4分钟,则继续计时。
步骤四、当开机时间满足大于等于4分钟且小于等于8分钟的条件时,BMC获取自检码(POST code)。BMC通过IIC总线从CPU寄存器(寄存器地址0x28800024)获取POST code,该寄存器默认值为0x20171018。BMC与CPU的IIC拓扑示意图如图2。
步骤五、检测POST code是否提示内存故障,如果有上报内存故障告警。POST code错误码的定义如表2。BMC对获取的POST code进行解析,在判断获取到的POST code的值为0时,BMC在系统日志记录DIMM0不在位的日志。在判断获取到的POST code值为1时,BMC在系统日志记录DIMM0故障的日志。
Post code值 描述
0 没找到内存(服务器dimm0)
1 初始化失败(服务器dimm0)
…… ……
表2POST code错误码的定义示例
步骤六、存储POST code和当前时间。
步骤七、结束流程。
2.BIOS
步骤一、服务器开机,当BIOS检测到DIMM0不在位或DIMM0故障时,结束步骤。
步骤二、BIOS发送IPMI OEM命令获取上一次开机BMC存储的POST code和时间戳。
步骤三、BIOS记录内存告警日志。BIOS对获取的POST code进行解析,当获取到的POST code值为0时,BIOS记录DIMM0不在位的日志,当获取到的POST code值为1时,BIOS记录DIMM0故障日志。BIOS获取的时间用于避免重复记录内存故障日志,当BIOS获取的时间与上一次获取的POST code的时间相同,不记录内存故障日志,当BIOS获取的时间与上一次获取的POST code的时间不同,记录内存故障日志,与BMC系统日志统一。
步骤四、结束流程。
所述的方法所记录的内存故障包括硬件层面、固件层面和操作系统层面。
所述的硬件层面包括了处理器平台、内存、CPLD计算机关键元器件。
所述的固件层面为BIOS固件,包括BIOS日志模块、与BMC的通信模块、与CPLD的通信模块和内存检测模块。
所述的操作系统层面包括定时器模块、与BIOS的通信模块、与CPLD的通信模块、自检码解析模块和自检码读取模块。
所述的BIOS固件通过BMC通信模块,实现了与BMC的信息交互;通过CPLD通信模块,使BIOS向CPLD发送内存初始化完成的信号,CPLD收到信号后,将CPU的IIC访问权交给BMC,实现BMC通过IIC总线访问CPU寄存器;通过内存检测模块,实现内存故障检测,当监测到DIMM0不在位或DIMM0故障时,BIOS无法运行。
所述的BMC系统通过定时器模块,对服务器开机时间进行计时,当服务器开机时长在4~8分钟时间段,BMC通过自检码读取模块获取POST code,通过POST code解析模块实现对POST code的解析和存储,在服务器开机时长超过8分钟后,停止计时,即在开机时长超过8分钟后,获取POST code程序不再运行。
有益效果
(1)本发明的一种服务器记录内存故障的方法,在服务器开机时通过向BMC发送IPMI开机命令或在BMC Web页面点击开机按键远程控制服务器开机,定时器开始计时并记录已开机时间,并判断已开时间的大小,检测POST code是否提示内存故障;
(2)本发明的一种服务器记录内存故障的方法,通过对获取存储的POST code和时间戳,并进行解析得到POST code为0或1时的故障日志,当获取的时间不同时记录内存故障日志,使得与BMC系统的日志统一;
(3)本发明的一种服务器记录内存故障的方法,通过对所记录的内存故障的层面进行划分,更清晰的获取内存的故障状态,从而快速定位到服务器不能正常开机的问题,并减少占用BMC的系统资源;
(4)本发明的一种服务器记录内存故障的方法,对硬件层面的具体内容进行了详细说明,根据故障结果快速定位到服务器不能正常开机的问题,并减少占用BMC的系统资源;
(5)本发明的一种服务器记录内存故障的方法,对固件层面的具体内容进行了详细说明,根据故障结果快速定位到服务器不能正常开机的问题,并减少占用BMC的系统资源;
(6)本发明的一种服务器记录内存故障的方法,对操作心态层面的具体内容进行了详细说明,根据故障结果快速定位到服务器不能正常开机的问题,并减少占用BMC的系统资源;
(7)本发明的一种服务器记录内存故障的方法,对BIOS固件通过BMC通信模块的具体通信形式过程和时间进行了详细描述和限定,使得在服务器内存不在位或内存故障发生后,通过查看日志的方式获知服务器内存故障状态,从而快速定位到服务器无法正常开机的问题,并较少占用BMC的系统资源。
附图说明
图1为本发明总体框架图;
图2BMC与CPU的IIC拓扑示意图;
图3为本发明的BMC流程示意图;
图4为本发明的BIOS流程示意图。
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
一种服务器记录内存故障的方法,包括了三个层面,如图1所示,硬件层面,硬件层面包括了处理器平台、内存、CPLD等其他计算机关键元器件。固件层面,本发明涉及BIOS固件的多个模块,主要包括BIOS日志模块、与BMC的通信模块、与CPLD的通信模块和内存检测模块;操作系统层面,本发明涉及BMC系统内运行的多个模块,包括定时器模块、与BIOS的通信模块、与CPLD的通信模块、自检码(POST code)解析模块和自检码读取模块。
在本发明中BIOS固件通过BMC通信模块,实现了与BMC的信息交互;通过CPLD通信模块,使BIOS向CPLD发送内存初始化完成的信号,CPLD收到信号后,将CPU的IIC访问权交给BMC,实现BMC可以通过IIC总线访问CPU寄存器;通过内存检测模块,实现内存故障检测,当监测到DIMM0不在位或DIMM0故障时,BIOS无法运行。
BMC系统通过定时器模块,对服务器开机时间进行计时,当服务器开机时长在4~8分钟时间段,BMC通过自检码读取模块获取POST code;通过POST code解析模块实现对POSTcode的解析和存储。在服务器开机时长超过8分钟后,停止计时,即本发明在开机时长超过8分钟后,获取POST code程序不再运行,以减少对BMC系统资源的占用。
本发明提供了一种服务器记录内存故障的方法,如图1所示,结合具体实施过程,说明其实现步骤如下:
1.BMC,如图3所示;
步骤一、服务器开机。可通过向BMC发送IPMI开机命令或在BMC Web页面点击开机按键远程控制服务器开机。
步骤二、定时器开始计时。在判断服务器为开机状态后,BMC系统内的定时器模块开始计时,记录已开机时间。
步骤三、判断已开机时间是否大于4分钟且小于8分钟。因为不同服务器硬件环境不同,BMC获取CPU的IIC控制权的时间会有差异,所以定义该时间段是为适用于不同服务器。当开机时间大于8分钟,则停止对开机时间计时。当开机时间小于4分钟,则继续计时。
步骤四、当开机时间满足大于等于4分钟且小于等于8分钟的条件时,BMC获取自检码(POST code)。BMC通过IIC总线从CPU寄存器(寄存器地址0x28800024)获取POST code,该寄存器默认值为0x20171018。BMC与CPU的IIC拓扑示意图如图2。
步骤五、检测POST code是否提示内存故障,如果有上报内存故障告警。POST code错误码的定义如表2。BMC对获取的POST code进行解析,在判断获取到的POST code的值为0时,BMC在系统日志记录DIMM0不在位的日志。在判断获取到的POST code值为1时,BMC在系统日志记录DIMM0故障的日志。
Post code值 描述
0 没找到内存(服务器dimm0)
1 初始化失败(服务器dimm0)
2 主板时钟故障
…… ……
表2POST code错误码的定义示例
步骤六、存储POST code和当前时间。
步骤七、结束流程。
2.BIOS,如图4所示;
步骤一、服务器开机,当BIOS检测到DIMM0不在位或DIMM0故障时,结束步骤。
步骤二、BIOS发送IPMI OEM命令获取上一次开机BMC存储的POST code和时间戳。
步骤三、BIOS记录内存告警日志。BIOS对获取的POST code进行解析,当获取到的POST code值为0时,BIOS记录DIMM0不在位的日志,当获取到的POST code值为1时,BIOS记录DIMM0故障日志。BIOS获取的时间用于避免重复记录内存故障日志,当BIOS获取的时间与上一次获取的POST code的时间相同,不记录内存故障日志,当BIOS获取的时间与上一次获取的POST code的时间不同,记录内存故障日志,与BMC系统日志统一。
步骤四、结束流程。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种服务器记录内存故障的方法,其特征在于该方法实现的步骤包括:
步骤11、服务器开机,通过向BMC发送IPMI开机命令或在BMC Web页面点击开机按键远程控制服务器开机;
步骤12、定时器开始计时,在判断服务器为开机状态后,BMC系统内的定时器模块开始计时,记录已开机时间;
步骤13、判断已开机时间是否大于4分钟且小于8分钟,当开机时间大于8分钟,则停止对开机时间计时,当开机时间小于4分钟,则继续计时;
步骤14、当开机时间满足大于等于4分钟且小于等于8分钟的条件时,BMC获取POSTcode,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进行解析,当获取到的POSTcode值为0时,BIOS记录DIMM0不在位的日志,当获取到的POST code值为1时,BIOS记录DIMM0故障日志,当BIOS获取的时间与上一次获取的POST code的时间相同,不记录内存故障日志,当BIOS获取的时间与上一次获取的POST code的时间不同,记录内存故障日志,与BMC系统日志统一。
3.根据权利要求1或2所述的一种服务器记录内存故障的方法,其特征在于:
所述的方法所记录的内存故障包括硬件层面、固件层面和操作系统层面。
4.根据权利要求3所述的一种服务器记录内存故障的方法,其特征在于:
所述的硬件层面包括了处理器平台、内存、CPLD计算机关键元器件。
5.根据权利要求3或4所述的一种服务器记录内存故障的方法,其特征在于:
所述的固件层面为BIOS固件,包括BIOS日志模块、与BMC的通信模块、与CPLD的通信模块和内存检测模块。
6.根据权利要求5所述的一种服务器记录内存故障的方法,其特征在于:
所述的操作系统层面包括定时器模块、与BIOS的通信模块、与CPLD的通信模块、自检码解析模块和自检码读取模块。
7.根据权利要求6所述的一种服务器记录内存故障的方法,其特征在于:
所述的BIOS固件通过BMC通信模块,实现了与BMC的信息交互;通过CPLD通信模块,使BIOS向CPLD发送内存初始化完成的信号,CPLD收到信号后,将CPU的IIC访问权交给BMC,实现BMC通过IIC总线访问CPU寄存器;通过内存检测模块,实现内存故障检测,当监测到DIMM0不在位或DIMM0故障时,BIOS无法运行。
8.根据权利要求7所述的一种服务器记录内存故障的方法,其特征在于:
所述的BMC系统通过定时器模块,对服务器开机时间进行计时,当服务器开机时长在4~8分钟时间段,BMC通过自检码读取模块获取POST code,通过POST code解析模块实现对POST code的解析和存储,在服务器开机时长超过8分钟后,停止计时,即在开机时长超过8分钟后,获取POST code程序不再运行。
CN202210523794.4A 2022-05-13 2022-05-13 一种服务器记录内存故障的方法 Pending CN115129497A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210523794.4A CN115129497A (zh) 2022-05-13 2022-05-13 一种服务器记录内存故障的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210523794.4A CN115129497A (zh) 2022-05-13 2022-05-13 一种服务器记录内存故障的方法

Publications (1)

Publication Number Publication Date
CN115129497A true CN115129497A (zh) 2022-09-30

Family

ID=83376773

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210523794.4A Pending CN115129497A (zh) 2022-05-13 2022-05-13 一种服务器记录内存故障的方法

Country Status (1)

Country Link
CN (1) CN115129497A (zh)

Similar Documents

Publication Publication Date Title
US20240012706A1 (en) Method, system and apparatus for fault positioning in starting process of server
CN101126995B (zh) 处理严重硬件错误的方法及设备
CN107193713B (zh) 一种实现主板管理控制的fpga及方法
CN104850485A (zh) 一种基于bmc远程诊断服务器开机故障的方法及系统
US20070234123A1 (en) Method for detecting switching failure
CN111324192A (zh) 一种系统板卡电源检测方法、装置、设备及存储介质
CN114328102B (zh) 设备状态监控方法、装置、设备及计算机可读存储介质
US7318171B2 (en) Policy-based response to system errors occurring during OS runtime
CN109189627B (zh) 一种硬盘故障监控检测方法、装置、终端及存储介质
US6725396B2 (en) Identifying field replaceable units responsible for faults detected with processor timeouts utilizing IPL boot progress indicator status
WO2024082844A1 (zh) 一种内存条故障检测装置及检测方法
US20080288828A1 (en) structures for interrupt management in a processing environment
CN113590405A (zh) 硬盘错误的检测方法、装置、存储介质和电子装置
CN115129497A (zh) 一种服务器记录内存故障的方法
CN114003416B (zh) 内存错误动态处理方法、系统、终端及存储介质
TWI777628B (zh) 電腦系統及其專用崩潰轉存硬體裝置與記錄錯誤資料之方法
CN115827298A (zh) 一种服务器开机故障定位方法、装置、终端及存储介质
CN114138600A (zh) 一种固件关键信息的存储方法、装置、设备及存储介质
CN113742166A (zh) 一种服务器系统器件日志记录方法、装置及系统
CN115129520A (zh) 计算机系统、计算机服务器及其启动方法
CN113708986A (zh) 服务器监控装置、方法及计算机可读存储介质
CN110647435A (zh) 服务器、硬盘远程控制方法及控制组件
US11682274B2 (en) Programmable dynamic information handling system rack lighting system
CN114003477B (zh) 慢盘诊断信息收集方法、系统、终端及存储介质
CN112596989A (zh) 一种硬盘故障通知方法、装置以及诊断系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination