一种数据处理方法、系统、电子设备及存储介质与流程

文档序号:22758213发布日期:2020-10-31 09:56阅读:97来源:国知局
一种数据处理方法、系统、电子设备及存储介质与流程

本申请涉及计算机技术领域,特别涉及一种数据处理方法、系统、一种电子设备及一种存储介质。



背景技术:

随着计算机技术的发展,用户对存储设备的性能和可靠性的需求逐渐提高。为满足用户需求,存储设备供应商通常通过提升单板的复杂度以及单板冗余,达到可靠性、性能的要求。因此bmc(baseboardmanagementcontroller,基板管理控制器)与系统管理软件(如x86管理软件)之间的数据,且部分命令需要对低速设备读写。由于命令的执行时间不一致,且系统管理软件与bmc之间以单向的lpc(lowpincount)为通用传输通道,导致命令在系统管理软件堵塞严重,成为提升命令交互效率的关键点。

因此,如何提高系统管理软件的命令交互效率是本领域技术人员目前需要解决的技术问题。



技术实现要素:

本申请的目的是提供一种数据处理方法、系统、一种电子设备及一种存储介质,能够提高系统管理软件的命令交互效率。

为解决上述技术问题,本申请提供一种数据处理方法,应用于第一基板管理控制器,该数据处理方法包括:

接收系统管理软件下发的目标命令,确定所述目标命令的预计执行时长;

判断所述预计执行时长是否大于预设时长;

若是,则将所述目标命令存储至命令队列,并向所述系统管理软件返回应答信息,以便所述系统管理软件在接收到所述应答信息后下发新目标命令;

利用目标线程执行所述命令队列中的目标命令对应的数据处理操作。

可选的,将所述目标命令存储至命令队列包括:

判断所述目标命令是否为所述第一基板管理控制器对应的命令;

若是,则将所述目标命令存储至所述第一基板管理控制器的本地命令队列;

若否,则将所述目标命令存储至所述第一基板管理控制器的对端命令队列。

可选的,利用目标线程执行所述命令队列中的目标命令对应的数据处理操作,包括:

利用所述第一基板管理控制器的本端命令处理线程执行所述第一基板管理控制器的本地命令队列中的目标命令对应的数据处理操作,得到目标数据。

可选的,还包括:

将所述目标数据同步至第二基板管理控制器。

可选的,在将所述目标命令存储至所述第一基板管理控制器的对端命令队列之后,还包括:

将所述第一基板管理控制器的对端命令队列中的目标命令发送至第二基板管理控制器的本地命令队列,以便所述第二基本管理控制器的本地命令处理线程执行所述第二基板管理控制器的本地命令队列中的目标命令。

可选的,确定所述目标命令的预计执行时长包括:

确定所述目标命令的命令类型,并根据所述命令类型查询所述目标命令的所述预计执行时长;其中,所述命令类型包括设置类命令或查询类命令。

可选的,确定所述目标命令的预计执行时长包括:

查询所述目标命令的命令标识,利用命令执行时长表查询所述目标命令对应的预计执行时长;其中,所述命令执行时长表中存储有命令标识与命令执行时长的对应关系。

本申请还提供了一种数据处理系统,应用于第一基板管理控制器,该系统包括:

命令接收模块,用于接收系统管理软件下发的目标命令,确定所述目标命令的预计执行时长;

时长判断模块,用于判断所述预计执行时长是否大于预设时长;

应答模块,用于若所述预计执行时长大于预设时长,则将所述目标命令存储至命令队列,并向所述系统管理软件返回应答信息,以便所述系统管理软件在接收到所述应答信息后下发新目标命令;

数据处理模块,用于利用目标线程执行所述命令队列中的目标命令对应的数据处理操作。

本申请还提供了一种存储介质,其上存储有计算机程序,所述计算机程序执行时实现上述数据处理方法执行的步骤。

本申请还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现上述数据处理方法执行的步骤。

