一种基于BMC的文件传输方法、装置、设备及介质与流程

文档序号:16200060发布日期:2018-12-08 06:31阅读:428来源:国知局
一种基于BMC的文件传输方法、装置、设备及介质与流程

本发明涉及文件传输领域,特别是涉及一种基于bmc的文件传输方法、装置、设备及介质。

背景技术

bmc是服务器上的基板管理系统,负责服务器的资产信息显示、硬件监控、散热调控、系统配置、远程监控、日志收集、故障诊断、系统维护等重要功能。

在本领域普遍的使用场景中,往往需要通过两个或多个bmc来实现对服务器的监控管理。在上述场景下,多个bmc中具有与用户直接交互的主bmc,主bmc通过提供网络接口与web页面响应用户的控制,其余的从bmc与主bmc直接交互以辅助主bmc工作,bmc之间通过uart接口进行连接,在此基础上,主bmc与从bmc上均运行有ipmi进程,进而主bmc基于ipmi协议向从bmc传输控制命令以对从bmc进行控制。

随着当前的用户需求不断增加,bmc之间不仅要传输控制命令,还需要进行数据文件的传输,但是由于bmc的系统中已经存在有一套针对于uart接口的命令发送机制,在此命令发送机制下,bmc之间传输的数据文件会被系统视为控制命令而被ipmi进程的命令处理函数拦截并校验,但是由于数据文件不符合控制命令既定的数据格式,因此会导致ipmi进程阻塞并崩溃,无法实现bmc之间数据文件的传输。

由此可见,提供一种基于bmc的文件传输方法,以实现bmc之间数据文件的传输,是本领域技术人员亟待解决的问题。



技术实现要素:

本发明的目的是提供一种基于bmc的文件传输方法,以实现bmc之间数据文件的传输。

为解决上述技术问题,本发明提供一种基于bmc的文件传输方法,包括:

第二bmc接收由第一bmc发送的表征发起文件传输的预设命令;

解析并响应预设命令,以停止基于uart接口运行的ipmi进程;

通过uart接口的通信函数接收由第一bmc传输的数据文件。

优选的,解析并响应预设命令,以停止基于uart接口运行的ipmi进程的步骤具体包括:

解析并响应预设命令,并将预设的标志变量的初始值修改为特征值;

通过预设进程监控标志变量,以当标志变量的值为特征值时,调用系统函数停止基于uart接口运行的ipmi进程。

优选的,在通过uart接口的通信函数接收由第一bmc传输的数据文件后,该方法进一步包括:

将标志变量的值修改为初始值,并调用系统函数重启第二bmc中的ipmi进程。

优选的,在调用系统函数停止基于uart接口运行的ipmi进程后,该方法进一步包括:

将ipmi进程的停止时刻与第二bmc的参数信息对应记录至日志文件中。

优选的,初始值为1,特征值为0。

优选的,数据文件具体为bin类型的镜像文件。

此外,本发明还提供一种bmc装置,包括:

命令接收模块,用于接收由第一bmc发送的表征发起文件传输的预设命令;

命令响应模块,用于解析并响应预设命令,以停止基于uart接口运行的ipmi进程;

数据接收模块,用于通过uart接口的通信函数接收由第一bmc传输的数据文件。

优选的,命令响应模块进一步包括:

变量修改模块,用于解析并响应预设命令,并将预设的标志变量的初始值修改为特征值;

监控调用模块,用于通过预设进程监控标志变量,以当标志变量的值为特征值时,调用系统函数停止基于uart接口运行的ipmi进程。

此外,本发明还提供一种基于bmc的文件传输设备,包括:

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

处理器,用于执行计算机程序时实现如上述的基于bmc的文件传输方法的步骤。

此外,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的基于bmc的文件传输方法的步骤。

本发明所提供的基于bmc的文件传输方法,通过第二bmc接收由第一bmc发送的表征发起文件传输的预设命令,进而对预设命令进行响应并停止自身中基于uart接口运行的ipmi进程,最终利用uart接口的通信函数接收由第一bmc传入的数据文件。本方法在进行bmc之间的数据文件传输时,停止接收数据文件的bmc所运行的ipmi进程,避免bmc之间传输的数据文件被基于uart接口所运行的ipmi进程既定的命令处理函数拦截并校验,进而避免ipmi进程阻塞并崩溃的情况发生,以此实现了bmc之间数据文件的传输。此外,本发明还提供一种基于bmc的文件传输装置、设备及介质,有益效果同上所述。

附图说明

为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种基于bmc的文件传输方法的流程图;

图2为本发明实施例提供的另一种基于bmc的文件传输方法的流程图;

图3为本发明实施例提供的一种bmc装置的结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。

本发明的核心是提供一种基于bmc的文件传输方法,以实现bmc之间数据文件的传输。本发明的另一核心是提供一种基于bmc的文件传输装置、设备及介质。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。

实施例一

图1为本发明实施例提供的一种基于bmc的文件传输方法的流程图。请参考图1,基于bmc的文件传输方法的具体步骤包括:

步骤s10:第二bmc接收由第一bmc发送的表征发起文件传输的预设命令。

