一种BMC固件升级方法、装置及终端与流程

文档序号:17441241发布日期:2019-04-17 04:47阅读:416来源:国知局
一种BMC固件升级方法、装置及终端与流程

本发明涉及计算机系统及存储技术领域,特别涉及一种bmc固件升级方法、装置、终端及计算机可读存储介质。



背景技术:

目前,大多数存储系统中都需要bmc(baseboardmanagementcontroller,基板管理控制器)来进行硬件相关信息的管理和查询工作。当前在需要对bmc固件(firmware)进行更新时,一般情况下通过web浏览器或者网络来更新。然而,存储系统(如数据中心的存储服务器)中数量庞大,通过web浏览器或者网络的方式更新bmc固件的话,需要人工手动的对一台一台的服务器来更新,导致更新效率低;且由于严重依赖人工操作,从而极大可能会发生不必要的错误,导致更新失败。



技术实现要素:

本发明的目的是提供一种bmc固件升级方法、装置、终端及计算机可读存储介质,能够完全自动触发并完成bmc固件升级,避免了手动大规模升级bmc固件的操作,大大提升了bmc固件升级效率以及产品的可维护性。

为解决上述技术问题,本发明提供一种bmc固件升级方法,包括:

获取数据库中最新bmc固件的版本号;

判断所述最新bmc固件的版本号与系统当前bmc固件的版本号是否一致;

若不一致,则从所述数据库中获取最新bmc固件的镜像文件;

根据所述最新bmc固件的镜像文件,调用bmc固件升级脚本执行bmc固件升级操作。

可选地,所述获取数据库中最新bmc固件的版本号,包括:

接收所述数据库发送的所述最新bmc固件的版本号;其中,所述数据库在更新bmc固件得到最新bmc固件的版本号时,向对应系统发送所述最新bmc固件的版本号。

可选地,所述获取数据库中最新bmc固件的版本号,包括:

按照预设周期访问所述数据库,查询所述数据库中所述最新bmc固件的版本号,并获取所述最新bmc固件的版本号。

可选地,所述根据所述最新bmc固件的镜像文件,调用bmc固件升级脚本执行bmc固件升级操作,包括:

根据所述最新bmc固件的镜像文件,调用yafu工具执行bmc固件升级操作。

本发明还提供一种bmc固件升级装置,包括:

获取模块,用于获取数据库中最新bmc固件的版本号;

判断模块,用于判断所述最新bmc固件的版本号与系统当前bmc固件的版本号是否一致;

更新模块,用于若所述最新bmc固件的版本号与系统当前bmc固件的版本号不一致,则从所述数据库中获取最新bmc固件的镜像文件;根据所述最新bmc固件的镜像文件,调用bmc固件升级脚本执行bmc固件升级操作。

可选地,所述获取模块具体为接收所述数据库发送的所述最新bmc固件的版本号的模块;其中,所述数据库在更新bmc固件得到最新bmc固件的版本号时,向对应系统发送所述最新bmc固件的版本号。

可选地,所述获取模块具体为按照预设周期访问所述数据库,查询所述数据库中所述最新bmc固件的版本号,并获取所述最新bmc固件的版本号的模块。

可选地,所述更新模块,包括:

更新单元,用于根据所述最新bmc固件的镜像文件,调用yafu工具执行bmc固件升级操作。

本发明还提供一种终端,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现上述所述bmc固件升级方法的步骤。

本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述所述bmc固件升级方法的步骤。

本发明所提供的bmc固件升级方法,包括:获取数据库中最新bmc固件的版本号;判断最新bmc固件的版本号与系统当前bmc固件的版本号是否一致;若不一致,则从数据库中获取最新bmc固件的镜像文件;根据最新bmc固件的镜像文件,调用bmc固件升级脚本执行bmc固件升级操作。

