一种bmc升级时的保护方法、系统及存储介质

文档序号:1687259 发布日期:2020-01-03 浏览:17次 >En<

阅读说明:本技术 一种bmc升级时的保护方法、系统及存储介质 (Protection method, system and storage medium during BMC upgrade ) 是由 江博 陈洪鑫 于 2019-09-20 设计创作,主要内容包括:本发明公开了一种BMC升级时的保护方法,应用于与BMC连接的控制器中,包括:接收BMC在收到升级指令之后发送的第一信号;在接收第一信号之后,关闭市电模块为BMC的供电,并控制预设的电池模块为BMC供电,以使BMC在电池模块供电下进行升级;在接收到BMC升级完成后发送的第二信号之后,关闭电池模块为BMC的供电,并控制市电模块为BMC供电。应用本申请的方案,有利于避免BMC升级时出现的BMC故障而导致BMC无法使用的情况。本申请还提供了一种BMC升级时的保护系统及存储介质,具有相应技术效果。(The invention discloses a protection method during BMC upgrade, which is applied to a controller connected with BMC and comprises the following steps: receiving a first signal sent by the BMC after receiving the upgrading instruction; after receiving the first signal, closing the mains supply module to supply power to the BMC, and controlling a preset battery module to supply power to the BMC so that the BMC is upgraded under the power supply of the battery module; and after receiving a second signal sent after upgrading of the BMC, turning off the power supply of the battery module to the BMC, and controlling the commercial power module to supply power to the BMC. By applying the scheme, the condition that the BMC cannot be used due to BMC fault during upgrading of the BMC is avoided. The application also provides a protection system and a storage medium during BMC upgrading, and the protection system and the storage medium have corresponding technical effects.)

一种BMC升级时的保护方法、系统及存储介质

技术领域

本发明涉及计算机技术领域,特别是涉及一种BMC升级时的保护方法、系统及存储介质。

背景技术

在服务器和存储控制器领域,BMC(Baseboard Management Controller,基板管理控制器)是不可或缺的部件。BMC需要处理诸多业务,例如IPMI功能,控制管理温度传感器,检测电压,风扇控制等等。

BMC可以通过例如Centos类的系统进行在线升级,或者通过BMC自身对外的网络进行固件升级。BMC在升级时,通常不会发生异常,即使出现了由于信号质量和操作错误导致的更新失败的情况,BMC也能够感知出此类错误,并在发现错误之后执行二次更新或者上报错误等措施。

但是,在少部分场合中,出现了BMC升级时的BMC故障的情况,并且故障之后BMC无法再使用,虽然发生概率较低,但是在存储控制器这类具有高稳定性需求的场合中,还是可能对业务造成较为严重的影响。

综上所述,如何避免BMC升级时出现的BMC故障而导致BMC无法使用的情况,是目前本领域技术人员急需解决的技术问题。

发明内容

本发明的目的是提供一种BMC升级时的保护方法、系统及存储介质,以避免BMC升级时出现的BMC故障而导致BMC无法使用的情况。

为解决上述技术问题,本发明提供如下技术方案:

一种BMC升级时的保护方法,应用于与BMC连接的控制器中,包括:

接收所述BMC在收到升级指令之后发送的第一信号;

在接收所述第一信号之后,关闭市电模块为所述BMC的供电,并控制预设的电池模块为所述BMC供电,以使所述BMC在所述电池模块供电下进行升级;

在接收到所述BMC升级完成后发送的第二信号之后,关闭所述电池模块为所述BMC的供电,并控制所述市电模块为所述BMC供电。

优选的,所述电池模块为服务器中的备用电源组BBU。

优选的,所述控制器为复杂可编程逻辑器件CPLD。

优选的,还包括:

在所述BMC运行过程中,当检测出所述电池模块的电量低于预设阈值,且所述市电模块正常运行时,为所述电池模块充电。

一种BMC升级时的保护系统,包括:

BMC,用于在收到升级指令之后发送第一信号,在升级完成后发送第二信号;

与所述BMC连接的控制器,用于在接收所述第一信号之后,关闭市电模块为所述BMC的供电,并控制预设的电池模块为所述BMC供电,以使所述BMC在所述电池模块供电下进行升级;在接收到所述BMC升级完成后发送的所述第二信号之后,关闭所述电池模块为所述BMC的供电,并控制所述市电模块为所述BMC供电;

与所述控制器连接的所述市电模块;

与所述控制器连接的所述电池模块。

优选的,所述电池模块为服务器中的备用电源组BBU。

