本发明涉及服务器技术领域,特别是涉及一种升级BIOS的方法。
背景技术:
目前,云计算逐渐被行业认可,云逐渐实现并付诸于实践,基础设施即服务、平台即服务、软件即服务都已成功落地,进行商用阶段。数据中心已经购买的服务器,其主板无法保证对新部件的兼容性及不具备新的功能。主板BIOS升级是一种比较危险和和困难的事情,一般只能人工对一台一台主机服务器进行升级,如果操作不当会造成服务器损坏,而且不能同时批量升级,主板提供商都没有提供一种批量升级BIOS的方法,一台一台升级BIOS造成损害的几率提升。
技术实现要素:
本发明的目的是提供一种升级BIOS的方法,以实现批量升级BIOS,减少对服务器的损害。
为解决上述技术问题,本发明提供一种升级BIOS的方法,该方法包括:
pxe服务器利用客户端网卡的pxe引导功能,加载initramfs.img镜像,所述initramfs.img镜像包含一个服务代理agent;
加载initramfs.img镜像时,linux系统自动运行所述服务代理agent;
所述服务代理agent根据配置文件的参数下载BIOS升级所需要的升级文件和升级工具,利用升级文件和升级工具对多个服务器同时进行BIOS升级。
优选的,所述配置文件为BIOS升级的配置文件,所述配置文件的参数包括服务器IP地址、NFS升级工具信息、升级流程信息、升级模式信息以及用于获取MAC地址信息的参数。
优选的,所述pxe服务器利用客户端网卡的pxe引导功能,加载initramfs.img镜像之前,还包括:
制作内存linux镜像;
搭建pxe网络。
优选的,所述制作内存linux镜像,包括:
从网络下载一个initramfs.img的精简镜像;
通过gzip-dc initramfs.img|cpio–div命令把所述精简镜像解压缩到一个预设目录下;
将agent功能模块添加进解压后的精简镜像中,在精简镜像中生成服务代理agent;
在精简镜像中,通过gzip-dc initramfs.img|cpio–div命令制作initramfs.img镜像。
优选的,所述搭建pxe网络,包括:
利用第三方环境cobbler,搭建DHCP服务器;
配置pxe引导文件及TFTP服务器地址,搭建TFTP服务器地址;
设置TFTP服务器根目录,复制initramfs.img镜像到TFTP服务器根目录,创建pxelinux.cfg目录。
优选的,所述服务代理agent根据配置文件的参数下载BIOS升级所需要的升级文件和升级工具,利用升级文件和升级工具对多个服务器同时进行BIOS升级,包括:
下载BIOS升级所需要的升级文件和升级工具;
依据所述升级文件和升级工具获取BIOS升级的命令参数,上传升级文件和升级工具到FTP服务器,根据所述BIOS升级的命令参数创建一个升级流程;
依据所述升级文件和BIOS升级的命令参数获取要升级的服务器节点的MAC地址;
根据所述MAC地址、升级流程及升级工具对要升级的所有服务器节点同时进行BIOS升级。
优选的,所述pxe服务器利用客户端网卡的pxe引导功能,从TFTP服务器中加载initramfs.img镜像。
优选的,所述服务代理agent根据配置文件的参数,从NFS系统中下载BIOS升级所需要的升级文件和升级工具。
本发明所提供的一种升级BIOS的方法,pxe服务器利用客户端网卡的pxe引导功能,加载initramfs.img镜像,所述initramfs.img镜像包含一个服务代理agent;加载initramfs.img镜像时,linux系统自动运行所述服务代理agent;所述服务代理agent根据配置文件的参数下载BIOS升级所需要的升级文件和升级工具,利用升级文件和升级工具对多个服务器同时进行BIOS升级。可见,通过加载initramfs.img镜像运行initramfs.img镜像中的服务代理agent,利用服务代理agent来下载升级文件和升级工具,通过升级文件和升级工具对多个服务器同时进行BIOS升级,如此完成对多个服务器的批量升级,不需要人工对一台一台服务器进行升级,减少对服务器的损害,所以该方法实现批量升级BIOS,减少对服务器的损害。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明所提供的一种升级BIOS的方法的流程图;
图2为本发明所提供的一种升级BIOS的方法的原理示意图。
具体实施方式
本发明的核心是提供一种升级BIOS的方法,以实现批量升级BIOS,减少对服务器的损害。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明所提供的一种升级BIOS的方法的流程图,该方法包括:
S11:pxe服务器利用客户端网卡的pxe引导功能,加载initramfs.img镜像,initramfs.img镜像包含一个服务代理agent;
S12:加载initramfs.img镜像时,linux系统自动运行服务代理agent;
S13:服务代理agent根据配置文件的参数下载BIOS升级所需要的升级文件和升级工具,利用升级文件和升级工具对多个服务器同时进行BIOS升级。
可见,通过加载initramfs.img镜像运行initramfs.img镜像中的服务代理agent,利用服务代理agent来下载升级文件和升级工具,通过升级文件和升级工具对多个服务器同时进行BIOS升级,如此完成对多个服务器的批量升级,不需要人工对一台一台服务器进行升级,减少对服务器的损害,所以该方法实现批量升级BIOS,减少对服务器的损害。
基于上述方法,具体的,所述配置文件为BIOS升级的配置文件,所述配置文件的参数包括服务器IP地址、NFS升级工具信息、升级流程信息、升级模式信息以及用于获取MAC地址信息的参数。
pxe服务器利用客户端网卡的pxe引导功能,加载initramfs.img镜像之前,还包括:制作内存linux镜像;搭建pxe网络。
进一步的,制作内存linux镜像的过程采用以下步骤实现:
S21:从网络下载一个initramfs.img的精简镜像;
S22:通过gzip-dc initramfs.img|cpio–div命令把精简镜像解压缩到一个预设目录下;
S23:将agent功能模块添加进解压后的精简镜像中,在精简镜像中生成服务代理agent;
S24:在精简镜像中,通过gzip-dc initramfs.img|cpio–div命令制作initramfs.img镜像。
进一步的,搭建pxe网络的过程采用以下步骤实现:
S31:利用第三方环境cobbler,搭建DHCP服务器;
S32:配置pxe引导文件及TFTP服务器地址,搭建TFTP服务器地址;
S33:设置TFTP服务器根目录,复制initramfs.img镜像到TFTP服务器根目录,创建pxelinux.cfg目录。
具体的,步骤S13优选采用以下步骤实现:
S1:下载BIOS升级所需要的升级文件和升级工具;
S2:依据升级文件和升级工具获取BIOS升级的命令参数,上传升级文件和升级工具到FTP服务器,根据BIOS升级的命令参数创建一个升级流程;
S3:依据升级文件和BIOS升级的命令参数获取要升级的服务器节点的MAC地址;
S4:根据MAC地址、升级流程及升级工具对要升级的所有服务器节点同时进行BIOS升级。
具体的,步骤S11中,pxe服务器利用客户端网卡的pxe引导功能,从TFTP服务器中加载initramfs.img镜像。
步骤S13中,服务代理agent根据配置文件的参数,从NFS系统中下载BIOS升级所需要的升级文件和升级工具。
具体的,本方法使用客户端网卡pxe引导功能,通过pxe服务器加载定制的initramfs.img镜像,此镜像包含一个特定的agent。加载此linux系统时会自动运行此agent,此agent会根据配置文件的参数下载BIOS升级所需要的升级文件和升级工具等软件实现BIOS升级,此方法可实现快速、安全、批量的BIOS升级。通过此方法批量升级BIOS,避免了人工操作的失误,提高了BIOS升级的可靠性。
更详细的,本方法中还包括升级流程、节点升级、任务操作、镜像配置。升级流程,主要是针对BIOS主要有award和ami两个版本,升级工具和文件以及升级方式的一致性。为了节省人力资源和基于一次创建处处使用的原则,用户可以单独设定需要的升级工具和升级文件以及一些升级命令。节点升级能为根据用户选择的升级节点和使用的升级流程创建相应的升级配置信息。任务操作是通过消息队列RabbitMQ获取相应的任务信息,实现相应的任务管理。镜像配置是根据相应的信息创建相应的pxe引导文件。可参考图2,图2为本发明所提供的一种升级BIOS的方法的原理示意图,有3个服务器节点,DHCP和TFTP指代服务器,为不同协议的服务器,FTP和NFS指代系统,为不同协议的系统,服务器节点从DHCP服务器或者TFTP服务器中获取initramfs.img镜像,利用initramfs.img镜像中的agent从FTP系统或者NFS系统中下载升级文件和升级工具,由升级文件和升级工具对这三个服务器同时进行BIOS升级。
详细的,基于本方法,具体实施方式如下:
环境搭建方面,有以下步骤:
(1)、内存linux镜像制作;
网络下载一个initramfs.img精简镜像,通过gzip-dc initramfs.img|cpio–div命令把此镜像解压缩到某个目录,然后把我们相应的agent功能模块添加进镜像中。通过gzip-dc initramfs.img|cpio–div制作我们自己的镜像。此agent可根据参数获取相应的文件和命令参数进行BIOS的升级。
(2)、Pxe网络环境搭建。
可使用第三方环境例如cobbler,搭建DHCP服务器配置pxe引导文件及TFTP服务器地址,搭建TFTP服务器地址,设定TFTP服务器根目录,拷贝步骤(1)中创建的initramfs镜像到TFTP目录,创建pxelinux.cfg目录。
操作方式方面,具体流程如下:
1、获取到BIOS的升级文件和升级工具已经了解BIOS升级的命令参数,上传升级工具和升级文件到FTP服务器,根据相应的命令参数创建一个流程;
2、过滤选择要升级的服务器节点根据MAC地址和选择的流程实现BIOS升级。根据流程创建相应的pxe配置文件;
3、被升级节点升级完成后调用相应的接口返回相应的升级情况,如成功或者失败。
综上,本发明所提供的一种升级BIOS的方法,pxe服务器利用客户端网卡的pxe引导功能,加载initramfs.img镜像,initramfs.img镜像包含一个服务代理agent;加载initramfs.img镜像时,linux系统自动运行服务代理agent;服务代理agent根据配置文件的参数下载BIOS升级所需要的升级文件和升级工具,利用升级文件和升级工具对多个服务器同时进行BIOS升级。可见,通过加载initramfs.img镜像运行initramfs.img镜像中的服务代理agent,利用服务代理agent来下载升级文件和升级工具,通过升级文件和升级工具对多个服务器同时进行BIOS升级,如此完成对多个服务器的批量升级,不需要人工对一台一台服务器进行升级,减少对服务器的损害,所以该方法实现批量升级BIOS,减少对服务器的损害。
以上对本发明所提供的一种升级BIOS的方法进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。