CN113626262A - 一种bmc恢复方法、系统、设备以及介质 - Google Patents

一种bmc恢复方法、系统、设备以及介质 Download PDF

Info

Publication number
CN113626262A
CN113626262A CN202110873663.4A CN202110873663A CN113626262A CN 113626262 A CN113626262 A CN 113626262A CN 202110873663 A CN202110873663 A CN 202110873663A CN 113626262 A CN113626262 A CN 113626262A
Authority
CN
China
Prior art keywords
bmc
flash
address range
cpld
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
CN202110873663.4A
Other languages
English (en)
Inventor
夏子千
张德慊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202110873663.4A priority Critical patent/CN113626262A/zh
Publication of CN113626262A publication Critical patent/CN113626262A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2017Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where memory access, memory control or I/O control functionality is redundant
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2033Failover techniques switching over of hardware resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明公开了一种BMC恢复方法,包括以下步骤:响应于检测到BMC异常,断开BMC与flash的连接并建立CPLD与flash的连接;获取BMC向flash中写入数据的第一地址范围;将flash中第一地址范围的数据擦除;重新建立BMC与flash的连接并断开CPLD与flash的连接;重新启动BMC。本发明还公开了一种系统、计算机设备以及可读存储介质。本发明提出的实施例通过使用CPLD侦测BMC是否正常启动,若CPLD发现BMC启动异常则将BMC Flash使用权切换至CPLD,并使用BMC预先储存于CPLD中的信息抹除flash中配置区(第一地址范围)的数据,而后切回Flash使用权至BMC并重启BMC,让BMC恢复到初始的正常状况。这样避免了通过备份数据而在每次增加或减少配置项目或配置档案时,重新检测整个配置文件。

Description

