一种固件更新方法、装置及电子设备和存储介质与流程

文档序号:24305191发布日期:2021-03-17 00:57阅读:70来源:国知局
一种固件更新方法、装置及电子设备和存储介质与流程

本申请涉及计算机技术领域,更具体地说,涉及一种固件更新方法、装置及一种电子设备和一种计算机可读存储介质。



背景技术:

网卡的nisi(networkcontrollersidebandinterface)功能是一个由分布式管理任务组(distributedmanagementtaskforce,dmtf)定义的用于支持服务器带外管理的边带接口网络控制器的工业标准。

传统的ncsi固件升级,可以通过线下烧录的方式实现,需要将服务器先进行掉电,再将ncsi的flash取下,准备好固件升级文件,用烧录器将ima文件烧到flash上,再装回到服务器上,开机后获取网络信息确认更新成功。可见,上述方案需要单机操作,无法实现多个服务器固件的批量升级,效率较低。

因此,如何提高服务器的固件更新效率是本领域技术人员需要解决的技术问题。

申请内容

本申请的目的在于提供一种固件更新方法、装置及一种电子设备和一种计算机可读存储介质,提高了服务器的固件更新效率。

为实现上述目的,本申请提供了一种固件更新方法,应用于局域网内的主服务器,包括:

获取目标服务器的通信地址,并基于所述通信地址更新所述目标服务器的grub配置;其中,所述目标服务器为待更新固件的所有服务器;

配置生效后,向所述通信地址发送远程文件拷贝命令,以便将固件升级工具复制至所述目标服务器的操作系统下;

向所述目标服务器发送升级命令,以利用所述固件升级工具进行所述目标服务器的固件更新。

其中,所述获取目标服务器的通信地址之后,还包括:

通过局域网唤醒所述目标服务器。

其中,所述基于所述通信地址更新所述目标服务器的grub配置,包括:

基于所述通信地址更新所述目标服务器的grub配置文件,以便在所述目标服务器中执行grub配置动作;

升级完成后对所述目标服务器进行重启,以使grub配置生效。

其中,向所述目标服务器发送升级命令,以利用所述固件升级工具进行所述目标服务器的固件更新,包括:

向所述目标服务器发送升级命令,以赋予所述固件升级工具文件权限,执行所述固件升级工具进行所述目标服务器的固件更新。

其中,利用所述固件升级工具进行所述目标服务器的固件更新之后,还包括:

重启所述目标服务器,以完成所述目标服务器的固件更新。

其中,利用所述固件升级工具进行所述目标服务器的固件更新之后,还包括:

获取所述目标服务器的网络状态,并判断所述网络状态中是否包含所述目标服务器对应的所有网口的信息;

若是,则判定固件更新成功;

若否,则判定固件更新失败。

其中,还包括:

记录固件更新的结果和时间。

为实现上述目的,本申请提供了一种固件更新装置,应用于局域网内的主服务器,包括:

获取模块,用于获取目标服务器的通信地址,并基于所述通信地址更新所述目标服务器的grub配置;其中,所述目标服务器为待更新固件的所有服务器;

复制模块,用于配置生效后,基于所述通信地址将固件升级工具复制至所述目标服务器的操作系统下;

发送模块,用于向所述目标服务器发送升级命令,以利用所述固件升级工具进行所述目标服务器的固件更新。

为实现上述目的,本申请提供了一种电子设备,包括:

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

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

为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述固件更新方法的步骤。

通过以上方案可知,本申请提供的一种固件更新方法,应用于局域网内的主服务器,包括:获取目标服务器的通信地址,并基于所述通信地址更新所述目标服务器的grub配置;其中,所述目标服务器为待更新固件的所有服务器;配置生效后,向所述通信地址发送远程文件拷贝命令,以便将固件升级工具复制至所述目标服务器的操作系统下;向所述目标服务器发送升级命令,以利用所述固件升级工具进行所述目标服务器的固件更新。

本申请提供的固件更新方法,将待更新固件的服务器配置至同一局域网中,利用局域网中的主服务器实现目标服务器的固件的批量升级,避免了手动单机操作唤醒服务器、修改系统配置参数、重启系统、查看不同网口的通信结果的繁琐过程。由此可见,本申请提供的固件更新方法,提高了服务器的固件更新效率。本申请还公开了一种固件更新装置及一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:

图1为根据一示例性实施例示出的一种固件更新方法的流程图;

图2为根据一示例性实施例示出的一种固件更新装置的结构图;

图3为根据一示例性实施例示出的一种电子设备的结构图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。另外,在本申请实施例中,“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

本申请实施例公开了一种固件更新方法,提高了服务器的固件更新效率。

