一种升级方法、装置及设备与流程

文档序号:26101540发布日期:2021-07-30 18:12阅读:61来源:国知局
一种升级方法、装置及设备与流程

本申请涉及计算机领域,特别涉及一种升级方法、装置及设备。



背景技术:

当服务器宕机导致bios(basicinputoutputsystem,基本输入输出系统)升级失败时,升级失败的bios会导致服务器出现无法开机或者反复重启的问题。这时需要手动执行强制覆盖升级的方案来升级bios,但是手动执行强制覆盖升级方案会导致升级不够即时,并且在bios升级成功后还需要重新手动配置bios的配置信息,手动配置bios配置信息会消耗较长时间,导致出现较长的服务器断连时间。



技术实现要素:

本申请公开了一种升级方法、装置及设备,以在检测到服务器宕机导致bios升级失败时,强制升级bios的固件版本和配置信息,缩短服务器断连时间。

根据本申请实施例的第一方面,提供一种升级方法,该方法应用于服务器,包括:

在将bios的固件版本从第一bios固件版本升级至第二bios固件版本时,将所述第二bios固件版本的版本信息存储至指定存储介质中的第一存储空间,所述指定存储介质是从原本不用于存储bios的固件版本信息的存储介质中指定选择的;所述指定存储介质还包括第二存储空间,所述第二存储空间用于存储第一bios固件版本的bios配置信息;

当在bios的固件版本从第一bios固件版本升级至第二bios固件版本的过程中检测到服务器宕机时,从所述第一存储空间读取所述第二bios固件版本的版本信息,并按照强制覆盖升级的方式将原本用于存储所述bios固件版本信息的第一存储介质中已有的bios固件版本信息升级为所述第二bios固件版本的版本信息,并将原本用于存储bios配置信息的第二存储介质中已存储的bios配置信息升级为所述第二存储空间存储的所述第一bios固件版本的bios配置信息。

可选的,该方法进一步包括:

当服务器重启时,比较通过bmc从所述第一存储介质中获取到的bios的固件版本与第一存储空间中已存储的bios固件版本信息对应的固件版本是否一致,以及,比较通过bmc从所述第二存储介质中获取到的bios配置信息与第二存储空间中已存储的bios配置信息是否一致;

当从所述第一存储介质中获取到的bios的固件版本与第一存储空间中已存储的bios固件版本信息对应的固件版本不一致时,将第一存储空间中已存储的bios固件版本信息更新为从所述第一存储介质中获取到的bios的固件版本对应的版本信息;

当从所述第二存储介质中获取到的bios配置信息与第二存储空间中已存储的bios配置信息不一致时,将第二存储空间中已存储的bios配置信息更新为从所述第二存储介质中获取到的bios配置信息。

可选的,在按照强制覆盖升级的方式将原本用于存储所述bios固件版本信息的第一存储介质中已有的bios固件版本信息升级为所述第二bios固件版本的版本信息之后,该方法进一步包括:

将所述第二bios固件版本的版本信息存储至指定存储介质中的第三存储空间;所述第三存储空间不同于所述第一存储空间。

可选的,所述指定存储介质为bmc下挂的nandflash,所述nandflash原本用于存储服务器的操作日志、系统日志和出现的异常事件。

可选的,在执行所述升级方法之前,进一步包括:

检测所述服务器是否使能了用于执行所述升级方法的功能,如果是,则按照所述升级方法执行。

根据本申请实施例的第二方面,提供一种升级装置,该装置应用于服务器,包括:

固件版本信息存储单元,用于在将bios的固件版本从第一bios固件版本升级至第二bios固件版本时,将所述第二bios固件版本的版本信息存储至指定存储介质中的第一存储空间,所述指定存储介质是从原本不用于存储bios的固件版本信息的存储介质中指定选择的;所述指定存储介质还包括第二存储空间,所述第二存储空间用于存储第一bios固件版本的bios配置信息;