优选的,所述控制器为复杂可编程逻辑器件CPLD。

优选的,所述控制器还用于:

在所述BMC运行过程中,当检测出所述电池模块的电量低于预设阈值,且所述市电模块正常运行时,为所述电池模块充电。

一种计算机可读存储介质,应用于与BMC连接的控制器中,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的BMC升级时的保护方法的步骤。

申请人发现,BMC在升级时,为了保障升级的可靠性,一般会在存储BMC固件的Flash内,存储一份或者两份镜像文件。当升级BMC失败时,BMC可以在重新启动之后,通过加载Flash里面的镜像文件重新升级。但是,考虑到BMC代码的Flash的特性,即如果要对Flash中的某一位进行写操作时,需要将该位所在的Block进行擦除。因此,如果要执行BMC的升级,Flash里面的原代码会被破坏,破坏之后才能够刷入新代码。如果在刷入新代码的过程中,出现电源掉电或者电源不稳定的情况,旧代码被破坏,新代码又加载不完整,也就会导致BMC故障,且BMC无法再使用。因此,本申请的方案提高BMC升级时的供电稳定性。

应用本发明实施例所提供的技术方案,在BMC收到升级指令之后,BMC会向与BMC连接的控制器发送第一信号。控制器在接收第一信号之后,会关闭市电模块为BMC的供电,并控制预设的电池模块为BMC供电,以使BMC在电池模块的供电下进行升级。相较于市电模块,电池模块发生掉电或者电源不稳定的概率非常低,有利于保障BMC正常完成升级,即本申请有利于避免BMC升级时出现的BMC故障而导致BMC无法使用的情况。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明中一种BMC升级时的保护方法的实施流程图;

图2为本发明中一种BMC升级时的保护系统的结构示意图。

具体实施方式

本发明的核心是提供一种BMC升级时的保护方法,有利于避免BMC升级时出现的BMC故障而导致BMC无法使用的情况。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

申请人发现,BMC在升级时,为了保障升级的可靠性,一般会在存储BMC固件的Flash内,存储一份或者两份镜像文件。当升级BMC失败时,BMC可以在重新启动之后,通过加载Flash里面的镜像文件重新升级。但是,考虑到BMC代码的Flash的特性,即如果要对Flash中的某一位进行写操作时,需要将该位所在的Block进行擦除。因此,如果要执行BMC的升级,Flash里面的原代码会被破坏,破坏之后才能够刷入新代码。如果在刷入新代码的过程中,出现电源掉电或者电源不稳定的情况,旧代码被破坏,新代码又加载不完整,也就会导致BMC故障,且BMC无法再使用。因此,本申请的方案提高BMC升级时的供电稳定性。

请参考图1,图1为本发明中一种BMC升级时的保护方法的实施流程图,该BMC升级时的保护方法应用于与BMC连接的控制器中,可以包括以下步骤:

步骤S101:接收BMC在收到升级指令之后发送的第一信号。

无论是通过例如Centos类的系统进行BMC的在线升级,还是通过BMC自身对外的网络进行升级,BMC都能够感知到,即BMC均可以接收到升级指令。当然,对于不同形式的升级触发方式,BMC接收到的升级指令的形式可以相应地不同,并不影响本发明的实施。

BMC与控制器通信连接,BMC在收到升级指令之后,会向控制器发送第一信号,即起到升级通知的作用。第一信号的具体内容可以根据实际需要进行设定和调整。

本申请描述的控制器,可以采用板卡上已有的相关控制器从而节约成本。例如,考虑到大部分服务器或者存储控制器中均具备CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件),因此在一种具体实施方式中,本申请的控制器可以选取为CPLD。当然,在部分场合中,也可以单独配置一个控制器来实现本申请的方案。

步骤S102:在接收第一信号之后,关闭市电模块为BMC的供电,并控制预设的电池模块为BMC供电,以使BMC在电池模块供电下进行升级。

控制器在接收第一信号之后,会关闭市电模块为BMC的供电。具体的,可以将控制器上的某一个引脚与电池模块的使能端连接,通过该使能端关闭市电模块为BMC的供电。

同时,控制器需要控制预设的电池模块为BMC供电,以使BMC在电池模块供电下进行升级。具体的,控制器可以将某一个引脚与电池模块的使能端连接,从而控制电池模块为BMC供电。当然,在其他具体场合中,也可以根据实际电路采用其他控制方式,例如电池模块没有设置使能端时,可以在电池模块的供电线路上设置相应的开关电路,控制器可以通过控制该开关电路的导通以及关断,实现对电池模块的供电状态的控制。