需要说明的是,在本步骤中所指的bmc(baseboardmanagementcontroller,基板管理控制器)是独立于服务器系统的小型操作系统,往往被集成在服务器主板上,或是以pcie等各种形式插在服务器主板的芯片中。bmc支持行业标准的ipmi规范,该ipmi规范描述了已经内置到主板上的管理功能(本地或远程诊断、控制台支持、配置管理、硬件管理和故障排查)。本步骤中的第一bmc表征的是发起数据文件传输的bmc,第二bmc表征的是接收第一bmc所发送的数据文件的bmc,因此“第一bmc”与“第二bmc”与bmc自身的性能无关,而是根据具体场景下bmc的工作内容而定。本步骤中,所指的预设命令应是遵循ipmi协议而设置的控制命令,进而第一bmc向第二bmc传输预设命令后,第二bmc中的ipmi协议能够通过命令处理函数对控制命令进行解析以及响应。

步骤s11:解析并响应预设命令,以停止基于uart接口运行的ipmi进程。

uart(universalasynchronousreceiver/transmitter,通用异步收发传输器)用于异步通信,该总线双向通信,可以实现全双工传输和接收。在嵌入式设计中,uart接口用于主机与辅助设备之间的通信。

需要说明的是,由于ipmi进程是基于硬件上的连接而建立的逻辑进程,而在本发明中,bmc被承载于芯片中,而芯片之间通过uart接口连接,因此第一bmc与第二bmc之间ipmi进程的通信关系是基于uart接口建立的。可以理解的是,在第二bmc停止ipmi进程后,第一bmc与第二bmc之间ipmi进程的通信关系被切断,因此第一bmc向第二bmc传输的数据文件则不会再被视为控制命令而被第二bmc中的ipmi进程拦截并校验。

步骤s12:通过uart接口的通信函数接收由第一bmc传输的数据文件。

由于在本方法中,第一bmc与第二bmc之间基于uart接口建立数据传输关联,并且uart接口具有预设的通信函数,用于实现uart接口两端硬件设备的数据传输。因此在本步骤中,直接通过uart接口的通信函数将数据文件传输至第二bmc,以完成最终的数据传输。由于本步骤的重点在于避免使用ipmi进程所提供的传输机制传输数据文件,对于如何通过uart接口的通信函数传输数据文件以及通信函数的具体内容不作为重点内容,并且均为本领域技术人员所公知的内容,故在此不做赘述。

需要说明的是,本发明中所指的数据文件与控制命令的最根本区别点在于,数据文件的数据格式与控制命令的既定数据格式不同,并且数据文件的数据格式也难以转化为控制命令的既定数据格式。

本发明所提供的基于bmc的文件传输方法,通过第二bmc接收由第一bmc发送的表征发起文件传输的预设命令,进而对预设命令进行响应并停止自身中基于uart接口运行的ipmi进程,最终利用uart接口的通信函数接收由第一bmc传入的数据文件。本方法在进行bmc之间的数据文件传输时,停止接收数据文件的bmc所运行的ipmi进程,避免bmc之间传输的数据文件被基于uart接口所运行的ipmi进程既定的命令处理函数拦截并校验,进而避免ipmi进程阻塞并崩溃的情况发生,以此实现了bmc之间数据文件的传输。

实施例二

在上述实施例的基础上,本发明还提供以下一系列优选的实施方式。

图2为本发明实施例提供的另一种基于bmc的文件传输方法的流程图。图2中步骤s10以及步骤s12与图1相同,在此不再赘述。

如图2所示,作为一种优选的实施方式,步骤s11具体包括:

步骤s20:解析并响应预设命令,并将预设的标志变量的初始值修改为特征值。

步骤s21:通过预设进程监控标志变量,以当标志变量的值为特征值时,调用系统函数停止基于uart接口运行的ipmi进程。

需要说明的是,由于在本发明中bmc之间不仅需要传输控制命令,还可能传输数据文件,因此本实施方式中的标志变量用于表征的是当前bmc所传输的具体内容。当标志变量的值为特征值时,表示当前bmc之间需要传输的是数据文件,因此当响应表征数据文件传输的预设命令后,需要将预设的标志变量的初始值修改为特征值。预设进程对标志变量进行监控,进而当标志变量的值为特征值时,执行符合标志变量为特征值情况的操作,即调用系统函数停止基于uart接口运行的ipmi进程。通过标志变量的方式能够更加准确的告知预设进程执行相应的操作内容,并且由于标志变量的取值范围较广泛,因此能够通过标志变量的值对应多种情况下的操作内容,提高了可扩展性。

在上所述实施方式的基础上,作为一种优选的实施方式,在通过uart接口的通信函数接收由第一bmc传输的数据文件后,该方法进一步包括:

将标志变量的值修改为初始值,并调用系统函数重启第二bmc中的ipmi进程。