固件版本升级单元,用于当在bios的固件版本从第一bios固件版本升级至第二bios固件版本的过程中检测到服务器宕机时,从所述第一存储空间读取所述第二bios固件版本的版本信息,并按照强制覆盖升级的方式将原本用于存储所述bios固件版本信息的第一存储介质中已有的bios固件版本信息升级为所述第二bios固件版本的版本信息,并将原本用于存储bios配置信息的第二存储介质中已存储的bios配置信息升级为所述第二存储空间存储的所述第一bios固件版本的bios配置信息。

可选的,该装置进一步包括:

更新单元,用于在服务器重启时,比较通过bmc从所述第一存储介质中获取到的bios的固件版本与第一存储空间中已存储的bios固件版本信息对应的固件版本是否一致,以及,比较通过bmc从所述第二存储介质中获取到的bios配置信息与第二存储空间中已存储的bios配置信息是否一致;

当从所述第一存储介质中获取到的bios的固件版本与第一存储空间中已存储的bios固件版本信息对应的固件版本不一致时,将第一存储空间中已存储的bios固件版本信息更新为从所述第一存储介质中获取到的bios的固件版本对应的版本信息;

当从所述第二存储介质中获取到的bios配置信息与第二存储空间中已存储的bios配置信息不一致时,将第二存储空间中已存储的bios配置信息更新为从所述第二存储介质中获取到的bios配置信息。

可选的,在按照强制覆盖升级的方式将原本用于存储所述bios固件版本信息的第一存储介质中已有的bios固件版本信息升级为所述第二bios固件版本的版本信息之后,所述固件版本信息存储单元进一步用于:

将所述第二bios固件版本的版本信息存储至指定存储介质中的第三存储空间;所述第三存储空间不同于所述第一存储空间。

可选的,所述指定存储介质为bmc下挂的nandflash,所述nandflash原本用于存储服务器的操作日志、系统日志和出现的异常事件。

根据本申请实施例的第三方面,提供一种电子设备,该电子设备包括:处理器和存储器;

所述存储器,用于存储机器可执行指令;

所述处理器,用于读取并执行所述存储器存储的机器可执行指令,以实现如上所述的升级方法。

本申请的实施例提供的技术方案可以包括以下有益效果:

由以上技术方案可知,本申请提供的方案可以在将bios的固件版本从第一bios固件版本升级至第二bios固件版本时,将所述第二bios固件版本的版本信息存储至原本不用于保存bios固件版本信息的指定存储介质中的第一存储空间,进而在服务器宕机导致bios的固件版本升级失败时,可以从第一存储空间读取第二bios固件版本的版本信息,使用第二bios固件版本的版本信息对bios进行强制覆盖升级,并使用指定存储介质的第二存储空间中存储的第一bios固件版本的bios配置信息对原本用于存储bios配置信息的第二存储介质中已存储的bios配置信息升级,以在服务器宕机导致bios升级失败时,强制升级bios的固件版本和配置信息,无需手动执行,提高了升级的即时性,缩短了服务器断连时间。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。

图1是本申请实施例提供的实现升级的方法流程图;

图2是本申请实施例提供的划分指定存储介质中存储空间的示意图;

图3是本申请实施例提供的实现升级的装置示意图;

图4是本申请实施例提供的一种电子设备的硬件结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

为了使本领域技术人员更好地理解本申请实施例提供的技术方案,并使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面先对本申请实施例中涉及的相关技术进行描述:

相关技术中,服务器中bios的升级由管理服务器的bmc(baseboardmanagementcontroller,基板管理控制器)实现。

