一种服务器自主刷新CPLD的方法及BMC与流程

文档序号:17488523发布日期:2019-04-23 20:12阅读:1039来源:国知局
一种服务器自主刷新CPLD的方法及BMC与流程

本发明涉及服务器升级领域,特别是涉及一种服务器自主刷新cpld的方法及bmc。



背景技术:

目前,在服务器刷新固件版本的过程中,cpld(complexprogrammablelogicdevice,复杂可编程逻辑器件)的版本刷新至关重要。现有技术中,服务器通常采用被动刷新方式对cpld的版本进行刷新,比如通过烧录器烧录cpld,或通过web界面对cpld的版本进行刷新。但是,当cpld出现异常情况(如cpld的代码被意外擦除或被损坏)导致cpld无法正常工作时,服务器的维护人员并不能立即发现cpld的异常情况,并对cpld进行被动地刷新,从而影响到服务器的正常运行。

因此,如何提供一种解决上述技术问题的方案是本领域的技术人员目前需要解决的问题。



技术实现要素:

本发明的目的是提供一种服务器自主刷新cpld的方法及bmc,实现了cpld的自主刷新,保证了服务器的正常运行。

为解决上述技术问题,本发明提供了一种服务器自主刷新cpld的方法,应用于服务器的基板管理控制器bmc,包括:

预先按照新编辑的bmc版本进行自我升级;其中,复杂可编程逻辑器件cpld版本包含在新的bmc版本的一个路径下;

在服务器运行的过程中,实时监测cpld的工作状态;

当监测到所述cpld的工作异常时,自主生成刷新指令;其中,所述刷新指令包括所述cpld版本所在的路径;

将所述刷新指令自主发送至刷新工具,以使所述刷新工具按照所述cpld版本对所述cpld进行刷新。

优选地,所述实时监测cpld的工作状态的过程包括:

从cpld中实时获取所述cpld的心跳信息,以监测所述cpld的工作状态;

从接收到任一条心跳信息时开始计时,当计时时间到达预设时间阈值时,若已接收到下一条心跳信息,则确定所述cpld的工作正常;若仍未接收到下一条心跳信息,则确定所述cpld的工作异常。

优选地,所述预设时间阈值具体为秒级别时间。

优选地,所述从cpld中实时获取所述cpld的心跳信息的过程包括:

通过i2c协议从cpld中实时获取所述cpld的心跳信息。

优选地,所述刷新工具具体为jtag_unittest刷新工具。

优选地,该方法还包括:

当监测到所述cpld的工作异常时,记录所述cpld的工作异常信息。

优选地,所述工作异常信息包括所述cpld的工作异常时间。

优选地,该方法还包括:

当监测到所述cpld的工作异常时,控制报警装置发出警报。

优选地,所述报警装置具体为指示灯或蜂鸣器。

为解决上述技术问题,本发明还提供了一种bmc,包括:

预升级单元,用于预先按照新编辑的bmc版本进行自我升级;其中,cpld版本包含在新的bmc版本的一个路径下;

状态监测单元,用于在服务器运行的过程中,实时监测cpld的工作状态;

指令生成单元,用于当监测到所述cpld的工作异常时,自主生成刷新指令;其中,所述刷新指令包括所述cpld版本所在的路径;

指令发送单元,用于将所述刷新指令自主发送至刷新工具,以使所述刷新工具按照所述cpld版本对所述cpld进行刷新。

本发明提供了一种服务器自主刷新cpld的方法,应用于服务器的bmc,包括:预先按照新编辑的bmc版本进行自我升级;其中,cpld版本包含在新的bmc版本的一个路径下;在服务器运行的过程中,实时监测cpld的工作状态;当监测到cpld的工作异常时,自主生成刷新指令;其中,刷新指令包括cpld版本所在的路径;将刷新指令自主发送至刷新工具,以使刷新工具按照cpld版本对cpld进行刷新。