参见图1,根据一示例性实施例示出的一种固件更新方法的流程图,如图1所示,包括:

s101:获取目标服务器的通信地址,并基于所述通信地址更新所述目标服务器的grub配置;其中,所述目标服务器为待更新固件的所有服务器;

本实施例的执行主体为局域网内的主服务器,目的为对待更新固件的目标服务器进行批量固件更新。在具体实施中,选择多台服务器中的一台服务器作为主服务器,其余作为待更新固件的服务器,在同一局域网下,全部设置成dhcp(中文全称:动态主机配置协议,英文全称:dynamichostconfigurationprotocol)模式

在具体实施中,主服务器获取所有目标服务器的通信地址,可以包括ip(中文全称:网际互连协议,英文全称:internetprotocol)地址和mac地址,通过通信地址可以定位到具体的目标服务器,根据需求可以对一台或者多台服务器进行固件更新的操作。

主服务器通过局域网wol批量唤醒所有目标服务器,批量更新服务器的grub配置。作为一种可行实施方式,述基于所述通信地址更新所述目标服务器的grub配置,包括:基于所述通信地址更新所述目标服务器的grub配置文件,以便在所述目标服务器中执行grub配置动作;升级完成后对所述目标服务器进行重启,以使grub配置生效。在具体实施中,进入系统命令行或者进入系统终端,输入vim/etc/default/gru,打开配置文件后,找到grub_cmdline_linux_default=“splashquiet”,将引号中的内容更改为“splashquietiomem=relaxed”。配置修改完成后,host需要将所有服务器的新配置进行保存。主服务器批量将系统配置更改完成并保存后,需要在系统命令行或者终端执行update-grub的动作,配置升级需要一段时间,提示“done”代表更新完成。更新完成后需要对所有服务器执行系统重启的动作,新配置能生效,才能对ncsi执行下一步的固件更新操作。

s102:配置生效后,向所述通信地址发送远程文件拷贝命令,以便将固件升级工具复制至所述目标服务器的操作系统下;

在本步骤中,通过远程文件拷贝命令(securecopy,scp)远程批量将固件升级工具和image升级文档复制到目标服务器操作系统下,将文件赋予权限,以备下一步通过命令执行ncsi固件更新。

s103:向所述目标服务器发送升级命令,以利用所述固件升级工具进行所述目标服务器的固件更新。

在本步骤中,主服务器通过指令批量执行更新ncsi固件。执行步骤为,进入固件升级工具和ima升级文档包,给upgrade_image文件赋予权限,执行./upgrade_image-f进行固件更新,即本步骤包括:向所述目标服务器发送升级命令,以赋予所述固件升级工具文件权限,执行所述固件升级工具进行所述目标服务器的固件更新。

更新完成后,将所有服务器系统进行重启,系统重启一次,才能使固件更新同步完成。即本步骤之后,还包括:重启所述目标服务器,以完成所述目标服务器的固件更新。

作为一种优选实施方式,利用所述固件升级工具进行所述目标服务器的固件更新之后,还包括:获取所述目标服务器的网络状态,并判断所述网络状态中是否包含所述目标服务器对应的所有网口的信息;若是,则判定固件更新成功;若否,则判定固件更新失败。

在具体实施中,主服务器host通过ifconfig指令,获取所有服务器的网络状态,确认网络信息收否获取成功。成功的标准是,可以看到ncsi所有网口信息,比如ncsi有4个网口,则可以看到eno0、eno1、eno2、eno3四个网络的信息。否则判定为更新失败,重新执行本实施例中的步骤,直到获取正确的网络信息。

更新固件的结果不论是成功还是失败,都需要记录时间与结果,保存成txt.log,方便测试人员查看。即本实施例还包括:记录固件更新的结果和时间。

本申请实施例提供的固件更新方法,将待更新固件的服务器配置至同一局域网中,利用局域网中的主服务器实现目标服务器的固件的批量升级,避免了手动单机操作唤醒服务器、修改系统配置参数、重启系统、查看不同网口的通信结果的繁琐过程。由此可见,本申请实施例提供的固件更新方法,提高了服务器的固件更新效率。

下面对本申请实施例提供的一种固件更新装置进行介绍,下文描述的一种固件更新装置与上文描述的一种固件更新方法可以相互参照。

参见图2,根据一示例性实施例示出的一种固件更新装置的结构图,如图2所示,包括:

获取模块201,用于获取目标服务器的通信地址,并基于所述通信地址更新所述目标服务器的grub配置;其中,所述目标服务器为待更新固件的所有服务器;

复制模块202,用于配置生效后,基于所述通信地址将固件升级工具复制至所述目标服务器的操作系统下;