其中,bmc提供三种bios固件版本更新方案,包括:配置保留升级方案,可以在升级时保留在服务器上配置的bios配置信息;覆盖配置升级方案,在升级bios过程中会覆盖bios配置信息,重置bios配置信息为默认配置信息;强制覆盖升级方案,与覆盖配置升级方案流程不同,是由bmc往bios芯片中直接写入升级的bios固件版本信息,覆盖掉bios芯片中原本的bios固件版本信息,并重置bios配置信息为默认配置信息。其中bios固件版本信息中至少包含了用于指示bios的固件版本的版本号和该版本号对应的bios固件版本内容等,以及上述内容中强制覆盖升级方案可以用于服务器宕机导致bios升级失败,并且服务器出现无法开机或者反复重启的问题时,强制升级bios以使服务器恢复正常。

下面结合附图对本申请实施例中技术方案作进一步详细的说明。

需要说明的是,在实现如图1所示的方法流程之前,需要先从原本不用于存储bios的固件版本信息的存储介质中确定出一个指定存储介质,并对该指定存储介质的存储空间进行划分。

作为一个实施例,本申请实施例可以从指定存储介质的存储空间中划分出三个空间,包括:用于存放bios固件版本信息的主空间、用于存放备份的bios固件版本信息的备空间和用于存放bios配置信息的配置信息空间。其中用于存放备份的bios固件版本信息的备空间,该备空间的设置可以用于防止主空间的bios固件版本信息损坏。

示例性的,从指定存储介质的存储空间中划分出的主空间、备空间和配置信息空间可以参见图2,比如可以将指定存储介质的存储空间中地址段为0x000000000-x01ffffff的存储空间设置为用于存放bios固件版本信息的主空间,共32mb容量空间;将地址段为0x02000000-0x02ffffff的存储空间设置为用于存放备份的bios固件版本信息的备空间,共32mb容量空间;将地址段为0x03000000-0x035fffff的存储空间设置为用于存放bios配置信息的配置信息空间,共6mb容量空间。这里所举例子中设置的32mb和6mb只是为了便于说明,本申请不对主空间、备空间和配置信息空间的大小进行限定,具体划分时可根据固件版本信息的大小以及配置信息的大小按照需求进行划分,以及本申请实施例中主空间、备空间和配置信息空间这三个空间的位置可以是连续的,也可以是不连续的,本申请对此不做限定。

在本实施例中,在从指定存储介质的存储空间中划分出主空间、备空间和配置信息空间之后,在bios正常进行固件版本升级时,可以通过以下方式利用主空间、备空间和配置信息空间保存bios进行固件版本时所使用的bios固件版本信息和bios配置信息:

首先,先介绍如何利用主空间、备空间保存将服务器中bios固件版本从第一bios固件版本升级至第二bios固件版本时所使用的第二bios固件版本的版本信息:

在获取到用于对bios的固件版本进行升级的第二bios固件版本的版本信息,并利用第二bios固件版本的版本信息开始对bios的固件版本进行升级时,将第二bios固件版本的版本信息存储至指定存储介质中划分出的备空间中。

当检测到bios的固件版本成功升级为第二bios固件版本后,将第二bios固件版本的版本信息存储至指定存储介质中划分出的主空间。示例性的,确定bios升级成功可以通过检测服务器的重启次数实现,比如当检测到服务器在开始升级后重启n次时,将升级bios的固件版本时使用的第二bios固件版本的版本信息存储至指定存储介质中划分出的主空间,其中n表示服务器升级所需要重启的次数,n大于0。

上述将第二bios固件版本的版本信息存储至所述备空间时,可以覆盖掉备空间中之前保存的bios固件版本信息,同样的,在将第二bios固件版本的版本信息存储至所述主空间时,也可以覆盖掉主空间中之前保存的bios固件版本信息,并在下一次升级bios固件版本时,在保存下一次升级用到的bios固件版本的版本信息时,按照上述方式覆盖掉当前保存至主空间或者备空间的第二bios固件版本的版本信息,进而保证主空间和备空间中始终有足够的空间保存bios固件版本信息。需要说明的是,这只是本申请中存储bios固件版本信息至指定存储介质的一个实施方式,本申请对此不做限定。

