一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种BMC的自恢复方法、系统、装置及可读存储介质与流程

2022-02-22 09:56:16 来源:中国专利 TAG:

一种bmc的自恢复方法、系统、装置及可读存储介质
技术领域
1.本发明涉及计算机技术领域,更具体的说是涉及一种bmc的自恢复方法、系统、装置及可读存储介质。


背景技术:

2.目前,bmc(boardmanagercontroller,基板管理控制器)是服务器上的基板管理系统,其负责服务器的资产信息显示、硬件监控、散热调控、系统配置、远程监控、日志收集、故障诊断、系统维护等重要功能。
3.现阶段bmc的采用双flash芯片设计用来存储固件,两个flash芯片分为activate状态和standby状态,服务器进行固件升级时先刷新standby状态的flash芯片,在bmc重启时会启用standby状态的flash芯片,standby状态的flash芯片会切换到activate状态,再将之前没有升级的flash芯片的固件进行升级,此时activate状态的flash芯片会变成standby状态。但是,当activate状态的flash芯片固件损坏时,不能切换到standby状态的flash芯片,bmc不能正常工作,也不能进行切换。
4.具体来说,当bmc的flash芯片固件损坏时,只能进行烧录或或os下刷新的方式回复,没有自恢复机制。而且,每次通过烧录芯片或os下刷新的方式恢复bmc时,bmc的配置不会保留。


技术实现要素:

