固件双镜像自恢复方法、装置、电子设备及存储介质与流程

文档序号:32342935发布日期:2022-11-26 10:24阅读:73来源:国知局
固件双镜像自恢复方法、装置、电子设备及存储介质与流程

1.本技术涉及计算机固件技术领域,特别是涉及一种固件双镜像自恢复方法、装置、电子设备及存储介质。


背景技术:

2.随着互联网和ai人工智能等应用的快速发展,对服务器的需求呈现爆发式的增长,并且数据中心服务器数量也呈现指数级的增长态势,因此,如何提升服务器核心固件运行可靠性成为各个厂商努力的方向。而作为服务器核心部件的bmc(基板管理控制器)负责服务器的启动管理、运行监控和故障处理等任务,用以实现服务器远程批量维护,一旦bmc固件运行出现异常问题,服务器将失去远程运维功能。
3.目前市面上服务器产品bmc固件常用的方案主要有2种,分别是双镜像bmc和单bmc方案。
4.其中单bmc方案在bmc固件本身失效的情况下将无法启动bmc,补救方式只能通过人工进场维护,通过带入工具进行flash rom刷新,或者通过烧录器将bmc rom芯片取下来进行rom更新,然后在安装回去。这种方式的维护效率低下,维护成本高。
5.而双镜像bmc在发生故障的情况下,还有一个镜像rom可以启动,但这种方式目前维护的手段也是通过告警,维护人员手动干预触发flash rom刷新,虽然可靠性和可维护性相比单镜像的情况下增强了很多,但在人工长时间未发生干预的情况下,一旦备份镜像失效,则会造成单镜像场景的无法远端恢复的情况。


技术实现要素:

6.基于此,有必要针对上述技术问题,提供一种能够自主运行,且稳定性和可维护性更高的固件双镜像自恢复方法、装置、计算机设备及可读存储介质。
7.第一方面,本技术提供了一种固件双镜像自恢复方法,用于bmc中,所述方法包括:
8.上电后发出定时器启动指令,并从第一存储器中加载第一镜像文件,且向定时器分阶段发送清零指令,以防止所述定时器超时触发bmc复位;
9.在所述第一镜像文件的加载时长超过第一时间阈值时,停止向定时器发送清零指令,在定时器的计数时长达到第二时间阈值时,接收所述定时器的复位信号并重启;
10.重启上电后从第二存储器中加载第二镜像文件,并向定时器分阶段发送清零指令;
11.在第二镜像文件加载成功后,将第二镜像文件同步至所述第一存储器中。
12.在其中一个实施例中,所述方法还包括:
13.监测是否有更新数据输入,并在发生更新数据输入时根据所述更新数据进行数据更新,且将所述更新数据同步至所述第一存储器与第二存储器中。
14.在其中一个实施例中,所述方法还包括:
15.判断所述第一镜像文件是否加载成功;若否,则
16.判断所述第一镜像文件的加载时长是否超过第一时间阈值。
17.在其中一个实施例中,若所述第一镜像文件加载成功,则向所述定时器发送关闭指令。
18.在其中一个实施例中,所述将第二镜像文件同步至所述第一存储器中,包括:
19.对比第一存储器中的文件是否与所述第二镜像文件一致,若否,则将所述第二镜像文件复制到所述第一存储器中;
20.校验第一存储器中文件是否与第二存储器中的第二镜像文件一致,若否,则继续执行同步指令。
21.在其中一个实施例中,所述校验第一存储器中文件是否与第二存储器中的第二镜像文件一致,之后还包括:
22.判断所述第一存储器中的数据是否完成恢复,若是,则调整所述第一存储器进入主镜像状态,所述第二存储器进入备份镜像状态。
23.第二方面,本技术提供了一种固件双镜像自恢复装置,应用于bmc,所述装置包括:
24.第一镜像模块,用于上电后发出定时器启动指令,并从第一存储器中加载第一镜像文件,且向定时器分阶段发送清零指令,以防止所述定时器超时触发bmc复位;
25.定时控制模块,在所述第一镜像文件的加载时长超过第一时间阈值时,停止向定时器发送清零指令,在定时器的计数时长达到第二时间阈值时,接收所述定时器的复位信号并重启;
26.第二镜像模块,用于重启上电后从第二存储器中加载第二镜像文件,并向定时器分阶段发送清零指令;与
27.同步恢复模块,在第二镜像文件加载成功后,将第二镜像文件同步至所述第一存储器中。
28.第三方面,本技术提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
29.上电后发出定时器启动指令,并从第一存储器中加载第一镜像文件,且向定时器分阶段发送清零指令,以防止所述定时器超时触发bmc复位;
30.在所述第一镜像文件的加载时长超过第一时间阈值时,停止向定时器发送清零指令,在定时器的计数时长达到第二时间阈值时,接收所述定时器的复位信号并重启;
31.重启上电后从第二存储器中加载第二镜像文件,并向定时器分阶段发送清零指令;
32.在第二镜像文件加载成功后,将第二镜像文件同步至所述第一存储器中。
33.第四方面,本技术提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
34.上电后发出定时器启动指令,并从第一存储器中加载第一镜像文件,且向定时器分阶段发送清零指令,以防止所述定时器超时触发bmc复位;
35.在所述第一镜像文件的加载时长超过第一时间阈值时,停止向定时器发送清零指令,在定时器的计数时长达到第二时间阈值时,接收所述定时器的复位信号并重启;
36.重启上电后从第二存储器中加载第二镜像文件,并向定时器分阶段发送清零指令;
37.在第二镜像文件加载成功后,将第二镜像文件同步至所述第一存储器中。
38.第五方面,本技术提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现以下步骤:
39.上电后发出定时器启动指令,并从第一存储器中加载第一镜像文件,且向定时器分阶段发送清零指令,以防止所述定时器超时触发bmc复位;
40.在所述第一镜像文件的加载时长超过第一时间阈值时,停止向定时器发送清零指令,在定时器的计数时长达到第二时间阈值时,接收所述定时器的复位信号并重启;
41.重启上电后从第二存储器中加载第二镜像文件,并向定时器分阶段发送清零指令;
42.在第二镜像文件加载成功后,将第二镜像文件同步至所述第一存储器中。
43.上述固件双镜像自恢复方法、装置、电子设备及存储介质,bmc上电后会启动定时器,并对定时器分阶段发送清零指令,使定时器的计数归零,同时还存在有两个存储器,且两个存储器内具有相同的镜像文件,当bmc对第一存储器内的第一镜像文件的加载时长超过第一时间阈值时,便不再对定时器发送清零指令,定时器的计数不再归零,当定时器计数时长达到第二时间阈值时会向bmc发出复位信号并使其重启,重启后的bmc会对第二存储器内的第二镜像文件进行加载,在第二镜像文件加载完成后还会将其同步至第一存储器中,从而完成固件的恢复,该自恢复方法能够自主运行,一般情况下无需人工干预,且能够降低bmc的运维投入,稳定性和可维护性更高。
附图说明
44.图1为本技术中一个实施例的固件双镜像自恢复方法的步骤图;
45.图2为本技术中另一个实施例的固件双镜像自恢复方法的步骤图;
46.图3为本技术中一个实施例的固件双镜像自恢复方法的镜像文件的加载流程图;
47.图4为本技术中一个实施例的固件双镜像自恢复方法的镜像文件的恢复过程图;
48.图5为本技术中一个实施例的固件双镜像自恢复方法的整体流程图;
49.图6为本技术中一个实施例的固件双镜像自恢复装置的模块图;
50.图7为本技术中另一个实施例的固件双镜像自恢复装置的模块图;
51.图8为本技术中一个实施例的计算机设备的内部结构图。
具体实施方式
52.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地说明,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
53.如图1所示,在一个实施例中,一种固件双镜像自恢复方法,用于bmc中,包括以下步骤:
54.步骤s110,上电后发出定时器启动指令,并从第一存储器中加载第一镜像文件,且向定时器分阶段发送清零指令,以防止所述定时器超时触发bmc复位。
55.具体的,bmc在通电后会启动定时器,定时器启动后会不停的进行计数,与此同时,
bmc会对阶段性的向定时器发出清零指令,使定时器的计数归零,从而达到使定时器重新计数的效果。随后,bmc从第一存储器内加载第一镜像文件。
56.步骤s120,在所述第一镜像文件的加载时长超过第一时间阈值时,停止向定时器发送清零指令,在定时器的计数时长达到第二时间阈值时,接收所述定时器的复位信号并重启。
57.具体的,bmc内具有第一时间和第二时间两个阈值,其中,第一时间阈值大于存储器中镜像文件加载所需的最大时间要求,第二时间阈值为定时器触发复位信号的要求时间。当第一镜像文件加载时长超过第一时间阈值时,bmc停止向定时器发送清零指令,定时器的计数不再归零,且随时间不断增加,当定时器的技术时长达到第二时间阈值时,定时器触发复位信号,并将该复位信号发送至bmc,bmc接收该复位信号后进行重启。
58.步骤s130,重启上电后从第二存储器中加载第二镜像文件,并向定时器分阶段发送清零指令。
59.具体的,bmc在重启通电后依旧会启动定时器,并且依旧会阶段性的向定时器发出清零指令,使定时器的计数归零,从而达到使定时器重新计数的效果。随后,bmc从第二存储器内加载第二镜像文件。
60.步骤s140,在第二镜像文件加载成功后,将第二镜像文件同步至所述第一存储器中。
61.具体的,bmc会将第二镜像文件同步到第一存储器中,使第一存储器和第二存储器内的镜像文件保持一致,从而完成固件的恢复。
62.上述固件双镜像自恢复方法,bmc上电后会启动定时器,并对定时器分阶段发送清零指令,使定时器的计数归零,同时还存在有两个存储器,且两个存储器内具有相同的镜像文件,当bmc对第一存储器内的第一镜像文件的加载时长超过第一时间阈值时,便不再对定时器发送清零指令,定时器的计数不再归零,当定时器计数时长达到第二时间阈值时会向bmc发出复位信号并使其重启,重启后的bmc会对第二存储器内的第二镜像文件进行加载,在第二镜像文件加载完成后还会将其同步至第一存储器中,从而完成固件的恢复,该自恢复方法能够自主运行,一般情况下无需人工干预,且能够降低bmc的运维投入,稳定性和可维护性更高。
63.如图2所示,在一个实施例中,一种固件双镜像自恢复方法,用于bmc中,包括以下步骤:
64.步骤s210,上电后发出定时器启动指令,并从第一存储器中加载第一镜像文件,且向定时器分阶段发送清零指令,以防止所述定时器超时触发bmc复位。
65.其中,定时器可采用wdt(watchdog timer,看门狗),bmc固件soc芯片(system-on-a-chip,一种集成电路的芯片)可选用ast2600或者ast2500,芯片本身支持双镜像rom备份启动,当主rom1加载失败,则定时器会在上电后22秒后触发,并将启动芯片由flash rom1切换到flash rom2,实现镜像物理冗余启动。
66.需要说明的是,bmc在上电后还会监测是否有更新数据输入,并在发生更新数据输入时根据更新数据进行数据更新,且将所述更新数据同步至所述第一存储器与第二存储器中。
67.具体的,当第一存储器和第二存储器在正常使用过程中,若对bmc的配置进行修改
或对bmc进行升级,则同步两个存储器之间的镜像文件内容,用以保持两个存储器之间镜像文件的一致性,避免恢复的时候发生用户配置或升级内容丢失的情况。
68.步骤s220,判断所述第一镜像文件是否加载成功;若是,则向所述定时器发送关闭指令。若否,则判断所述第一镜像文件的加载时长是否超过第一时间阈值。
69.具体的,当第一镜像文件加载成功,bmc向定时器发送关闭计数指令,定时器不再进行计数,即计数时长不会再达到第一时间阈值和第二时间阈值,定时器不会再发出复位信号,并使bmc进行重启。
70.步骤s230,在所述第一镜像文件的加载时长超过第一时间阈值时,停止向定时器发送清零指令,在定时器的计数时长达到第二时间阈值时,接收所述定时器的复位信号并重启。
71.具体的,当第一镜像文件的加载时长超过第一时间阈值时,则判定第一镜像文件出现丢失等情况,因此需停止bmc对定时器发送清零指令,使定时器能够不停计数,直到计数时长达到第二时间阈值而发出复位信号,此时bmc接收该复位信号并完成重启。
72.步骤s240,重启上电后从第二存储器中加载第二镜像文件,并向定时器分阶段发送清零指令。
73.具体的,上述镜像文件的加载流程如图3所示,bmc分别对uboot(universal boot loader,一个主要用于嵌入式系统的引导加载程序)、kernel(实时操作系统)和文件系统进行加载,并且在加载的过程中,定时器会分别对每个加载过程进行计数,如果加载过程中出现卡死等影响镜像文件加载的现象,则清零指令就无法发送,从而执行计数清零,若超时定时器会触发bmc的复位。
74.步骤s250,在第二镜像文件加载成功后,对比第一存储器中的文件是否与所述第二镜像文件一致,若否,则将所述第二镜像文件复制到所述第一存储器中。
75.具体的,上述镜像文件恢复过程如图4所示,bmc分别对uboot、kernel、文件系统和用户数据进行同步。同步时首先对比uboot(或kernel,或文件系统,或用户数据)是否一致,若一致则进入下一步,若不一致则将第二镜像文件复制到第一存储器中,在复制的同时发出定时器清零指令,避免超时发生复位。
76.步骤s260,校验第一存储器中文件是否与第二存储器中的第二镜像文件一致,若否,则继续执行同步指令。
77.具体的,当uboot(或kernel,或文件系统,或用户数据)复制完成会进行校验,若校验成功则进入下一步,若校验不成功则重新进行同步,并记录重试次数及同步流程日志。
78.上述同步过程中,若未发生任何错误,则关闭定时器计数;若30分钟内未连续发生3次恢复动作,则触发bmc复位到第一存储器镜像启动,否则第二存储器镜像进入工作状态,告警并提示需要人工干预。
79.步骤s270,判断所述第一存储器中的数据是否完成恢复,若是,则调整所述第一存储器进入主镜像状态,所述第二存储器进入备份镜像状态。
80.具体的,若第一存储器中的数据没有完成恢复,则bmc重新进入恢复流程,直至工作正常。
81.上述固件双镜像自恢复方法,bmc上电后会启动定时器,并对定时器分阶段发送清零指令,使定时器的计数归零,同时还存在有两个存储器,且两个存储器内具有相同的镜像
文件,当bmc加载第一存储器内的第一镜像文件时,若加载成功,则bmc向定时器发送关闭指令,使定时器停止计数,若加载时长超过第一时间阈值,则bmc停止向定时器发送清零指令,定时器的计数不再归零,当定时器计数时长达到第二时间阈值时,则定时器会向bmc发出复位信号,bmc在接收该复位信号后进行重启。重启后的bmc会对第二存储器内的第二镜像文件进行加载,加载完成后则对比第一存储器中的文件与第二镜像文件是否一致,若一致,则进入校验,若不一致,则会将第二镜像文件复制到第一存储器中,然后再进行校验;校验成功则调整第一存储器进行主镜像状态,第二存储器进入备份镜像状态;整体流程如图5所示。同时,校验若不成功则重新进行同步动作,若在一段时间内连续发生多次恢复动作,则进行告警并提示需要人工干预。适用性更高,且进一步提高了稳定性和可维护性。
82.如图6所示,在一个实施例中,一种固件双镜像自恢复装置,应用于bmc中,包括第一镜象模块610、定时控制模块620、第二镜象模块630和同步恢复模块640,其中:
83.第一镜象模块610用于上电后发出定时器启动指令,并从第一存储器中加载第一镜像文件,且向定时器分阶段发送清零指令,以防止所述定时器超时触发bmc复位。
84.定时控制模块620用于在所述第一镜像文件的加载时长超过第一时间阈值时,停止向定时器发送清零指令,在定时器的计数时长达到第二时间阈值时,接收所述定时器的复位信号并重启。
85.第二镜象模块630用于重启上电后从第二存储器中加载第二镜像文件,并向定时器分阶段发送清零指令。
86.同步恢复模块640在第二镜像文件加载成功后,将第二镜像文件同步至所述第一存储器中。
87.上述固件双镜像自恢复装置,第一镜象模块610在bmc上电后会启动定时器,并对定时器分阶段发送清零指令,使定时器的计数归零,同时还存在有两个存储器,且两个存储器内具有相同的镜像文件,当定时控制模块620检测到bmc对第一存储器内的第一镜像文件的加载时长超过第一时间阈值时,第一镜象模块610便不再对定时器发送清零指令,定时器的计数不再归零,当定时器计数时长达到第二时间阈值时会向定时控制模块620发出复位信号,定时控制模块620在接收到该复位信号后重启;重启后第二镜象模块630会对第二镜像文件进行加载,在第二镜像文件加载完成后,同步恢复模块640还会将第二镜象文件同步至第一存储器中,从而完成固件的恢复,该自恢复装置能够自主运行,一般情况下无需人工干预,且能够降低bmc的运维投入,稳定性和可维护性更高。
88.如图7所示,在一个实施例中,一种固件双镜像自恢复装置,应用于bmc中,包括第一镜象模块610、第一判断模块710、定时控制模块620、第二镜象模块630、第二判断模块720、校验模块730和第三判断模块740,其中:
89.第一镜象模块610用于上电后发出定时器启动指令,并从第一存储器中加载第一镜像文件,且向定时器分阶段发送清零指令,以防止所述定时器超时触发bmc复位。
90.第一判断模块710用于判断所述第一镜像文件是否加载成功;若是,则向所述定时器发送关闭指令。若否,则判断所述第一镜像文件的加载时长是否超过第一时间阈值。
91.定时控制模块620用于在所述第一镜像文件的加载时长超过第一时间阈值时,停止向定时器发送清零指令,在定时器的计数时长达到第二时间阈值时,接收所述定时器的复位信号并重启。
92.第二镜象模块630用于重启上电后从第二存储器中加载第二镜像文件,并向定时器分阶段发送清零指令。
93.第二判断模块720用于在第二镜像文件加载成功后,对比第一存储器中的文件是否与所述第二镜像文件一致,若否,则将所述第二镜像文件复制到所述第一存储器中。
94.校验模块730用于校验第一存储器中文件是否与第二存储器中的第二镜像文件一致,若否,则继续执行同步指令。
95.第三判断模块740用于判断所述第一存储器中的数据是否完成恢复,若是,则调整所述第一存储器进入主镜像状态,所述第二存储器进入备份镜像状态。
96.需要说明的是,上述固件双镜像自恢复装置还包括数据更新模块,用于监测是否有更新数据输入,并在发生更新数据输入时根据所述更新数据进行数据更新,且将所述更新数据同步至所述第一存储器与第二存储器中。
97.上述固件双镜像自恢复装置,第一镜象模块610在bmc上电后会启动定时器,并对定时器分阶段发送清零指令,使定时器的计数归零,同时还存在有两个存储器,且两个存储器内具有相同的镜像文件,在第一镜象模块610加载第一镜像文件的过程中,第一判断模块710会判断第一镜像文件是否加载成功,若加载成功,则向定时器发送关闭指令,使定时器停止计数;当定时控制模块620检测到bmc对第一存储器内的第一镜像文件的加载时长超过第一时间阈值时,第一镜象模块610便不再对定时器发送清零指令,定时器的计数不再归零,当定时器计数时长达到第二时间阈值时会向定时控制模块620发出复位信号,定时控制模块620在接收到该复位信号后重启;重启后第二镜象模块630会对第二镜像文件进行加载,在第二镜像文件加载完成后,第二判断模块720会对比第一存储器中的文件与第二镜像文件是否一致,若一致,则进入待校验状态,若不一致,则会将第二镜像文件复制到第一存储器中,然后再进入待校验状态;校验模块730则对进入校验状态的镜像文件进行校验,校验成功则第三判断模块740会调整第一存储器进行主镜像状态,第二存储器进入备份镜像状态;同时,校验若不成功则会重新进行同步动作,若在一段时间内连续发生多次恢复动作,则进行告警并提示需要人工干预。适用性更高,且进一步提高了稳定性和可维护性。
98.在一个实施例中,一种计算机设备,该计算机设备可以是智能终端,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种固件双镜像自恢复方法。
99.本领域技术人员可以理解,图8中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
100.在一个实施例中,一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
101.在一个实施例中,一种计算机存储介质,存储有计算机程序,计算机程序被处理器执行时实现上述各方法实施例中的步骤。
102.在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
103.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
104.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
105.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1