通过上述步骤,本实施例中在bios正常完成固件版本升级时,指定存储介质中划分出的备空间和主空间中将各保存一份升级bios的固件版本所使用的bios固件版本的版本信息。

下面对如何利用配置信息空间保存bios配置信息进行描述:

需要说明的是,相关技术中bios配置信息原本保存在cmos芯片中,bios是从cmos芯片中读取bios配置信息来实现运行,bios可以通过读取bios配置信息引导服务器的开机和关机等操作。

所以,作为一个实施例,在对bios的固件版本升级完成时,bmc可以通过基于redfish协议(或者ipmi协议或者是snmp协议)所实现与cmos芯片进行通信的接口,获取cmos芯片中保存的bios配置信息,并将获取到的cmos芯片中保存的bios配置信息存储至配置信息空间。

可选的,当检测到cmos中存储的bios配置信息更新时,也会触发bmc通过bmc中已设置的与cmosram芯片进行通信的接口,获取cmos中存储的更新后的bios配置信息,将更新后的bios配置信息存储至配置信息空间。

这里需要说明的是,不同版本的bios所对应的bios配置信息可以相同也可以不同,以及在将更新后的bios配置信息存储至配置信息空间时,也可以采取覆盖存储的方式,覆盖掉配置信息空间在之前保存的bios配置信息。

下面对本申请实施例提供的如图1所示的升级方法流程图进行介绍。作为一个实施例,图1所示的流程可以应用于服务器。该流程可以包括以下步骤:

步骤101,在将bios的固件版本从第一bios固件版本升级至第二bios固件版本时,将所述第二bios固件版本的版本信息存储至指定存储介质中的第一存储空间。

本申请实施例中指定存储介质是从原本不用于存储bios的固件版本信息的存储介质中指定选择的,并且指定存储介质至少还包括第二存储空间,这里的第二存储空间用于存储第一bios固件版本的bios配置信息。

在具体实现时,在将bios的固件版本从第一bios固件版本升级至第二bios固件版本时,需要先获取第二bios固件版本的固件版本信息,这里第二bios固件版本的版本信息的获取过程可以参照相关技术,比如由用户上传或者由bmc从保存bmc固件版本的服务器上下载第二bios固件版本的版本信息,这里不再赘述。

以及在获取到第二bios固件版本的版本信息,并开始对第一bios固件版本进行升级时,本申请实施例中会将第二bios固件版本的版本信息存储至指定存储介质中划分出的第一存储空间中。

作为一个实施例,步骤101中指定存储介质中的第一存储空间可以是上述从指定存储介质中划分出的用于存放备份的bios固件版本信息的备空间。同时,由于步骤101中第二存储空间用于存储第一bios固件版本的bios配置信息,所以本实施例中第二存储空间可以是上述从指定存储介质中划分出的用于存放bios配置信息的配置信息空间。为了便于描述,下文中若未特殊说明,所提及的第一存储空间均指用于存放备份的bios固件版本的备空间,所提及的第二存储空间均指用于存放bios配置信息的配置信息空间。

示例性的,本申请实施例中指定存储介质可以为bmc下挂的nandflash。nandflash为bmc下挂的存储空间,bmc会将服务器的操作日志、系统日志和出现的异常事件记录到nandflash中,但是这些内容只占据了nandflash的部分空间,nandflash中还存在比较充裕的未被利用的空间,因此本申请实施例中可以对上述nandflash的未被利用的空间进行划分。至于如何对nandflash进行划分可以参照上述从指定存储介质的存储空间中划分出主空间、备空间和配置信息空间的方案。

需要说明的,本申请实施例还可以利用其他存储介质作为指定存储介质,并不限制于bmc下挂的nandflash,比如还可以选择bmc下挂的sd插卡、硬盘等存储介质作为指定存储介质,具体选择bmc下挂的哪一部分存储空间作为指定存储介质可以依据需求进行设置。

