本发明涉及云数据技术领域,特别是涉及一种带外升级BMC的方法及装置。
背景技术:
当前,云计算逐渐被行业认可,云逐渐实现并付诸于实践,基础设施即服务、平台即服务、软件即服务都已成功落地,进入商用阶段。对于数据中心已经购买的服务器,其主板无法保证对新部件的兼容性,且不具备新的功能。但是,主板BMC的升级是比较危险和困难的事情,如果操作不当会造成主板损坏。而主板提供商也没有提供一种批量升级BMC的方法,一台一台升级BMC造成损害的几率提升。
技术实现要素:
本发明的目的是提供一种带外升级BMC的方法及装置,以解决现有主板BMC升级过程不安全且不能批量进行的问题。
为解决上述技术问题,本发明提供一种带外升级BMC的方法,包括:
通过pxe服务器加载initramfs镜像;
根据配置文件的参数下载BMC升级所需要的升级文件以及升级工具;
通过所述升级文件以及所述升级工具确定升级的命令参数,根据所述命令参数创建对应的升级流程;
过滤选择待升级的服务器节点,根据所述服务器节点和所述升级流程实现BMC的升级。
可选地,所述通过pxe服务器加载initramfs镜像包括:
通过网络下载initramfs精简镜像,将agent功能模块添加入所述镜像中,以使系统加载时agent自动运行。
可选地,所述根据所述服务器节点和所述升级流程实现BMC的升级包括:
通过RabbitMQ获取升级过程中的任务信息,实现相应的任务管理。
可选地,在所述通过pxe服务器加载initramfs镜像之前还包括:
搭建DHCP服务器,配置pxe引导文件以及TFTP服务器地址,创建pxe网络环境。
可选地,在所述根据所述服务器节点和所述升级流程实现BMC的升级之后还包括:
调用相应的接口返回升级结果信息。
本发明还提供了一种带外升级BMC的装置,包括:
加载模块,用于通过pxe服务器加载initramfs镜像;
下载模块,用于根据配置文件的参数下载BMC升级所需要的升级文件以及升级工具;
创建模块,用于通过所述升级文件以及所述升级工具确定升级的命令参数,根据所述命令参数创建对应的升级流程;
升级模块,用于过滤选择待升级的服务器节点,根据所述服务器节点和所述升级流程实现BMC的升级。
可选地,所述加载模块具体为:通过网络下载initramfs精简镜像,将agent功能模块添加入所述镜像中,以使系统加载时agent自动运行的模块。
可选地,所述升级模块具体为:通过RabbitMQ获取升级过程中的任务信息,实现相应的任务管理的模块。
可选地,还包括:
环境搭建模块,用于在通过pxe服务器加载initramfs镜像之前,搭建DHCP服务器,配置pxe引导文件以及TFTP服务器地址,创建pxe网络环境。
可选地,还包括:
结果信息返回模块,用于在根据所述服务器节点和所述升级流程实现BMC的升级之后,调用相应的接口返回升级结果信息。
本发明所提供的带外升级BMC的方法及装置,通过pxe服务器加载initramfs镜像;根据配置文件的参数下载BMC升级所需要的升级文件以及升级工具;通过升级文件以及升级工具确定升级的命令参数,根据命令参数创建对应的升级流程;过滤选择待升级的服务器节点,根据服务器节点和升级流程实现BMC的升级。本发明所提供的带外升级BMC的方法及装置,能够实现快速、安全、批量的BMC升级。通过本申请批量升级BMC,避免了人工操作的失误,提高了BMC升级的可靠性。
附图说明
为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所提供的带外升级BMC的方法的一种具体实施方式的流程图;
图2为本发明实施例提供的带外升级BMC的装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明所提供的带外升级BMC的方法的一种具体实施方式的流程图如图1所示,该方法包括:
步骤S101:通过pxe服务器加载initramfs镜像;
步骤S102:根据配置文件的参数下载BMC升级所需要的升级文件以及升级工具;
步骤S103:通过所述升级文件以及所述升级工具确定升级的命令参数,根据所述命令参数创建对应的升级流程;
通过获取到的BMC的升级文件和升级工具能够得到BMC升级的命令参数,上传升级工具和升级文件到FTP服务器,根据相应的命令参数能够创建一个流程。
步骤S104:过滤选择待升级的服务器节点,根据所述服务器节点和所述升级流程实现BMC的升级。
过滤选择要升级的服务器节点,根据MAC地址和选择的流程实现BMC升级。根据流程创建相应的pxe配置文件。
本发明所提供的带外升级BMC的方法,通过pxe服务器加载initramfs镜像;根据配置文件的参数下载BMC升级所需要的升级文件以及升级工具;通过升级文件以及升级工具确定升级的命令参数,根据命令参数创建对应的升级流程;过滤选择待升级的服务器节点,根据服务器节点和升级流程实现BMC的升级。本发明所提供的带外升级BMC的方法,能够实现快速、安全、批量的BMC升级。通过本申请批量升级BMC,避免了人工操作的失误,提高了BMC升级的可靠性。
在上述实施例的基础上,本发明所提供的带外升级BMC的方法中,通过pxe服务器加载initramfs镜像包括:通过网络下载initramfs精简镜像,将agent功能模块添加入所述镜像中,以使系统加载时agent自动运行。
具体地,可以通过网络下载一个initramfs.img精简镜像,通过gzip-dc initramfs.img|cpio–div命令把此镜像解压缩到某个目录,然后把相应的agent功能模块添加进镜像中。通过gzip-dc initramfs.img|cpio–div可以得到所需镜像。
使用客户端网卡pxe引导功能,通过pxe服务器加载定制的initramfs.img镜像,此镜像包含一个特定的agent。加载此linux系统时会自动运行此agent,此agent会根据配置文件的参数下载BMC升级所需要的升级文件和升级工具等软件实现BMC升级。
进一步地,根据所述服务器节点和所述升级流程实现BMC的升级包括:
通过RabbitMQ获取升级过程中的任务信息,实现相应的任务管理。
具体地,可以根据用户选择的升级节点和使用的升级流程创建相应的升级配置信息。
针对BMC芯片使用升级工具(例如socflash)和文件以及升级方式的一致性,为了节省人力资源和基于一次创建、处处使用的原则,用户可以单独设定需要的升级工具和升级文件以及一些升级命令。
在上述任一实施例的基础上,本发明所提供的带外升级BMC的方法中,在所述通过pxe服务器加载initramfs镜像之前还可以包括:
搭建DHCP服务器,配置pxe引导文件以及TFTP服务器地址,创建pxe网络环境。
可选地,可使用第三方环境(cobbler),搭建DHCP服务器配置pxe引导文件及TFTP服务器地址,搭建TFTP服务器地址,设定TFTP服务器根目录,拷贝创建的initramfs镜像到TFTP目录,创建pxelinux.cfg目录。
作为一种具体实施方式,本申请在根据所述服务器节点和所述升级流程实现BMC的升级之后还可以包括:
调用相应的接口返回升级结果信息。
被升级节点升级完成后,调用相应的接口返回相应的升级情况为成功还是失败的结果信息。
下面对本发明实施例提供的带外升级BMC的装置进行介绍,下文描述的带外升级BMC的装置与上文描述的带外升级BMC的方法可相互对应参照。
图2为本发明实施例提供的带外升级BMC的装置的结构框图,参照图2带外升级BMC的装置可以包括:
加载模块100,用于通过pxe服务器加载initramfs镜像;
下载模块200,用于根据配置文件的参数下载BMC升级所需要的升级文件以及升级工具;
创建模块300,用于通过所述升级文件以及所述升级工具确定升级的命令参数,根据所述命令参数创建对应的升级流程;
升级模块400,用于过滤选择待升级的服务器节点,根据所述服务器节点和所述升级流程实现BMC的升级。
在上述实施例的基础上,本发明所提供的带外升级BMC的装置中,上述加载模块100可以具体为:通过网络下载initramfs精简镜像,将agent功能模块添加入所述镜像中,以使系统加载时agent自动运行的模块。
进一步地,上述升级模块400可以具体为:通过RabbitMQ获取升级过程中的任务信息,实现相应的任务管理的模块。
在上述任一实施例的基础上,本发明所提供的带外升级BMC的装置还可以进一步包括:
环境搭建模块,用于在通过pxe服务器加载initramfs镜像之前,搭建DHCP服务器,配置pxe引导文件以及TFTP服务器地址,创建pxe网络环境。
作为一种具体实施方式,本申请还可以包括:
结果信息返回模块,用于在根据所述服务器节点和所述升级流程实现BMC的升级之后,调用相应的接口返回升级结果信息。
本发明所提供的带外升级BMC的装置,通过pxe服务器加载initramfs镜像;根据配置文件的参数下载BMC升级所需要的升级文件以及升级工具;通过升级文件以及升级工具确定升级的命令参数,根据命令参数创建对应的升级流程;过滤选择待升级的服务器节点,根据服务器节点和升级流程实现BMC的升级。本发明所提供的带外升级BMC的装置,能够实现快速、安全、批量的BMC升级。通过本申请批量升级BMC,避免了人工操作的失误,提高了BMC升级的可靠性。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的带外升级BMC的方法以及装置进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。