一种BMC恢复方法、系统、设备以及介质
技术领域
本发明涉及BMC领域,具体涉及一种BMC恢复方法、系统、设备以及存储介质。
背景技术
由于Flash具有大容量低成本的特性,一般服务器常使用它作为BMC的储存装置。但Flash的写入需要较长时间才能完成(可能长达数秒),且写入前必须先将欲写入区块的数据全部抹除再进行写入。若BMC在写入数据时被无预警断电常常会造成数据损毁,又若损毁的数据刚好是重要配置文件、BMC可能因此而无法正常动作。
一般解决这个问题的方式有两种,一种是使用Flash冗余设计、另一种是设法将重要资料备份并在启动时侦测档案是否损毁,若损毁则使用备份档将其写回。这两种设计方式各有其缺点:
(一)使用Flash冗余设计:很明显的一个缺点是成本增加。因为必须额外配置一个冗余Flash让BMC在侦测到启动异常时切换自冗余Flash重新启动。也由于多了一个冗余Flash,更新固件时需要更长时间将新的固件写入冗余Flash,以确保两个Flash的固件保持在同一版本。
(二)使用备份重要档案设计:除了写入方式变复杂,每次写入完成后需要更新备份文件之外。这种方式必须额外加入侦测档案是否损毁的机制。这机制有可能因为其它维护代码的工程师新增/减少配置项目或配置档案而失效。一旦侦测机制失效,BMC将无法从异常状况中恢复。
发明内容
有鉴于此,为了克服上述问题的至少一个方面,本发明实施例提出一种BMC恢复方法,包括以下步骤:
响应于检测到BMC异常,断开所述BMC与flash的连接并建立CPLD与所述flash的连接;
获取所述BMC向所述flash中写入数据的第一地址范围;
将所述flash中所述第一地址范围的数据擦除;
重新建立所述BMC与flash的连接并断开所述CPLD与所述flash的连接;
重新启动所述BMC。
在一些实施例中,将所述flash中所述第一地址范围的数据擦除,进一步包括:
获取不同于所述第一地址范围的第二地址范围;
将所述第一地址范围中的数据写入到所述flash的第二地址范围后,将所述flash中所述第一地址范围的数据擦除。
在一些实施例中,还包括:
响应于所述BMC第一次启动,将所述第一地址范围和所述第二地址范围写入到所述CPLD中。
在一些实施例中,响应于所述BMC第一次启动,将所述第一地址范围和所述第二地址范围写入到所述CPLD中,进一步包括:
响应于所述BMC启动且检测到所述flash的第一地址范围中的数据为空,确定为第一次启动,将所述第一地址范围和所述第二地址范围写入到所述CPLD中。
在一些实施例中,将所述第一地址范围和所述第二地址范围写入到所述CPLD中,进一步包括:
将所述第一地址范围的起始地址写入第一缓存器,将终止地址写入第二缓存器;
将所述第二地址范围的起始地址写入第三缓存器,将终止地址写入第四缓存器。
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种BMC恢复系统,包括:
控制模块,配置为响应于检测到BMC异常,断开所述BMC与flash的连接并建立CPLD与所述flash的连接;
获取模块,配置为获取所述BMC向所述flash中写入数据的第一地址范围;
擦除模块,配置为将所述flash中所述第一地址范围的数据擦除;
连接模块,配置为重新建立所述BMC与flash的连接并断开所述CPLD与所述flash的连接;
重启模块,配置为重新启动所述BMC。
在一些实施例中,擦除模块还配置为:
获取不同于所述第一地址范围的第二地址范围;
将所述第一地址范围中的数据写入到所述flash的第二地址范围后,将所述flash中所述第一地址范围的数据擦除。
在一些实施例中,还包括写入模块,配置为:
响应于所述BMC第一次启动,将所述第一地址范围和所述第二地址范围写入到所述CPLD中。
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机设备,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时执行以下步骤:
响应于检测到BMC异常,断开所述BMC与flash的连接并建立CPLD与所述flash的连接;
获取所述BMC向所述flash中写入数据的第一地址范围;
将所述flash中所述第一地址范围的数据擦除;
重新建立所述BMC与flash的连接并断开所述CPLD与所述flash的连接;
重新启动所述BMC。
在一些实施例中,将所述flash中所述第一地址范围的数据擦除,进一步包括:
获取不同于所述第一地址范围的第二地址范围;
将所述第一地址范围中的数据写入到所述flash的第二地址范围后,将所述flash中所述第一地址范围的数据擦除。
在一些实施例中,还包括:
响应于所述BMC第一次启动,将所述第一地址范围和所述第二地址范围写入到所述CPLD中。
在一些实施例中,响应于所述BMC第一次启动,将所述第一地址范围和所述第二地址范围写入到所述CPLD中,进一步包括:
响应于所述BMC启动且检测到所述flash的第一地址范围中的数据为空,确定为第一次启动,将所述第一地址范围和所述第二地址范围写入到所述CPLD中。
在一些实施例中,将所述第一地址范围和所述第二地址范围写入到所述CPLD中,进一步包括:
将所述第一地址范围的起始地址写入第一缓存器,将终止地址写入第二缓存器;
将所述第二地址范围的起始地址写入第三缓存器,将终止地址写入第四缓存器。
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时执行以下步骤:
响应于检测到BMC异常,断开所述BMC与flash的连接并建立CPLD与所述flash的连接;
获取所述BMC向所述flash中写入数据的第一地址范围;
将所述flash中所述第一地址范围的数据擦除;
重新建立所述BMC与flash的连接并断开所述CPLD与所述flash的连接;
重新启动所述BMC。
在一些实施例中,将所述flash中所述第一地址范围的数据擦除,进一步包括:
获取不同于所述第一地址范围的第二地址范围;
将所述第一地址范围中的数据写入到所述flash的第二地址范围后,将所述flash中所述第一地址范围的数据擦除。
在一些实施例中,还包括:
响应于所述BMC第一次启动,将所述第一地址范围和所述第二地址范围写入到所述CPLD中。
在一些实施例中,响应于所述BMC第一次启动,将所述第一地址范围和所述第二地址范围写入到所述CPLD中,进一步包括:
响应于所述BMC启动且检测到所述flash的第一地址范围中的数据为空,确定为第一次启动,将所述第一地址范围和所述第二地址范围写入到所述CPLD中。
在一些实施例中,将所述第一地址范围和所述第二地址范围写入到所述CPLD中,进一步包括:
将所述第一地址范围的起始地址写入第一缓存器,将终止地址写入第二缓存器;
将所述第二地址范围的起始地址写入第三缓存器,将终止地址写入第四缓存器。
本发明具有以下有益技术效果之一:本发明提出的实施例通过使用CPLD侦测BMC是否正常启动,若CPLD发现BMC启动异常则将BMC Flash使用权切换至CPLD,并使用BMC预先储存于CPLD中的信息抹除flash中配置区(第一地址范围)的数据,而后切回Flash使用权至BMC并重启BMC,让BMC恢复到初始的正常状况。这样避免了通过备份数据而在每次增加或减少配置项目或配置档案时,重新检测整个配置文件。如此也可以避免检测失误造成BMC系统无法自动复原。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本发明的实施例提供的BMC恢复方法的流程示意图;
图2为本发明的实施例提供的BMC与CPLD的连接示意图;
图3为本发明的实施例提供的BMC恢复系统的结构示意图;
图4为本发明的实施例提供的计算机设备的结构示意图;
图5为本发明的实施例提供的计算机可读存储介质的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
根据本发明的一个方面,本发明的实施例提出一种BMC恢复方法,如图1所示,其可以包括步骤:
S1,响应于检测到BMC异常,断开所述BMC与flash的连接并建立CPLD与所述flash的连接;
S2,获取所述BMC向所述flash中写入数据的第一地址范围;
S3,将所述flash中所述第一地址范围的数据擦除;
S4,重新建立所述BMC与flash的连接并断开所述CPLD与所述flash的连接;
S5,重新启动所述BMC。
本发明提出的实施例通过使用CPLD侦测BMC是否正常启动,若CPLD发现BMC启动异常则将BMC Flash使用权切换至CPLD,并使用BMC预先储存于CPLD中的信息抹除flash中配置区(第一地址范围)的数据,而后切回Flash使用权至BMC并重启BMC,让BMC恢复到初始的正常状况。这样避免了通过备份数据而在每次增加或减少配置项目或配置档案时,重新检测整个配置文件。如此也可以避免检测失误造成BMC系统无法自动复原。
在一些实施例中,在硬件设计上,如图2所示,可以在线路上增加一个切换Flash使用权的Switch。并将Switch控制信号线接给CPLD,由CPLD负责控制Flash的切换位置。一般情况下Flash是切给BMC使用的,只有在CPLD侦测到BMC启动异时常才会将Flash切换至CPLD并执行自动修复动作。另外,CPLD还需要连接能重启BMC的Reset signal控制线。
在一些实施例中,将所述flash中所述第一地址范围的数据擦除,进一步包括:
获取不同于所述第一地址范围的第二地址范围;
将所述第一地址范围中的数据写入到所述flash的第二地址范围后,将所述flash中所述第一地址范围的数据擦除。
在一些实施例中,还包括:
响应于所述BMC第一次启动,将所述第一地址范围和所述第二地址范围写入到所述CPLD中。
在一些实施例中,响应于所述BMC第一次启动,将所述第一地址范围和所述第二地址范围写入到所述CPLD中,进一步包括:
响应于所述BMC启动且检测到所述flash的第一地址范围中的数据为空,确定为第一次启动,将所述第一地址范围和所述第二地址范围写入到所述CPLD中。
在一些实施例中,将所述第一地址范围和所述第二地址范围写入到所述CPLD中,进一步包括:
将所述第一地址范围的起始地址写入第一缓存器,将终止地址写入第二缓存器;
将所述第二地址范围的起始地址写入第三缓存器,将终止地址写入第四缓存器。
具体的,当BMC侦测到此次启动为第一次启动时,例如检测到flash中第一地址范围的数据为空时则认为此时为第一次启动,BMC将Flash配置区(即第一地址范围)的起始地址和结束地址写入CPLD的recover_erase_start及recover_erase_end两个缓存器(register)中。
例如,第一地址范围的起始地址为0x01B00000,BMC应将其写入CPLD的recover_erase_start缓存器中,结束地址为0x1CFFFFF,BMC应将其写入CPLD的recover_erase_end缓存器中。
在设计flash时,若Flash剩余空间(Free space)仍足够,可规划一个预留配置区域(第二地址范围)做Debug使用。若有此预留配置区域,则BMC在第一次启动时也需将预留区域的起始地址和结束地址分别写入CPLD的recover_dump_start及recover_dump_end两个缓存器(register)中。
当每次BMC重启时,CPLD侦测BMC是否正常运作。当CPLD发现BMC启动异常时,将Flash的Switch切换至CPLD位置,这可以让CPLD直接对Flash作读写或清除动作。若有预留配置区域(Config dump partition)存在,CPLD应将Flash上地址从recover_erase_start至recover_erase_end区间的所有数据拷贝到recover_dump_start至recover_dump_end区间作为后续侦错除虫使用。
接着CPLD执行清除动作,将Flash上地址从recover_erase_start至recover_erase_end区间的所有数据清除。然后将Flash的Switch位置切回BMC,让BMC可以正常读写Flash。最后CPLD使用Reset Signal重新启动BMC,BMC在重启后发现第一地址范围的数据是空的,会自动加载Flash中存储的原始配置文件开始运行(此行为是BMC原本的机制)。如此,BMC就恢复到正常状况了。
由于一般服务器的设计多数原本就会使用CPLD来控制开机电源时序或风扇,因此本发明提出的方案对硬件而言除了一个Switch外并不会增加硬件成本(Switch成本很低),总成本会比使用冗余Flash设计方式低。另外,执行更新BMC固件时也不需要额外时间刻录冗余Flash。而且维护成本比使用备份重要档案设计方式低。因为不用在每次增加/减少配置项目或配置档案时重新检视整个配置档案侦错的演算法。如此也可以避免侦错失误造成BMC系统无法自动复原。另外,保留了debug机制,在BMC恢复正常运行后可直接透过BMC下载存放于预留配置区上的完整异常状况配置档案。而使用现有的另外两种方案要取得完整第一地址范围上的资料都需要额外处理。
本发明提出的实施例通过使用CPLD侦测BMC是否正常启动,若CPLD发现BMC启动异常则将BMC Flash使用权切换至CPLD,并使用BMC预先储存于CPLD中的信息抹除flash中配置区(第一地址范围)的数据,而后切回Flash使用权至BMC并重启BMC,让BMC恢复到初始的正常状况。这样避免了通过备份数据而在每次增加或减少配置项目或配置档案时,重新检测整个配置文件。如此也可以避免检测失误造成BMC系统无法自动复原。
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种BMC恢复系统400,如图3所示,包括:
控制模块401,配置为响应于检测到BMC异常,断开所述BMC与flash的连接并建立CPLD与所述flash的连接;
获取模块402,配置为获取所述BMC向所述flash中写入数据的第一地址范围;
擦除模块403,配置为将所述flash中所述第一地址范围的数据擦除;
连接模块404,配置为重新建立所述BMC与flash的连接并断开所述CPLD与所述flash的连接;
重启模块405,配置为重新启动所述BMC。
在一些实施例中,擦除模块还配置为:
获取不同于所述第一地址范围的第二地址范围;
将所述第一地址范围中的数据写入到所述flash的第二地址范围后,将所述flash中所述第一地址范围的数据擦除。
在一些实施例中,还包括写入模块,配置为:
响应于所述BMC第一次启动,将所述第一地址范围和所述第二地址范围写入到所述CPLD中。
在一些实施例中,响应于所述BMC第一次启动,将所述第一地址范围和所述第二地址范围写入到所述CPLD中,进一步包括:
响应于所述BMC启动且检测到所述flash的第一地址范围中的数据为空,确定为第一次启动,将所述第一地址范围和所述第二地址范围写入到所述CPLD中。
在一些实施例中,将所述第一地址范围和所述第二地址范围写入到所述CPLD中,进一步包括:
将所述第一地址范围的起始地址写入第一缓存器,将终止地址写入第二缓存器;
将所述第二地址范围的起始地址写入第三缓存器,将终止地址写入第四缓存器。
在本发明的实施例中,当BMC侦测到此次启动为第一次启动时,例如检测到flash中第一地址范围的数据为空时则认为此时为第一次启动,BMC将Flash配置区(即第一地址范围)的起始地址和结束地址写入CPLD的recover_erase_start及recover_erase_end两个缓存器(register)中。
例如,第一地址范围的起始地址为0x01B00000,BMC应将其写入CPLD的recover_erase_start缓存器中,结束地址为0x1CFFFFF,BMC应将其写入CPLD的recover_erase_end缓存器中。
在设计flash时,若Flash剩余空间(Free space)仍足够,可规划一个预留配置区域(第二地址范围)做Debug使用。若有此预留配置区域,则BMC在第一次启动时也需将预留区域的起始地址和结束地址分别写入CPLD的recover_dump_start及recover_dump_end两个缓存器(register)中。
当每次BMC重启时,CPLD侦测BMC是否正常运作。当CPLD发现BMC启动异常时,将Flash的Switch切换至CPLD位置,这可以让CPLD直接对Flash作读写或清除动作。若有预留配置区域(Config dump partition)存在,CPLD应将Flash上地址从recover_erase_start至recover_erase_end区间的所有数据拷贝到recover_dump_start至recover_dump_end区间作为后续侦错除虫使用。
接着CPLD执行清除动作,将Flash上地址从recover_erase_start至recover_erase_end区间的所有数据清除。然后将Flash的Switch位置切回BMC,让BMC可以正常读写Flash。最后CPLD使用Reset Signal重新启动BMC,BMC在重启后发现第一地址范围的数据是空的,会自动加载Flash中存储的原始配置文件开始运行(此行为是BMC原本的机制)。如此,BMC就恢复到正常状况了。
由于一般服务器的设计多数原本就会使用CPLD来控制开机电源时序或风扇,因此本发明提出的方案对硬件而言除了一个Switch外并不会增加硬件成本(Switch成本很低),总成本会比使用冗余Flash设计方式低。另外,执行更新BMC固件时也不需要额外时间刻录冗余Flash。而且维护成本比使用备份重要档案设计方式低。因为不用在每次增加/减少配置项目或配置档案时重新检视整个配置档案侦错的演算法。如此也可以避免侦错失误造成BMC系统无法自动复原。另外,保留了debug机制,在BMC恢复正常运行后可直接透过BMC下载存放于预留配置区上的完整异常状况配置档案。而使用现有的另外两种方案要取得完整第一地址范围上的资料都需要额外处理。
本发明提出的实施例通过使用CPLD侦测BMC是否正常启动,若CPLD发现BMC启动异常则将BMC Flash使用权切换至CPLD,并使用BMC预先储存于CPLD中的信息抹除flash中配置区(第一地址范围)的数据,而后切回Flash使用权至BMC并重启BMC,让BMC恢复到初始的正常状况。这样避免了通过备份数据而在每次增加或减少配置项目或配置档案时,重新检测整个配置文件。如此也可以避免检测失误造成BMC系统无法自动复原。
基于同一发明构思,根据本发明的另一个方面,如图4所示,本发明的实施例还提供了一种计算机设备501,包括:
至少一个处理器520;以及
存储器510,存储器510存储有可在处理器上运行的计算机程序511,处理器520执行程序时执行以下步骤:
S1,响应于检测到BMC异常,断开所述BMC与flash的连接并建立CPLD与所述flash的连接;
S2,获取所述BMC向所述flash中写入数据的第一地址范围;
S3,将所述flash中所述第一地址范围的数据擦除;
S4,重新建立所述BMC与flash的连接并断开所述CPLD与所述flash的连接;
S5,重新启动所述BMC。
在一些实施例中,将所述flash中所述第一地址范围的数据擦除,进一步包括:
获取不同于所述第一地址范围的第二地址范围;
将所述第一地址范围中的数据写入到所述flash的第二地址范围后,将所述flash中所述第一地址范围的数据擦除。
在一些实施例中,还包括:
响应于所述BMC第一次启动,将所述第一地址范围和所述第二地址范围写入到所述CPLD中。
在一些实施例中,响应于所述BMC第一次启动,将所述第一地址范围和所述第二地址范围写入到所述CPLD中,进一步包括:
响应于所述BMC启动且检测到所述flash的第一地址范围中的数据为空,确定为第一次启动,将所述第一地址范围和所述第二地址范围写入到所述CPLD中。
在一些实施例中,将所述第一地址范围和所述第二地址范围写入到所述CPLD中,进一步包括:
将所述第一地址范围的起始地址写入第一缓存器,将终止地址写入第二缓存器;
将所述第二地址范围的起始地址写入第三缓存器,将终止地址写入第四缓存器。
本发明提出的实施例通过使用CPLD侦测BMC是否正常启动,若CPLD发现BMC启动异常则将BMC Flash使用权切换至CPLD,并使用BMC预先储存于CPLD中的信息抹除flash中配置区(第一地址范围)的数据,而后切回Flash使用权至BMC并重启BMC,让BMC恢复到初始的正常状况。这样避免了通过备份数据而在每次增加或减少配置项目或配置档案时,重新检测整个配置文件。如此也可以避免检测失误造成BMC系统无法自动复原。
基于同一发明构思,根据本发明的另一个方面,如图5所示,本发明的实施例还提供了一种计算机可读存储介质601,计算机可读存储介质601存储有计算机程序指令610,计算机程序指令610被处理器执行时执行以下步骤:
S1,响应于检测到BMC异常,断开所述BMC与flash的连接并建立CPLD与所述flash的连接;
S2,获取所述BMC向所述flash中写入数据的第一地址范围;
S3,将所述flash中所述第一地址范围的数据擦除;
S4,重新建立所述BMC与flash的连接并断开所述CPLD与所述flash的连接;
S5,重新启动所述BMC。
在一些实施例中,将所述flash中所述第一地址范围的数据擦除,进一步包括:
获取不同于所述第一地址范围的第二地址范围;
将所述第一地址范围中的数据写入到所述flash的第二地址范围后,将所述flash中所述第一地址范围的数据擦除。
在一些实施例中,还包括:
响应于所述BMC第一次启动,将所述第一地址范围和所述第二地址范围写入到所述CPLD中。
在一些实施例中,响应于所述BMC第一次启动,将所述第一地址范围和所述第二地址范围写入到所述CPLD中,进一步包括:
响应于所述BMC启动且检测到所述flash的第一地址范围中的数据为空,确定为第一次启动,将所述第一地址范围和所述第二地址范围写入到所述CPLD中。
在一些实施例中,将所述第一地址范围和所述第二地址范围写入到所述CPLD中,进一步包括:
将所述第一地址范围的起始地址写入第一缓存器,将终止地址写入第二缓存器;
将所述第二地址范围的起始地址写入第三缓存器,将终止地址写入第四缓存器。
本发明提出的实施例通过使用CPLD侦测BMC是否正常启动,若CPLD发现BMC启动异常则将BMC Flash使用权切换至CPLD,并使用BMC预先储存于CPLD中的信息抹除flash中配置区(第一地址范围)的数据,而后切回Flash使用权至BMC并重启BMC,让BMC恢复到初始的正常状况。这样避免了通过备份数据而在每次增加或减少配置项目或配置档案时,重新检测整个配置文件。如此也可以避免检测失误造成BMC系统无法自动复原。
最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。
此外,应该明白的是,本文的计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