可以理解的是,本步骤中,当标志变量的值为初始值时表征bmc之间需要传输的是控制命令。考虑到bmc之间进行通信的大部分时间需要传输的是控制命令,为了避免bmc之间完成数据文件的传输后,ipmi进程关闭而对传输控制命令的传输造成影响,因此本实施方式中,在将数据文件传输至第二bmc后,将标志变量的值修改为初始值,并调用系统函数重启ipmi进程,以此确保bmc之间仍能够传输控制命令,保证bmc之间通信的整体可用性。

在上所述实施方式的基础上,作为一种优选的实施方式,在调用系统函数停止基于uart接口运行的ipmi进程后,该方法进一步包括:

将ipmi进程的停止时刻与第二bmc的参数信息对应记录至日志文件中。

在将ipmi进程的停止时刻与第二bmc的参数信息对应记录至日志文件后,能够通过日志文件获悉bmc之间各次传输数据文件的时刻以及各时刻下第二bmc的参数信息,在此需要说明的是,第二bmc的参数信息所能表征的是第二bmc在进行数据文件传输时的运行状态,进而在当bmc之间传输数据文件出现异常时,能够根据日志文件的内容分析异常的发生原因,提高对于异常情况的处理效率。

在上所述实施方式的基础上,作为一种优选的实施方式,初始值为1,特征值为0。

可以理解的是,初始值为1,特征值为0适用于bmc之间传输控制命令以及数据文件的情况,此实时方式中,对初始值以及特征值的设置相对简单,因此能够相对避免出现设置错误而导致整体可用性降低的情况。

此外,作为一种优选的实施方式,数据文件具体为bin类型的镜像文件。

由于在bmc的具体应用中,往往需要根据实际的使用需求对bmc的版本进行升级,由于bin类型的文件是bmc能够读取并解析的文件类型,因此可以将bmc的更新固件以bin类型的镜像文件的形式承载,以该镜像文件作为数据文件在bmc之间传输并通过该镜像文件对bmc的固件版本进行升级,进而仅通过人为的方式向某一bmc传入bin类型的镜像文件,即可将该bmc将镜像文件传输至其它bmc中并完成整体bmc的升级操作,相对提高了对bmc进行固件版本更新的效率。

实施例三

在上文中对于基于bmc的文件传输方法的实施例进行了详细的描述,本发明还提供一种与该方法对应的bmc装置,由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

图3为本发明实施例提供的一种bmc装置的结构图。本发明实施例提供的bmc装置,包括:

命令接收模块10,用于接收由第一bmc发送的表征发起文件传输的预设命令;

命令响应模块11,用于解析并响应预设命令,以停止基于uart接口运行的ipmi进程;

数据接收模块12,用于通过uart接口的通信函数接收由第一bmc传输的数据文件。

本发明所提供的基于bmc的文件传输装置,通过第二bmc接收由第一bmc发送的表征发起文件传输的预设命令,进而对预设命令进行响应并停止自身中基于uart接口运行的ipmi进程,最终利用uart接口的通信函数接收由第一bmc传入的数据文件。本装置在进行bmc之间的数据文件传输时,停止接收数据文件的bmc所运行的ipmi进程,避免bmc之间传输的数据文件被基于uart接口所运行的ipmi进程既定的命令处理函数拦截并校验,进而避免ipmi进程阻塞并崩溃的情况发生,以此实现了bmc之间数据文件的传输。

在实施例三的基础上,命令响应模块11进一步包括:

变量修改模块,用于解析并响应预设命令,并将预设的标志变量的初始值修改为特征值;

监控调用模块,用于通过预设进程监控标志变量,以当标志变量的值为特征值时,调用系统函数停止基于uart接口运行的ipmi进程。

实施例四

本发明还提供一种基于bmc的文件传输设备,包括:

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

处理器,用于执行所述计算机程序时实现如上述的基于bmc的文件传输方法的步骤。

本发明所提供的基于bmc的文件传输设备,通过第二bmc接收由第一bmc发送的表征发起文件传输的预设命令,进而对预设命令进行响应并停止自身中基于uart接口运行的ipmi进程,最终利用uart接口的通信函数接收由第一bmc传入的数据文件。本设备在进行bmc之间的数据文件传输时,停止接收数据文件的bmc所运行的ipmi进程,避免bmc之间传输的数据文件被基于uart接口所运行的ipmi进程既定的命令处理函数拦截并校验,进而避免ipmi进程阻塞并崩溃的情况发生,以此实现了bmc之间数据文件的传输。

本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的基于bmc的文件传输方法的步骤。

本发明所提供的基于bmc的文件传输的计算机可读存储介质,通过第二bmc接收由第一bmc发送的表征发起文件传输的预设命令,进而对预设命令进行响应并停止自身中基于uart接口运行的ipmi进程,最终利用uart接口的通信函数接收由第一bmc传入的数据文件。本计算机可读存储介质在进行bmc之间的数据文件传输时,停止接收数据文件的bmc所运行的ipmi进程,避免bmc之间传输的数据文件被基于uart接口所运行的ipmi进程既定的命令处理函数拦截并校验,进而避免ipmi进程阻塞并崩溃的情况发生,以此实现了bmc之间数据文件的传输。

以上对本发明所提供的一种基于bmc的文件传输方法、装置、设备及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

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