发送模块203,用于向所述目标服务器发送升级命令,以利用所述固件升级工具进行所述目标服务器的固件更新。

本申请实施例提供的固件更新装置,将待更新固件的服务器配置至同一局域网中,利用局域网中的主服务器实现目标服务器的固件的批量升级,避免了手动单机操作唤醒服务器、修改系统配置参数、重启系统、查看不同网口的通信结果的繁琐过程。由此可见,本申请实施例提供的固件更新装置,提高了服务器的固件更新效率。

在上述实施例的基础上,作为一种优选实施方式,还包括:

唤醒模块,用于通过局域网唤醒所述目标服务器。

在上述实施例的基础上,作为一种优选实施方式,所述获取模块201包括:

获取单元,用于获取目标服务器的通信地址;

更新单元,用于基于所述通信地址更新所述目标服务器的grub配置文件,以便在所述目标服务器中执行grub配置动作;

重启单元,用于升级完成后对所述目标服务器进行重启,以使grub配置生效。

在上述实施例的基础上,作为一种优选实施方式,所述发送模块203具体为向所述目标服务器发送升级命令,以赋予所述固件升级工具文件权限,执行所述固件升级工具进行所述目标服务器的固件更新的模块。

在上述实施例的基础上,作为一种优选实施方式,还包括:

重启模块,用于重启所述目标服务器,以完成所述目标服务器的固件更新。

在上述实施例的基础上,作为一种优选实施方式,还包括:

判断模块,用于获取所述目标服务器的网络状态,并判断所述网络状态中是否包含所述目标服务器对应的所有网口的信息;若是,则判定固件更新成功;若否,则判定固件更新失败。

在上述实施例的基础上,作为一种优选实施方式,还包括:

记录模块,用于记录固件更新的结果和时间。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

基于上述程序模块的硬件实现,且为了实现本申请实施例的方法,本申请实施例还提供了一种电子设备,图3为根据一示例性实施例示出的一种电子设备的结构图,如图3所示,电子设备包括:

通信接口1,能够与其它设备比如网络设备等进行信息交互;

处理器2,与通信接口1连接,以实现与其它设备进行信息交互,用于运行计算机程序时,执行上述一个或多个技术方案提供的固件更新方法。而所述计算机程序存储在存储器3上。

当然,实际应用时,电子设备中的各个组件通过总线系统4耦合在一起。可理解,总线系统4用于实现这些组件之间的连接通信。总线系统4除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为总线系统4。

本申请实施例中的存储器3用于存储各种类型的数据以支持电子设备的操作。这些数据的示例包括:用于在电子设备上操作的任何计算机程序。

可以理解,存储器3可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(rom,readonlymemory)、可编程只读存储器(prom,programmableread-onlymemory)、可擦除可编程只读存储器(eprom,erasableprogrammableread-onlymemory)、电可擦除可编程只读存储器(eeprom,electricallyerasableprogrammableread-onlymemory)、磁性随机存取存储器(fram,ferromagneticrandomaccessmemory)、快闪存储器(flashmemory)、磁表面存储器、光盘、或只读光盘(cd-rom,compactdiscread-onlymemory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(ram,randomaccessmemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(sram,staticrandomaccessmemory)、同步静态随机存取存储器(ssram,synchronousstaticrandomaccessmemory)、动态随机存取存储器(dram,dynamicrandomaccessmemory)、同步动态随机存取存储器(sdram,synchronousdynamicrandomaccessmemory)、双倍数据速率同步动态随机存取存储器(ddrsdram,doubledataratesynchronousdynamicrandomaccessmemory)、增强型同步动态随机存取存储器(esdram,enhancedsynchronousdynamicrandomaccessmemory)、同步连接动态随机存取存储器(sldram,synclinkdynamicrandomaccessmemory)、直接内存总线随机存取存储器(drram,directrambusrandomaccessmemory)。本申请实施例描述的存储器2旨在包括但不限于这些和任意其它适合类型的存储器。

上述本申请实施例揭示的方法可以应用于处理器2中,或者由处理器2实现。处理器2可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器2中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器2可以是通用处理器、dsp,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器2可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器3,处理器2读取存储器3中的程序,结合其硬件完成前述方法的步骤。

处理器2执行所述程序时实现本申请实施例的各个方法中的相应流程,为了简洁,在此不再赘述。

在示例性实施例中,本申请实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的存储器3,上述计算机程序可由处理器2执行,以完成前述方法所述步骤。计算机可读存储介质可以是fram、rom、prom、eprom、eeprom、flashmemory、磁表面存储器、光盘、或cd-rom等存储器。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

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