本申请涉及服务器技术领域,特别涉及一种bios异步升级的方法;还涉及一种bios异步升级的装置、设备以及计算机可读存储介质。
背景技术:
当今信息社会,服务器已被越来越广泛的应用。随着服务器数量的增多,对服务器的管理也变得日益复杂。bmc(baseboardmanagementcontroller,基板管理控制器)作为服务器带外管理的重要工具,其作用日益凸显。bmc作为客户管理服务器的重要接口,除了会借助相关传感器监控服务器状态,记录操作日志外等外,还负责升级服务器上的相关固件。bmc作为固件升级的桥梁,通过接收固件并将固件刷写入相关部件而实现固件升级。目前,固件升级的方式为bmc接收通过网络上传的本地升级的镜像文件后对镜像文件进行验证,并当验证通过后将镜像文件写入flash中,进而完成固件升级。然而,针对bios(basicinputoutputsystem,基本输入输出系统)的固件升级,由于bios镜像通常比较大,致使bios镜像上传过程中会占用较大的带宽。另外,由于bios镜像较大,因此上传后的bios镜像只能存放在内存中,当bmc重启后bios镜像会丢失,需重新启动固件升级流程。
有鉴于此,如何节省带宽以及空间占用,提高固件升级效率已成为本领域技术人员亟待解决的技术问题。
技术实现要素:
本申请的目的是提供一种bios异步升级的方法,能够有效节省带宽以及空间占用,提高固件升级效率。本申请的另一目的是提供一种bios异步升级的装置、设备以及计算机可读存储介质,均具有上述技术效果。
为解决上述技术问题,本申请提供一种bios异步升级的方法,包括:
利用压缩工具对bios镜像文件进行压缩得到bios镜像压缩文件;
为所述bios镜像压缩文件设置压缩标记;
将所述bios镜像压缩文件及所述压缩标记通过网络发送至bmc,以使所述bmc在接收所述bios镜像压缩文件与所述压缩标记后,识别所述压缩标记并将所述bios镜像压缩文件存储至flash,且在将所述flash中的所述bios镜像压缩文件解压至内存中后,依据解压后的镜像文件进行固件升级操作。
可选的,所述利用压缩工具对bios镜像文件进行压缩得到bios镜像压缩文件,包括:
利用所述压缩工具对所述bios镜像文件的镜像主体进行压缩,得到主体压缩文件;
将所述主体压缩文件与所述bios镜像文件的镜像头部拼接,得到所述bios镜像压缩文件。
可选的,所述为所述bios镜像压缩文件设置压缩标记,包括:
为所述bios镜像文件的镜像头部添加ome域;
通过置位所述ome域为所述bios镜像压缩文件设置压缩标记。
可选的,所述通过置位所述ome域为所述bios镜像压缩文件设置压缩标记,包括:
通过置位所述ome域中的目标位为所述bios镜像压缩文件设置压缩标记。
可选的,所述压缩工具具体为zip压缩工具。
为解决上述技术问题,本申请还提供了一种bios异步升级的装置,包括:
镜像文件压缩模块,用于利用压缩工具对bios镜像文件进行压缩得到bios镜像压缩文件;
压缩标记设置模块,用于为所述bios镜像压缩文件设置压缩标记;
压缩文件发送模块,用于将所述bios镜像压缩文件及所述压缩标记通过网络发送至bmc,以使所述bmc在接收所述bios镜像压缩文件与所述压缩标记后,识别所述压缩标记并将所述bios镜像压缩文件存储至flash,且在将所述flash中的所述bios镜像压缩文件解压至内存中后,依据解压后的镜像文件进行固件升级操作。
可选的,所述镜像文件压缩模块包括:
压缩单元,用于利用所述压缩工具对所述bios镜像文件的镜像主体进行压缩,得到主体压缩文件;
拼接单元,用于将所述主体压缩文件与所述bios镜像文件的镜像头部拼接,得到所述bios镜像压缩文件。
可选的,所述压缩标记设置模块包括:
添加单元,用于为所述bios镜像文件的镜像头部添加ome域;
置位单元,用于通过置位所述ome域为所述bios镜像压缩文件设置压缩标记。
为解决上述技术问题,本申请还提供了一种bios异步升级的设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上任一项所述的bios异步升级的方法的步骤。
为解决上述技术问题,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述的bios异步升级的方法的步骤。
本申请所提供的bios异步升级的方法,包括:利用压缩工具对bios镜像文件进行压缩得到bios镜像压缩文件;为所述bios镜像压缩文件设置压缩标记;将所述bios镜像压缩文件及所述压缩标记通过网络发送至bmc,以使所述bmc在接收所述bios镜像压缩文件与所述压缩标记后,识别所述压缩标记并将所述bios镜像压缩文件存储至flash,且在将所述flash中的所述bios镜像压缩文件解压至内存中后,依据解压后的镜像文件进行固件升级操作。
可见,本申请所提供的bios异步升级的方法,在发送bios镜像文件前首先对bios镜像文件进行压缩,并设置压缩标记,进而通过网络将bios镜像压缩文件与压缩标记发送给bmc,从而可以有效节省带宽资源。另外,压缩后的bios镜像压缩文件占用的存储空间变小,因此bmc接收bios镜像压缩文件后可将bios镜像压缩文件存入空闲的非易失性存储中,后续即使bmc掉电,也可不再依赖外部环境而恢复升级环境进行固件升级。
本申请所提供的bios异步升级的装置、设备以及计算机可读存储介质均具有上述技术效果。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种bios异步升级的方法的流程示意图;
图2为本申请实施例所提供的一种bios异步升级的装置的示意图;
图3为本申请实施例所提供的一种bios异步升级的设备的示意图。
具体实施方式
本申请的核心是提供一种bios异步升级的方法,能够有效节省带宽以及空间占用,提高固件升级效率。本申请的另一核心是提供一种bios异步升级的装置、设备以及计算机可读存储介质,均具有上述技术效果。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例所提供的一种bios异步升级的方法的示意图,参考图1所示,该方法主要包括以下步骤:
s101:利用压缩工具对bios镜像文件进行压缩得到bios镜像压缩文件;
具体的,本步骤旨在压缩bios镜像文件,得到bios镜像压缩文件。具体而言,编译服务器在上传bios镜像文件前,首先利用压缩工具对bios镜像文件进行压缩,得到bios镜像压缩文件,以后续通过网络上传压缩后的bios镜像压缩文件,节省带宽资源以及减少存储空间占用。
其中,在一种具体的实施方式中,上述利用压缩工具对bios镜像文件进行压缩得到bios镜像压缩文件包括:利用所述压缩工具对所述bios镜像文件的镜像主体进行压缩,得到主体压缩文件;将所述主体压缩文件与所述bios镜像文件的镜像头部拼接,得到所述bios镜像压缩文件。
具体的,bios镜像文件(img)包括镜像主体(img_body)与镜像头部(img_header)两部分,对于bios镜像文件的镜像主体与镜像头部,本实施例仅利用压缩工具对其中的镜像主体进行压缩,得到主体压缩文件,进而在压缩得到主体压缩文件的基础上,再将主体压缩文件与镜像头部进行拼接,从而得到bios镜像压缩文件。
进一步,上述压缩工具具体为zip压缩工具。
具体的,普通的bios镜像文件为了烧写方便,会对bios镜像文件进行填充,使其和要刷写到的目标flash一样大,通常为32mb。由于大量填充数据的存在,导致压缩率较大。为此,为进一步降低压缩后的bios镜像压缩文件的大小,本实施例中,压缩工具具体选用zip压缩工具,即利用zip压缩工具对bios镜像文件的镜像主体进行压缩,以将32mb的镜像文件压缩为不超过8mb大小。
s102:为bios镜像压缩文件设置压缩标记;
具体的,本步骤旨在设置压缩标记,以使bmc在接收到压缩标记后,识别此压缩标记判定接收到的镜像文件为压缩文件。
其中,在一种具体的实施方式中,上述为所述bios镜像压缩文件设置压缩标记可以包括:为所述bios镜像的镜像头部添加ome域;通过置位所述ome域为所述bios镜像压缩文件设置压缩标记。
具体的,本实例提供了一种设置压缩标记的具体方式,即为bios镜像文件的镜像头部添加ome域,并在为bios镜像文件的镜像头部添加ome域的后,置位此ome域,从而实现设置压缩标记的目的。
可以明白的是,对于本实施例所提供的压缩标记的设置方式,上述利用压缩工具对bios镜像文件的镜像主体进行压缩,得到主体压缩文件,并将主体压缩文件与镜像头部拼接得到bios镜像压缩文件的方式相适应的具体为:
利用zip压缩工具对bios镜像文件的镜像主体进行压缩得到压缩镜像主体(img_body_zip),为bios镜像文件的镜像头部添加ome域并置位ome域后,将添加了ome域后的镜像头部与压缩镜像主体(img_body_zip)进行拼接,从而得到bios镜像压缩文件(img_zip)。
另外,在一种具体的实施方式中,上述通过置位所述ome域为所述bios镜像压缩文件设置压缩标记包括:通过置位所述ome域中的目标位为所述bios镜像压缩文件设置压缩标记。
具体而言,本实施例提供了一种简单有效的设置压缩标记的方式,即以ome域中的某一位为压缩标记位,通过置位此压缩标记位而设置压缩标记。例如,将此压缩标记位置为1,表示镜像主体是经过压缩的,相反,压缩标记位为0则表示镜像主体未经压缩。bmc通过识别ome域中压缩标记位的值即可确定镜像主体是否经过压缩。
需要说明书的是,上述通过置位ome域设置压缩标记的方式仅为本实施例所提供的一种具体的实施方式,而非唯一限定,还可以采取其他的方式,具体根据实际应用需要进行相适应的设置即可。
s103:将所述bios镜像压缩文件及所述压缩标记通过网络发送至bmc,以使所述bmc在接收所述bios镜像压缩文件与所述压缩标记后,识别所述压缩标记并将所述bios镜像压缩文件存储至flash,且在将所述flash中的所述bios镜像压缩文件解压至内存中后,依据解压后的镜像文件进行固件升级操作。
具体的,bmc接收bios镜像压缩文件以及压缩标记后,识别此压缩标记判定镜像主体为压缩镜像,首先将bios镜像压缩文件存储到flash中,并进一步将bios镜像压缩文件解压至内存中,进而对解压后的镜像文件进行验证以及升级等操作。因为异步升级时,需要一个升级的触发时机,即升级的任务启动后还需等到条件符合的时候进行升级操作,若在条件不具备时,bmc因为维护等原因而重启,导致内存中的镜像文件在重启过程中丢失,此时因为在flash中备份有压缩的bios镜像文件,故在bmc重启后,可重新解压flash中的压缩文件,恢复之前的升级环境,无需依赖外部环境即可在bmc重启后正常进行固件升级。
对于bmc依据解压后的镜像文件进行固件升级操作的具体过程,本申请在此不作赘述,参考现有的相关技术即可。
综上所述,本申请所提供的bios异步升级的方法,包括利用压缩工具对bios镜像文件进行压缩得到bios镜像压缩文件;为所述bios镜像压缩文件设置压缩标记;将所述bios镜像压缩文件及所述压缩标记通过网络发送至bmc,以使所述bmc在接收所述bios镜像压缩文件与所述压缩标记后,识别所述压缩标记并将所述bios镜像压缩文件存储至flash,且在将所述flash中的所述bios镜像压缩文件解压至内存中后,依据解压后的镜像文件进行固件升级操作。该bios异步升级的方法,在发送bios镜像文件前首先对bios镜像文件进行压缩,并设置压缩标记,进而通过网络将bios镜像压缩文件与压缩标记发送给bmc,从而可以有效节省带宽资源。另外,压缩后的bios镜像压缩文件占用的存储空间变小,因此bmc接收bios镜像压缩文件后可将bios镜像压缩文件存入空闲的非易失性存储中,后续即使bmc掉电,也可不再依赖外部环境而恢复升级环境进行固件升级。
还需要说明的是,本申请所提供的bios异步升级的方法的思想同样适用于psu(powersupplyunit,电源组件)、cpld(complexprogrammablelogicdevice,复杂可编程逻辑器件)等固件升级。
本申请还提供了一种bios异步升级的装置,下文描述的该装置可以与上文描述的方法相互对应参照。请参考图2,图2为本申请实施例所提供的一种bios异步升级的装置的示意图,结合图2所示,该装置包括:
镜像文件压缩模块10,用于利用压缩工具对bios镜像文件进行压缩得到bios镜像压缩文件;
压缩标记设置模块20,用于为所述bios镜像压缩文件设置压缩标记;
压缩文件发送模块30,用于将所述bios镜像压缩文件及所述压缩标记通过网络发送至bmc,以使所述bmc在接收所述bios镜像压缩文件与所述压缩标记后,识别所述压缩标记并将所述bios镜像压缩文件存储至flash,且在将所述flash中的所述bios镜像压缩文件解压至内存中后,依据解压后的镜像文件进行固件升级操作。
在上述实施例的基础上,可选的,所述镜像文件压缩模块10包括:
压缩单元,用于利用所述压缩工具对所述bios镜像文件的镜像主体进行压缩,得到主体压缩文件;
拼接单元,用于将所述主体压缩文件与所述bios镜像文件的镜像头部拼接,得到所述bios镜像压缩文件。
在上述实施例的基础上,可选的,所述压缩标记设置模块20包括:
添加单元,用于为所述bios镜像文件的镜像头部添加ome域;
置位单元,用于通过置位所述ome域为所述bios镜像压缩文件设置压缩标记。
在上述实施例的基础上,可选的,置位单元具体用于通过置位所述ome域中的目标位为所述bios镜像压缩文件设置压缩标记。
在上述实施例的基础上,可选的,所述压缩单元具体用于利用zip压缩工具对所述bios镜像的镜像主体进行压缩,得到所述主体压缩文件。
本申请还提供了一种bios异步升级的设备,参考图3所示,该设备包括存储器1和处理器2。
存储器1,用于存储计算机程序;
处理器2,用于执行计算机程序实现如下的步骤:
利用压缩工具对bios镜像文件进行压缩得到bios镜像压缩文件;为所述bios镜像压缩文件设置压缩标记;将所述bios镜像压缩文件及所述压缩标记通过网络发送至bmc,以使所述bmc在接收所述bios镜像压缩文件与所述压缩标记后,识别所述压缩标记并将所述bios镜像压缩文件存储至flash,且在将所述flash中的所述bios镜像压缩文件解压至内存中后,依据解压后的镜像文件进行固件升级操作。
对于本申请所提供的设备的介绍请参照上述方法实施例,本申请在此不做赘述。
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如下的步骤:
利用压缩工具对bios镜像文件进行压缩得到bios镜像压缩文件;为所述bios镜像压缩文件设置压缩标记;将所述bios镜像压缩文件及所述压缩标记通过网络发送至bmc,以使所述bmc在接收所述bios镜像压缩文件与所述压缩标记后,识别所述压缩标记并将所述bios镜像压缩文件存储至flash,且在将所述flash中的所述bios镜像压缩文件解压至内存中后,依据解压后的镜像文件进行固件升级操作。
该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
对于本申请所提供的计算机可读存储介质的介绍请参照上述方法实施例,本申请在此不做赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、设备以及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的bios异步升级的方法、装置、设备以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围。
1.一种bios异步升级的方法,其特征在于,包括:
利用压缩工具对bios镜像文件进行压缩得到bios镜像压缩文件;
为所述bios镜像压缩文件设置压缩标记;
将所述bios镜像压缩文件及所述压缩标记通过网络发送至bmc,以使所述bmc在接收所述bios镜像压缩文件与所述压缩标记后,识别所述压缩标记并将所述bios镜像压缩文件存储至flash,且在将所述flash中的所述bios镜像压缩文件解压至内存中后,依据解压后的镜像文件进行固件升级操作。
2.根据权利要求1所述的bios异步升级的方法,其特征在于,所述利用压缩工具对bios镜像文件进行压缩得到bios镜像压缩文件,包括:
利用所述压缩工具对所述bios镜像文件的镜像主体进行压缩,得到主体压缩文件;
将所述主体压缩文件与所述bios镜像文件的镜像头部拼接,得到所述bios镜像压缩文件。
3.根据权利要求2所述的bios异步升级的方法,其特征在于,所述为所述bios镜像压缩文件设置压缩标记,包括:
为所述bios镜像文件的镜像头部添加ome域;
通过置位所述ome域为所述bios镜像压缩文件设置压缩标记。
4.根据权利要求3所述的bios异步升级的方法,其特征在于,所述通过置位所述ome域为所述bios镜像压缩文件设置压缩标记,包括:
通过置位所述ome域中的目标位为所述bios镜像压缩文件设置压缩标记。
5.根据权利要求4所述的bios异步升级的方法,其特征在于,所述压缩工具具体为zip压缩工具。
6.一种bios异步升级的装置,其特征在于,包括:
镜像文件压缩模块,用于利用压缩工具对bios镜像文件进行压缩得到bios镜像压缩文件;
压缩标记设置模块,用于为所述bios镜像压缩文件设置压缩标记;
压缩文件发送模块,用于将所述bios镜像压缩文件及所述压缩标记通过网络发送至bmc,以使所述bmc在接收所述bios镜像压缩文件与所述压缩标记后,识别所述压缩标记并将所述bios镜像压缩文件存储至flash,且在将所述flash中的所述bios镜像压缩文件解压至内存中后,依据解压后的镜像文件进行固件升级操作。
7.根据权利要求6所述的bios异步升级的装置,其特征在于,所述镜像文件压缩模块包括:
压缩单元,用于利用所述压缩工具对所述bios镜像文件的镜像主体进行压缩,得到主体压缩文件;
拼接单元,用于将所述主体压缩文件与所述bios镜像文件的镜像头部拼接,得到所述bios镜像压缩文件。
8.根据权利要求7所述的bios异步升级的装置,其特征在于,所述压缩标记设置模块包括:
添加单元,用于为所述bios镜像文件的镜像头部添加ome域;
置位单元,用于通过置位所述ome域为所述bios镜像压缩文件设置压缩标记。
9.一种bios异步升级的设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述的bios异步升级的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的bios异步升级的方法的步骤。
技术总结