Claims (10)

1.一种BMC恢复方法,其特征在于,通过CPLD执行以下步骤:
响应于检测到BMC异常,断开所述BMC与flash的连接并建立CPLD与所述flash的连接;
获取所述BMC向所述flash中写入数据的第一地址范围;
将所述flash中所述第一地址范围的数据擦除;
重新建立所述BMC与flash的连接并断开所述CPLD与所述flash的连接;
重新启动所述BMC。
2.如权利要求1所述的方法,其特征在于,将所述flash中所述第一地址范围的数据擦除,进一步包括:
获取不同于所述第一地址范围的第二地址范围;
将所述第一地址范围中的数据写入到所述flash的第二地址范围后,将所述flash中所述第一地址范围的数据擦除。
3.如权利要求2所述的方法,其特征在于,还包括:
响应于所述BMC第一次启动,将所述第一地址范围和所述第二地址范围写入到所述CPLD中。
4.如权利要求3所述的方法,其特征在于,响应于所述BMC第一次启动,将所述第一地址范围和所述第二地址范围写入到所述CPLD中,进一步包括:
响应于所述BMC启动且检测到所述flash的第一地址范围中的数据为空,确定为第一次启动,将所述第一地址范围和所述第二地址范围写入到所述CPLD中。
5.如权利要求3所述的方法,其特征在于,将所述第一地址范围和所述第二地址范围写入到所述CPLD中,进一步包括:
将所述第一地址范围的起始地址写入第一缓存器,将终止地址写入第二缓存器;
将所述第二地址范围的起始地址写入第三缓存器,将终止地址写入第四缓存器。
6.一种BMC恢复系统,其特征在于,包括:
控制模块,配置为响应于检测到BMC异常,断开所述BMC与flash的连接并建立CPLD与所述flash的连接;
获取模块,配置为获取所述BMC向所述flash中写入数据的第一地址范围;
擦除模块,配置为将所述flash中所述第一地址范围的数据擦除;
连接模块,配置为重新建立所述BMC与flash的连接并断开所述CPLD与所述flash的连接;
重启模块,配置为重新启动所述BMC。
7.如权利要求6所述的系统,其特征在于,擦除模块还配置为:
获取不同于所述第一地址范围的第二地址范围;
将所述第一地址范围中的数据写入到所述flash的第二地址范围后,将所述flash中所述第一地址范围的数据擦除。
8.如权利要求7所述的系统,其特征在于,还包括写入模块,配置为:
响应于所述BMC第一次启动,将所述第一地址范围和所述第二地址范围写入到所述CPLD中。
9.一种计算机设备,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时执行如权利要求1-5任意一项所述的方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时执行如权利要求1-5任意一项所述的方法的步骤。
CN202110873663.4A 2021-07-30 2021-07-30 一种bmc恢复方法、系统、设备以及介质 Withdrawn CN113626262A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110873663.4A CN113626262A (zh) 2021-07-30 2021-07-30 一种bmc恢复方法、系统、设备以及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110873663.4A CN113626262A (zh) 2021-07-30 2021-07-30 一种bmc恢复方法、系统、设备以及介质

