固件在线升级方法、服务器及存储介质与流程
未命名
07-29
阅读:120
评论:0
1.本技术涉及计算机固件升级领域,尤其是涉及固件在线升级方法、服务器及存储介质。
背景技术:
2.早期固件(firmware)芯片一般采用了rom设计,它的firmware代码是在生产过程中固化的,用任何手段都无法修改。随着技术的不断发展,修改固件以适应不断更新的硬件环境成了服务器使用者(下文简称用户)的迫切要求,所以,可重复写入的eprom(erasable programmable read-only memory,可编程可擦除只读存储器),eeprom(electrically erasable programmable read-only memory,电可擦编程只读存储器)和闪存flash出现了。这些芯片是可以重复刷写的,让固件得以修改和升级。
3.当服务器固件出现相关问题/bug时,目前主要是通过用户将相关问题反馈给服务器厂商,厂商技术人员通过修改固件代码,以对bug进行修复,从而生成新版本固件;并通过第三方应用(例如邮箱、微信等)将新版本固件发送给用户,用户下载保存该新版本固件,然后进入服务器bmc(baseboard management controller,基板管理控制器)系统进行自行安装,这种升级方式通常适用于专业能力和动手能力较强的用户。对于那些普通用户而言,完成该固件自行升级过程是有一定难度的,甚至由于专业度不够,普通用户是很难发现存在的bug的,因此也就更难及时、快速地完成对服务器固件的升级。
4.另外,对于服务器厂商而言,无论是一对一,还是一对多地将新版本固件发送给用户,当用户量较大时,都是一个耗费费力的工作。
技术实现要素:
5.为了更方便地完成对服务器固件的升级,降低固件升级的难度,本技术提供了一种固件在线升级方法、服务器及存储介质。
6.第一方面,本技术提供的固件在线升级方法,采用如下的技术方案:一种固件在线升级方法,应用于服务器的bmc系统,包括:在接收到查询指令时,基于所述查询指令生成第一请求;利用远程通信连接将所述第一请求发送给固件存放平台;接收所述固件存放平台基于所述第一请求发送的固件更新清单;所述固件更新清单包括更新版本的各固件包的标识信息;在接收到对相关固件包的选取指令时,基于所述选取指令生成第二请求;利用所述远程通信连接将所述第二请求发送给所述固件存放平台;所述第二请求携带有指示升级的所述相关固件包的标识信息;接收所述固件存放平台基于所述第二请求发送的目标固件包;所述目标固件包包括与所述相关固件包的标识信息匹配的固件包;利用所述目标固件包完成对所述服务器的固件升级。
7.通过采用上述技术方案,通过部署一固件存放平台,厂商将新版本固件统一发布到固件存放平台,无需单独发送给各个用户,极大提高固件升级效率;基于服务器的bmc系统具有独立ip的属性,可利用bmc系统的远程通信模块建立与固件存放平台之间的通信连接,用户可首先通过一键下发查询指令,即可从固件存放平台获取到固件更新清单,从而了解到固件更新情况;进而可根据固件更新需求,下发对需要更新的相关固件包的选取指令,以指示bmc系统从固件存放平台获取对应的目标服固件包,最后bmc系统即可根据获取到的目标固件包完成固件自动升级。对于用户而言,操作便捷,只需要一键下发查询指令和根据实际更新需求从固件更新清单中选取需要升级的相关固件包的选取指令服务器bmc系统即可实现对固件的在线升级,降低了固件升级的难度。
8.可选的,所述接收到查询指令包括:当设定查询周期到达时,判定接收到所述查询指令。
9.可选的,所述标识信息包括固件包名称和/或固件版本号;所述固件更新清单还包括发布时间以及更新内容概要。
10.可选的,在所述接收所述固件存放平台基于所述第一请求发送的固件更新清单之后,在所述根据所述选取指令生成第二请求之前,所述固件在线升级方法还包括:控制所述固件更新清单在所述bmc系统的web ui界面进行展示;监测外部对所述相关固件包的选取指令。
11.可选的,所述利用所述目标固件包完成对所述服务器的固件升级包括:对所述目标固件包进行解压,得到配置文件和二进制烧录文件;所述配置文件包括所述二进制烧录文件中所包含的固件类型以及各所述固件类型对应的烧录顺序;对解压得到的文件进行合法性校验;校验通过后,根据所述烧录顺序将各所述固件类型对应的二进制烧录文件写入对应的flash中。
12.可选的,所述将各所述固件类型对应的二进制烧录文件写入对应的flash中包括:将各所述固件类型的原始二进制烧录文件备份到bmc系统的存储器中;在备份完成后,将所述固件类型对应的二进制烧录文件写入到该固件类型对应的flash中,然后将所述原始二进制烧录文件擦除。
13.可选的,所述固件在线升级方法还包括:在监测获取到问题反馈指令时,基于所述问题反馈指令生成第三请求;所述第三请求携带有所述服务器的身份标识信息和对固件问题的描述信息;利用远程通信连接将所述第三请求发送给厂商服务端。
14.第二方面,本技术提供的固件在线升级方法,采用如下的技术方案:一种固件在线升级方法,应用于固件存放系统,包括:基于远程通信连接接收待升级服务器的bmc系统发送的第一请求;根据所述第一请求将固件更新清单发送给所述bmc系统;基于所述远程通信连接接收所述bmc系统发送的第二请求;解析所述第二请求,以获取得到所述第二请求携带的相关固件包的标识信息;获取本地存储的所有固件包的标识信息,将所述相关固件包的标识信息与所述所有固件包的标识信息一一进行比较,判断两者是否匹配;
筛选出与所述相关固件包的标识信息匹配的固件包,作为目标固件包;将所述目标固件包发送给所述bmc系统,以用于实现对所述服务器的固件升级。
15.第三方面,本技术提供的服务器,采用如下的技术方案:一种服务器,包括bmc系统,所述bmc系统包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的固件代码,所述处理器执行所述固件代码时实现如上任意一项所述的固件在线升级方法。
16.第四方面,本技术提供的计算机可读存储介质,采用如下的技术方案:一种计算机可读存储介质,所述计算机可读存储介质存储有固件代码;所述固件代码被处理器执行时实现如上任意一项所述的固件在线升级方法。
17.综上所述,本技术包括以下至少有益技术效果:降低了固件升级的难度,对于普通用户可更方便地完成对服务器固件的升级;同时也降低了服务器厂商的工作量,可更好地保证所有用户在固件更新的第一时间进行升级,降低网络攻击的风险。
附图说明
18.图1是本技术实施例中一种固件在线升级方法的流程框图;图2是本技术实施例中关于固件包选取界面示意图;图3是本技术实施例中另一种固件在线升级方法的流程框图;图4是本技术实施例中又一种固件在线升级方法的流程框图;图5是本技术实施例中服务器的结构框图。
具体实施方式
19.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。
20.本技术实施例公开一种固件在线升级方法。
21.参考图1,一种固件在线升级方法,该固件升级方法应用于主要由服务器的bmc系统与固件存放平台构成的系统。本实施例中,bmc系统所在的服务器指的是用户使用的服务器;固件存放平台可以部署在任意计算节点上,计算节点可以是一台计算机或者一台服务器,只要该计算节点能够被访问以及实现数据存储和下载即可。服务器厂商可通过部署的固件存放平台实现对所辖服务器的固件升级管理,无需厂商技术人员或者服务人员单独一一为各个服务器使用者提供固件升级服务,降低维护成本。对于用户而言,可基于服务器bmc系统与固件存放平台之间的通信连接,只需简单的操作,即可实现对服务器固件的升级,方便快捷。
22.该固件升级方法主要包括以下步骤:s101、bmc系统监测外部的查询指令。
23.服务器上电之后,bmc系统可自动启动,基于固件功能可实现对相关芯片/模块的状态监控管理,包括但不限于记录服务器信息、bmc系统信息,对服务器各个部件(例如cpu、内存、硬盘、风扇、机框等)的温度、电压等健康状态进行检测、控制、告警等。
24.用户可通过bmc系统提供的web人机接口,利用浏览器访问bmc系统的ip(internet protocol address,互联网协议地址),身份验证(例如账号+登录密码)通过后,即可下发查询指令,以随时了解当前厂商对服务器固件的更新情况,便于及时对需要更新的固件进行更新。
25.在本技术的可选实施例中,可对bmc系统预设查询周期,例如每天定时进行查询。当设定查询周期到达时,判定接收到查询指令,触发生成第一请求,实现无接触式更新。
26.s102、基于查询指令生成第一请求。
27.用户可在bmc的web ui界面一键点击“查询”按钮,以查询是否存在更新,操作便捷。此时,bmc系统即可监测到接收到查询指令,进而触发bmc系统立即生成相应的请求(即第一请求),以用于获取固件更新清单。应当理解的是,基于用户操作生成请求的方式,可采用现有任意方式,本实施例对此不做限制。
28.s103、利用远程通信连接将第一请求发送给固件存放平台。
29.本技术实施例中,bmc系统外围设备包括但不限于以太网模块或者远程通信模块,例如采用4g(第四代移动电话行动通信标准)、5g(第五代移动电话行动通信标准)、6g(第六代移动电话行动通信标准)等移动通信模块。bmc系统可建立与固件存放平台之间的远程通信连接,从而将第一请求发送给固件存放平台。
30.s104、固件存放平台接收第一请求,基于第一请求获取固件更新清单。
31.需要说明的是,固件更新清单可用于表示厂商对服务器的固件更新情况。本技术实施例中,固件更新清单包括更新版本的各固件包的标识信息。参考如下表1所示:表1固件更新清单示例固件包名称固件版本号发布时间更新内容概要固件包1version1.12022.03.01修复了***bug
…
固件包2version2.12023.03.01新增了***功能
……………
在本技术的可选实施例中,固件包的标识信息包括固件包名称和固件版本号,发布时间为服务器厂商上传更新固件包的时间,更新内容概要指的是对本次更新固件包相对于前一版本固件包所更新的内容描述,在服务器厂商上传更新固件包时填写。
32.固件存放平台在每次接收到厂商上传更新固件包时,通过获取上述上传信息,然后映射填写到上述表1所示的固件更新清单中,以对固件更新清单进行及时更新,保证发送给bmc系统的固件更新清单是最新版本对的,保证更新及时性。
33.在本技术的可选实施例中,随着固件版本的不断更新,固件更新清单会越来越冗长,但用户真正需要获取的固件包可能并不多,因此不便于用户快速查找到所需的固件信息。对此,可按照发布时间的先后顺序,将最近发布的固件包排在前面,将前面发布的固件包排在后面,也即发布时间越近,排列位置越靠前,这样用户可第一时间获取到最新的固件包信息。
34.在本技术的可选实施例中,固件更新平台还可进一步针对固件包名称相同的固件包,直接删除该固件包以前的全部版本,仅保留最新版本,便于用户直接查找到最新版本。
35.s105、将固件更新清单打包发送给bmc系统。
36.同理,固件更新平台通过与bmc系统之间的通信连接,将固件更新清单打包后发送
给bmc系统。其中打包方式为现有方式,在此不再赘述。
37.s106、bmc系统对固件更新清单进行解析并展示。
38.bmc系统接收固件存放平台发送的固件更新清单,并进行解析处理,并将解析得到的清单内容进行展示。可选的,控制清单内容在web ui相应界面上进行显示,用户通过访问web ui,查看清单内容。
39.进一步的,用户根据实际更新需求(用户认为存在更新的必要,或者发现固件问题必须解决处理等情形),选取相应的更新包进行更新。
40.s107、监测外部对相关固件包的选取指令。
41.参见图2所示,用户可对清单内容所展示的固件按照更新需求进行勾选,选取完成即可点击确定升级,此时服务器将监测到对相关固件包(即用户勾选的固件包)的选取指令,进而触发生成相应的请求(即第二请求)以获取相应的固件包。
42.s108、基于选取指令生成第二请求。
43.应当说明的是,第二请求携带有指示升级的相关固件包(即用户勾选的固件包)的标识信息,其中标识信息例如包含由固件包名称和版本号。应当理解的是,生成请求的方式为现有方式,在此不再赘述。
44.在本技术的可选实施例中,对于很多普通用户而言,可能并不清楚需要对哪些固件进行升级,或者知道需要升级哪些固件,但是无法准确地从清单内容中找到对应的固件包,因此在一定程度上给用户带来了操作上比较繁琐的问题,影响用户的使用。对此,在本技术可选实施例中,bmc系统可获取bmc芯片(例如ram芯片)及其连接的外围芯片或模块的固件版本,与更新清单进行比较,判断该芯片/模块的固件是否存在更新;若存在,则生成对应的选取指令,从而获取固件更新包进行固件更新,实现固件的全自动化更新,实现无感升级。
45.s109、利用远程通信连接将第二请求发送给固件存放平台。
46.同理,基于远程通信连接,可实现bmc系统与固件存放平台之间的信息交互,从而将第二请求发送给固件存放平台。
47.s110、固件存放平台接收第二请求,并解析得到相关固件包的标识信息。
48.应当理解的是,对于数据包的解析可采用现有方式,在此不再赘述。第二请求中携带有相关固件包的标识信息,通过现有解析方法可直接解析得到。
49.s111、根据相关固件包的标识信息,筛选与之匹配的目标固件包。
50.固件存放平台根据相关固件包的标识信息,通过标识信息的比较,筛选出与该相关固件包的标识信息匹配的固件包,即目标固件包。这里,标识信息的匹配,具体可以是将该相关固件包的标识信息(后面简称第一标识信息),与固件存放平台中存储的其他固件包的标识信息(后面简称第二标识信息)进行比较,若两者的标识信息一致或者相同,即可判定两者匹配。
51.在本技术的可选实施例中,固件存放平台可建立各固件包的标识信息与存放地址的映射关系表,参见如下表2所示:表2固件包的标识信息与存放地址的映射关系表固件包的标识信息存放地址固件包1+version1.1地址1
固件包2+version2.1地址2
……
固件存放平台根据解析得到的相关固件包的标识信息,在映射关系表中查找与该标识信息对应的存放地址,然后根据该存放地址直接获取存放在该地址的固件包,作为目标固件包发送给bmc系统。
52.s112、固件存放平台将目标固件包发送给bmc系统。
53.s113、bmc系统接收目标固件包,对目标固件包进行解压,得到配置文件和二进制烧录文件。
54.本技术实施例中,配置文件包括二进制烧录文件中所包含的固件类型以及各固件类型对应的烧录顺序。在本技术可选实施例中,固件类型包括但不限于bios(basicinput/outputsystem,基本输入/输出系统),bmc,cpld(complex programmable logic device,复杂可编程逻辑器件)等。
55.s114、对解压得到的文件进行合法性校验。
56.对文件进行合法性校验的方式可采用现有任意校验方式,例如通过校验码或者签名等方式实现,本实施例对此不做限制。通过对解压得到的文件进行合法性校验,以保证获取的固件包是用户真正需求更新的固件包,没有被篡改,从而防止病毒从固件层面的入侵。
57.s115、校验通过后,根据烧录顺序将各固件类型对应的二进制烧录文件写入对应的flash(闪存)中,以完成对服务器的固件升级。
58.例如当升级开始时,先判断固件包中固件类型,并根据配置文件自动获取各固件的升级顺序,按照升级顺序一一升级固件,如先升级bios,再升级cpld,最后升级bmc。
59.在本技术可选实施例中,为了避免在固件升级过程中突然掉电的情况,导致固件升级失败的问题,可选择将各固件类型的原始二进制烧录文件备份到bmc系统的存储器(例如内存)中;在备份完成后,将固件类型对应的二进制烧录文件写入到该固件类型对应的flash中,然后将原始二进制烧录文件擦除。在将二进制烧录文件写入flash的过程中,若写入失败,则可重新启动将原始二进制烧录文件进行写入,保证固件的正常工作。
60.目前,当用户在使用服务器的过程中,若发现存在固件问题,通常需要用户单独向厂商技术人员进行反馈,厂商技术人员在解决了该问题并重新完善了固件之后,将更新的固件再单独发送给用户。整个固件升级过程无法有效监控,可能存在厂商不能及时反馈处理方案或者遗忘或者反馈到其他用户的情况,影响前期的处理效率,降低了用户体验。在本技术的可选实施例中,用户可通过bmc系统进行固件问题反馈,将反馈问题通过bmc系统发送给厂商,bmc系统在监测获取到问题反馈指令时,基于问题反馈指令生成第三请求;其中,第三请求携带有服务器的身份标识信息和对固件问题的描述信息;利用远程通信连接将第三请求发送给厂商服务端。厂商服务端对反馈问题进行技术评估,确定处理方案,例如经评估确认后确实存在该技术问题,则对固件进行完善修复,重新编写固件代码,生成更新固件包,上传到固件存放平台,并将处理方案反馈给用户。用户可在bmc系统查看到反馈记录和回复的处理方案,有利于跟进与追溯。
61.基于同一设计构思,本实施例还公开一种固件在线升级方法。参见图3,该固件在线升级方法主要应用于服务器的bmc系统,主要包括以下步骤:s301、在接收到查询指令时,基于查询指令生成第一请求;
s302、利用远程通信连接将第一请求发送给固件存放平台;s303、接收固件存放平台基于第一请求发送的固件更新清单;其中,固件更新清单包括更新版本的各固件包的标识信息;s304、在接收到对相关固件包的选取指令时,基于选取指令生成第二请求;s305、利用远程通信连接将第二请求发送给固件存放平台;其中第二请求携带有指示升级的相关固件包的标识信息;s306、接收固件存放平台基于第二请求发送的目标固件包;目标固件包包括与相关固件包的标识信息匹配的固件包;s307、利用目标固件包完成对服务器的固件升级。
62.具体过程可参见上述相关描述,在此不再赘述。
63.基于同一设计构思,本实施例还公开一种固件在线升级方法。参见图4,该固件在线升级方法主要应用于固件存放系统,主要包括以下步骤:s401、基于远程通信连接接收待升级服务器的bmc系统发送的第一请求;本技术实施例中,待升级服务器指的是将发送第一请求的服务器,而不管到底能不能完成升级。
64.s402、根据第一请求将固件更新清单发送给bmc系统;s403、基于远程通信连接接收bmc系统发送的第二请求;s404、解析第二请求,以获取得到第二请求携带的相关固件包的标识信息;相关固件包指的是用户所选取的固件包。
65.s405、获取本地存储的所有固件包的标识信息,将相关固件包的标识信息与所有固件包的标识信息一一进行比较,判断两者是否匹配;当两者的标识信息一致或相同时,判定两者匹配。
66.s406、筛选出与相关固件包的标识信息匹配的固件包,作为目标固件包;s407、将目标固件包发送给bmc系统,以用于实现对服务器的固件升级。
67.具体过程可参见上述相关描述,在此不再赘述。
68.为了更好地执行上述方法的程序,本技术实施例还提供一种服务器,如图5所示,服务器包括bmc系统,其中bmc系统包括处理器和存储器,处理器包括ram芯片,存储器为flash闪存,flash闪存中存储有可在处理器上运行的固件代码,处理器执行固件代码时实现如上所述的固件在线升级方法。服务器可以以各种形式来实施,包括台式计算机等设备。
69.本技术实施例提供一种计算机可读存储介质,介质例如包括flash,该计算机可读存储介质存储有能够被处理器加载并执行上述实施例的固件在线升级方法的固件代码。
70.以上所述,以上实施例仅用以对本技术的技术方案进行了详细介绍,但以上实施例的说明只是用于帮助理解本技术的方法及其核心思想,不应理解为对本技术的限制。本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本技术的保护范围之内。
技术特征:
1.一种固件在线升级方法,其特征在于,所述固件在线升级方法应用于服务器的bmc系统,包括:在接收到查询指令时,基于所述查询指令生成第一请求;利用远程通信连接将所述第一请求发送给固件存放平台;接收所述固件存放平台基于所述第一请求发送的固件更新清单;所述固件更新清单包括更新版本的各固件包的标识信息;在接收到对相关固件包的选取指令时,基于所述选取指令生成第二请求;利用所述远程通信连接将所述第二请求发送给所述固件存放平台;所述第二请求携带有指示升级的所述相关固件包的标识信息;接收所述固件存放平台基于所述第二请求发送的目标固件包;所述目标固件包包括与所述相关固件包的标识信息匹配的固件包;利用所述目标固件包完成对所述服务器的固件升级。2.根据权利要求1所述的固件在线升级方法,其特征在于,所述接收到查询指令包括:当设定查询周期到达时,判定接收到所述查询指令。3.根据权利要求1所述的固件在线升级方法,其特征在于,所述标识信息包括固件包名称和/或固件版本号;所述固件更新清单还包括发布时间以及更新内容概要。4.根据权利要求1至3所述的固件在线升级方法,其特征在于,在所述接收所述固件存放平台基于所述第一请求发送的固件更新清单之后,在所述根据所述选取指令生成第二请求之前,所述固件在线升级方法还包括:控制所述固件更新清单在所述bmc系统的web ui界面进行展示;监测外部对所述相关固件包的选取指令。5.根据权利要求4所述的固件在线升级方法,其特征在于,所述利用所述目标固件包完成对所述服务器的固件升级包括:对所述目标固件包进行解压,得到配置文件和二进制烧录文件;所述配置文件包括所述二进制烧录文件中所包含的固件类型以及各所述固件类型对应的烧录顺序;对解压得到的文件进行合法性校验;校验通过后,根据所述烧录顺序将各所述固件类型对应的二进制烧录文件写入对应的flash中。6.根据权利要求5所述的固件在线升级方法,其特征在于,所述将各所述固件类型对应的二进制烧录文件写入对应的flash中包括:将各所述固件类型的原始二进制烧录文件备份到bmc系统的存储器中;在备份完成后,将所述固件类型对应的二进制烧录文件写入到该固件类型对应的flash中,然后将所述原始二进制烧录文件擦除。7.根据权利要求4所述的固件在线升级方法,其特征在于,所述固件在线升级方法还包括:在监测获取到问题反馈指令时,基于所述问题反馈指令生成第三请求;所述第三请求携带有所述服务器的身份标识信息和对固件问题的描述信息;利用远程通信连接将所述第三请求发送给厂商服务端。8.一种固件在线升级方法,其特征在于,应用于固件存放系统,所述固件在线升级方法
包括:基于远程通信连接接收待升级服务器的bmc系统发送的第一请求;根据所述第一请求将固件更新清单发送给所述bmc系统;基于所述远程通信连接接收所述bmc系统发送的第二请求;解析所述第二请求,以获取得到所述第二请求携带的相关固件包的标识信息;获取本地存储的所有固件包的标识信息,将所述相关固件包的标识信息与所述所有固件包的标识信息一一进行比较,判断两者是否匹配;筛选出与所述相关固件包的标识信息匹配的固件包,作为目标固件包;将所述目标固件包发送给所述bmc系统,以用于实现对所述服务器的固件升级。9.一种服务器,其特征在于,包括bmc系统,所述bmc系统包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的固件代码,所述处理器执行所述固件代码时实现如权利要求1至7中任意一项所述的固件在线升级方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有固件代码;所述固件代码被处理器执行时实现如权利要求1至7任意一项所述的固件在线升级方法。
技术总结
本申请涉及计算机固件升级领域,尤其涉及固件在线升级方法、服务器及存储介质。通过部署一固件存放平台,厂商将新版本固件统一发布到固件存放平台,无需单独发送给各个用户,极大提高固件升级效率;降低了固件升级的难度,同时可更好地保证所有用户在固件更新的第一时间进行升级,降低网络攻击的风险。降低网络攻击的风险。降低网络攻击的风险。
技术研发人员:林泽铭 何志平 黄志鹏 周潇 贾兵 刘虎 周南
受保护的技术使用者:天固信息安全系统(深圳)有限公司
技术研发日:2023.04.10
技术公布日:2023/7/28
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