步骤102,当在bios的固件版本从第一bios固件版本升级至第二bios固件版本的过程中检测到服务器宕机时,从所述第一存储空间读取所述第二bios固件版本的版本信息,并按照强制覆盖升级的方式将原本用于存储所述bios固件版本信息的第一存储介质中已有的bios固件版本信息升级为所述第二bios固件版本的版本信息。

需要说明的是,相关技术中bios固件版本的版本信息原本保存在bios芯片中,而bios芯片在相关技术中包括多种类型(具体类型可参照相关技术,这里不再赘述,并且本申请中不对bios芯片的类型进行限定),目前服务器中bios芯片通常采用flash(快闪)rom(readonlymemory,只读存储器)实现。

作为一个实施例,当本申请实施例中的bios芯片采用flashrom实现时,本步骤102中原本用于存储所述bios的固件版本的第一存储介质可以指flashrom类型的bios芯片。

为了便于描述,下文中若未特殊说明,所提及的第一存储介质均指用于实现bios的flashrom(记为biosflashrom)。

在具体实现本步骤102时,由于bmc通常用于管理服务器,会记录服务器的操作日志、系统日志和出现的异常事件等,比如bios在进行固件版本升级过程中意外断电,或者是bios在进行固件版本升级过程中,遭遇人为强制重启等导致的服务器宕机,这些都会被记载到日志中,而bios在升级过程中服务器宕机会导致bios升级失败,进而导致服务器反复重启或者无法开机,此时服务器反复重启或者无法开机也会记录到日志中。因此,本申请实施例中bmc可以通过监测日志,确定bios的固件版本从第一bios固件版本升级至第二bios固件版本的过程中是否出现服务器宕机、以及在出现服务器宕机后升级失败的bios是否导致服务器反复重启或者无法开机。

进一步的,当bios的固件版本从第一bios固件版本升级至第二bios固件版本的过程中检测到服务器宕机时,本申请实施例可以从所述指定存储介质的备空间中读取第二bios固件版本的版本信息,并按照强制覆盖升级的方式将所述biosflashrom中已有的bios固件版本信息升级为所述第二bios固件版本的版本信息。需要说明的是,此时biosflashrom中已有的bios固件版本信息为升级失败的bios固件版本的版本信息。

步骤103,将原本用于存储bios配置信息的第二存储介质中已存储的bios配置信息升级为所述第二存储空间存储的所述第一bios固件版本的bios配置信息。

作为一个实施例,基于相关技术中bios配置信息原本保存在cmos芯片中,步骤103中原本用于存储bios配置信息的第二存储介质可以指cmos芯片。所以,为了便于描述,下文中若未特殊说明,所提及的第二存储介质均指cmos芯片,但本申请对第二存储介质具体为哪一种存储介质并不限定。

本申请实施例中,在步骤102按照强制覆盖升级的方式将所述biosflashrom中已有的bios固件版本信息升级为所述第二bios固件版本的版本信息之后,bmc中用于指示bios的固件版本是否完成升级的置位消息,将更新为指示bios的固件版本完成升级的值。

进一步的,当检测到该置位消息更新为指示bios的固件版本完成升级的值时比如置位消息从0更新为1(其中0用于指示bios固件版本未完成升级,1用于指示bios固件版本完成升级),则在检测到置位消息从0更新为1时,将cmos中已存储的bios配置信息升级为配置信息空间中存储的第一bios固件版本的bios配置信息。

需要说明的是,由于步骤102中按照强制覆盖升级方式将bios升级为第二bios固件版本,此时cmos中已存储的bios配置信息为默认配置信息。

示例性的,cmos中已存储的bios配置信息此时之所以为默认配置信息,是因为步骤102中按照强制覆盖升级的方式将所述biosflashrom中已有的bios固件版本升级为所述第二bios固件版本,其中强制覆盖升级的过程如下:将第二bios固件版本的版本信息直接写入biosflashrom中,并覆盖掉biosflashrom中升级失败的bios固件版本的版本信息,同时使用空配置文件重置cmos中已存储的bios配置信息为默认配置信息,其中默认配置信息为服务器出厂时在cmos中设置的bios配置信息。

