固件升级的控制方法和装置、存储介质及电子设备与流程

    技术2024-12-23  44


    本技术实施例涉及计算机领域,具体而言,涉及一种固件升级的控制方法和装置、存储介质及电子设备。


    背景技术:

    1、当前服务器的业务功能正在经历快速的变革。bmc(baseboard managementcontroller,基板管理控制器)作为服务器的核心管理组件,负责实现对硬件状态的监控、系统启动、远程更新以及其他关键管理任务。然而,随着服务器业务功能的不断演进,bmc的固件同样需要不断迭代升级。

    2、关于bmc固件传统的升级方式通常采用全镜像刷新,这种方式虽然能够实现异构分区固件(即升级前后固件分区的划分存在变化的固件)的更新,但这种方法存在明显缺陷。首先,固件镜像文件较大时,全镜像刷新过程耗时较长,效率低下,这对于需要快速响应和持续运行的服务器环境来说是不可接受的,更关键的是全镜像刷新无法保证用户数据的完整性,重要数据的丢失会对用户造成重大影响。

    3、针对相关技术中,固件升级过程中数据丢失的概率较高等问题,尚未提出有效的解决方案。


    技术实现思路

    1、本技术实施例提供了一种固件升级的控制方法和装置、存储介质及电子设备,以至少解决相关技术中,固件升级过程中数据丢失的概率较高等问题。

    2、根据本技术实施例的一个实施例,提供了一种固件升级的控制方法,服务器中部署了相互连接的基板管理控制器、固件控制器和目标存储器,所述目标存储器存储了所述基板管理控制器当前使用的主用固件,以及与所述主用固件相同的备用固件,所述主用固件包括多个初始固件分区,每个所述初始固件分区中存储了用于指示所述基板管理控制器执行对应的功能的初始固件数据,所述固件控制器中存储了用于指示所述主用固件的多个所述初始固件分区的划分方式的初始分区配置信息,所述方法应用于所述基板管理控制器,所述方法包括:

    3、接收固件升级请求,其中,所述固件升级请求用于请求使用携带了参考分区配置信息的参考固件文件对所述基板管理控制器当前使用的固件进行升级,所述参考分区配置信息用于指示升级后的固件中多个所述固件分区的划分方式,所述参考固件文件记录了升级后的固件中具有的多个参考固件分区,以及每个所述参考固件分区中存储的参考固件数据;

    4、响应所述固件升级请求,根据所述初始分区配置信息和所述参考分区配置信息检测多个所述初始固件分区中每个所述初始固件分区的分区类型;

    5、为多个所述初始固件分区中每个所述初始固件分区生成与所述分区类型匹配的目标升级方式,其中,所述目标升级方式为允许对应的所述初始固件分区在升级过程中保存需要保留的目标数据的升级方式;

    6、按照每个所述目标升级方式对所述备用固件中对应的所述初始固件分区进行升级,得到升级后的所述备用固件,其中,升级后的所述备用固件用于在所述服务器被重启之后使用。

    7、可选的,所述根据所述初始分区配置信息和所述参考分区配置信息检测多个所述初始固件分区中每个所述初始固件分区的分区类型,包括:

    8、在所述主用固件包括n个所述初始固件分区的情况下,通过如下步骤根据所述初始分区配置信息和所述参考分区配置信息检测n个所述初始固件分区中第i个所述初始固件分区的分区类型,其中,n为大于1的整数,i为大于或者等于1且小于或者等于n的整数:

    9、从所述初始分区配置信息中提取出第i个所述初始固件分区对应的第i个初始分区结构参数、第i个初始地址参数和第i个初始分区大小参数,并从所述参考分区配置信息中提取出第i个所述初始固件分区对应的第i个参考分区结构参数、第i个参考地址参数和第i个参考分区大小参数,其中,第i个所述初始分区结构参数用于指示第i个所述初始固件分区当前的分区结构,第i个所述初始地址参数用于指示第i个所述初始固件分区当前在所述主用固件中的起始地址,第i个所述初始分区大小参数用于指示第i个所述初始固件分区当前的分区大小,第i个所述参考分区结构参数用于指示第i个所述初始固件分区在升级后的固件中的分区结构,第i个所述参考地址参数用于指示第i个所述初始固件分区在升级后的固件中的起始地址,第i个所述参考分区大小参数用于指示第i个所述初始固件分区在升级后的固件中的分区大小;

    10、根据第i个所述初始分区结构参数、第i个所述初始地址参数和第i个所述初始分区大小参数,以及第i个所述参考分区结构参数、第i个所述参考地址参数和第i个所述参考分区大小参数确定第i个所述初始固件分区的所述分区类型。

    11、可选的,所述根据第i个所述初始分区结构参数、第i个所述初始地址参数和第i个所述初始分区大小参数,以及第i个所述参考分区结构参数、第i个所述参考地址参数和第i个所述参考分区大小参数确定第i个所述初始固件分区的所述分区类型,包括:

    12、比对第i个所述初始分区结构参数和第i个所述参考分区结构参数、第i个所述初始地址参数和第i个所述参考地址参数、以及第i个所述初始分区大小参数和第i个所述参考分区大小参数;

    13、在比对出第i个所述初始分区结构参数和第i个所述参考分区结构参数不一致,和/或,第i个所述初始地址参数和第i个所述参考地址参数不一致,和/或,第i个所述初始分区大小参数和第i个所述参考分区大小参数不一致的情况下,确定第i个所述初始固件分区的所述分区类型为异构分区类型,属于所述异构分区类型的所述初始固件分区在所述固件升级前后分区结构存在变更,和/或,起始地址存在变更,和/或,分区大小存在变更;

    14、在比对出第i个所述初始分区结构参数和第i个所述参考分区结构参数一致,并且第i个所述初始地址参数和第i个所述参考地址参数一致,并且第i个所述初始分区大小参数和第i个所述参考分区大小参数一致的情况下,确定第i个所述初始固件分区的所述分区类型为同构分区类型,其中,属于所述同构分区类型的所述初始固件分区在所述固件升级前后分区结构、起始地址存在变更和分区大小均不存在变更。

    15、可选的,所述为多个所述初始固件分区中每个所述初始固件分区生成与所述分区类型匹配的目标升级方式,包括:

    16、通过如下步骤为n个所述初始固件分区中第i个所述初始固件分区生成与所述分区类型匹配的第i个所述目标升级方式:

    17、在第i个所述初始固件分区的所述分区类型为异构分区类型的情况下,将第i个所述目标升级方式确定为:从所述参考固件文件中提取出升级后的固件中第i个所述初始固件分区存储的第i个参考固件数据,并将所述备用固件中第i个所述初始固件分区中当前存储的数据替换为第i个所述参考固件数据,同时将所述初始分区配置信息中第i个初始分区结构参数替换为所述参考分区配置信息中第i个参考分区结构参数、将所述初始分区配置信息中第i个初始地址参数替换为所述参考分区配置信息中第i个参考地址参数、将所述初始分区配置信息中第i个初始分区大小参数替换为所述参考分区配置信息中第i个参考分区大小参数,其中,所述目标数据包括第i个所述参考固件数据、第i个所述参考分区结构参数、第i个所述参考地址参数和第i个所述参考分区大小参数;

    18、在第i个所述初始固件分区的所述分区类型为同构分区类型的情况下,将第i个所述目标升级方式确定为:从所述参考固件文件中提取出升级后的固件中第i个所述初始固件分区存储的第i个参考固件数据,并将所述备用固件中第i个所述初始固件分区中当前存储的数据替换为第i个所述参考固件数据,其中,所述目标数据包括第i个所述参考固件数据。

    19、可选的,所述根据所述初始分区配置信息和所述参考分区配置信息检测多个所述初始固件分区中每个所述初始固件分区的分区类型,包括:

    20、在所述主用固件包括m个所述初始固件分区的情况下,通过如下步骤根据所述初始分区配置信息和所述参考分区配置信息检测m个所述初始固件分区中第j个所述初始固件分区的分区类型,其中,m为大于1的整数,j为大于或者等于1且小于或者等于m的整数:

    21、从所述初始分区配置信息中提取出第j个所述初始固件分区对应的第j个初始分区功能参数,并从所述参考分区配置信息中提取出第j个所述初始固件分区对应的第j个参考分区功能参数,其中,第j个所述初始分区功能参数用于指示第j个所述初始固件分区当前在所述主用固件中的功能,第j个所述参考分区功能参数用于指示第j个所述初始固件分区在升级后的固件中的功能;

    22、在第j个所述初始分区功能参数和第j个所述参考分区功能参数用于指示第j个所述初始固件分区的功能是存储用户数据的情况下,确定第j个所述初始固件分区的所述分区类型为用户分区类型,其中,属于所述用户分区类型的所述初始固件分区在所述固件升级前后的功能均为存储用户数据,所述目标数据包括所述用户数据;

    23、在第j个所述初始分区功能参数和第j个所述参考分区功能参数用于指示第j个所述初始固件分区的功能是存储日志数据的情况下,确定第j个所述初始固件分区的所述分区类型为日志分区类型,其中,属于所述日志分区类型的所述初始固件分区在所述固件升级前后的功能均为存储日志数据,所述目标数据包括所述日志数据。

    24、可选的,所述为多个所述初始固件分区中每个所述初始固件分区生成与所述分区类型匹配的目标升级方式,包括:

    25、通过如下步骤为m个所述初始固件分区中第j个所述初始固件分区生成与所述分区类型匹配的第j个所述目标升级方式:

    26、在第j个所述初始固件分区的所述分区类型为用户分区类型的情况下,将第j个所述目标升级方式确定为:在固件升级过程中,对第j个所述初始固件分区中存储的所述用户数据进行保留,其中,所述目标数据包括所述用户数据;

    27、在第j个所述初始固件分区的所述分区类型为日志分区类型的情况下,将第j个所述目标升级方式确定为:在固件升级过程中,对第j个所述初始固件分区中存储的所述日志数据进行保留,其中,所述目标数据包括所述日志数据。

    28、可选的,所述目标存储器包括第一存储器和第二存储器,所述第一存储器用于存储所述主用固件,所述第二存储器用于存储所述备用固件,所述第一存储器分别与所述基板管理控制器和所述固件控制器连接,所述第二存储器分别与所述基板管理控制器和所述固件控制器连接,在所述按照每个所述目标升级方式对所述备用固件中对应的所述初始固件分区进行升级,得到升级后的所述备用固件之后,所述方法还包括:

    29、在检测到所述服务器被重启之后,所述固件控制器控制所述基板管理控制器使用所述第二存储器中存储的升级后的所述备用固件执行启动操作,并在所述基板管理控制器执行所述启动操作的过程中,在目标时长内对接收到的信息进行检测;

    30、在检测到在所述目标时长内接收到启动成功信息的情况下,所述固件控制器确定对所述基板管理控制器当前使用的固件进行升级成功,并控制所述第一存储器中存储的所述主用固件同步为升级后的所述备用固件,其中,所述启动成功信息为所述基板管理控制器在所述启动操作执行成功的情况下向所述固件控制器发送的;

    31、在检测到在所述目标时长内未接收到所述启动成功信息的情况下,所述固件控制器控制所述基板管理控制器使用所述第一存储器中存储的所述主用固件重新执行启动操作。

    32、根据本技术实施例的另一个实施例,还提供了一种固件升级的控制装置,服务器中部署了相互连接的基板管理控制器、固件控制器和目标存储器,所述目标存储器存储了所述基板管理控制器当前使用的主用固件,以及与所述主用固件相同的备用固件,所述主用固件包括多个初始固件分区,每个所述初始固件分区中存储了用于指示所述基板管理控制器执行对应的功能的初始固件数据,所述固件控制器中存储了用于指示所述主用固件的多个所述初始固件分区的划分方式的初始分区配置信息,所述装置应用于所述基板管理控制器,所述装置包括:

    33、接收模块,用于接收固件升级请求,其中,所述固件升级请求用于请求使用携带了参考分区配置信息的参考固件文件对所述基板管理控制器当前使用的固件进行升级,所述参考分区配置信息用于指示升级后的固件中多个所述固件分区的划分方式,所述参考固件文件记录了升级后的固件中具有的多个参考固件分区,以及每个所述参考固件分区中存储的参考固件数据;

    34、第一检测模块,用于响应所述固件升级请求,根据所述初始分区配置信息和所述参考分区配置信息检测多个所述初始固件分区中每个所述初始固件分区的分区类型;

    35、生成模块,用于为多个所述初始固件分区中每个所述初始固件分区生成与所述分区类型匹配的目标升级方式,其中,所述目标升级方式为允许对应的所述初始固件分区在升级过程中保存需要保留的目标数据的升级方式;

    36、升级模块,用于按照每个所述目标升级方式对所述备用固件中对应的所述初始固件分区进行升级,得到升级后的所述备用固件,其中,升级后的所述备用固件用于在所述服务器被重启之后使用。

    37、根据本技术的又一个实施例,还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行上述任一项方法实施例中的步骤。

    38、根据本技术的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

    39、根据本技术的又一个实施例,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。

    40、在本技术实施例中,提出了一种固件升级的控制方法,服务器中部署了相互连接的基板管理控制器、固件控制器和目标存储器,目标存储器存储了基板管理控制器当前使用的主用固件,以及与主用固件相同的备用固件,主用固件包括多个初始固件分区,每个初始固件分区中存储了用于指示基板管理控制器执行对应的功能的初始固件数据,固件控制器中存储了用于指示主用固件的多个初始固件分区的划分方式的初始分区配置信息,方法应用于基板管理控制器,首先基板管理控制器接收用于请求使用携带了参考分区配置信息的参考固件文件对基板管理控制器当前使用的固件进行升级的固件升级请求,其中,参考分区配置信息用于指示升级后的固件中多个固件分区的划分方式,参考固件文件记录了升级后的固件中具有的多个参考固件分区,以及每个参考固件分区中存储的参考固件数据;之后响应固件升级请求,基板管理控制器根据初始分区配置信息和参考分区配置信息检测多个初始固件分区中每个初始固件分区的分区类型;进而为多个初始固件分区中每个初始固件分区生成与分区类型匹配的目标升级方式,目标升级方式为允许对应的初始固件分区在升级过程中保存需要保留的目标数据的升级方式;最后按照每个目标升级方式对备用固件中对应的初始固件分区进行升级,得到升级后的备用固件,其中,升级后的备用固件用于在服务器被重启之后使用,区别于相关技术中以整个固件为单位进行全镜像刷新,本方案以固件分区为单位,根据每个初始固件分区的分区类型执行匹配的升级方式,确保对应的初始固件分区在升级过程中保存需要保留的目标数据。采用上述技术方案,解决了相关技术中,固件升级过程中数据丢失的概率较高等问题,实现了降低固件升级过程中数据丢失的概率的技术效果。


    技术特征:

    1.一种固件升级的控制方法,其特征在于,服务器中部署了相互连接的基板管理控制器、固件控制器和目标存储器,所述目标存储器存储了所述基板管理控制器当前使用的主用固件,以及与所述主用固件相同的备用固件,所述主用固件包括多个初始固件分区,每个所述初始固件分区中存储了用于指示所述基板管理控制器执行对应的功能的初始固件数据,所述固件控制器中存储了用于指示所述主用固件的多个所述初始固件分区的划分方式的初始分区配置信息,所述方法应用于所述基板管理控制器,所述方法包括:

    2.根据权利要求1所述的方法,其特征在于,

    3.根据权利要求2所述的方法,其特征在于,

    4.根据权利要求3所述的方法,其特征在于,

    5.根据权利要求1所述的方法,其特征在于,

    6.根据权利要求5所述的方法,其特征在于,

    7.根据权利要求1所述的方法,其特征在于,

    8.一种固件升级的控制装置,其特征在于,

    9.一种计算机可读存储介质,其特征在于,

    10.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,


    技术总结
    本申请公开了一种固件升级的控制方法和装置、存储介质及电子设备,该固件升级的控制方法包括:接收固件升级请求;响应固件升级请求,根据初始分区配置信息和参考分区配置信息检测多个初始固件分区中每个初始固件分区的分区类型;为多个初始固件分区中每个初始固件分区生成与分区类型匹配的目标升级方式;按照每个目标升级方式对备用固件中对应的初始固件分区进行升级,得到升级后的备用固件,其中,升级后的备用固件用于在服务器被重启之后使用,采用上述技术方案,解决了相关技术中,固件升级过程中数据丢失的概率较高等问题,进而达到了降低固件升级过程中数据丢失的概率的技术效果。

    技术研发人员:杨清娜
    受保护的技术使用者:山东云海国创云计算装备产业创新中心有限公司
    技术研发日:
    技术公布日:2024/10/24
    转载请注明原文地址:https://symbian.8miu.com/read-24142.html

    最新回复(0)