电池模块可以采用稳定性较高的蓄电池。进一步地,在本发明的一种具体实施方式中,考虑到服务器中通常设置有BBU(Battery Backup Unit,备用电源组),稳定性较高,而且BMC升级时通常只需要十几秒,BBU则可以在整机掉电时,持续几分钟为整机提供保存内存数据到硬盘的电源支撑,即BBU足够为BMC升级供电,并且也不会对BBU的原有任务造成影响。因此,该种实施方式中,电池模块选取为服务器中的备用电源组BBU,降低了方案的实施成本,同时BBU的稳定性也非常高,不容易出现供电异常的情况。

控制器在关闭市电模块为BMC的供电,并控制预设的电池模块为BMC供电之后,BMC便可以在电池模块的供电下进行升级。具体地,控制器可以在控制预设的电池模块为BMC供电之后,并在检测出电池模块成功放电时,向BMC发送相关的指令,使得BMC获知电池模块已经成功地开始为自身供电,当然,也可以采用其他的触发方式,例如控制器控制预设的电池模块为BMC供电之后,经过预设的时长,例如经过2秒之后,自动向BMC发送相关的指令,使得BMC开始升级。

步骤S103:在接收到BMC升级完成后发送的第二信号之后,关闭电池模块为BMC的供电,并控制市电模块为BMC供电。

BMC升级完成之后,会向控制器发送第二信号。控制器在接收到BMC升级完成后发送的第二信号之后,便可以关闭电池模块为BMC的供电,同时控制市电模块为BMC供电。

应用本发明实施例所提供的技术方案,在BMC收到升级指令之后,BMC会向与BMC连接的控制器发送第一信号。控制器在接收第一信号之后,会关闭市电模块为BMC的供电,并控制预设的电池模块为BMC供电,以使BMC在电池模块的供电下进行升级。相较于市电模块,电池模块发生掉电或者电源不稳定的概率非常低,有利于保障BMC正常完成升级,即本申请有利于避免BMC升级时出现的BMC故障而导致BMC无法使用的情况。

在本发明的一种具体实施方式中,还可以包括:

在BMC运行过程中,当检测出电池模块的电量低于预设阈值,且市电模块正常运行时,为电池模块充电。

考虑到电池模块需要为BMC升级进行供电,因此该种实施方式中,为了保证电池模块的电量充足,在BMC运行过程中便会对电池模块的电量进行检测。预设阈值的具体取值可以根据需要进行设定和调整。当检测出的电池模块的电量低于预设阈值时,说明电量较低,如果此时市电模块正常运行时,便可以为电池模块充电。

需要说明的是,该种实施方式中在市电模块正常运行时才会为电池模块充电,是考虑到在市电模块异常时,可以利用电池模块为服务器以及BMC供电,即协助BBU的工作,从而有利于保障系统稳定性。当然,部分场合中也可以直接利用BBU作为本申请的电池模块。由于市电模块异常时可能会利用到电池模块,因此设置在市电模块正常运行时为电池模块充电。

相应于上面的方法实施例,本发明实施例还提供了一种BMC升级时的保护系统,可与上文相互对应参照。

参见图2所示,为本发明中一种BMC10升级时的保护系统的结构示意图,包括:

BMC10,用于在收到升级指令之后发送第一信号,在升级完成后发送第二信号;

与BMC10连接的控制器20,用于在接收第一信号之后,关闭市电模块30为BMC10的供电,并控制预设的电池模块40为BMC10供电,以使BMC10在电池模块40供电下进行升级;在接收到BMC10升级完成后发送的第二信号之后,关闭电池模块40为BMC10的供电,并控制市电模块30为BMC10供电;

与控制器20连接的市电模块30;

与控制器20连接的电池模块40。

在本发明的一种具体实施方式中,电池模块40为服务器中的备用电源组BBU。

在本发明的一种具体实施方式中,控制器20为复杂可编程逻辑器件CPLD。

在本发明的一种具体实施方式中,控制器20还用于:

在BMC10运行过程中,当检测出电池模块40的电量低于预设阈值,且市电模块30正常运行时,为电池模块40充电。

相应于上面的方法和系统实施例,本发明实施例还提供了一种计算机可读存储介质,应用于与BMC连接的控制器中,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述任一项的BMC升级时的保护方法的步骤,此处不再重复说明。这里所说的计算机可读存储介质包括随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

8页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:条烟智能识别处理方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类