集群固件组合升级方法、系统、终端及存储介质与流程
未命名
10-18
阅读:135
评论:0
1.本发明属于服务器技术领域,具体涉及一种集群固件组合升级方法、系统、终端及存储介质。
背景技术:
2.目前一些服务器厂商在发布固件时,可能对一些芯片的固件进行组合发布,例如在bmc和bios固件发布时,一个bmc固件对应一个bios固件进行发布。这就造成这两种芯片之间的固件具有兼容性需求,若固件版本不搭配就芯片就无法正常运行。
3.在集群服务器的场景下,针对多服务器的bmc固件升级,系统的bmc固件和bios固件一起升级存在资源浪费的情况,以及bmc固件和bios固件多个不同版本的相互搭配组合可能的固件升级失败,或升级后无法正常运行的情况。
技术实现要素:
4.针对现有技术存在的集群固件批量升级后不满足兼容性导致部分服务器的芯片运行故障的问题,本发明提供一种集群固件组合升级方法、系统、终端及存储介质,以解决上述技术问题。
5.第一方面,本发明提供一种集群固件组合升级方法,包括:
6.从生成的固件升级任务中解析目标节点地址和目标节点中需要升级固件的第一芯片的目标固件版本;
7.基于目标节点地址从目标节点获取第二芯片的固件版本,所述第二芯片与第一芯片具有固件版本兼容性需求关系;
8.判断第二芯片的固件版本与所述目标固件版本是否兼容:
9.若是,则将目标节点的第一芯片的固件升级至目标固件版本;
10.若否,则将目标节点的第二芯片的固件升级至兼容版本,所述兼容版本与所述目标固件版本兼容。
11.在一个可选的实施方式中,在从生成的固件升级任务中解析目标节点地址和目标节点中需要升级固件的第一芯片的目标固件版本之前,所述方法还包括:
12.接收漏洞修复任务,解析漏洞类型;
13.配置修复相应类型漏洞的第一芯片和第一芯片的目标固件版本;
14.获取集群所有节点的第一芯片的现有固件版本;
15.筛选出第一芯片的现有固件版本与所述目标固件版本不一致的节点作为目标节点;
16.生成将目标节点的第一芯片固件版本升级至目标固件版本的固件升级任务。
17.在一个可选的实施方式中,基于目标节点地址从目标节点获取第二芯片的固件版本,所述第二芯片与第一芯片具有固件版本兼容性需求关系,包括:
18.预先根据芯片之间固件版本的兼容性需求关系设置芯片组合;
19.根据所述需求关系查找与所述第一芯片在同一芯片组合的第二芯片;
20.基于目标节点地址向目标节点发送获取第二芯片固件版本的请求。
21.在一个可选的实施方式中,判断第二芯片的固件版本与所述目标固件版本是否兼容,包括:
22.从兼容数据库获取与所述目标固件版本适配的第二对象的所有固件版本,保存为适配版本集合;
23.判断适配版本集合是否包括所述第二芯片的固件版本:
24.若是,则判定第二芯片的固件版本与所述目标固件版本兼容,并为目标节点第一芯片和第二芯片生成兼容标记;
25.若否,则判定第二芯片的固件版本与所述目标固件版本不兼容,并为目标节点第一芯片和第二芯片生成不兼容标记。
26.在一个可选的实施方式中,将目标节点的第一芯片的固件升级至目标固件版本,包括:
27.将目标固件版本的固件文件和自动安装脚本下发至目标节点;
28.所述自动安装脚本在所述目标节点检测到所述兼容标记后,安装所述固件文件。
29.在一个可选的实施方式中,将目标节点的第二芯片的固件升级至兼容版本,包括:
30.从兼容数据库获取与所述目标固件版本适配的第二对象的所有固件版本,保存为适配版本集合;
31.从所述适配版本集合中筛选出最新的固件版本作为目标版本;
32.将所述目标版本的固件文件和自动安装脚本下发至目标节点,以将目标节点的第二对象的固件版本升级至所述目标版本。
33.在一个可选的实施方式中,在将目标节点的第一芯片的固件升级至目标固件版本之后,所述方法还包括:
34.收集目标节点的系统日志,并从所述系统日志中筛选出记录所述第一芯片工作状态的目标日志;
35.利用关键词查询技术从所述目标日志查询错误日志,所述错误日志包括第一芯片失活记录、多次重启记录、启动失败记录及运行告警记录;
36.若所述目标日志中存在错误日志,则判定第一芯片的当前固件版本与第二芯片的当前固件版本不兼容,将第二芯片的当前固件版本升级为与第一芯片的当前固件版本兼容的版本;
37.若所述目标日志中不存在错误日志,则将第一芯片的当前固件版本与第二芯片的当前固件版本标记为兼容,并将标记内容保存至兼容数据库。
38.第二方面,本发明提供一种集群固件组合升级系统,包括:
39.任务解析模块,用于从生成的固件升级任务中解析目标节点地址和目标节点中需要升级固件的第一芯片的目标固件版本;
40.数据采集模块,用于基于目标节点地址从目标节点获取第二芯片的固件版本,所述第二芯片与第一芯片具有固件版本兼容性需求关系;
41.兼容判断模块,用于判断第二芯片的固件版本与所述目标固件版本是否兼容;
42.第一升级模块,用于若第二芯片的固件版本与所述目标固件版本兼容,则将目标
节点的第一芯片的固件升级至目标固件版本;
43.第二升级模块,用于若第二芯片的固件版本与所述目标固件版本不兼容,则将目标节点的第二芯片的固件升级至兼容版本,所述兼容版本与所述目标固件版本兼容。
44.在一个可选的实施方式中,所述系统还包括:
45.漏洞解析模块,用于接收漏洞修复任务,解析漏洞类型;
46.目标配置模块,用于配置修复相应类型漏洞的第一芯片和第一芯片的目标固件版本;
47.版本获取模块,用于获取集群所有节点的第一芯片的现有固件版本;
48.目标筛选模块,用于筛选出第一芯片的现有固件版本与所述目标固件版本不一致的节点作为目标节点;
49.任务生成模块,用于生成将目标节点的第一芯片固件版本升级至目标固件版本的固件升级任务。
50.在一个可选的实施方式中,数据采集模块包括:
51.组合设置单元,用于预先根据芯片之间固件版本的兼容性需求关系设置芯片组合;
52.根据所述需求关系查找与所述第一芯片在同一芯片组合的第二芯片;
53.基于目标节点地址向目标节点发送获取第二芯片固件版本的请求。
54.在一个可选的实施方式中,兼容判断模块包括:
55.兼容查询单元,用于从兼容数据库获取与所述目标固件版本适配的第二对象的所有固件版本,保存为适配版本集合;
56.版本判断单元,用于判断适配版本集合是否包括所述第二芯片的固件版本;
57.第一标记单元,用于若适配版本集合包括所述第二芯片的固件版本,则判定第二芯片的固件版本与所述目标固件版本兼容,并为目标节点第一芯片和第二芯片生成兼容标记;
58.第二标记单元,用于若适配版本集合不包括所述第二芯片的固件版本,则判定第二芯片的固件版本与所述目标固件版本不兼容,并为目标节点第一芯片和第二芯片生成不兼容标记。
59.在一个可选的实施方式中,第一升级模块包括:
60.文件下发单元,用于将目标固件版本的固件文件和自动安装脚本下发至目标节点;
61.文件安装单元,用于所述自动安装脚本在所述目标节点检测到所述兼容标记后,安装所述固件文件。
62.在一个可选的实施方式中,第二升级模块包括:
63.从兼容数据库获取与所述目标固件版本适配的第二对象的所有固件版本,保存为适配版本集合;
64.从所述适配版本集合中筛选出最新的固件版本作为目标版本;
65.将所述目标版本的固件文件和自动安装脚本下发至目标节点,以将目标节点的第二对象的固件版本升级至所述目标版本。
66.在一个可选的实施方式中,所述系统还包括:
67.日志收集模块,用于收集目标节点的系统日志,并从所述系统日志中筛选出记录所述第一芯片工作状态的目标日志;
68.错误查询模块,用于利用关键词查询技术从所述目标日志查询错误日志,所述错误日志包括第一芯片失活记录、多次重启记录、启动失败记录及运行告警记录;
69.错误处理模块,用于若所述目标日志中存在错误日志,则判定第一芯片的当前固件版本与第二芯片的当前固件版本不兼容,将第二芯片的当前固件版本升级为与第一芯片的当前固件版本兼容的版本;
70.兼容记录模块,用于若所述目标日志中不存在错误日志,则将第一芯片的当前固件版本与第二芯片的当前固件版本标记为兼容,并将标记内容保存至兼容数据库。
71.第三方面,提供一种终端,包括:
72.处理器、存储器,其中,
73.该存储器用于存储计算机程序,
74.该处理器用于从存储器中调用并运行该计算机程序,使得终端执行上述的终端的方法。
75.第四方面,提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
76.本发明的有益效果在于,本发明提供的集群固件组合升级方法、系统、终端及存储介质,通过对需要进行固件升级的芯片进行固件版本的兼容判断,即针对具有固件版本兼容性需求关系的芯片,需要对目标芯片的目标固件版本与关联芯片的固件版本进行兼容性预判,然后根据判断结果采用对应的升级策略进行固件升级。本发明考虑了芯片之间的固件版本兼容性,在集群中进行批量固件升级时,能够保证升级过程不被兼容性问题打断,升级后所有节点正常运行。
77.本发明通过优先对升级对象的目标固件版本的适配固件版本进行查找,然后以查找结果作为比对标准对升级对象的兼容需求对象的固件版本进行兼容判断,从而快速预判两者之间是否兼容,整个过程可在集群中的多个节点同时进行,提升了升级效率。
78.本发明在发现升级对象的兼容需求对象的固件版本与升级对象的目标固件版本不兼容时,从兼容数据库中为兼容需求对象查找最新的适配版本,先对其进行升级,升级完成后再对升级对象进行固件升级,从而保证了整个升级过程的成功。
79.本发明在进行兼容性判断后,根据兼容性判断结果生成相应的标记。并在固件的自动安装脚本中配置检测标记的动作,进而保证了升级的触发必须在通过兼容性判断的前提下进行。
80.此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
附图说明
81.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
82.图1是本发明一个实施例的方法的示意性流程图。
83.图2是本发明一个实施例的方法的兼容数据库的构建流程图。
84.图3是本发明一个实施例的系统的示意性框图。
85.图4为本发明实施例提供的一种终端的结构示意图。
具体实施方式
86.为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
87.除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
88.下面对本发明中出现的关键术语进行解释。
89.bmc基板管理控制器是监控和管理服务器的专用控制器。在全球已部署的服务器中,绝大部分都配备了bmc芯片,用于对服务器进行状态监控和远程管理。bmc可以与服务器进行交互通信,控制服务器上电下电、主机虚拟化等操作,所以说服务器内部的先天安全缺陷主要就来源于bios与bmc。不同服务器厂商都会开发自己的bmc固件,以提供客户服务、创造商业机会和经济效益。
90.bmc实际上可以理解为服务器的独立管理系统,可以通过网络连接进行远程管理和监控,为管理员提供方便的管理功能。bios的主要功能是初始化并检测系统硬件及启动操作系统。bmc和bios在服务器中是密切相关的,它们的协同作用使服务器硬件管理更加高效、自动化和安全。
91.服务器内部硬件结构较多,有一些芯片的固件版本具有兼容性需求。例如,服务器厂商在bmc和bios固件发布时,往往是进行组合发布,一个bmc固件对应一个bios固件进行发布。在服务器进行固件升级,选择合适的bmc和bios固件版本时,往往是粗略的凭借bmc固件版本发布说明中的推荐bios组合版本,对bmc固件和bios固件分别进行升级。当用户只想升级bmc固件时,如2023年的bmc固件和2020年的bios固件可能会存在功能不支持,部分功能异常的情况,导致bmc固件升级失败。
92.在集群服务器的场景下,针对多服务器的bmc固件升级,系统的bmc固件和bios固件一起升级存在资源浪费的情况,以及bmc固件和bios固件多个不同版本的相互搭配组合可能的固件升级失败,存在固件兼容性问题的情况,本发明提出一种针对服务器固件组合升级的方法,通过在集群内对固件刷写组合值进行记录,刷新bmc固件和bios固件的对应关系,以提高集群场景下批量bmc固件升级的效率。
93.本发明实施例提供的集群固件组合升级方法由计算机设备执行,相应地,集群固件组合升级系统运行于计算机设备中。
94.图1是本发明一个实施例的方法的示意性流程图。其中,图1执行主体可以为一种集群固件组合升级系统。根据不同的需求,该流程图中步骤的顺序可以改变,某些可以省略。
95.如图1所示,该方法包括:
96.步骤110,从生成的固件升级任务中解析目标节点地址和目标节点中需要升级固件的第一芯片的目标固件版本;
97.步骤120,基于目标节点地址从目标节点获取第二芯片的固件版本,所述第二芯片与第一芯片具有固件版本兼容性需求关系;
98.步骤130,判断第二芯片的固件版本与所述目标固件版本是否兼容:
99.步骤140,若是,则将目标节点的第一芯片的固件升级至目标固件版本;
100.步骤150,若否,则将目标节点的第二芯片的固件升级至兼容版本,所述兼容版本与所述目标固件版本兼容。
101.为了便于对本发明的理解,下面以本发明集群固件组合升级方法的原理,结合实施例中对集群固件进行组合升级的过程,对本发明提供的集群固件组合升级方法做进一步的描述。
102.具体的,下面以第一芯片为bmc芯片,第二芯片为bios芯片为例进行说明,所述集群固件组合升级方法包括:
103.s1、从生成的固件升级任务中解析目标节点地址和目标节点中需要升级固件的第一芯片的目标固件版本。
104.接收漏洞修复任务,解析漏洞类型;配置修复相应类型漏洞的第一芯片和第一芯片的目标固件版本;获取集群所有节点的第一芯片的现有固件版本;筛选出第一芯片的现有固件版本与所述目标固件版本不一致的节点作为目标节点;生成将目标节点的第一芯片固件版本升级至目标固件版本的固件升级任务。
105.例如,用户希望修复cve-2022-1111安全漏洞,登入bmc固件漏洞管理系统,配置修复集群内所有受cve-2022-1111号安全漏洞影响的所有服务器bmc固件。在系统收到该指令后对系统所管理的所有bmc设备的受cve-2022-1111号漏洞的服务器进行确认,输出需要进行bmc固件推送的地址序列。并按照队列向待修复安全漏洞的服务器序列推送cve-2022-1111号安全漏洞的bmc固件版本,系统固件库与版本规则库解析数据证明xx版本及以上的版本不收该cve漏洞影响,根据系统配置,升级至xx版本(可根据需要选择升级指定版本或最新版本)。
106.s2、基于目标节点地址从目标节点获取第二芯片的固件版本,所述第二芯片与第一芯片具有固件版本兼容性需求关系。
107.预先根据芯片之间固件版本的兼容性需求关系设置芯片组合;根据所述需求关系查找与所述第一芯片在同一芯片组合的第二芯片;基于目标节点地址向目标节点发送获取第二芯片固件版本的请求。
108.其中,预先根据芯片之间固件版本的兼容性需求关系设置芯片组合的方法包括:收集厂商组合发布固件版本的信息,如组合发布bmc和bios固件版本,则认为bmc和bios具有兼容性需求关系,将两者设置为芯片组合。后续在进行bmc固件更新时,首先使用ipmi协议获取到待升级服务器序列的bios固件信息。
109.s3、判断第二芯片的固件版本与所述目标固件版本是否兼容。
110.从兼容数据库获取与所述目标固件版本适配的第二对象的所有固件版本,保存为适配版本集合;判断适配版本集合是否包括所述第二芯片的固件版本:若是,则判定第二芯片的固件版本与所述目标固件版本兼容,并为目标节点第一芯片和第二芯片生成兼容标
记;若否,则判定第二芯片的固件版本与所述目标固件版本不兼容,并为目标节点第一芯片和第二芯片生成不兼容标记。
111.兼容数据库保存有芯片组合之间的固件版本兼容关系,如bmc的固件版本xxx.a,与bios的固件版本ccc.a、ccc.b兼容,bmc的固件版本xxx.b,与bios的固件版本ccc.f兼容。若需要将bmc的固件版本升级至xxx.a,则从兼容数据库中查询出bios的适配版本为ccc.a、ccc.b,此时bios的实际固件版本为ccc.f,则判定不兼容并生成不兼容标记,若此时bios的实际固件版本为ccc.a,则判定兼容并在bmc所属的目标节点生成兼容标记。
112.s4、若两者兼容,则将目标节点的第一芯片的固件升级至目标固件版本。
113.将目标固件版本的固件文件和自动安装脚本下发至目标节点;所述自动安装脚本在所述目标节点检测到所述兼容标记后,安装所述固件文件。
114.具体的,固件文件和自动安装脚本下发至目标节点,自动安装脚本在目标节点运行,自动安装脚本根据预先配置的标记路径读取第一芯片和第二芯片的兼容标记,若读取成功则继续执行安装固件文件。若读取失败则退出固件升级,并上报固件升级失败提示信息。
115.s5、若两者不兼容,则将目标节点的第二芯片的固件升级至兼容版本,所述兼容版本与所述目标固件版本兼容。
116.从兼容数据库获取与所述目标固件版本适配的第二对象的所有固件版本,保存为适配版本集合;从所述适配版本集合中筛选出最新的固件版本作为目标版本;将所述目标版本的固件文件和自动安装脚本下发至目标节点,以将目标节点的第二对象的固件版本升级至所述目标版本。
117.具体的,若推断目标服务器的bios固件版本与xx版本不兼容,则触发bios固件更新推送功能,进行服务器组合固件刷新,先进行bios固件更新,待bios更新完成后,再进行bmc固件推送。若无法推断服务器是否能升级成功,则触发升级跟踪机制进行bmc固件升级,并将升级成功失败的结论更新。
118.s6、实际运行中的兼容性监控,并将监控结果反馈至兼容性数据库,如图2所示。
119.在将目标节点的第一芯片的固件升级至目标固件版本之后,收集目标节点的系统日志,并从所述系统日志中筛选出记录所述第一芯片工作状态的目标日志;利用关键词查询技术从所述目标日志查询错误日志,所述错误日志包括第一芯片失活记录、多次重启记录、启动失败记录及运行告警记录;若所述目标日志中存在错误日志,则判定第一芯片的当前固件版本与第二芯片的当前固件版本不兼容,将第二芯片的当前固件版本升级为与第一芯片的当前固件版本兼容的版本;若所述目标日志中不存在错误日志,则将第一芯片的当前固件版本与第二芯片的当前固件版本标记为兼容,并将标记内容保存至兼容数据库。
120.具体的,提供一种标记机制,当系统主动进行局域网内的固件推送刷新某服务器bmc的固件后,在一定时间内检测该服务器的异常情况,如果该bmc存在失活、不断重启、无法启动等问题或者是通过syslog监听到服务器存在告警信息,则在系统内创建服务器升级存在异常行为的bmc与bios组合值,并将该值标记为不兼容标记,并对目标服务器推送目标服务器高版本的bios固件,待bios固件升级成功后,再推送目标版本的bmc固件。反之,若系统推送bmc固件刷写成功,则对该bmc和系统原有bios版本信息设置兼容标记。
121.固件升级前进行适配性检查。在集群内的其他服务器触发固件更新时,预先检查
该bmc与bios组合值的标记,若为兼容标记直接进行刷新,若为不兼容标记则查找目标bmc固件版本有兼容标记的bios固件进行升级,然后对该服务器的bmc进行固件升级。若bmc固件与bios固件组合没有标记,则进行bmc升级,触发标记机制,对待升级的目标bmc固件和bios固件组合值进行记录。如果某目标bmc固件版本在bmc固件与bios固件组合搭配表中存在bmc一对多bios的关系,则可使用不同策略选择推送升级至高版本或者低版本的bios固件。
122.在集群数量足够、升级次数越来越多的情况下,形成bmc与bios组合升级库,依据该组合库,可覆盖固件推送的bmc与bios的组合升级机制。即选择任意目标版本的bmc固件,对目标服务器进行bmc固件刷写,若存在bmc固件与bios固件冲突的问题,则提供bmc固件与bios固件组合刷写的方案。
123.在一些实施例中,所述集群固件组合升级系统300可以包括多个由计算机程序段所组成的功能模块。所述集群固件组合升级系统300中的各个程序段的计算机程序可以存储于计算机设备的存储器中,并由至少一个处理器所执行,以执行(详见图1描述)集群固件组合升级的功能。
124.本实施例中,所述集群固件组合升级系统300根据其所执行的功能,可以被划分为多个功能模块,如图3所示。所述功能模块可以包括:任务解析模块310、数据采集模块320、兼容判断模块330、第一升级模块340和第二升级模块350。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。
125.任务解析模块310,用于从生成的固件升级任务中解析目标节点地址和目标节点中需要升级固件的第一芯片的目标固件版本;
126.数据采集模块320,用于基于目标节点地址从目标节点获取第二芯片的固件版本,所述第二芯片与第一芯片具有固件版本兼容性需求关系;
127.兼容判断模块330,用于判断第二芯片的固件版本与所述目标固件版本是否兼容;
128.第一升级模块340,用于若第二芯片的固件版本与所述目标固件版本兼容,则将目标节点的第一芯片的固件升级至目标固件版本;
129.第二升级模块350,用于若第二芯片的固件版本与所述目标固件版本不兼容,则将目标节点的第二芯片的固件升级至兼容版本,所述兼容版本与所述目标固件版本兼容。
130.可选地,作为本发明一个实施例,所述系统还包括:
131.漏洞解析模块,用于接收漏洞修复任务,解析漏洞类型;
132.目标配置模块,用于配置修复相应类型漏洞的第一芯片和第一芯片的目标固件版本;
133.版本获取模块,用于获取集群所有节点的第一芯片的现有固件版本;
134.目标筛选模块,用于筛选出第一芯片的现有固件版本与所述目标固件版本不一致的节点作为目标节点;
135.任务生成模块,用于生成将目标节点的第一芯片固件版本升级至目标固件版本的固件升级任务。
136.可选地,作为本发明一个实施例,数据采集模块包括:
137.组合设置单元,用于预先根据芯片之间固件版本的兼容性需求关系设置芯片组
合;
138.根据所述需求关系查找与所述第一芯片在同一芯片组合的第二芯片;
139.基于目标节点地址向目标节点发送获取第二芯片固件版本的请求。
140.可选地,作为本发明一个实施例,兼容判断模块包括:
141.兼容查询单元,用于从兼容数据库获取与所述目标固件版本适配的第二对象的所有固件版本,保存为适配版本集合;
142.版本判断单元,用于判断适配版本集合是否包括所述第二芯片的固件版本;
143.第一标记单元,用于若适配版本集合包括所述第二芯片的固件版本,则判定第二芯片的固件版本与所述目标固件版本兼容,并为目标节点第一芯片和第二芯片生成兼容标记;
144.第二标记单元,用于若适配版本集合不包括所述第二芯片的固件版本,则判定第二芯片的固件版本与所述目标固件版本不兼容,并为目标节点第一芯片和第二芯片生成不兼容标记。
145.可选地,作为本发明一个实施例,第一升级模块包括:
146.文件下发单元,用于将目标固件版本的固件文件和自动安装脚本下发至目标节点;
147.文件安装单元,用于所述自动安装脚本在所述目标节点检测到所述兼容标记后,安装所述固件文件。
148.可选地,作为本发明一个实施例,第二升级模块包括:
149.从兼容数据库获取与所述目标固件版本适配的第二对象的所有固件版本,保存为适配版本集合;
150.从所述适配版本集合中筛选出最新的固件版本作为目标版本;
151.将所述目标版本的固件文件和自动安装脚本下发至目标节点,以将目标节点的第二对象的固件版本升级至所述目标版本。
152.可选地,作为本发明一个实施例,系统还包括:
153.日志收集模块,用于收集目标节点的系统日志,并从所述系统日志中筛选出记录所述第一芯片工作状态的目标日志;
154.错误查询模块,用于利用关键词查询技术从所述目标日志查询错误日志,所述错误日志包括第一芯片失活记录、多次重启记录、启动失败记录及运行告警记录;
155.错误处理模块,用于若所述目标日志中存在错误日志,则判定第一芯片的当前固件版本与第二芯片的当前固件版本不兼容,将第二芯片的当前固件版本升级为与第一芯片的当前固件版本兼容的版本;
156.兼容记录模块,用于若所述目标日志中不存在错误日志,则将第一芯片的当前固件版本与第二芯片的当前固件版本标记为兼容,并将标记内容保存至兼容数据库。
157.图4为本发明实施例提供的一种终端400的结构示意图,该终端400可以用于执行本发明实施例提供的集群固件组合升级方法。
158.其中,该终端400可以包括:处理器410、存储器420及通信模块430。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更
少的部件,或者组合某些部件,或者不同的部件布置。
159.其中,该存储器420可以用于存储处理器410的执行指令,存储器420可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。当存储器420中的执行指令由处理器410执行时,使得终端400能够执行以下上述方法实施例中的部分或全部步骤。
160.处理器410为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器420内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(integrated circuit,简称ic)组成,例如可以由单颗封装的ic所组成,也可以由连接多颗相同功能或不同功能的封装ic而组成。举例来说,处理器410可以仅包括中央处理器(central processing unit,简称cpu)。在本发明实施方式中,cpu可以是单运算核心,也可以包括多运算核心。
161.通信模块430,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。
162.本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:rom)或随机存储记忆体(英文:random access memory,简称:ram)等。
163.因此,本发明通过对需要进行固件升级的芯片进行固件版本的兼容判断,即针对具有固件版本兼容性需求关系的芯片,需要对目标芯片的目标固件版本与关联芯片的固件版本进行兼容性预判,然后根据判断结果采用对应的升级策略进行固件升级。本发明考虑了芯片之间的固件版本兼容性,在集群中进行批量固件升级时,能够保证升级过程不被兼容性问题打断,升级后所有节点正常运行,本实施例所能达到的技术效果可以参见上文中的描述,此处不再赘述。
164.本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。
165.本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
166.在本发明所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的
相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
167.所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
168.另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
169.尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
技术特征:
1.一种集群固件组合升级方法,其特征在于,包括:从生成的固件升级任务中解析目标节点地址和目标节点中需要升级固件的第一芯片的目标固件版本;基于目标节点地址从目标节点获取第二芯片的固件版本,所述第二芯片与第一芯片具有固件版本兼容性需求关系;判断第二芯片的固件版本与所述目标固件版本是否兼容:若是,则将目标节点的第一芯片的固件升级至目标固件版本;若否,则将目标节点的第二芯片的固件升级至兼容版本,所述兼容版本与所述目标固件版本兼容。2.根据权利要求1所述的方法,其特征在于,在从生成的固件升级任务中解析目标节点地址和目标节点中需要升级固件的第一芯片的目标固件版本之前,所述方法还包括:接收漏洞修复任务,解析漏洞类型;配置修复相应类型漏洞的第一芯片和第一芯片的目标固件版本;获取集群所有节点的第一芯片的现有固件版本;筛选出第一芯片的现有固件版本与所述目标固件版本不一致的节点作为目标节点;生成将目标节点的第一芯片固件版本升级至目标固件版本的固件升级任务。3.根据权利要求1所述的方法,其特征在于,基于目标节点地址从目标节点获取第二芯片的固件版本,所述第二芯片与第一芯片具有固件版本兼容性需求关系,包括:预先根据芯片之间固件版本的兼容性需求关系设置芯片组合;根据所述需求关系查找与所述第一芯片在同一芯片组合的第二芯片;基于目标节点地址向目标节点发送获取第二芯片固件版本的请求。4.根据权利要求1所述的方法,其特征在于,判断第二芯片的固件版本与所述目标固件版本是否兼容,包括:从兼容数据库获取与所述目标固件版本适配的第二对象的所有固件版本,保存为适配版本集合;判断适配版本集合是否包括所述第二芯片的固件版本:若是,则判定第二芯片的固件版本与所述目标固件版本兼容,并为目标节点第一芯片和第二芯片生成兼容标记;若否,则判定第二芯片的固件版本与所述目标固件版本不兼容,并为目标节点第一芯片和第二芯片生成不兼容标记。5.根据权利要求4所述的方法,其特征在于,将目标节点的第一芯片的固件升级至目标固件版本,包括:将目标固件版本的固件文件和自动安装脚本下发至目标节点;所述自动安装脚本在所述目标节点检测到所述兼容标记后,安装所述固件文件。6.根据权利要求1所述的方法,其特征在于,将目标节点的第二芯片的固件升级至兼容版本,包括:从兼容数据库获取与所述目标固件版本适配的第二对象的所有固件版本,保存为适配版本集合;从所述适配版本集合中筛选出最新的固件版本作为目标版本;
将所述目标版本的固件文件和自动安装脚本下发至目标节点,以将目标节点的第二对象的固件版本升级至所述目标版本。7.根据权利要求1或4所述的方法,其特征在于,在将目标节点的第一芯片的固件升级至目标固件版本之后,所述方法还包括:收集目标节点的系统日志,并从所述系统日志中筛选出记录所述第一芯片工作状态的目标日志;利用关键词查询技术从所述目标日志查询错误日志,所述错误日志包括第一芯片失活记录、多次重启记录、启动失败记录及运行告警记录;若所述目标日志中存在错误日志,则判定第一芯片的当前固件版本与第二芯片的当前固件版本不兼容,将第二芯片的当前固件版本升级为与第一芯片的当前固件版本兼容的版本;若所述目标日志中不存在错误日志,则将第一芯片的当前固件版本与第二芯片的当前固件版本标记为兼容,并将标记内容保存至兼容数据库。8.一种集群固件组合升级系统,其特征在于,包括:任务解析模块,用于从生成的固件升级任务中解析目标节点地址和目标节点中需要升级固件的第一芯片的目标固件版本;数据采集模块,用于基于目标节点地址从目标节点获取第二芯片的固件版本,所述第二芯片与第一芯片具有固件版本兼容性需求关系;兼容判断模块,用于判断第二芯片的固件版本与所述目标固件版本是否兼容;第一升级模块,用于若第二芯片的固件版本与所述目标固件版本兼容,则将目标节点的第一芯片的固件升级至目标固件版本;第二升级模块,用于若第二芯片的固件版本与所述目标固件版本不兼容,则将目标节点的第二芯片的固件升级至兼容版本,所述兼容版本与所述目标固件版本兼容。9.一种终端,其特征在于,包括:存储器,用于存储集群固件组合升级程序;处理器,用于执行所述集群固件组合升级程序时实现如权利要求1-7任一项所述集群固件组合升级方法的步骤。10.一种存储有计算机程序的计算机可读存储介质,其特征在于,所述可读存储介质上存储有集群固件组合升级程序,所述集群固件组合升级程序被处理器执行时实现如权利要求1-7任一项所述集群固件组合升级方法的步骤。
技术总结
本发明涉及服务器技术领域,具体提供一种集群固件组合升级方法、系统、终端及存储介质,包括:从生成的固件升级任务中解析目标节点地址和目标节点中需要升级固件的第一芯片的目标固件版本;基于目标节点地址从目标节点获取第二芯片的固件版本,所述第二芯片与第一芯片具有固件版本兼容性需求关系;判断第二芯片的固件版本与所述目标固件版本是否兼容:若是,则将目标节点的第一芯片的固件升级至目标固件版本;若否,则将目标节点的第二芯片的固件升级至兼容版本,所述兼容版本与所述目标固件版本兼容。本发明考虑了芯片之间的固件版本兼容性,在集群中进行批量固件升级时,能够保证升级过程不被兼容性问题打断,升级后所有节点正常运行。正常运行。正常运行。
技术研发人员:马玉斌
受保护的技术使用者:苏州浪潮智能科技有限公司
技术研发日:2023.07.07
技术公布日:2023/10/15
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
上一篇:云台控制方法和装置与流程 下一篇:一种小尺寸高频压电晶片的抛光工艺的制作方法
