双BMCFlash优化升级方法、装置、设备、介质与流程

文档序号:31774669发布日期:2022-10-12 08:04阅读:363来源:国知局
双BMCFlash优化升级方法、装置、设备、介质与流程
双bmc flash优化升级方法、装置、设备、介质
技术领域
1.本发明涉及bmc固件升级技术领域,具体涉及一种双bmc flash优化升级方法、装置、设备、介质。


背景技术:

2.bmc flash升级方式有离线和在线升级两种,离线升级通过专用flash烧录器将bmc flash芯片离线烧录fw之后,再焊接到pcb板上,此方式仅适用于工厂批量生产。在线升级方式指在bmc上电情况下,接收到用户升级命令后,通过软件实现bmc fw升级,此方法适用于bmc调试或客户应用场景。随着用户对安全性能要求的提高,服务器逐渐由单bmc flash向双bmc flash发展。在单bmc flash场景下,如果在线升级bmc失败,bmc将无法再次启动,必须通过离线刷新方式重新刷新flash,这种方式对硬件环境要求高,操作不方便,维修成本高。双bmc flash一般分主bmc flash和备份bmc flash,在线升级时,一般先升级主bmc flash,升级完成并启动成功后再同步到备份bmc,如果主bmc flash升级不成功则从备份bmc flash启动并将备份bmc flash同步到主bmc flash。双bmc flash的场景为升级失败提供了自补救方案,提高了系统的安全性。
3.现有方案:cn110990045a提出了一种双bmc+flash升级方法和设备,此方案采取先升级主bmc flash再同步到备份bmc flash的升级方法,在升级过程中需先停止主bmc正在运行的指定功能,再次启动成功后,判断是否升级成功,如果升级成功则同步备份bmc flash。
4.存在的问题是:1.升级过程中需要停止bmc正在运行的指定功能,影响bmc的正常工作。2.成功启动后才能判断是否升级成功,如果升级成功则同步备份bmc flash,对于升级失败无法成功启动的情况未做说明。


技术实现要素:

5.采取先升级主bmc flash再同步到备份bmc flash的升级方法,在升级过程中需先停止主bmc正在运行的指定功能,再次启动成功后,判断是否升级成功,如果升级成功则同步备份bmc flash,升级过程中需要停止bmc正在运行的指定功能,影响bmc的正常工作,成功启动后才能判断是否升级成功,如果升级成功则同步备份bmc flash,对于升级失败无法成功启动的情况未做说明,本发明提供双bmc flash优化升级方法、装置、设备、介质。
6.第一方面,本发明技术方案提供一种双bmc flash优化升级方法,双bmc flash包括作为主bmc flash的第一bmc flash和作为备bmc flash的第二bmc flash;所述方法包括如下步骤:
7.接收镜像文件,并对接收到的镜像文件进行校验;
8.校验成功后,根据接收到的镜像文件升级第二bmc flash并设置升级标志位;从第二bmc flash启动bmc;
9.启动成功后,根据升级标志位的值将第二bmc flash数据同步到第一bmc flash,
将升级标志位清零;
10.启动失败后,从第一bmc flash启动bmc;
11.将第一bmc flash数据同步到第二bmc flash,将升级标志位清零。
12.进一步的,校验成功后,根据接收到的镜像文件升级第二bmc flash并设置升级标志位的步骤包括:
13.以扇区为单位将第二bmc flash数据读出;和接收到的镜像文件的待写入的数据比较;
14.若相同,则直接跳过这个扇区;判断所有扇区是否读完,若否,继续下一个扇区,执行步骤:以扇区为单位将第二bmc flash数据读出;和接收到的镜像文件的待写入的数据比较;若是,结束;
15.若不同,则擦除此扇区的内容并写入待写入的数据,判断所有扇区是否读完,若否,继续下一个扇区,执行步骤:以扇区为单位将第二bmc flash数据读出;和接收到的镜像文件的待写入的数据比较;若是,结束。
16.进一步的,从第二bmc flash启动bmc的步骤包括:
17.bmc上电自动加载固件并开启一个设定第一时间的定时器;
18.若在定时器的计时范围内bmc进入u-boot,在u-boot里重置此定时器,定时时间为第二时间;
19.若在定时器的计时范围内bmc走过操作系统内核分区进入用户空间,在用户空间里通过关闭定时器,表明bmc正常启动;
20.若在任意环节定时器超时,表明bmc启动失败,bmc会自动切换到从第一bmc flash启动,并置位寄存器进行标记。
21.进一步的,启动成功后,根据升级标志位的值将第二bmc flash数据同步到第一bmc flash,将升级标志位清零的步骤包括:
22.启动成功后,读取升级标志位;
23.判断升级标志位是否为1;
24.若是,将第二bmc flash数据同步到第一bmc flash,将升级标志位清零;
25.若否,结束。
26.进一步的,将第二bmc flash数据同步到第一bmc flash的步骤中是将第二bmc flash中初始化分区、环境变量分区和可读文件系统分区的数据同步到第一bmc flash的相应的分区。
27.进一步的,该方法还包括:第一bmc flash和第二bmc flash可写分区的数据同步方法包括:
28.将第一bmc flash/第二bmc flash可写分区数据擦除;
29.开启配置同步,确保第一bmc flash和第二bmc flash配置一致;
30.将可写分区挂载到一个目录并设置实时监听配置文件;
31.监听到写入完成信号后将配置文件拷贝到第二bmc flash/第一bmc flash可写分区对应的目录下。
32.进一步的,接收镜像文件,并对接收到的镜像文件进行校验的步骤之前包括:
33.通过镜像升级按钮触发bmc固件升级,通过镜像上传按钮上传镜像文件;或,从
uart或os下发送bmc固件升级命令和镜像文件。
34.第二方面,本发明技术方案还提供一种双bmc flash优化升级装置,包括用户接口模块、bmc启动模块、擦写模块、同步模块、作为主bmc flash的第一bmc flash和作为备bmc flash的第二bmc flash;
35.通过用户接口模块触发bmc固件升级并上传和校验镜像文件;
36.bmc启动模块,用于启动bmc、监控启动进程、处理启动失败问题;具体用于升级完成后从第二bmc flash启动bmc;启动失败后,从第一bmc flash启动bmc;
37.擦写模块,根据接收到的镜像文件进行第一bmc flash数据/第二bmc flash的读写功能完成bmc固件的升级;
38.同步模块,用于同步第一bmc flash数据和第二bmc flash的数据。
39.进一步的,用户接口模块包括bmc web图形接口和ipmitool命令接口;
40.bmc web图形接口通过镜像升级按钮触发bmc fw升级,通过镜像上传按钮上传镜像,并通过状态栏观察bmc固件升级进程;
41.ipmitool命令接口,从uart或os下发送ipmitool升级命令和镜像文件进行bmc固件升级。
42.进一步的,同步模块,具体用于将第一bmc flash/第二bmc flash可写分区数据擦除;开启配置同步,确保第一bmc flash和第二bmc flash配置一致;将可写分区挂载到一个目录并设置实时监听配置文件;监听到写入完成信号后将配置文件拷贝到第二bmc flash/第一bmc flash可写分区对应的目录下。
43.第三方面,本发明技术方案还提供一种电子设备,所述电子设备包括:
44.至少一个处理器;以及,
45.与所述至少一个处理器通信连接的存储器;其中,
46.存储器存储有可被至少一个处理器执行的计算机程序指令,所述计算机程序指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第一方面所述的双bmc flash优化升级方法。
47.第四方面,本发明技术方案还提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如第一方面所述的双bmc flash优化升级方法。
48.从以上技术方案可以看出,本发明具有以下优点:解决现有双bmc flash升级方案中升级过程需要停止bmc正在运行的指定功能,影响bmc的正常工作的问题,并完善了升级失败后的处理方案。
49.此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
50.由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。
附图说明
51.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
52.图1是本发明一个实施例的方法的示意性流程图。
53.图2是本发明另一个实施例的方法的示意性流程图。
54.图3是本发明一个实施例的装置的示意性框图。
具体实施方式
55.采取先升级主bmc flash再同步到备份bmc flash的升级方法,在升级过程中需先停止主bmc正在运行的指定功能,再次启动成功后,判断是否升级成功,如果升级成功则同步备份bmc flash,升级过程中需要停止bmc正在运行的指定功能,影响bmc的正常工作,成功启动后才能判断是否升级成功,如果升级成功则同步备份bmc flash,对于升级失败无法成功启动的情况未做说明。为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
56.如图1所示,本发明实施例提供一种双bmc flash优化升级方法,双bmc flash包括作为主bmc flash的第一bmc flash和作为备bmc flash的第二bmc flash;所述方法包括如下步骤:
57.步骤1:接收镜像文件,并对接收到的镜像文件进行校验;
58.步骤2:校验成功后,根据接收到的镜像文件升级第二bmc flash并设置升级标志位;
59.步骤3:从第二bmc flash启动bmc;
60.步骤4:启动成功后,根据升级标志位的值将第二bmc flash数据同步到第一bmc flash,将升级标志位清零;
61.步骤5:启动失败后,从第一bmc flash启动bmc;
62.步骤6:将第一bmc flash数据同步到第二bmc flash,将升级标志位清零。
63.在有些实施例中,校验成功后,根据接收到的镜像文件升级第二bmc flash并设置升级标志位的步骤包括:
64.步骤21:以扇区为单位将第二bmc flash数据读出;和接收到的镜像文件的待写入的数据比较;
65.若相同,执行步骤22;
66.若不同,执行步骤23;
67.步骤22:则直接跳过这个扇区;执行步骤24;
68.步骤23:则擦除此扇区的内容并写入待写入的数据;执行步骤24;
69.步骤24:判断所有扇区是否读完,若否,继续下一个扇区,执行步骤21;若是,结束。
70.在有些实施例中,从第二bmc flash启动bmc的步骤包括:
71.bmc上电自动加载固件并开启一个设定第一时间的定时器;
72.若在定时器的计时范围内bmc进入u-boot,在u-boot里重置此定时器,定时时间为第二时间;
73.若在定时器的计时范围内bmc走过操作系统内核分区进入用户空间,在用户空间
里通过关闭定时器,表明bmc正常启动;
74.若在任意环节定时器超时,表明bmc启动失败,bmc会自动切换到从第一bmc flash启动,并置位寄存器进行标记。
75.在有些实施例中,如图2所示,启动成功后,根据升级标志位的值将第二bmc flash数据同步到第一bmc flash,将升级标志位清零的步骤包括:
76.步骤41:启动成功后,读取升级标志位;
77.步骤42:判断升级标志位是否为1;
78.若是,执行步骤43;
79.若否,结束;
80.步骤43:将第二bmc flash数据同步到第一bmc flash,将升级标志位清零;
81.需要说明的是,将第二bmc flash数据同步到第一bmc flash的步骤中是将第二bmc flash中初始化分区、环境变量分区和可读文件系统分区的数据同步到第一bmc flash的相应的分区。
82.在有些实施例中,该方法还包括:第一bmc flash和第二bmc flash可写分区的数据同步方法包括:
83.将第一bmc flash/第二bmc flash可写分区数据擦除;
84.开启配置同步,确保第一bmc flash和第二bmc flash配置一致;
85.将可写分区挂载到一个目录并设置实时监听配置文件;
86.监听到写入完成信号后将配置文件拷贝到第二bmc flash/第一bmc flash可写分区对应的目录下。
87.需要说明的是,接收镜像文件,并对接收到的镜像文件进行校验的步骤之前包括:
88.通过镜像升级按钮触发bmc固件升级,通过镜像上传按钮上传镜像文件;或,从uart或os下发送bmc固件升级命令和镜像文件。
89.如图3所示,本发明实施例还提供一种双bmc flash优化升级装置,包括用户接口模块、bmc启动模块、擦写模块、同步模块、作为主bmc flash的第一bmc flash和作为备bmc flash的第二bmc flash;
90.通过用户接口模块触发bmc固件升级并上传和校验镜像文件;
91.bmc启动模块,用于启动bmc、监控启动进程、处理启动失败问题;具体用于升级完成后从第二bmc flash启动bmc;启动失败后,从第一bmc flash启动bmc;
92.擦写模块,根据接收到的镜像文件进行第一bmc flash数据/第二bmc flash的读写功能完成bmc固件的升级;
93.同步模块,用于同步第一bmc flash数据和第二bmc flash的数据。
94.升级流程如下:
95.s1:通过用户接口模块触发bmc fw升级任务并上传、校验镜像文件,校验成功则进行步骤s2,不成功则记录日志后结束;
96.s2:使用擦写模块升级第二bmc flash,并在u-boot-env中设置环境变量rollback为1标志需要升级;
97.s3:通过bmc启动模块从第二bmc flash启动bmc,如果启动成功,则进行步骤s4,不成功则进行步骤s5;
98.s4:如果启动成功,读取环境变量alt-u-boot-env标志位rollback,如果rollback等于1,通过同步模块把第二bmc flash数据同步到第一bmc flash,将rollback清零,升级成功;如果rollback不等于1,结束;
99.s5:如果启动不成功,通过bmc启动模块自动改从第一bmc flash启动bmc,标志升级失败,并通过同步模块把第一bmc flash数据同步到第二bmc flash,将rollback清零。
100.在有些实施例中,用户接口模块包括bmc web图形接口和ipmitool命令接口;
101.bmc web图形接口通过镜像升级按钮触发bmc fw升级,通过镜像上传按钮上传镜像,并通过状态栏观察bmc固件升级进程;
102.ipmitool命令接口,从uart或os下发送ipmitool升级命令和镜像文件进行bmc固件升级。
103.需要说明的是,用户接口模块包括bmc web图形接口和ipmitool命令接口。bmc web图形接口通过镜像升级按钮触发bmc fw升级,通过镜像上传按钮上传镜像,并通过状态栏观察bmc fw刷新进程。ipmitool命令接口可从uart或os下发送ipmitool升级命令和镜像文件进行fw升级。
104.在有些实施例中,同步模块,具体用于将第一bmc flash/第二bmc flash可写分区数据擦除;开启配置同步,确保第一bmc flash和第二bmc flash配置一致;将可写分区挂载到一个目录并设置实时监听配置文件;监听到写入完成信号后将配置文件拷贝到第二bmc flash/第一bmc flash可写分区对应的目录下。
105.bmc启动模块用于启动bmc、监控启动进程、处理启动失败问题。bmc上电会自动加载fw并默认开启一个定时时间为22s的硬件定时器,bmc进入u-boot所需的时间小于22s,在u-boot里重置此定时器,重新设置足够的定时时间确保bmc能顺利走过kernel(操作系统内核)分区进入user-space(用户空间),最后在user-space里通过程序关闭定时器,表明bmc正常启动。如果任意环节定时器超时bmc会自动切换到另一flash启动bmc,并置位寄存器进行标记。
106.擦写模块完成bmc flash的读写功能。擦写模块先以扇区sector为单位将flash数据读出,和待写入的数据比较,如果相同,则直接跳过这个sector,如果不同,则擦除此sector的内容并写入,继续读出下一个sector。
107.同步模块用于同步两个bmc flash的数据。配置主bmc flash的分区为u-boot、u-boot-env(环境变量)、kernel、rofs(文件系统)、rwfs(读写系统),备份flash的分区为alt-u-boot、alt-u-boot-env、alt-kernel、alt-rofs、alt-rwfs。u-boot、u-boot-env、kernel、rofs四个分区可以直接同步,rwfs分区为可写分区,存放bmc启动后生成及修改的文件,不能直接同步,需先将alt-rwfs分区擦除,然后开启配置同步,确保两个flash的主要配置一致。配置同步使用mount命令把alt-rwfs分区挂载到一个目录,通过程序监听配置文件,监听到写入完成信号,就把配置文件拷贝到alt-rwfs分区对应的目录下。
108.本发明实施例还提供一种电子设备,所述电子设备包括:处理器、通信接口、存储器和总线,其中,处理器,通信接口,存储器通过总线完成相互间的通信。总线可以用于电子设备与传感器之间的信息传输。处理器可以调用存储器中的逻辑指令,以执行如下方法:步骤1:接收镜像文件,并对接收到的镜像文件进行校验;步骤2:校验成功后,根据接收到的镜像文件升级第二bmc flash并设置升级步骤3:标志位;从第二bmc flash启动bmc;步骤4:启
动成功后,根据升级标志位的值将第二bmc flash数据同步到第一bmc flash,将升级标志位清零;步骤5:启动失败后,从第一bmc flash启动bmc;步骤6:将第一bmc flash数据同步到第二bmc flash,将升级标志位清零。
109.在有些实施例中,处理器可以调用存储器中的逻辑指令,以执行如下方法:步骤21:以扇区为单位将第二bmc flash数据读出;和接收到的镜像文件的待写入的数据比较;若相同,执行步骤22;若不同,执行步骤23;步骤22:则直接跳过这个扇区;执行步骤24;步骤23:则擦除此扇区的内容并写入待写入的数据;执行步骤24;步骤24:判断所有扇区是否读完,若否,继续下一个扇区,执行步骤21;若是,结束。
110.在有些实施例中,处理器可以调用存储器中的逻辑指令,以执行如下方法:将第一bmc flash/第二bmc flash可写分区数据擦除;开启配置同步,确保第一bmc flash和第二bmc flash配置一致;将可写分区挂载到一个目录并设置实时监听配置文件;监听到写入完成信号后将配置文件拷贝到第二bmc flash/第一bmc flash可写分区对应的目录下。
111.此外,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
112.本发明实施例提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令使计算机执行上述方法实施例所提供的方法,例如包括:步骤1:接收镜像文件,并对接收到的镜像文件进行校验;步骤2:校验成功后,根据接收到的镜像文件升级第二bmc flash并设置升级步骤3:标志位;从第二bmc flash启动bmc;步骤4:启动成功后,根据升级标志位的值将第二bmc flash数据同步到第一bmc flash,将升级标志位清零;步骤5:启动失败后,从第一bmc flash启动bmc;步骤6:将第一bmc flash数据同步到第二bmc flash,将升级标志位清零。
113.尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1