一种多节点固件升级方法和装置的制作方法

文档序号:6379616阅读:189来源:国知局
专利名称:一种多节点固件升级方法和装置的制作方法
技术领域
本发明涉及固件升级领域,尤其涉及一种多节点固件升级方法和装置。
背景技术
目前业界提出了多种固件升级的方法和装置,如基于分段式的嵌入式固件升级方法和装置、基于通用USB总线的设备固件升级方法等等。整体来看,现有的固件升级方法和装置都是用于升级一个终端设备,并不适用于多平台、多节点或多终端系统(例如容错计算机系统)的固件升级。例如,申请号为CN200810218241. 8的专利公开了一种基于分段式的嵌入式固件升级方法及装置。该专利所述的方法包括获取对文件系统和应用程序分开存储的固件进行升级的升级数据包;从所述升级数据包中提取配置文件,由所述配置文件进行升级前检查,生成升级程序;执行升级程序,对固件进行分段式升级处理。在该专利中的技术方案中将文件系统和应用程序分开存储,在升级前利用配置文件对升级文件进行检查,然后进行分段式升级,从而提高升级的稳定性和安全性。但是此专利只能针对一个终端进行固件升级,不能根据需要高效率地升级多平台、多节点或多终端系统的固件。

发明内容
本发明实施例所要解决的技术问题在于,提供一种多节点固件升级方法和装置,用于解决现有技术中,针对多平台、多节点或多终端系统进行固件升级的低效率问题。为了解决上述技术问题,第一方面,提供了一种多节点固件升级方法,包括解析升级配置文件以确定和存储所述多节点中支持固件升级的节点下的固件与固件升级文件的对应关系;对所述支持固件升级的节点中的至少一个节点进行固件升级,包括根据所述至少一个节点下的至少一个固件与固件升级文件的对应关系执行相应的固件升级文件以进行固件升级。在所述第一方面的第一种可能的实现方式中,所述升级配置文件包含以下升级信息支持固件升级的平台名称、所述支持固件升级的平台下支持固件升级的节点类型、所述支持固件升级的节点类型下支持固件升级的固件类型和固件升级参数;所述固件升级参数包括固件升级文件名称。在所述第一方面的第一种可能的实现方式中,还提供了所述第一方面的第二种可能的实现方式,所述解析升级配置文件以确定和存储所述多节点中支持固件升级的节点下的固件与固件升级文件的对应关系包括解析所述升级配置文件以根据所述升级信息确定所述多节点中支持固件升级的节点下的固件与固件升级文件的对应关系,并以结构体或链表形式存储所述对应关系。在所述第一方面的第二种可能的实现方式中,还提供了所述第一方面的第三种可能的实现方式,所述根据所述至少一个节点下的至少一个固件与固件升级文件的对应关系
4执行相应的固件升级文件包括根据所述至少一个节点中的每个节点所在的节点链表确定所述每个节点的节点类型和平台属性;根据所述每个节点的节点类型和平台属性,并根据以结构体或链表形式存储的对应关系确定所述每个节点下的至少一个固件进行升级所需的固件升级文件并执行。在所述第一方面或所述第一方面的上述任一可能的实现方式中,还提供了所述第一方面的第四种可能的实现方式,所述根据所述至少一个节点下的至少一个固件与固件升级文件的对应关系执行相应的固件升级文件以进行固件升级包括对所述支持固件升级的节点中的两个或两个以上节点并行进行固件升级;和/或对所述支持固件升级的节点中的至少一个节点下的两个或两个以上固件顺序进行固件升级。第二方面,提供了一种多节点固件升级装置,包括解析模块,用于解析升级配置文件以确定所述多节点中支持固件升级的节点下的固件与固件升级文件的对应关系;存储模块,用于存储所述多节点中支持固件升级的节点下的固件与固件升级文件的对应关系;执行模块,用于针对所述支持固件升级的节点中的至少一个节点进行固件升级,包括根据所述至少一个节点下的至少一个固件与固件升级文件的对应关系执行相应的固件升级文件以进行固件升级。在所述第二方面的第一种可能的实现方式中,所述升级配置文件包含以下升级信息支持固件升级的平台名称、所述支持固件升级的平台下支持固件升级的节点类型、所述支持固件升级的节点类型下支持固件升级的固件类型和固件的升级参数;所述固件升级参数包括固件升级文件名称。在所述第二方面的第一种可能的实现方式中,还提供了所述第二方面的第二种可能的实现方式,所述解析模块用于解析所述升级配置文件以根据所述升级信息确定所述多节点中支持固件升级的节点下的固件与固件升级文件的对应关系;所述存储模块用于以结构体或链表形式存储所述对应关系。在所述第二方面的第二种可能的实现方式中,还提供了所述第二方面的第三种可能的实现方式,所述执行模块包括第一确定子模块,用于根据所述至少一个节点中的每个节点所在的节点链表确定所述每个节点的节点类型和平台属性;第二确定子模块,用于根据所述每个节点的节点类型和平台属性,并根据以结构体或链表形式存储的对应关系确定所述每个节点下的至少一个固件进行升级所需的固件升级文件;执行子模块,用于执行所述至少一个固件进行升级所需的固件升级文件。在所述第二方面或所述第二方面的上述任一可能的实现方式中,还提供了所述第二方面的第四种可能的实现方式,所述执行模块用于对所述支持固件升级的节点中的两个或两个以上节点并行进行固件升级,和/或,对所述支持固件升级的节点中的至少一个节点下的两个或两个以上固件顺序进行固件升级。实施本发明实施例,具有如下有益效果本发明通过对升级配置文件进行解析从而确定多节点下各个固件与其进行升级所需要的固件升级文件的对应关系,这样针对每个需要进行固件升级的节点及节点下的固件都可以根据对应关系执行相应的固件升级文件,从而实现多固件的顺序升级和多节点的并行升级,适用于多平台、多节点或多终端系统进行高效地固件升级。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图I是根据本发明一个实施例的多节点固件升级方法的流程示意图;图2是根据本发明一个实施例的针对多节点中每个节点进行固件升级的流程示意图;图3是根据本发明一个实施例的针对多平台下至少一个节点进行固件升级的流程不意图;图4是根据本发明一个实施例的多节点固件升级装置的结构示意图;图5是根据本发明一个实施例的多节点固件升级装置的结构示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。参照图1,图I是根据本发明一个实施例的多节点固件升级方法的流程示意图,该方法包括SlOO :解析升级配置文件以确定和存储多节点中支持固件升级的节点下的固件与固件升级文件的对应关系;S102 :对支持固件升级的节点中的至少一个节点进行固件升级,具体可以包括根据所述至少一个节点下的至少一个固件与固件升级文件的对应关系执行相应的固件升级文件以进行固件升级。在本实施例的一种实现方式中,以对容错计算机进行固件升级为例进行说明。容错计算机具有多平台、多节点类型、多固件的特点。例如,由第一容错计算机与第二容错计算机构成一个系统,其中每个容错计算机都具有不同类型的节点(例如,节点类型为NODE、GE等的节点),每个节点下都具有不同类型的固件(例如,基板管理控制器(Baseboard Management Controller, BMC)、复杂可编程逻辑器件(Complex ProgrammableLogic Device, CPLD)、(基本输入输出系统 Basic Input Output System, BIOS)、现场可编程门阵列(Field Programmable Gate Array, FPGA))。其中的第一和第二容错计算机分别看作是一个平台(或终端)。当通过管理界面的WEB页面、相应命令行或输入设备等触发多节点进行固件升级后,从升级包中解压获得升级配置文件。该升级包还包含固件升级映像文件,该固件升级映像文件包括所有支持固件升级的固件进行升级所需要的固件升级文件。其中,升级配置文
6件中可以包括本次固件升级所包含的如下升级信息平台名称、每种平台所支持的节点类型以及每种节点类型所支持的各种固件进行升级的具体参数,如固件的版本信息、升级文件名称等参数。升级配置文件可以通过树形结构保存平台名称、节点类型、固件类型及每个固件的具体参数,其中固件的具体参数(例如固件的版本信息)在不同的平台、节点类型、固件类型中都可以有所不同。通过解析升级配置文件能够确定多节点中支持固件升级的节点下的固件与固件升级文件的对应关系,还可以将支持固件升级的节点以及该节点下支持固件升级的固件在管理界面上显示,以便于用户进行选择等操作。例如用户通过管理界面(或其他输入设备)选择需要进行固件升级的节点以及该节点下需要进行固件升级的固件从而触发固件升级接口,这样便可以确定需要进行固件升级的节点的名称、数目,以及需要进行固件升级的节点下需要进行固件升级的固件组件号(每个固件都有一个指定的序号)等参数信息,其中的节点数目可以适用于在多个节点需要进行升级的情况下,作为循环体的参数。当然,上述参数信息的确定也可以通过软件自动执行,例如在确定多节点中支持固件升级的节点下的固件与固件升级文件的对应关系后,根据固件版本信息、固件升级依赖关系(某固件升级时可能依赖于其他版本的固件)等确定升级层级,第一升级层级中的固件优先进行固件升级,第二升级层级中的固件进行升级依赖于完成了固件升级的第一升级层级中的固件,依次类推。固件与固件升级文件的对应关系可以以结构体或链表等形式进行存储,以便于在步骤S102中根据对应关系执行相应的固件升级文件。例如,可以采用如下结构体的形式存储所述对应关系定义一个名为product_info的结构体管理以下信息平台名称、平台下支持升级的节点类型数目、描述节点信息的结构体blade_info_st ;结构体blade_info_st用于管理以下信息支持升级的节点类型名称,此节点类型下支持升级的固件数目,描述固件信息的结构体component_info_st ;结构体component_info_st中存放固件升级的重要参数,如固件名称/组件号、版本信息、固件升级文件名称等。需要说明的是,上述的结构体存储升级信息的描述仅是示例性的,以能体现平台、节点、固件、固件升级文件之间的对应关系为准。本领域技术人员应当理解,在针对一个节点下的多个固件、针对多个平台下的多个节点等不同情况下,可以适当的定义结构体进行相应信息的管理,例如在下文所述的步骤S102的第一种实现方式中,就无需对平台信息进行结构化定义。在本实施例中,步骤S102包括以下2种实现方式一)参照图2,本实现方式针对多个节点中每个节点下的至少一个固件进行升级,其中步骤S102包括S200 :根据每个节点所在的节点链表确定每个节点的节点类型。容错计算机中的每个节点都有自己的节点链表,节点链表存放了该节点的相关信息。可以通过升级接口获取用户选择的需要进行升级的节点名称(或者通过软件/装置自动确定需要进行升级的节点,例如,根据升级信息确定支持固件升级的节点并对所有支持固件升级的节点进行固件升级),然后确定该节点的类型。S202 :根据每个节点的节点类型,并根据以结构体或链表形式存储的对应关系确定每个节点下的至少一个固件进行升级所需的固件升级文件并执行。具体地,可以通过升级接口获取需要进行升级的固件的组件号/固件名,也可以通过软件/装置自动确定哪些固件需要进行升级,然后根据存储固件与固件升级文件对应关系的结构体或链表确定需要进行升级的每个固件进行升级所对应的固件升级文件并顺序(例如,按照升级接口获取固件组件号的顺序,或者按照软件/装置根据固件间的升级依赖关系确定的固件升级顺序)执行相应文件从而依次完成每个固件的升级。本实现方式中的多个节点可以并行进行固件升级,即针对多个节点中的每个节点并行执行步骤S201和步骤S202。参照图3,本实现方式中针对多平台下的至少一个节点进行固件升级,其中步骤S102包括S300 :根据至少一个节点中的每个节点所在的节点链表获取每个节点的节点类型和平台属性(即节点所属的平台);S302:根据每个节点的节点类型和平台属性,并根据以结构体或链表形式存储的对应关系确定每个节点下的至少一个固件进行升级所需的固件升级文件并执行。具体的,可以根据上文列举的结构体product_info、blade_info_st和component_info_st确定每个支持固件升级的平台下的任一节点的任一固件进行升级时所需要的固件升级文件,然后执行相应文件。对于多平台下的至少一个节点的确定方式以及该至少一个节点下的至少一个固件的确定方式,请参照图2所示实施例中的相应描述。在步骤S302中,所述至少一个节点为两个或两个以上节点时,其中的每个节点可以互相并行进行固件升级,从而提高多终端、多平台或多节点系统的固件升级效率。在本实施例的其他实现方式中,各节点下的每个固件进行固件升级的状态(升级进度、升级成功/失败等),以及各节点的固件升级状态可以通过显示装置显示。参照图4,图4是根据本发明一个实施例的多节点固件升级装置的结构示意图,该固件升级装置40包括解析模块402,用于解析升级配置文件以确定多节点中支持固件升级的节点下的固件与固件升级文件的对应关系;存储模块404,用于存储多节点中支持固件升级的节点下的固件与固件升级文件的对应关系;执行模块406,用于对支持固件升级的节点中的至少一个节点进行固件升级,具体可以用于根据所述至少一个节点下的至少一个固件与固件升级文件的对应关系执行相应的固件升级文件以进行固件升级。其中,对于升级配置文件、固件升级文件的说明请参照图I所示实施例中的相应说明。解析模块402通过解析升级配置文件从而根据升级配置文件中的升级信息确定多节点中支持固件升级的节点下的固件与固件升级文件的对应关系;存储模块404可以以结构体或链表等形式存储上述对应关系。执行模块406可以包括以下子模块(该实现方式中的执行模块406适用于多平台下的多节点的固件升级)第一确定子模块,用于根据至少一个节点中的每个节点所在的节点链表确定每个节点的节点类型和平台属性;第二确定子模块,用于根据每个节点的节点类型和平台属性,并根据以结构体或链表形式存储的对应关系确定每个节点下的至少一个固件进行升级所需的固件升级文件;执行子模块,用于执行至少一个固件进行升级所需的固件升级文件。或者,执行模块406可以包括以下子模块(该实现方式中的执行模块406适用于多节点中各个节点的固件升级)第四确定子模块,用于根据至少一个节点中的每个节点所在的节点链表确定每个节点的节点类型;第五确定子模块,用于根据每个节点的节点类型,并根据以结构体或链表形式存储的对应关系确定每个节点下的至少一个固件进行升级所需的固件升级文件;执行子模块,用于执行至少一个固件进行升级所需的固件升级文件。本实施例中的执行模块406可以对多个节点并行进行固件升级,也可以对多个节点中每个节点下的多个固件顺序进行固件升级。在本发明的另一种实施例中,固件升级装置除了包括图4所示固件升级装置的所有模块外,还可以包括第六确定模块,用于确定多个节点中需要进行固件升级的节点(即上文所述的至少一个节点)和确定需要进行固件升级的节点下的需要进行固件升级的固件(即上文所述的至少一个固件)。具体地,第六确定模块可以通过升级接口获取用户的相应选择信息从而确定需要进行固件升级的节点名称及该节点下需要进行固件升级的固件组件号/固件名称,或者根据解析的升级信息中的版本信息及固件间升级的依赖关系确定需要进行固件升级的节点及该节点下需要进行固件升级的固件。该第六确定模块可以是执行模块406的子模块。在本发明的其他实施例中,固件升级装置除了包括图4所示固件升级装置的所有模块外,还可以包括显示模块,用于显示各个节点以及各个节点下的固件的升级状态。参照图5,图5是根据本发明一个实施例的多节点固件升级装置的结构示意图,该固件升级装置50包括接收器51,用于接收用户的选择操作,例如,用户对于需要进行固件升级的节点以及该节点下需要进行固件升级的固件的选择。互相耦合的存储器52和处理器53。其中,存储器52存储有各种程序和应用以由处理器53调用从而实现相应的功能。存储器52存储有升级包、升级包解压程序、升级配置文件解析程序、固件与固件升级文件的对应关系等。处理器53用于对升级配置文件进行解析以确定多节点中支持固件升级的节点下的固件与固件升级文件的对应关系、根据节点所在的节点链表确定节点的节点类型和平台属性、根据节点的节点类型和平台属性以及该节点下的固件与固件升级文件的对应关系确定该节点下的至少一个固件进行升级所需的固件升级文件等。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random AccessMemory, RAM)等。以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
权利要求
1.一种多节点固件升级方法,其特征在于,所述方法包括解析升级配置文件以确定和存储所述多节点中支持固件升级的节点下的固件与固件升级文件的对应关系;对所述支持固件升级的节点中的至少一个节点进行固件升级,包括根据所述至少一个节点下的至少一个固件与固件升级文件的对应关系执行相应的固件升级文件以进行固件升级。
2.如权利要求I所述的方法,其特征在于,所述升级配置文件包含以下升级信息支持固件升级的平台名称、所述支持固件升级的平台下支持固件升级的节点类型、所述支持固件升级的节点类型下支持固件升级的固件类型和固件升级参数;所述固件升级参数包括固件升级文件名称。
3.如权利要求2所述的方法,其特征在于,所述解析升级配置文件以确定和存储所述多节点中支持固件升级的节点下的固件与固件升级文件的对应关系包括解析所述升级配置文件以根据所述升级信息确定所述多节点中支持固件升级的节点下的固件与固件升级文件的对应关系,并以结构体或链表形式存储所述对应关系。
4.如权利要求3所述的方法,其特征在于,所述根据所述至少一个节点下的至少一个固件与固件升级文件的对应关系执行相应的固件升级文件包括根据所述至少一个节点中的每个节点所在的节点链表确定所述每个节点的节点类型和平台属性;根据所述每个节点的节点类型和平台属性,并根据以结构体或链表形式存储的对应关系确定所述每个节点下的至少一个固件进行升级所需的固件升级文件并执行。
5.如权利要求I至4中任意一项所述的方法,其特征在于,所述根据所述至少一个节点下的至少一个固件与固件升级文件的对应关系执行相应的固件升级文件以进行固件升级包括对所述支持固件升级的节点中的两个或两个以上节点并行进行固件升级;和/或对所述支持固件升级的节点中的至少一个节点下的两个或两个以上固件顺序进行固件升级。
6.一种多节点固件升级装置,其特征在于,所述装置包括解析模块,用于解析升级配置文件以确定所述多节点中支持固件升级的节点下的固件与固件升级文件的对应关系;存储模块,用于存储所述多节点中支持固件升级的节点下的固件与固件升级文件的对应关系;执行模块,用于对所述支持固件升级的节点中的至少一个节点进行固件升级,包括根据所述至少一个节点下的至少一个固件与固件升级文件的对应关系执行相应的固件升级文件以进行固件升级。
7.如权利要求6所述的装置,其特征在于,所述升级配置文件包含以下升级信息支持固件升级的平台名称、所述支持固件升级的平台下支持固件升级的节点类型、所述支持固件升级的节点类型下支持固件升级的固件类型和固件的升级参数;所述固件升级参数包括固件升级文件名称。
8.如权利要求7所述的装置,其特征在于,所述解析模块用于解析所述升级配置文件以根据所述升级信息确定所述多节点中支持固件升级的节点下的固件与固件升级文件的对应关系;所述存储模块用于以结构体或链表形式存储所述对应关系。
9.如权利要求8所述的装置,其特征在于,所述执行模块包括第一确定子模块,用于根据所述至少一个节点中的每个节点所在的节点链表确定所述每个节点的节点类型和平台属性;第二确定子模块,用于根据所述每个节点的节点类型和平台属性,并根据以结构体或链表形式存储的对应关系确定所述每个节点下的至少一个固件进行升级所需的固件升级文件;执行子模块,用于执行所述至少一个固件进行升级所需的固件升级文件。
10.如权利要求6至9中任意一项所述装置,其特征在于,所述执行模块用于对所述支持固件升级的节点中的两个或两个以上节点并行进行固件升级,和/或,对所述支持固件升级的节点中的至少一个节点下的两个或两个以上固件顺序进行固件升级。
全文摘要
本发明实施例公开了一种多节点固件升级方法,本发明实施例还公开了一种多节点固件升级装置。其中所述方法包括解析升级配置文件以确定和存储所述多节点中支持固件升级的节点下的固件与固件升级文件的对应关系;对所述支持固件升级的节点中的至少一个节点进行固件升级,包括根据所述至少一个节点下的至少一个固件与固件升级文件的对应关系执行相应的固件升级文件以进行固件升级。采用本发明,能够实现多固件的顺序升级和多节点的并行升级,适用于多平台、多节点或多终端系统进行高效地固件升级。
文档编号G06F9/445GK102937904SQ201210409860
公开日2013年2月20日 申请日期2012年10月24日 优先权日2012年10月24日
发明者袁静, 吴登奔, 张羽 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1