可见,该方法包含bmc固件的终端中的系统自动通过获取的最新bmc固件的版本号,判断系统当前bmc固件的版本号是否为最新版本号,并在判断出系统当前bmc固件的版本号不是最新版本号时,自动触发bmc固件升级操作,完成bmc固件升级;即各个包含bmc固件的终端都可以自动完成bmc固件升级的整个过程,避免了相关技术中由于人工手动的对一台一台的服务器来更新所带来的更新效率低且更新可靠性低的问题;本发明还提供了一种bmc固件升级装置、终端及计算机可读存储介质,具有上述有益效果,在此不再赘述。

附图说明

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

图1为本发明实施例所提供的bmc固件升级方法的流程图;

图2为本发明实施例所提供的bmc固件升级装置的结构框图。

具体实施方式

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

目前,当售后维护人员或者其他用户在更新bmc固件时,一般情况下均通过bmc提供的web界面对bmc进行单对单的固件升级。然而对于数量庞大的存储服务器系统环境,单对单的bmc固件升级显然是一个效率低下的方式,且由于极大依赖人工的操作容易出现操作失误。本实施例为了克服上述缺点,实现了完全自动化的bmc固件升级,提升了更新效率低以及极大地减少了售后人员的工作。具体请参考图1,图1为本发明实施例所提供的bmc固件升级方法的流程图;该方法可以包括:

s101:获取数据库中最新bmc固件的版本号。

本实施例中并不对执行主体进行限定,由于为了克服现有技术中人工一对一的对服务器进行bmc固件升级情况,因此采用各个包含bmc固件的终端各自自动执行bmc固件升级的整个过程,也可以理解为由包含bmc固件的终端中的系统自动执行bmc固件升级的整个过程。本实施例并不对终端的具体形式进行限定,只要其包含bmc固件,需要执行bmc固件升级即可,例如终端可以是服务器。本实施例中以终端作为执行主体进行说明。

本实施例为了实现完全自动化的执行bmc固件升级,因此需要能够自动触发bmc固件升级,也就是说需要自动识别何时执行bmc固件升级的操作,进而才能够实现自动化bmc固件升级过程。本实施例中终端通过对比bmc固件的版本号来确定当前终端中的系统中的bmc固件的版本号是否为最新版本号,进而确定是否需要触发bmc固件升级操作。即具体的,若系统当前bmc固件的版本号是最新版本号,则不需要触发bmc固件升级操作;若系统当前bmc固件的版本号不是最新版本号,则需要触发bmc固件升级操作。因此,为了实现该判断过程,终端需要获取当前最新bmc固件的版本号,进而实现将最新bmc固件的版本号与系统当前bmc固件的版本号进行比较的过程。也就是步骤s102。

本实施例并不对最新bmc固件的版本号的形式进行限定,例如最新bmc固件的版本号可以是单独存在的,也就是此时数据库中存在最新bmc固件的版本号以及最新bmc固件的版本号对应的最新bmc固件的镜像文件。当然也可以是最新bmc固件的版本号从最新bmc固件的镜像文件中获取,此时数据库中仅存在最新bmc固件的镜像文件。

本实施例中并不限定终端获取最新bmc固件的版本号的方式,例如可以是直接从存储最新bmc固件的版本号的数据库中获取。本实施例中并不对该数据库进行限定。各个终端可以均从一个数据库中获取到最新bmc固件的版本号。此时该数据库可以是远端数据库。本实施例中并不对该数据库中存储的内容进行限定,只要可以包含最新bmc固件的版本号,以及该最新bmc固件的版本号对应的最新bmc固件的镜像文件即可。也就是用户只需要在该数据库中更新最新bmc固件的版本号以及对应的最新bmc固件的镜像文件即可,终端就可以全程自动化实现bmc固件升级。

为了终端能够从该数据库中获取到该最新bmc固件的版本号以及对应的最新bmc固件的镜像文件,终端需要和该数据库建立连接。例如当终端为存储系统时,即存储系统与该数据库建立连接。本实施例中并不限定终端与数据库连接的方式,例如网络连接。本实施例中也不限定终端与数据库连接的时机,例如可以是终端与数据库一直处于连接的状态,或者是在当两者需要进行数据交互时才建立连接。其可以根据数据库与终端的交互方式来确定终端与数据库的连接方式。