本申请提供了一种数据处理方法,应用于第一基板管理控制器,包括:接收系统管理软件下发的目标命令,确定所述目标命令的预计执行时长;判断所述预计执行时长是否大于预设时长;若是,则将所述目标命令存储至命令队列,并向所述系统管理软件返回应答信息,以便所述系统管理软件在接收到所述应答信息后下发新目标命令;利用目标线程执行所述命令队列中的目标命令对应的数据处理操作。

本申请在第一基板管理控制器接收到系统管理软件下发的目标命令后,确定目标命令的预计执行时长,若预计执行时长大于预设时长则将目标命令存储至命令队列,并直接向系统管理软件返回应答信息,以便系统管理软件下发新目标命令。上述实施方式将执行时间较长的命令添加至命令队列中异步执行,能够避免执行时间过长的目标命令阻塞系统管理软件中其他命令的发送,提高了系统管理软件的命令交互效率。本申请同时还提供了一种数据处理系统、一种电子设备和一种存储介质,具有上述有益效果,在此不再赘述。

附图说明

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

图1为本申请实施例所提供的一种数据处理方法的流程图;

图2为本申请实施例所提供的一种提升基板管理控制器与x86管理软件命令交互效率的方法的原理示意图;

图3为本申请实施例所提供的一种数据处理系统的结构示意图。

具体实施方式

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

下面请参见图1,图1为本申请实施例所提供的一种数据处理方法的流程图。

具体步骤可以包括:

s101:接收系统管理软件下发的目标命令,确定目标命令的预计执行时长;

其中,本实施例可以应用于基板管理控制器,可以存在多个基板管理控制器连接并通信的情况,为了将本实施例所应用的基板管理控制器进行区别,可以将本实施例所应用的基板管理控制器作为第一基板管理控制器,将与第一基板管理控制器通信的基板管理控制器作为第二基板管理控制器。

第一基板管理控制器可以与处理器连接,处理器中的系统管理软件(sms,systemmanagesoftware)可以将目标命令下发至第一基板管理控制器,系统管理软件可以为x86管理软件。在系统管理软件中可以存在命令发送队列,按照命令发送队列中的顺序向系统管理软件依次下发命令。系统管理软件再将命令下发至对应的基板管理控制器之后,基板管理控制器执行命令对应的数据处理操作后向系统管理软件返回应答信息,系统管理软件接收到应答信息后继续向基本管理控制器发送下一条命令。

在第一基板管理控制器接收到系统管理软件下发的目标命令之后,确定目标命令的预计执行时长。预计执行时长为预计第一基板管理控制器执行目标命令所需要消耗的时长。

具体的,本步骤可以通过以下方式确定目标命令的预计执行时长:

方式一:确定目标命令的命令类型,并根据命令类型查询目标命令的预计执行时长;其中,命令类型包括设置类命令或查询类命令。

方式二:查询目标命令的命令标识,利用命令执行时长表查询目标命令对应的预计执行时长;其中,命令执行时长表中存储有命令标识与命令执行时长的对应关系。

s102:判断预计执行时长是否大于预设时长;若是,则进入s103;若否,则进入s105;

其中,本实施例将目标命令的预计执行时长与预设时长进行比较,若预计执行时长大于预设时长,则说明目标命令为耗时较长的命令,可以将其存储至命令队列中进行异步处理;若预计执行时长小于或等于预设时长,则说明目标命令为耗时较短的命令,可以直接执行目标命令。作为一种可行的实施方式,本实施例可以在检测到目标指令为设置类命令时执行s103的相关操作,本实施例还可以在检测到目标指令为查询类命令时执行s105的相关操作。

s103:将目标命令存储至命令队列,并向系统管理软件返回应答信息,以便系统管理软件在接收到应答信息后下发新目标命令;

其中,本步骤建立在目标命令为耗时较长的命令的基础上,将目标命令存储至命令队列中,并直接向系统管理软件返回应答信息,以便告知系统管理软件下发新目标指令。

s104:利用目标线程执行命令队列中的目标命令对应的数据处理操作。

