一种固件恢复方法及装置制造方法及图纸

技术编号:11869397 阅读:63 留言:0更新日期:2015-08-12 19:05
本申请提供一种固件恢复方法及装置,应用于服务器中的基板管理控制器BMC中央处理器CPU上,所述服务器包含主CPU、所述BMC CPU以及多个模块,所述多个模块与所述BMC CPU连接,每一个模块中包含各自运行所需的固件,该方法包括:当所述主CPU启动失败时,对所述每一个模块进行如下处理:确定模块中当前版本固件是否可用;当所述当前版本固件不可用时,从存储设备中获取对应模块成功升级过的版本固件;根据所述成功升级过的版本固件对所述对应模块进行固件恢复。本申请可有效降低主CPU无法启动的风险,且可以检测出由于版本不兼容导致的系统无法启动。

【技术实现步骤摘要】

本申请涉及服务器
,尤其涉及一种固件恢复方法及装置
技术介绍
固件是设备得以运行的最底层的程序代码。服务器中的固件由于存在漏洞或新增功能需要不断升级,当固件升级失败时,服务器将有很大概率无法启动,且维修难度极大,影响正常使用。现有技术方案将固件保存在ROM (Read-Only Memory,只读存储器)中,并采用两片ROM备份的方式,在主ROM中固件升级失败的情况下,切换到备份ROM运行,以避免升级失败导致系统无法启动。但是,当服务器中存在大量需要备份的固件时,该技术方案将增加服务器的成本,且无法解决固件升级成功但由于版本不兼容而导致的无法启动。
技术实现思路
有鉴于此,本申请提供一种固件恢复方法及装置。具体地,本申请是通过如下技术方案实现的:本申请提供一种固件恢复方法,应用于服务器中的基板管理控制器BMC中央处理器CPU上,所述服务器包含主CPU、所述BMC CPU以及多个模块,所述多个模块与所述BMC(PU连接,每一个模块中包含各自运行所需的固件,该方法包括:当所述主CPU启动失败时,对所述每一个模块进行如下处理:确定模块中当前版本固件是否可用;当所述当前版本固件不可用时,从存储设备中获取对应模块成功升级过的版本固件;根据所述成功升级过的版本固件对所述对应模块进行固件恢复。本申请提供一种固件恢复装置,应用于服务器中的基板管理控制器BMC中央处理器CPU上,所述服务器包含主CPU、所述BMC CPU以及多个模块,所述多个模块与所述BMCCPU连接,每一个模块中包含各自运行所需的固件,该装置包括:确定单元,用于当所述主CPU启动失败时,确定每一个模块中当前版本固件是否可用;获取单元,用于当所述当前版本固件不可用时,从存储设备中获取对应模块成功升级过的版本固件;恢复单元,用于根据所述成功升级过的版本固件对所述对应模块进行固件恢复。由以上描述可以看出,本申请采用独立于主系统的BMC系统进行固件恢复,在确定由于固件升级导致的主CPU启动失败时,可以从存储设备中获取对应模块已成功升级过的任一版本固件进行固件恢复。通过本申请可有效降低主CPU无法启动的风险,且可以检测出由于版本不兼容导致的系统无法启动。【附图说明】图1是本申请一示例性实施例示出的服务器架构示意图;图2是本申请一示例性实施例示出的一种固件恢复方法流程图;图3是本申请一示例性实施例示出的一种固件恢复装置所在设备的基础硬件结构示意图;图4是本申请一示例性实施例示出的一种固件恢复装置的结构示意图。【具体实施方式】这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。服务器中通常包含HOST (主)CPU (Central Processing Unit,中央处理器)和BMC (Baseboard Management Controller,基板管理控制器)CPU,其中,主CPU用于业务处理,BMC CPU用于服务器状态监控、带外管理以及固件升级等。当服务器中的固件升级出错时,例如,升级过程中服务器掉电,则服务器将无法正常启动。为了避免上述问题,现有技术方案采用ROM备份的方式,在服务器中增加一片ROM进行固件备份,当主ROM升级出错时,切换到备份R0M,利用备份ROM中的固件启动服务器;或者直接为服务器选择一片大容量R0M,从该ROM划分出引导区、主用区以及备用区,正常情况下引导区先运行,引导CPU工作在主用区,当主用区升级出错时,切换到备用区启动服务器。上述技术方案在一定程度上降低了服务器不能启动的概率,但同时也增加了服务器的成本,且无法解决固件升级成功但由于版本不兼容而导致的无法启动。针对现有技术方案存在的问题,本申请提出一种固件恢复方法,该方法采用独立于主系统的BMC系统进行固件恢复,在确定由于固件升级导致的主CPU启动失败时,可以从存储设备中获取对应模块已成功升级过的任一版本固件进行固件恢复。参见图1,为本申请实施例示出的服务器架构示意图,该示意图仅示出了服务器中的主要模块。HOST CPU用于业务处理;PCH(Platform Controller Hub,南桥)用于扩展CPU的外设接口;BMC CPU用于服务器状态监控、带外管理以及固件升级等;BMC ROM用于存储BMC系统的程序;ME (Management Engine,管理引擎)用于初始化和管理整个系统;B1S (Basic Input Output System,基本输入输出系统)用于保存系统设置以及系统自启动程序等;LOGIC(逻辑)为一种用户根据各自需要而自行构造逻辑功能的数字集成电路;存储设备用于保存服务器日志等信息。其中,ME、B1S以及LOGIC模块中分别保存各自模块运行所需固件。参见图2,为本申请固件恢复方法的一个实施例流程图,该实施例对固件恢复过程进行描述。步骤201,当所述主CPU启动失败时,确定模块中当前版本固件是否可用。参见图1,本申请实施例中需要进行固件升级以及恢复的模块(ME、B10S以及LOGIC模块)都连接在BMC CPU上,以便BMC CPU对相应模块进行操作。以下描述中所提及模块均指包含固件的模块。当主CPU启动失败时,BMCCPU查询与其相连的各个模块中当前版本固件是否可用,以确定是否由于固件升级导致主CPU无法启动。BMC CPU对每一个模块均进行如下操作:获取模块中当前版本固件的固件信息,对获取的固件信息进行校验,根据校验结果进行如下处理。当校验的固件信息不正确时,说明该模块在上一次固件升级时可能出错,导致写入到模块中的固件不正确,或者,在运行过程中该固件损坏,此时,确认该模块中当前版本固件不可用。当前第1页1 2 3 本文档来自技高网...
一种固件恢复方法及装置

【技术保护点】
一种固件恢复方法,应用于服务器中的基板管理控制器BMC中央处理器CPU上,其特征在于,所述服务器包含主CPU、所述BMC CPU以及多个模块,所述多个模块与所述BMC CPU连接,每一个模块中包含各自运行所需的固件,该方法包括:当所述主CPU启动失败时,对所述每一个模块进行如下处理:确定模块中当前版本固件是否可用;当所述当前版本固件不可用时,从存储设备中获取对应模块成功升级过的版本固件;根据所述成功升级过的版本固件对所述对应模块进行固件恢复。

【技术特征摘要】

【专利技术属性】
技术研发人员:肖翔
申请(专利权)人:杭州昆海信息技术有限公司
类型:发明
国别省市:浙江;33

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

1