Publications (1)

Publication Number Publication Date
CN113626262A true CN113626262A (zh) 2021-11-09

Family

ID=78381826

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110873663.4A Withdrawn CN113626262A (zh) 2021-07-30 2021-07-30 一种bmc恢复方法、系统、设备以及介质

Country Status (1)

Country Link
CN (1) CN113626262A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113835770A (zh) * 2021-11-30 2021-12-24 四川华鲲振宇智能科技有限责任公司 一种服务器管理模块在线更换方法及系统
CN114546084A (zh) * 2022-01-28 2022-05-27 山东云海国创云计算装备产业创新中心有限公司 一种基板管理控制器复位方法、系统、存储介质及设备

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113835770A (zh) * 2021-11-30 2021-12-24 四川华鲲振宇智能科技有限责任公司 一种服务器管理模块在线更换方法及系统
CN113835770B (zh) * 2021-11-30 2022-02-18 四川华鲲振宇智能科技有限责任公司 一种服务器管理模块在线更换方法及系统
CN114546084A (zh) * 2022-01-28 2022-05-27 山东云海国创云计算装备产业创新中心有限公司 一种基板管理控制器复位方法、系统、存储介质及设备

Similar Documents

Publication Publication Date Title
EP1899814B1 (en) Firmware update for consumer electronic device
JP5431111B2 (ja) 情報処理装置及びシステム設定方法
US8468389B2 (en) Firmware recovery system and method of baseboard management controller of computing device
US7941658B2 (en) Computer system and method for updating program code
US7882388B2 (en) Dual independent non volatile memory systems
CN113626262A (zh) 一种bmc恢复方法、系统、设备以及介质
CN112612524A (zh) Linux系统启动的方法、装置、设备及存储介质
US7574621B2 (en) Method and system for identifying and recovering a file damaged by a hard drive failure
CN113254048B (zh) 引导程序更新方法、装置、设备及计算机可读介质
US20140140135A1 (en) Storage device, recovery method, and recording medium for recovery program
CN111722960A (zh) 一种cmos信息异常下的开机方法、系统、设备以及介质
CN113190256B (zh) 一种升级方法、装置及设备
CN111427721B (zh) 异常恢复方法及装置
JP2005284902A (ja) 端末装置、その制御方法及び制御プログラム、ホスト装置、その制御方法及び制御プログラム、遠隔更新システム、方法及びプログラム
CN113448760B (zh) 一种硬盘异常状态的恢复方法、系统、设备以及介质
JP2004054616A (ja) ファームウェア自動修復機能を有する情報処理装置
US11467898B2 (en) Information processing apparatus and method of controlling the same
CN104834574B (zh) 一种解决系统分区损坏的方法及装置
JP2002049509A (ja) データ処理システム
CN114398087A (zh) 一种提高单片机更新程序后运行稳定性的方法及单片机
KR20030062793A (ko) 리눅스 운영 시스템의 백업 및 복원을 위한 운영 장치 및방법
JP2009025967A (ja) 二重化ファームウェアのバックアップ方式、方法、及び、オペレーティングシステム
US20220206823A1 (en) Information processing method and electronic apparatus
JP3087650B2 (ja) 自動復電方式
JP2003122575A (ja) 情報処理装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WW01 Invention patent application withdrawn after publication

Application publication date: 20211109

WW01 Invention patent application withdrawn after publication