本实施例中也不限定获取数据库中最新bmc固件的版本号的形式。例如可以是终端访问数据库获取该最新bmc固件的版本号,当然也可以是数据库向终端发送该最新bmc固件的版本号。当然,本实施例也不限定获取数据库中最新bmc固件的版本号的时机。例如可以是终端按照预设周期或者是接收到获取指令时,访问数据库并从中获取到数据库中最新bmc固件的版本号。或者是数据库在完成更新最新bmc固件的版本号后,直接向对应终端(例如与数据库相连接的终端)发送该最新bmc固件的版本号。

本实施例中,当终端主动获取最新bmc固件的版本号时,步骤s101的具体过程可以是:按照预设周期访问数据库,查询数据库中最新bmc固件的版本号,并获取最新bmc固件的版本号。具体的,本实施例中并不对预设周期的具体数值进行限定,用户可以根据实际应用场景进行设置。例如可以是实时进行,即会实时从远端数据库同步最新bmc固件的版本号。本实施例中也不限定查询以及获取的具体过程。例如可以是查询到最大的版本号就可以直接获取该最大版本号作为最新bmc固件的版本号。也可以是查询到更新日期最近的版本号作为最新bmc固件的版本号。也可以是判断上次访问到本次访问之间是否更新过,若未更新过,则可以直接不获取最新bmc固件的版本号,只有在其更新过才获取最新bmc固件的版本号。用户可以根据实际应用场景以及数据库更新版本号以及对应镜像文件的具体方式确定具体查询以及获取的过程。

当数据库主动向终端发送最新bmc固件的版本号时,步骤s101的具体过程可以是:接收数据库发送的最新bmc固件的版本号;其中,数据库在更新bmc固件得到最新bmc固件的版本号时,向对应系统发送最新bmc固件的版本号。具体的,本实施例中通过数据库在获取最新bmc固件的版本号时,直接向终端发送最新bmc固件的版本号,可以避免终端的周期访问,降低终端的操作量,进而减少终端由于执行步骤s101对硬件的占用。

s102:判断最新bmc固件的版本号与系统当前bmc固件的版本号是否一致;若否(即最新bmc固件的版本号与系统当前bmc固件的版本号不一致),则进入步骤s103。若是(即最新bmc固件的版本号与系统当前bmc固件的版本号一致),则证明系统当前bmc固件不需要更新,已经是最新版本。

具体的,若系统当前bmc固件的版本号是最新版本号,则不需要触发bmc固件升级操作;若系统当前bmc固件的版本号不是最新版本号,则需要触发bmc固件升级操作。

s103:从数据库中获取最新bmc固件的镜像文件。

s104:根据最新bmc固件的镜像文件,调用bmc固件升级脚本执行bmc固件升级操作。

步骤s103和步骤s104是在最新bmc固件的版本号与系统当前bmc固件的版本号不一致时,执行的具体步骤,为了实现bmc固件升级操作,即完成bmc固件的自动升级。本实施例中终端利用从数据库中获取的最新bmc固件的镜像文件以及bmc固件升级脚本实现自动对bmc固件升级操作。

本实施例中并不限定步骤s103的具体执行顺序,其可以是在步骤s102之后,也就是在判断出最新bmc固件的版本号与系统当前bmc固件的版本号不一致之后执行,也就是本实施例中步骤s103执行。当然也可以是在获取数据库中最新bmc固件的版本号时直接一起获取最新bmc固件的版本号对应的最新bmc固件的镜像文件。可以理解的是,在步骤s103执行获取最新bmc固件的镜像文件的操作可以避免在最新bmc固件的版本号与系统当前bmc固件的版本号一致也不必要获取最新bmc固件的镜像文件的情况出现,提高了系统效率。