进一步的,将cmos中已存储的bios配置信息升级为所述第二存储空间存储的所述第一bios固件版本的bios配置信息之后,服务器将自动重启以使cmos中存储的所述第一bios固件版本的bios配置信息生效,并产生一条日志文件,记录以上操作并告知客户bios的固件版本升级完成。

需要说明的是,由于bmc所在的系统与服务器的系统是相互独立的,所以服务器当前是否开机并不影响bmc执行步骤103。

至此,完成图1所示流程。

通过图1所示的流程可以看出,在将bios的固件版本从第一bios固件版本升级至第二bios固件版本时,将所述第二bios固件版本的版本信息存储至原本不用于保存bios固件版本信息的指定存储介质中的第一存储空间,进而在服务器宕机导致bios的固件版本升级失败时,可以从第一存储空间读取第二bios固件版本的版本信息,使用第二bios固件版本的版本信息对bios进行强制覆盖升级,并使用指定存储介质的第二存储空间中存储的第一bios固件版本的bios配置信息对原本用于存储bios配置信息的第二存储介质中已存储的bios配置信息升级,以在服务器宕机导致bios升级失败时,强制升级bios的固件版本和配置信息,无需手动执行,提高了升级的即时性,缩短了服务器断连时间。

在本申请实施例中,在按照强制覆盖升级的方式将所述biosflashrom中已有的bios固件版本信息成功升级为所述第二bios固件版本的版本信息之后,可以将第二bios固件版本的版本信息存储至指定存储介质中的第三存储空间,这里第三存储空间不同于上述的第一存储空间,并且可以将第三存储空间存储的第二bios固件版本的版本信息作为主固件版本信息,将第一存储空间存储的第二bios固件版本的版本信息为备固件版本信息。

作为一个实施例,指定存储介质中的第三存储空间可以指上述从指定存储介质中划分出的用于存放bios固件版本信息的主空间,确定biosflashrom中已有的bios固件版本信息是否成功升级为所述第二bios固件版本的版本信息,可以依据服务器在升级过程中的重启次数是否达到了升级所需的重启次数确定,具体确定过程可以参照上述将第二bios固件版本的版本信息保存至主空间的过程。

需要说明的是,为了使本申请实施例的应用更加灵活,可以设置一个用于决定是否执行本申请实施例所示升级方法的功能的开关,进而在执行本申请实施例所示升级方法之前,需要先检测服务器是否使能了(即打开了上述开关)用于执行所述升级方法的功能,如果是,则按照所述升级方法执行。

以上举例只是为了便于理解,本申请实施例并不具体限定。

在本申请的一个实施例中,为了防止上述实施例中指定存储介质中存储的bios固件版本信息和bios配置信息出现被误删,或者未及时更新等情况,本申请实施例还可以包括以下内容:

为了便于描述,下文中若未特殊说明,本实施例中第一存储介质均指biosflashrom,第二存储介质均指cmos芯片,第一存储空间均指上文中从指定存储介质中划分出的备空间,第二存储空间均指从指定存储介质中划分出的配置信息空间,以及第三存储空间均指从指定存储介质中划分出的主空间:

作为一个实施例,可以在每次服务器重启时,由bmc从biosflashrom中已有的bios固件版本的版本信息中读取版本信息中的版本号,以确定biosflashrom中bios的固件版本,并生成包含bios固件版本的临时固件信息,以及从cmos中读取已有的bios配置信息并生成临时bios配置信息,比较指定存储介质中划分出的备空间中已存储的bios固件版本信息对应的固件版本与临时固件信息中bios的固件版本是否一致,以及比较配置信息空间中已存储的bios配置信息与临时bios配置信息是否一致。