5.针对以上问题,本发明的目的在于提供一种bmc的自恢复方法、系统、装置及可读存储介质,通过借助bmc与clpd的通信,当bmc固件出现故障时能将bmc重启恢复到正常状态,并且保留bmc的配置。
6.本发明为实现上述目的,通过以下技术方案实现:一种bmc的自恢复方法,包括:
7.启动bmc,使bmc正常工作;
8.通过cpld定时向bmc发送一个检测信号;
9.通过判断cpld是否收到bmc发送的检测信号的回应信号确定bmc的flash芯片的固件是否损坏;
10.若bmc的flash芯片的固件损坏,根据bmc的flash芯片的状态启动bmc恢复机制对固件损坏的bmc的flash芯片进行回滚操作。
11.进一步,所述通过cpld定时向bmc发送一个检测信号之前还包括:
12.建立cpld与bmc的通信。
13.进一步,所述通过判断cpld是否收到bmc发送的检测信号的回应信号确定bmc的flash芯片的固件是否损坏,具体包括:
14.判断cpld是否收到bmc发送的检测信号的回应信号;
15.若否,则控制bmc重启;若是,则继续通过cpld定时向bmc发送一个检测信号。
16.进一步,所述控制bmc重启,具体为:
17.等待预设时长后,通过cpld对bmc进行硬重启操作。
18.进一步,所述根据bmc的flash芯片的状态启动bmc恢复机制对固件损坏的bmc的flash芯片进行回滚操作,具体包括:
19.判断activate状态的flash芯片是否重启成功,若是,则继续通过cpld定时向bmc发送一个检测信号;若否,则通过standby状态的flash芯片进行bmc启动,并对固件损坏的bmc的flash芯片进行回滚操作。
20.进一步,所述预设时长为一小时。
21.相应的,本发明还公开了一种bmc的自恢复系统,包括:
22.启动单元,用于启动bmc,使bmc正常工作;
23.探测单元,用于通过cpld定时向bmc发送一个检测信号;
24.识别单元,用于通过判断cpld是否收到bmc发送的检测信号的回应信号确定bmc的flash芯片的固件是否损坏;
25.恢复单元,用于根据bmc的flash芯片的状态启动bmc恢复机制对固件损坏的bmc的flash芯片进行回滚操作。
26.进一步,还包括:
27.通信单元,用于建立cpld与bmc的通信。
28.进一步,所述识别单元具体用于:
29.判断cpld是否收到bmc发送的检测信号的回应信号;
30.若否,则控制bmc重启;若是,则继续通过cpld定时向bmc发送一个检测信号。
31.进一步,所述恢复单元具体用于:
32.判断activate状态的flash芯片是否重启成功,若是,则继续通过cpld定时向bmc发送一个检测信号;若否,则通过standby状态的flash芯片进行bmc启动,并对固件损坏的bmc的flash芯片进行回滚操作。
33.相应的,本发明公开了一种bmc的自恢复装置,包括:
34.存储器,用于存储bmc的自恢复程序;
35.处理器,用于执行所述bmc的自恢复程序时实现如上文任一项所述bmc的自恢复方法的步骤。
36.相应的,本发明公开了一种可读存储介质,所述可读存储介质上存储有bmc的自恢复程序,所述bmc的自恢复程序被处理器执行时实现如上文任一项所述bmc的自恢复方法的步骤。
37.对比现有技术,本发明有益效果在于:本发明提供了一种bmc的自恢复方法、系统、装置及可读存储介质,借助于cpld与bmc的通信,cpld会对bmc做一个“喂狗”的操作,bmc正常工作时会给cpld一个回应,当bmc的flash芯片固件损坏时不能进行回应时,cpld一小时后会对bmc做一个硬重启的操作,bmc会尝试从activate状态的flash芯片启动,当不能启动时,会从standby状态的flash启动,并对固件损坏的flash芯片做rollback的操作,既能避免手动操作使bmc恢复到正常工作状态,也能保留bmc配置。
38.本发明有效解决了bmc的flash芯片固件损坏时只能通过烧录芯片或os下刷新的问题,还有效解决了烧录bmc芯片os下刷新后,bmc配置不能保留的问题。另外,可与cpld通信的其他部件也可以采用本发明提供的方法实现其自身的自恢复功能。
39.由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。
附图说明
40.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
41.附图1是本发明的实施例一的方法流程图。
42.附图2是本发明的实施例二的方法流程图。
43.附图3是本发明的实施例三的系统结构图。
44.图中,1为启动单元;2为通信单元;3为探测单元;4为识别单元;5为恢复单元。
具体实施方式
45.本发明的核心是提供一种bmc的自恢复方法,现有技术中,当bmc的flash芯片固件损坏时,只能进行烧录或或os下刷新的方式回复,没有自恢复机制。而且,每次通过烧录芯片或os下刷新的方式恢复bmc时,bmc的配置不会保留。
46.而本发明提供的bmc的自恢复方法,首先,启动bmc,使bmc正常工作。然后通过cpld定时向bmc发送一个检测信号。接着,通过判断cpld是否收到bmc发送的检测信号的回应信号确定bmc的flash芯片的固件是否损坏;若bmc的flash芯片的固件损坏,根据bmc的flash芯片的状态启动bmc恢复机制对固件损坏的bmc的flash芯片进行回滚操作。由此可见,本发明通过借助bmc与clpd的通信,当bmc固件出现故障时能将bmc重启恢复到正常状态,并且保留bmc的配置。
47.为了使本技术领域的人员更好地理解本发明方案,将本发明涉及的专用名字解释如下:
48.bmc:执行伺服器远端管理控制器,英文全称为baseboard management controller.为基板管理控制器。它可以在机器未开机的状态下,对机器进行固件升级、查看机器设备、等一些操作。这种控制器是一种一站式解决方案,用户无需做大量的韧体开发工作,因此能缩短新设计伺服器的面市时间。另外,因为mbmc相容ipmi,因此它能应用于任何相容ipmi的远程终端设备。这种低成本控制器非常适合用于多种远程管理,比如刀锋型伺服器、公用桌上型电脑、印表机、集线器和家庭网路设备(网路闸道、数位视讯转换盒)等。
49.cpld:complex programmable logic device,中文名称为复杂可编程逻辑器件。cpld采用cmos eprom、eeprom、快闪存储器和sram等编程技术,从而构成了高密度、高速度和低功耗的可编程逻辑器件。cpld主要由逻辑块、可编程互连通道和i/o块三部分构成。cpld中的逻辑块类似于一个小规模pld,通常一个逻辑块包含4~20个宏单元,每个宏单元一般由乘积项阵列、乘积项分配和可编程寄存器构成。每个宏单元有多种配置方式,各宏单元也可级联使用,因此可实现较复杂组合逻辑和时序逻辑功能。对集成度较高的cpld,通常还提供了带片内ram/rom的嵌入阵列块。可编程互连通道主要提供逻辑块、宏单元、输入/输出引脚间的互连网络。输入/输出块(i/o块)提供内部逻辑到器件i/o引脚之间的接口。逻辑
规模较大的cpld一般还内带jtag边界扫描测试电路,可对已编程的高密度可编程逻辑器件做全面彻底的系统测试,此外也可通过jtag接口进行在系统编程。由于集成工艺、集成规模和制造厂家的不同,各种cpld分区结构、逻辑单元等也有较大的差别。
50.下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
51.实施例一:
52.如图1所示,本实施例提供了一种bmc的自恢复方法,包括如下步骤:
53.s1:启动bmc,使bmc正常工作。
54.s2:建立cpld与bmc的通信。
55.s3:通过cpld定时向bmc发送一个检测信号。
56.s4:通过判断cpld是否收到bmc发送的检测信号的回应信号确定bmc的flash芯片的固件是否损坏。
57.确定bmc的flash芯片的固件是否损坏时,首先判断cpld是否收到bmc发送的检测信号的回应信号。若否,说明bmc的flash芯片固件损坏时不能进行回应,则控制bmc重启;若是,则继续通过cpld定时向bmc发送一个检测信号。
58.s5:若bmc的flash芯片的固件损坏,根据bmc的flash芯片的状态启动bmc恢复机制对固件损坏的bmc的flash芯片进行回滚操作。
59.具体来说,确定bmc的flash芯片的固件损坏后,首先等待一小时,一小时后通过cpld对bmc进行硬重启操作。然后,判断activate状态的flash芯片是否重启成功,若是,则继续通过cpld定时向bmc发送一个检测信号;若否,则通过standby状态的flash芯片进行bmc启动,并对固件损坏的bmc的flash芯片进行回滚操作。
60.本实施例提供了一种bmc的自恢复方法,借助于cpld与bmc的通信,cpld会对bmc做一个“喂狗”的操作,bmc正常工作时会给cpld一个回应,当bmc的flash芯片固件损坏时不能进行回应时,cpld一小时后会对bmc做一个硬重启的操作,bmc会尝试从activate状态的flash芯片启动,当不能启动时,会从standby状态的flash启动,并对固件损坏的flash芯片做rollback的操作,既能避免手动操作使bmc恢复到正常工作状态,也能保留bmc配置。
61.实施例二:
62.基于实施例一,如图3所示,本发明还公开了一种bmc的自恢复方法,包括如下步骤:
63.步骤1:启动bmc,使bmc正常工作。
64.步骤2:通过cpld向bmc进行“喂狗”操作。
65.步骤3:判断cpld是否收到bmc发送的回应信号。若是,则转到步骤2;若否,则转到步骤4。
66.步骤4:此时,说明bmc的flash芯片固件损坏时不能进行回应,则控制bmc重启。
67.步骤5:判断activate状态的flash芯片是否重启成功。若是,则转到步骤2,继续通过cpld定时向bmc发送一个检测信号;若否,则转到步骤6。
68.步骤6:通过standby状态的flash芯片进行bmc启动。
69.步骤7:对固件损坏的bmc的flash芯片进行回滚操作。
70.本实施例提供了一种bmc的自恢复方法,借助于cpld与bmc的通信,cpld会对bmc做一个“喂狗”的操作,bmc正常工作时会给cpld一个回应,当bmc的flash芯片固件损坏时不能进行回应时,cpld一小时后会对bmc做一个硬重启的操作,bmc会尝试从activate状态的flash芯片启动,当不能启动时,会从standby状态的flash启动,并对固件损坏的flash芯片做rollback的操作,既能避免手动操作使bmc恢复到正常工作状态,也能保留bmc配置。
71.实施例三:
72.基于实施例一,如图3所示,本发明还公开了一种bmc的自恢复系统,包括:启动单元1、通信单元2、探测单元3、识别单元4和恢复单元5。
73.启动单元1,用于启动bmc,使bmc正常工作。
74.通信单元2,用于建立cpld与bmc的通信。
75.探测单元3,用于通过cpld定时向bmc发送一个检测信号。
76.识别单元4,用于通过判断cpld是否收到bmc发送的检测信号的回应信号确定bmc的flash芯片的固件是否损坏。识别单元4具体用于:判断cpld是否收到bmc发送的检测信号的回应信号;若否,则控制bmc重启;若是,则继续通过cpld定时向bmc发送一个检测信号。
77.恢复单元5,用于根据bmc的flash芯片的状态启动bmc恢复机制对固件损坏的bmc的flash芯片进行回滚操作。恢复单元5具体用于:判断activate状态的flash芯片是否重启成功,若是,则继续通过cpld定时向bmc发送一个检测信号;若否,则通过standby状态的flash芯片进行bmc启动,并对固件损坏的bmc的flash芯片进行回滚操作。
78.本实施例提供了一种bmc的自恢复系统,借助于cpld与bmc的通信,cpld会对bmc做一个“喂狗”的操作,bmc正常工作时会给cpld一个回应,当bmc的flash芯片固件损坏时不能进行回应时,cpld一小时后会对bmc做一个硬重启的操作,bmc会尝试从activate状态的flash芯片启动,当不能启动时,会从standby状态的flash启动,并对固件损坏的flash芯片做rollback的操作,既能避免手动操作使bmc恢复到正常工作状态,也能保留bmc配置。
79.实施例四:
80.本实施例公开了一种bmc的自恢复装置,包括处理器和存储器;其中,所述处理器执行所述存储器中保存的bmc的自恢复程序时实现以下步骤:
81.1、启动bmc,使bmc正常工作。
82.2、建立cpld与bmc的通信。
83.3、通过cpld定时向bmc发送一个检测信号。
84.4、通过判断cpld是否收到bmc发送的检测信号的回应信号确定bmc的flash芯片的固件是否损坏。
85.5、若bmc的flash芯片的固件损坏,根据bmc的flash芯片的状态启动bmc恢复机制对固件损坏的bmc的flash芯片进行回滚操作。
86.进一步的,本实施例中的bmc的自恢复装置,还可以包括:
87.输入接口,用于获取外界导入的bmc的自恢复程序,并将获取到的bmc的自恢复程序保存至所述存储器中,还可以用于获取外界终端设备传输的各种指令和参数,并传输至处理器中,以便处理器利用上述各种指令和参数展开相应的处理。本实施例中,所述输入接口具体可以包括但不限于usb接口、串行接口、语音输入接口、指纹输入接口、硬盘读取接口
等。
88.输出接口,用于将处理器产生的各种数据输出至与其相连的终端设备,以便于与输出接口相连的其他终端设备能够获取到处理器产生的各种数据。本实施例中,所述输出接口具体可以包括但不限于usb接口、串行接口等。
89.通讯单元,用于在bmc的自恢复装置和外部服务器之间建立远程通讯连接,以便于bmc的自恢复装置能够将镜像文件挂载到外部服务器中。本实施例中,通讯单元具体可以包括但不限于基于无线通讯技术或有线通讯技术的远程通讯单元。
90.键盘,用于获取用户通过实时敲击键帽而输入的各种参数数据或指令。
91.显示器,用于运行服务器供电线路短路定位过程的相关信息进行实时显示。
92.鼠标,可以用于协助用户输入数据并简化用户的操作。
93.本实施例提供了一种bmc的自恢复装置,通过借助bmc与clpd的通信,当bmc固件出现故障时能将bmc重启恢复到正常状态,并且保留bmc的配置。本装置有效解决了bmc的flash芯片固件损坏时只能通过烧录芯片或os下刷新的问题,还有效解决了烧录bmc芯片os下刷新后,bmc配置不能保留的问题。
94.实施例五:
95.本实施例还公开了一种可读存储介质,这里所说的可读存储介质包括随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动硬盘、cd-rom或技术领域内所公知的任意其他形式的存储介质。可读存储介质中存储有bmc的自恢复程序,所述bmc的自恢复程序被处理器执行时实现以下步骤:
96.1、启动bmc,使bmc正常工作。
97.2、建立cpld与bmc的通信。
98.3、通过cpld定时向bmc发送一个检测信号。
99.4、通过判断cpld是否收到bmc发送的检测信号的回应信号确定bmc的flash芯片的固件是否损坏。
100.5、若bmc的flash芯片的固件损坏,根据bmc的flash芯片的状态启动bmc恢复机制对固件损坏的bmc的flash芯片进行回滚操作。
101.本实施例提供了一种可读存储介质,借助于cpld与bmc的通信,cpld会对bmc做一个“喂狗”的操作,bmc正常工作时会给cpld一个回应,当bmc的flash芯片固件损坏时不能进行回应时,cpld一小时后会对bmc做一个硬重启的操作,bmc会尝试从activate状态的flash芯片启动,当不能启动时,会从standby状态的flash启动,并对固件损坏的flash芯片做rollback的操作,既能避免手动操作使bmc恢复到正常工作状态,也能保留bmc配置。
102.综上所述,本发明通过借助bmc与clpd的通信,当bmc固件出现故障时能将bmc重启恢复到正常状态,并且保留bmc的配置。
103.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的方法而言,由于其与实施例公开的系统相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
104.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和
软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
105.在本发明所提供的几个实施例中,应该理解到,所揭露的系统、系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
106.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
107.另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。
108.同理,在本发明各个实施例中的各处理单元可以集成在一个功能模块中,也可以是各个处理单元物理存在,也可以两个或两个以上处理单元集成在一个功能模块中。
109.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
110.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
111.以上对本发明所提供的bmc的自恢复方法、系统、装置及可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献