一种通过BMC实现服务器BMC和BIOS批量升级方法与流程

文档序号:11253751阅读:2248来源:国知局

本发明涉及系统升级领域,特别涉及一种通过bmc实现服务器bmc和bios批量升级方法。



背景技术:

互联网时代对服务器的大规模部署的要求越来越高了,对于大规模服务器的集中操作已经成为一个非常重要的研究课题。服务器的bug修复、新功能增加、性能改良通常都是通过升级bmc&bios来实现,经常我们因为各种原因需要对服务器进行升级以适应我们的需求。

目前对于服务器bios升级的方法大多都是通过ssh远程登录,然后用烧录工具进行升级操作。这种方法对被升级服务器os有要求,需要支持ssh协议,需要网络必须打开。并且,如果bios里面包含me的时候还无法直接对me进行升级。而对于bmc批量升级的方法就更少了。



技术实现要素:

本发明提供一种通过bmc实现服务器bmc和bios批量升级方法,旨在提供一种非常简单且安全的升级的方式。

本发明提供一种通过bmc实现服务器bmc和bios批量升级方法,在带有升级bmc&biosfirmware的功能的服务器bmc中,进行以下步骤:

s1.从批量服务器bmc的ip列表中读取ip;

s2.读取bmc的fru信息判断服务器机型;

s3.根据服务器机型调用相应的脚本并获取当前firmware版本信息;

s4.对相应机型进行firmware升级;

s5.升级完成,并再次获取当前firmware版本信息,并和升级前对比,判断是否升级成功,若升级成功,则重复步骤s1,若升级失败,则执行步骤s6;

s6.检查原因,并判断原因为没有完成升级动作还是firmware版本提供错误。

作为本发明的进一步改进,所述步骤s2为通过ipmitool读取bmc的fru信息。

作为本发明的进一步改进,所述步骤s3中调用相应脚本之前,对每种版本的服务器编写一个升级脚本,并对相应的firmware版本做一个版本名表格。

作为本发明的进一步改进,所述步骤s3中获取当前firmware版本信息前,在每个服务器中新建一个firmware版本。

作为本发明的进一步改进,所述步骤s1之前还包括步骤s0.用到python的selenium模块对web页面进行自动化操作。

作为本发明的进一步改进,所述步骤s0中的python替换为java或c语言。

作为本发明的进一步改进,所述步骤s0中的selenium模块替换为splinter模块。

作为本发明的进一步改进,所述biosfirmware替换为sas卡firmware或expanderfirmware。

本发明的有益效果是:本发明操作简单,对os无需求,对os网络无要求;直接对烧入firmware,升级彻底;能够实现大规模无人值守升级;升级前后进行版本对比校验,确保升级已完成;能适应各种复杂环境,即使是不同类服务器需要升级不同版本的firmware也可以完成。

附图说明

图1是本发明一种通过bmc实现服务器bmc和bios批量升级方法的流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。

如图1所示,本发明的一种通过bmc实现服务器bmc和bios批量升级方法,在带有升级bmc&biosfirmware的功能的服务器bmc中,进行以下步骤:

s1.从批量服务器bmc的ip列表中读取ip;

s2.读取bmc的fru信息判断服务器机型;

s3.根据服务器机型调用相应的脚本并获取当前firmware版本信息;

s4.对相应机型进行firmware升级;

s5.升级完成,并再次获取当前firmware版本信息,并和升级前对比,判断是否升级成功,若升级成功,则重复步骤s1,若升级失败,则执行步骤s6;

s6.检查原因,并判断原因为没有完成升级动作还是firmware版本提供错误。

其中,步骤s2为通过ipmitool读取bmc的fru信息。

步骤s3中调用相应脚本之前,对每种版本的服务器编写一个升级脚本,并对相应的firmware版本做一个版本名表格。获取当前firmware版本信息前,在每个服务器中新建一个firmware版本。

步骤s1之前还包括步骤s0.用到python的selenium模块对web页面进行自动化操作。步骤s0中的python替换为java或c语言,selenium模块替换为splinter模块。

biosfirmware替换为sas卡firmware或expanderfirmware。

本发明通过bmc的web页面下的firmwareupdate功能对服务器的bmc&bios进行批量升级。所以被升级服务器的bmc要有升级bmc&biosfirmware的功能,现在一般带bmc的服务器都有这个功能。由于是web页面的自动化,所以需要用到python的selenium模块进行web自动化操作。并且我们需要知道批量服务器的bmc的ip列表。

要针对不同品牌的服务器,对每种版本服务器编写一个升级脚本,并且对相应的firmware版本做一个版本名表格以方便升级后检查是否升级成功。

本发明专利提供一种非常方便且可靠性较高的firmware升级办法。如果在设计之初将其他firmware版本升级也纳入bmc,那么也可以通过bmc升级如sas卡firmware,expanderfirmware等。同时通过本专利还可以实现bmc&bios设置的批量更改,只需要build一个firmware版本,版本的默认设置就是我们需要设置要求,然后通过升级firmware实现配置批量更改。另外,为了实现本专利,不仅可以用python还可以用java或者c,使用模块也不局限于selenium,还可以用splinter等。

bmc(baseboardmanagementcontroller):基板管理控制器

ipmi(intelligentplatformmanagementinterface):智能平台管理接口(ipmi)是一种开放标准的硬件管理接口规格,定义了嵌入式管理子系统进行通信的特定方法。ipmi信息通过基板管理控制器(bmc)(位于ipmi规格的硬件组件上)进行交流。

bios:英文"basicinputoutputsystem"的缩略词,直译过来后中文名称就是"基本输入输出系统"。其实,它是一组固化到计算机内主板上一个rom芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从cmos中读写系统设置的具体信息。其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。

ipmitool:ipmitool是一种可用在linux系统下的命令行方式的ipmi平台管理工具,它支持ipmi1.5规范(最新的规范为ipmi2.0),通过它可以实现获取传感器的信息、显示系统日志内容、网络远程开关机等功能。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

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