需要说明的是,本实施例中也不限定bmc固件升级脚本的具体内容,只要可以实现自动化执行bmc固件升级操作即可。用户可以参考相关技术中的利用镜像文件升级bmc固件的升级过程的脚本的具体内容。例如,根据最新bmc固件的镜像文件,调用yafu工具(一种开源固件升级工具)执行bmc固件升级操作。即用开源的升级bmc的yafu工具,执行对应的系统调用即可。

本实施例中自动化执行的各个过程可以单独创建一个线程,在整个终端(如存储系统)正常启动完毕后,拉起。

基于上述技术方案,本发明实施例提供的bmc固件升级方法,通过软件实现bmc固件自动升级,终端(如存储系统)会周期性的访问跟它相连的数据库,更新最新bmc固件的版本号(或者是直接更新最新bmc固件的镜像文件,从该最新bmc固件的镜像文件确定最新的版本号),如果跟得到的最新版本不一致,则触发bmc固件的自动升级。从而避免了手动大规模升级bmc固件的操作,大大提升了产品的可维护性。即本发明实施例通过bmc固件自动升级,来代替繁琐的对每个bmc的点对点升级,从而提高了bmc固件升级效率以及售后维护人员的维护效率。

下面对本发明实施例提供的bmc固件升级装置、终端及计算机可读存储介质进行介绍,下文描述的bmc固件升级装置、终端及计算机可读存储介质与上文描述的bmc固件升级方法可相互对应参照。

请参考图2,图2为本发明实施例所提供的bmc固件升级装置的结构框图;该装置可以包括:

获取模块100,用于获取数据库中最新bmc固件的版本号;

判断模块200,用于判断最新bmc固件的版本号与系统当前bmc固件的版本号是否一致;

更新模块300,用于若最新bmc固件的版本号与系统当前bmc固件的版本号不一致,则从数据库中获取最新bmc固件的镜像文件;根据最新bmc固件的镜像文件,调用bmc固件升级脚本执行bmc固件升级操作。

基于上述实施例,获取模块100具体为接收数据库发送的最新bmc固件的版本号的模块;其中,数据库在更新bmc固件得到最新bmc固件的版本号时,向对应系统发送最新bmc固件的版本号。

基于上述实施例,获取模块100具体为按照预设周期访问数据库,查询数据库中最新bmc固件的版本号,并获取最新bmc固件的版本号的模块。

基于上述任意实施例,更新模块300可以包括:

更新单元,用于根据最新bmc固件的镜像文件,调用yafu工具执行bmc固件升级操作。

需要说明的是,基于上述任意实施例,装置可以是基于可编程逻辑器件实现的,可编程逻辑器件包括fpga,cpld,单片机,处理器等。本实施例中可编程逻辑器件可以设置在终端(如存储系统或者服务器)中。

基于上述技术方案,本发明实施例提供的bmc固件升级装置,实现bmc固件的更新不再依赖于点对点的手动升级,而是通过将bmc的固件镜像文件和版本号同步到数据库中,终端会检验数据库中的版本号跟当前系统使用的版本是否一致,而后判断是否需要进行bmc固件升级。

本实施例还提供一种终端,包括:存储器,用于存储计算机程序;处理器,用于执行计算机程序时实现如上述任意实施例所述的bmc固件升级方法的步骤。如处理器执行计算机程序时实现获取数据库中最新bmc固件的版本号;判断最新bmc固件的版本号与系统当前bmc固件的版本号是否一致;若不一致,则从数据库中获取最新bmc固件的镜像文件;根据最新bmc固件的镜像文件,调用bmc固件升级脚本执行bmc固件升级操作。

具体的,本实施例并不对终端进行限定,例如可以是存储设备或者服务器等。

本实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述任意实施例所述的bmc固件升级方法的步骤。如计算机程序被处理器执行时实现获取数据库中最新bmc固件的版本号;判断最新bmc固件的版本号与系统当前bmc固件的版本号是否一致;若不一致,则从数据库中获取最新bmc固件的镜像文件;根据最新bmc固件的镜像文件,调用bmc固件升级脚本执行bmc固件升级操作。

该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

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

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本发明所提供的一种bmc固件升级方法、装置、终端及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

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