进而在备空间中已存储的bios固件版本信息对应的固件版本与临时固件信息中包含的bios的固件版本不一致时,将备空间中已存储的bios固件版本信息更新为从所述临时固件信息中包含的bios的固件版本对应的版本信息;而在备空间中已存储的bios固件版本信息对应的固件版本与临时固件信息中包含的biios的固件版本一致时,直接删除所述临时固件信息。

在配置信息空间中已存储的bios配置信息与临时bios版本信息不一致时,将配置信息空间中已存储的bios配置信息更新为临时配置信息;而在配置信息空间中已存储的bios配置信息与临时bios版本信息一致时,直接删除所述临时bios版本信息。

以上对本申请实施例提供的方法进行了描述。下面对本申请实施例提供的装置进行描述:

参见图3,图3为本申请实施例提供的一种实现升级的装置示意图,该装置实施例应用于服务器。该装置包括:

固件版本信息存储单元301,用于在将bios的固件版本从第一bios固件版本升级至第二bios固件版本时,将所述第二bios固件版本的版本信息存储至指定存储介质中的第一存储空间,所述指定存储介质是从原本不用于存储bios的固件版本信息的存储介质中指定选择的;所述指定存储介质还包括第二存储空间,所述第二存储空间用于存储第一bios固件版本的bios配置信息。

固件版本升级单元302,用于当在bios的固件版本从第一bios固件版本升级至第二bios固件版本的过程中检测到服务器宕机时,从所述第一存储空间读取所述第二bios固件版本的版本信息,并按照强制覆盖升级的方式将原本用于存储所述bios固件版本信息的第一存储介质中已有的bios固件版本信息升级为所述第二bios固件版本的版本信息,并将原本用于存储bios配置信息的第二存储介质中已存储的bios配置信息升级为所述第二存储空间存储的所述第一bios固件版本的bios配置信息。

可选的,该装置进一步包括:

更新单元,用于在服务器重启时,比较通过bmc从所述第一存储介质中获取到的bios的固件版本与第一存储空间中已存储的bios固件版本信息对应的固件版本是否一致,以及,比较通过bmc从所述第二存储介质中获取到的bios配置信息与第二存储空间中已存储的bios配置信息是否一致;

当从所述第一存储介质中获取到的bios的固件版本与第一存储空间中已存储的bios固件版本信息对应的固件版本不一致时,将第一存储空间中已存储的bios固件版本信息更新为从所述第一存储介质中获取到的bios的固件版本对应的版本信息;

当从所述第二存储介质中获取到的bios配置信息与第二存储空间中已存储的bios配置信息不一致时,将第二存储空间中已存储的bios配置信息更新为从所述第二存储介质中获取到的bios配置信息。

可选的,在按照强制覆盖升级的方式将原本用于存储所述bios固件版本的第一存储介质中已有的bios固件版本升级为所述第二bios固件版本之后,所述固件版本存储单元301进一步用于:

将所述第二bios固件版本存储至指定存储介质中的第三存储空间;所述第三存储空间不同于所述第一存储空间。

可选的,所述指定存储介质为bmc下挂的nandflash,所述nandflash原本用于存储服务器的操作日志、系统日志和出现的异常事件。

可选的,该装置进一步包括:

升级方法执行单元,用于检测所述服务器是否使能了用于执行所述升级方法的功能,如果是,则按照所述升级方法执行。

至此,完成图3所示装置实施例的结构图。

对应地,本申请实施例还提供了一种电子设备的硬件结构图,具体如图4所示,该电子设备可以为上述实施升级方法的设备。如图4所示,该硬件结构包括:处理器和存储器。

其中,所述存储器,用于存储机器可执行指令;

所述处理器,用于读取并执行所述存储器存储的机器可执行指令,以实现如上所示的所对应的升级方法实施例。

作为一个实施例,存储器可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,存储器可以是:易失存储器、非易失性存储器或者类似的存储介质。具体地,存储器可以是ram(radomaccessmemory,随机存取存储器)、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

至此,完成图4所示电子设备的描述。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1