本步骤可以利用目标线程依次执行命令队列中的目标命令,进而完成对应的数据处理操作。在执行数据操作之后,可以进行数据更新和数据同步操作。

s105:利用目标线程执行目标命令,并在目标命令执行完毕后,向系统管理软件返回应答信息。

本实施例在第一基板管理控制器接收到系统管理软件下发的目标命令后,确定目标命令的预计执行时长,若预计执行时长大于预设时长则将目标命令存储至命令队列,并直接向系统管理软件返回应答信息,以便系统管理软件下发新目标命令。上述实施例将执行时间较长的命令添加至命令队列中异步执行,能够避免执行时间过长的目标命令阻塞系统管理软件中其他命令的发送,提高了系统管理软件的命令交互效率。本实施例解决了低速外设总线与上位机之间的效率依赖,提升了系统管理软件与bmc之间的通信效率;将硬件的访问或者跨bmc的远程访问完全下移到bmc,降低了系统管理软件与bmc之间超时的概率。

作为对于图1对应实施例的进一步介绍,系统管理软件向第一基板管理控制器下发的目标命令可以是需要第一基板管理控制器执行的命令,也可以是需要第一基板管理控制器执行的命令,因此s103中将目标命令存储至命令队列的过程可以包括:判断所述目标命令是否为所述第一基板管理控制器对应的命令;若是,则将所述目标命令存储至所述第一基板管理控制器的本地命令队列;若否,则将所述目标命令存储至所述第一基板管理控制器的对端命令队列。

进一步的,利用目标线程执行所述命令队列中的目标命令对应的数据处理操作可以为:利用所述第一基板管理控制器的本端命令处理线程执行所述第一基板管理控制器的本地命令队列中的目标命令对应的数据处理操作,得到目标数据。在得到目标数据之后还可以将所述目标数据同步至第二基板管理控制器。

进一步的,在将所述目标命令存储至所述第一基板管理控制器的对端命令队列之后,可以将所述第一基板管理控制器的对端命令队列中的目标命令发送至第二基板管理控制器的本地命令队列,以便所述第二基本管理控制器的本地命令处理线程执行所述第二基板管理控制器的本地命令队列中的目标命令。

下面通过在实际应用中的实施例说明上述实施例描述的流程。请参见图2,图2为本申请实施例所提供的一种提升基板管理控制器与x86管理软件命令交互效率的方法的原理示意图,如图2所示:本实施例对x86管理软件下发给bmc的命令可进行分类。针对设置类命令可以执行本地保存、本地/远程执行、数据更新、数据同步等操作,从而解决了x86管理软件与bmc同步接口带来的消息阻塞问题,提升x86管理软件与bmc之间的命令交互效率。在图2中,bmc在接收到x86管理软件下发的目标命令后,先根据命令的预计执行时长对目标命令进行分类。bmc若接收到预计执行时长小于或等于预设时长的目标命令,则可以从内存拷贝数据并直接向x86管理软件返回命令执行完毕;bmc若接收到预计执行时长大于预设时长的目标命令,则将目标命令存储至本地命令队列或对端命令队列。本实施例中可以利用本端命令处理线程执行本地命令队列中目标命令的本地耗时读写操作,若读写成功则更新读/写操作后的数据,若读写不成功则重复执行本地耗时读写操作。本实施例还可以利用bmc数据同步模块将对端命令队列中的目标命令同步至对端bmc,以便对端bmc的对端命令处理线程执行相应的读写操作。

例如:bmc_a收到一条ipmi(intelligentplatformmanagementinterface,智能平台管理接口)命令cmd_aa,此命令需要bmc_b执行且操作硬件。执行命令的具体流程可以包括:

本地保存:bmc_a收到cmd_aa,判断需要在bmc_b执行,则将此命令发送到bmc_a的对端命令队列,然后通过ipmi接口返回成功。

本地/远程执行:bmc_a同步线程将cmd_aa命令从队列取出,并发送到bmc_b,bmc_b的同步线程接收cmd_aa,然后将cmd_aa发给bmc_b的本地命令队列。

