一种设备启动异常恢复方法及计算设备与流程
本技术实施例涉及电子设备,尤其涉及一种设备启动异常恢复方法及计算设备。
背景技术:
1、计算机、服务器等计算设备在启动过程中,会利用基本输入输出系统(basicinput/output system,bios)完成硬件初始化、内存训练、外设枚举等一系列上电自检(power-on self-test,post)操作。在post阶段,bios可能因硬件瞬态干扰、内存时序不稳定、固件初始化逻辑缺陷或外部电磁噪声等原因,触发中央处理器异常(centralprocessing unit exception),导致计算设备挂死或非预期重启。
2、常用的异常恢复方法为对计算设备执行重启,以对计算设备中的硬件状态进行重置,以期恢复。这种方式虽然能够在部分瞬态异常场景下让计算设备恢复可用状态,却无法有效保留异常发生时的现场信息,存在难以定位异常根因的问题,且在异常重复触发的情况下,直接重启还会让计算设备陷入“异常-重启-再异常”的死循环,无法进入可运维状态供故障分析,大幅提升了故障修复的时间成本,无法满足服务器等高稳定性要求计算设备的异常处理需求。
技术实现思路
1、本技术实施例提供了一种设备启动异常恢复方法及计算设备,通过识别异常发生时计算设备所处的固件阶段,在不同固件阶段采用适配的处理方式,满足业务稳定性的要求,提升故障修复效率。
2、为达到上述目的,本技术实施例采用如下技术方案:
3、第一方面,本技术实施例提供了一种设备启动异常恢复方法,应用于计算设备中的中央处理器cpu,方法包括:响应于检测到cpu异常事件,识别计算设备当前所处的固件阶段;固件阶段包括上电自检post阶段和运行时runtime阶段;在计算设备处于runtime阶段时,将cpu异常事件对应的异常上下文信息发送给所述计算设备中的基板控制管理器bmc;在所述计算设备处于post阶段时,若所述计算设备满足重启条件,则冷重启所述计算设备。
4、基于本方案,计算设备中的cpu能够利用固件,区分cpu异常事件发生时计算设备所处的不同固件阶段,进而在不同固件阶段采用适配的处理方式,满足业务稳定性的要求。对于runtime阶段发生的异常,可以直接将异常上下文信息记录至bmc完成持久化存储;而对于post阶段发生的异常,会基于重启条件对计算设备进行评估,使得满足重启条件的计算设备可进行一次冷重启,使得计算设备中出现的瞬态异常具有自动恢复的机会,也能在复发性异常发生时保证异常上下文完整留存,不会出现反复重启覆盖异常信息的情况,有效解决了无法定位固件阶段cpu异常根因的问题,提升故障分析与修复的效率。
5、在一种可能的实现方式中,若计算设备满足重启条件,则冷重启计算设备,包括:获取重启触发标志;重启触发标志用于指示计算设备在启动周期内是否触发过异常重启;若重启触发标志为已触发,则计算设备不满足重启条件;若重启触发标志为未触发,则计算设备满足重启条件;方法还包括:在计算设备不满足重启条件时,暂停计算设备的启动流程。
6、基于本方案,cpu可通过重启触发标志对当前启动周期内的异常重启行为进行管控,利用仅允许在单个启动周期内触发一次异常重启的机制,既给硬件瞬态干扰等原因引发的偶发异常提供了自动恢复启动的机会,又能够避免同一异常反复触发重启导致异常第一现场被多次重启覆盖,能够留存异常上下文信息供后续故障分析使用,保障异常根因定位的数据完整性。
7、在另一种可能的实现方式中,冷重启计算设备,包括:将重启触发标志设置为已触发;重启计算设备;响应于计算设备的固件阶段切换为runtime阶段,将重启触发标志设置为未触发。
8、基于本方案,cpu利用bios通过重启触发标志的状态更新,能够准确记录当前启动周期内是否已经触发过异常重启,避免同一个启动周期内多次重启循环,保证最终异常发生时异常上下文能够被完整留存,同时在启动成功后及时重置标志,为下一次启动过程的异常处理做好准备,标志管理逻辑简单清晰,可靠性高。
9、在又一种可能的实现方式中,识别计算设备当前所处的固件阶段,包括:获取post完成标识;post完成标识用于指示计算设备的post流程是否执行完成;在post完成标识为未完成时,判定计算设备处于post阶段;在post完成标识为已完成时,判定计算设备处于runtime阶段。
10、基于本方案,cpu可通过post完成标识配合判断固件阶段,能够简单准确地完成当前所处阶段的识别,无需额外增加复杂的检测逻辑,实现成本低、识别准确性高。
11、在又一种可能的实现方式中,识别计算设备当前所处的固件阶段,还包括:检测计算设备对应的引导服务bootservice的开启状态;在bootservice开启时,将post完成标识设置为未完成;在bootservice关闭时,将post完成标识设置为已完成。
12、基于本方案,cpu可以直接基于计算设备原生的引导服务bootservice状态来更新阶段标识,无需额外新增状态检测模块,能够依托现有启动流程的状态信息完成阶段识别,进一步降低了实现复杂度,识别结果精准可靠。
13、在又一种可能的实现方式中,异常上下文信息包括cpu异常类型、cpu寄存器状态、异常发生时的指令地址、堆栈指针、时间戳和计算设备所处的固件阶段中的至少一项。
14、基于本方案,通过bmc记录的异常上下文信息能够覆盖异常分析所需的核心维度,为运维人员定位根因提供足够完整的信息支撑,提升根因分析的效率与准确性。
15、在又一种可能的实现方式中,暂停计算设备的启动流程,包括:使cpu进入挂死状态;挂死状态用于阻断cpu中的指令执行;通过bmc记录挂死状态对应的异常日志。
16、基于本方案,可在cpu异常复现后直接阻断启动流程并留存完整异常日志,既避免了计算设备陷入反复重启的死循环,也能保证异常信息不会被重启覆盖,运维人员可以通过bmc导出异常日志完成根因分析,无需额外拆机抓取异常信息,降低了异常排查的成本。
17、在又一种可能的实现方式中,识别计算设备当前所处的固件阶段,还包括:检测cpu异常事件的异常类型;基于异常类型,对cpu异常事件进行恢复处理;若cpu异常事件恢复失败,则识别计算设备当前所处的固件阶段。
18、基于本方案,对于可以通过简单恢复处理消除的cpu异常,bios能够先尝试自动修复,无需直接进入记录异常并重启的流程,进一步提升了计算设备启动过程的自愈能力,减少不必要的重启和异常记录,优化了启动流程的可靠性。
19、在又一种可能的实现方式中,cpu异常事件包括溢出异常、无效操作码异常、页面错误和通用保护异常中的至少一种。
20、基于本方案,cpu能够通过固件对计算设备启动过程中常见的多数cpu异常类型进行识别和处理,适配性强,能够对固件阶段常见的各类cpu异常进行统一处理,提升了异常恢复的适用范围。
21、第二方面,本技术实施例还提供了一种计算设备,包括:处理器和bios芯片;处理器和bios芯片耦接;bios芯片用于存储程序指令;处理器用于执行程序指令以执行如上述第一方面中任一项的设备启动异常恢复方法。
22、第三方面,本技术实施例提供一种bios芯片,bios芯片中存储有计算机执行指令,计算机执行指令被计算机执行时实现如第一方面中任一项的方法。
23、第四方面,本技术实施例提供一种程序产品,包括计算机程序,该计算机程序被处理器执行时实现如第一方面中任一项的方法。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com