可见,本申请提前对bmc进行升级,且新的bmc版本的一个路径下包含cpld版本。然后,bmc当监测到cpld的工作异常时,自主发送刷新指令至刷新工具,以使刷新工具按照新的bmc版本的一个路径下所包含的cpld版本对cpld进行刷新,从而实现cpld的自主刷新,进而保证服务器的正常运行。

本发明还提供了一种bmc,与上述自主刷新方法具有相同的有益效果。

附图说明

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

图1为本发明实施例提供的一种服务器自主刷新cpld的方法的流程图;

图2为本发明实施例提供的一种bmc的结构示意图。

具体实施方式

本发明的核心是提供一种服务器自主刷新cpld的方法及bmc,实现了cpld的自主刷新,保证了服务器的正常运行。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参照图1,图1为本发明实施例提供的一种服务器自主刷新cpld的方法的流程图。

该服务器自主刷新cpld的方法,应用于服务器的bmc(baseboardmanagementcontroller,基板管理控制器),包括:

步骤s1:预先按照新编辑的bmc版本进行自我升级;其中,cpld版本包含在新的bmc版本的一个路径下。

具体地,本申请应提前编辑好准备刷新使用的cpld版本,以为后期刷新服务器主板上的cpld做好准备。由于本申请准备通过服务器主板上的bmc自主刷新cpld,所以本申请提前编辑好新的bmc版本,且在编辑bmc版本的过程中,从新编辑的bmc版本的各路径中任意选择一个路径,将编辑好的cpld版本保存至选择的路径下,然后按照新的bmc版本刷新bmc,以为后期通过bmc自主刷新cpld做好准备。

步骤s2:在服务器运行的过程中,实时监测cpld的工作状态。

具体地,为了实现当cpld的工作异常时bmc自主刷新cpld,bmc会在服务器运行的过程中实时监测cpld的工作状态,从而判定cpld的工作是否正常。当判定cpld的工作正常时,bmc会继续监测cpld的工作状态;当判定cpld的工作异常时,bmc会进入自主刷新cpld的步骤。

步骤s3:当监测到cpld的工作异常时,自主生成刷新指令;其中,刷新指令包括cpld版本所在的路径。

具体地,bmc当监测到cpld的工作异常时,会基于提前保存的cpld版本,生成包括cpld版本所在的路径的刷新指令,从而为后期刷新工具在根据刷新指令找到cpld版本后对cpld进行刷新做好准备。

步骤s4:将刷新指令自主发送至刷新工具,以使刷新工具按照cpld版本对cpld进行刷新。

具体地,bmc在生成刷新指令后,便可立即将刷新指令发送至刷新工具。刷新工具在接收到刷新指令后,便可得知准备好的cpld版本所在的路径,从而找到准备好的cpld版本。然后,刷新工具可实现按照准备好的cpld版本对cpld进行刷新。可见,bmc当监测到cpld的工作异常时,可借助刷新工具实现cpld的自主刷新,进而保证服务器的正常运行。

本发明提供了一种服务器自主刷新cpld的方法,应用于服务器的bmc,包括:预先按照新编辑的bmc版本进行自我升级;其中,cpld版本包含在新的bmc版本的一个路径下;在服务器运行的过程中,实时监测cpld的工作状态;当监测到cpld的工作异常时,自主生成刷新指令;其中,刷新指令包括cpld版本所在的路径;将刷新指令自主发送至刷新工具,以使刷新工具按照cpld版本对cpld进行刷新。

可见,本申请提前对bmc进行升级,且新的bmc版本的一个路径下包含cpld版本。然后,bmc当监测到cpld的工作异常时,自主发送刷新指令至刷新工具,以使刷新工具按照新的bmc版本的一个路径下所包含的cpld版本对cpld进行刷新,从而实现cpld的自主刷新,进而保证服务器的正常运行。

在上述实施例的基础上:

作为一种可选地实施例,实时监测cpld的工作状态的过程包括:

从cpld中实时获取cpld的心跳信息,以监测cpld的工作状态;

从接收到任一条心跳信息时开始计时,当计时时间到达预设时间阈值时,若已接收到下一条心跳信息,则确定cpld的工作正常;若仍未接收到下一条心跳信息,则确定cpld的工作异常。