数据更新:bmc_b的本地线程,执行cmd_aa,操作硬件成功后,更新数据。

数据同步:bmc_b将cmd_aa更新的数据再通过bmc数据同步模块的同步线程同步到bmc_aa。x86管理软件可以在bmc_a或者bmc_b都可以查询到cmd_aa的数据。bmc_a和bmc_b之间可以通过lan或ipmi接口连接。

上述实施例将x86管理软件下发给bmc的命令分类,如果是查询命令,则在命令ipmi接口函数中,从内存填充数据后ipmi接口返回,若否则将此消息放入本地队列,放入队列成功后,ipmi接口就返回成功,然后交由异步队列和线程处理(包括硬件操作),提升x86管理软件与bmc的命令交互效率。本实施例汇总设置的数据可以由对应的查询接口来确认。本实施例解决了低速外设总线与上位机之间的效率依赖,提升了x86与bmc之间的通信效率;将硬件的访问或者跨bmc的远程访问完全下移到bmc,降低了x86管理软件与bmc之间超时的概率。

请参见图3,图3为本申请实施例所提供的一种数据处理系统的结构示意图;

该系统可以包括:

命令接收模块100,用于接收系统管理软件下发的目标命令,确定所述目标命令的预计执行时长;

时长判断模块200,用于判断所述预计执行时长是否大于预设时长;

应答模块300,用于若所述预计执行时长大于预设时长,则将所述目标命令存储至命令队列,并向所述系统管理软件返回应答信息,以便所述系统管理软件在接收到所述应答信息后下发新目标命令;

数据处理模块400,用于利用目标线程执行所述命令队列中的目标命令对应的数据处理操作。

本实施例在第一基板管理控制器接收到系统管理软件下发的目标命令后,确定目标命令的预计执行时长,若预计执行时长大于预设时长则将目标命令存储至命令队列,并直接向系统管理软件返回应答信息,以便系统管理软件下发新目标命令。上述实施例将执行时间较长的命令添加至命令队列中异步执行,能够避免执行时间过长的目标命令阻塞系统管理软件中其他命令的发送,提高了系统管理软件的命令交互效率。

进一步的,应答模块300包括:

判断单元,用于判断所述目标命令是否为所述第一基板管理控制器对应的命令;若是,则将所述目标命令存储至所述第一基板管理控制器的本地命令队列;若否,则将所述目标命令存储至所述第一基板管理控制器的对端命令队列。

信息发送单元,用于向所述系统管理软件返回应答信息,以便所述系统管理软件在接收到所述应答信息后下发新目标命令;

进一步的,数据处理模块400具体用于利用所述第一基板管理控制器的本端命令处理线程执行所述第一基板管理控制器的本地命令队列中的目标命令对应的数据处理操作,得到目标数据。

进一步的,还包括:

同步模块,用于将所述目标数据同步至第二基板管理控制器。

进一步的,还包括:

命令转发模块,用于在将所述目标命令存储至所述第一基板管理控制器的对端命令队列之后,将所述第一基板管理控制器的对端命令队列中的目标命令发送至第二基板管理控制器的本地命令队列,以便所述第二基本管理控制器的本地命令处理线程执行所述第二基板管理控制器的本地命令队列中的目标命令。

进一步的,命令接收模块100,用于接收系统管理软件下发的目标命令,确定所述目标命令的命令类型,并根据所述命令类型查询所述目标命令的所述预计执行时长;其中,所述命令类型包括设置类命令或查询类命令。

进一步的,命令接收模块100,用于接收系统管理软件下发的目标命令,查询所述目标命令的命令标识,利用命令执行时长表查询所述目标命令对应的预计执行时长;其中,所述命令执行时长表中存储有命令标识与命令执行时长的对应关系。

由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

本申请还提供了一种存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

本申请还提供了一种电子设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述电子设备还可以包括各种网络接口,电源等组件。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

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

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