需要说明的是,本申请的预设是提前设置好的,只需要设置一次,除非根据实际情况需要修改,否则不需要重新设置。

具体地,已知cpld的心跳信息可表征cpld的工作是否正常(当cpld存在心跳时,认为cpld的工作正常;当cpld不存在心跳时,认为cpld的工作异常)。所以本申请的bmc通过从cpld中实时获取cpld的心跳信息来监测cpld的工作状态。

详细地,cpld每隔一个较短的时间会发送一条心跳信息至bmc。基于此,本申请提前设置一个时间阈值,认为:从cpld发出一条心跳信息时开始,若经过所设时间阈值后cpld未发出新的一条心跳信息,则认为cpld的工作异常。

因此,bmc从接收到cpld的任一条心跳信息时开始计时,当计时时间到达所设时间阈值时,若已接收到下一条心跳信息,则确定cpld的工作正常;若仍未接收到下一条心跳信息,则确定cpld的工作异常。

作为一种可选地实施例,预设时间阈值具体为秒级别时间。

进一步地,本申请所设置的时间阈值为秒级别时间,至于设置的具体值,本申请在此不做特别的限定,根据cpld的实际工作情况而定。

作为一种可选地实施例,从cpld中实时获取cpld的心跳信息的过程包括:

通过i2c协议从cpld中实时获取cpld的心跳信息。

进一步地,本申请的bmc和cpld之间可以通过i2c协议进行通讯,即二者之间连接i2c总线,i2c总线是一种简单、双向二线制同步串行总线,其只需要两根线即可在连接于总线上的器件之间传送信息。

当然,本申请的bmc和cpld之间也可以通过其他协议进行通讯,本申请在此不做特别的限定。

作为一种可选地实施例,刷新工具具体为jtag_unittest刷新工具。

具体地,本申请的刷新工具可以选用jtag_unittest刷新工具,jtag_unittest刷新工具的性价比较高。

当然,本申请的刷新工具也可以选用其他类型的刷新工具,本申请在此不做特别的限定。

作为一种可选地实施例,该方法还包括:

当监测到cpld的工作异常时,记录cpld的工作异常信息。

进一步地,本申请的bmc还可以在监测到cpld的工作异常时,记录cpld的工作异常信息,以为用户后期查证cpld的工作情况提供依据。

作为一种可选地实施例,工作异常信息包括cpld的工作异常时间。

具体地,本申请的bmc可以在监测到cpld的工作异常时,记录cpld的工作异常时间,从而在用户后期查证cpld的工作情况时使用户了解cpld出现工作异常的时间。

作为一种可选地实施例,该方法还包括:

当监测到cpld的工作异常时,控制报警装置发出警报。

进一步地,本申请的bmc还可以在监测到cpld的工作异常时,控制报警装置发出警报,以及时提醒用户此时的cpld存在工作异常情况,从而提高了用户的使用效果。

作为一种可选地实施例,报警装置具体为指示灯或蜂鸣器。

具体地,本申请的报警装置可以选用但不仅限于指示灯(通过控制指示灯的亮灭状态或发光颜色,起到提醒用户此时的cpld存在工作异常情况的作用)或蜂鸣器(通过控制蜂鸣器的声音状态,起到提醒用户此时的cpld存在工作异常情况的作用),本申请在此不做特别的限定。

请参照图2,图2为本发明实施例提供的一种bmc的结构示意图。

该bmc包括:

预升级单元1,用于预先按照新编辑的bmc版本进行自我升级;其中,cpld版本包含在新的bmc版本的一个路径下;

状态监测单元2,用于在服务器运行的过程中,实时监测cpld的工作状态;

指令生成单元3,用于当监测到cpld的工作异常时,自主生成刷新指令;其中,刷新指令包括cpld版本所在的路径;

指令发送单元4,用于将刷新指令自主发送至刷新工具,以使刷新工具按照cpld版本对cpld进行刷新。

本申请提供的bmc的介绍请参考上述自主刷新方法的实施例,本申请在此不再赘述。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1