资源管理的方法和装置与流程

文档序号:17319644发布日期:2019-04-05 21:28阅读:161来源:国知局
资源管理的方法和装置与流程

本申请涉及存储领域,并且更具体地,涉及资源管理的方法和装置。



背景技术:

目前,在计算机系统中,多台设备之间通常是基于网络协议进行通信。

在多个设备中,每个设备的配置及数据访问的热度不尽相同,对于数据访问热度比较高的设备或者所配置的内存比较小的设备,很可能出现内存空间不够用,从而影响设备的性能,现有技术一般通过为设备增加内存条的方式保证设备的访问性能。然而增加内存条会增加设备的成本,且需要手动更换。



技术实现要素:

本申请实施例提供一种资源管理的方法,该方法能够提升设备的资源利用率与访问速率。

第一方面,提供了一种资源管理的方法,包括:第一设备接收第二设备发送的请求消息,所述请求消息用于指示所述第一设备为所述第二设备分配内存,所述请求消息中携带有请求内存的大小,所述第一设备与所述第二设备之间基于网络协议进行通信;所述第一设备根据所述请求消息中携带的请求内存的大小从所述第一设备的内存中划分内存区间;所述第一设备利用所述内存区间生成虚拟磁盘;所述第一设备将所述虚拟磁盘提供给所述第二设备作为所述第二设备的内存。

可选地,任意两个设备之间通过nvmeoverfabric协议进行通信,其中所述fabric协议可以包括光纤通道(fiberchannel,fc)协议、传输控制协议/因特网互联协议(transmissioncontrolprotocol/internetprotocol,tcp/ip)、基于远程直接数据存取的以太网(rdmaoverconvergedethernet,roce)协议或无线带宽(infiniband,ib)协议。

在本申请实施例中,当第二设备向第一设备请求为第二设备分配内存时,第一设备通过在自身的内存中划分一部分内存区间,并利用这部分内存区间生成虚拟磁盘,最终将生成的虚拟磁盘提供给第二设备作为第二设备的内存,从而使得第二设备能够对第一设备为其分配的内存进行使用,提高设备的资源利用率以及访问速率。

在一种可能的实现方式中,所述利用所述内存区间生成虚拟磁盘,包括:所述第一设备将所述内存区间模拟为磁盘空间;所述第一设备利用所述磁盘空间生成所述虚拟磁盘。

在本申请实施例中,第一设备通过首先将划分出的内存区间模拟为磁盘区间,再利用该部分磁盘空间生成虚拟磁盘,进而将生成的虚拟磁盘提供给第二设备作为第二设备的内存。

在一种可能的实现方式中,所述第一设备将所述虚拟磁盘提供给所述第一设备作为所述第一设备的内存,包括:所述第一设备接收所述第二设备发送的磁盘查询命令;所述第一设备将所述虚拟磁盘上报至所述第一设备作为所述第一设备的内存。

在本申请实施例中,当第一设备生成所述虚拟磁盘后,会将所述虚拟磁盘挂载至第二设备:第一设备在接收到第二设备发送的磁盘查询命令后,会将虚拟磁盘的相关信息上报至第二设备,以使第二设备能够根据第一设备上报的虚拟磁盘的相关信息,将该虚拟磁盘映射为第二设备的虚拟内存。

可选地,第一设备向第二设备上报的虚拟磁盘的相关信息可以包括虚拟磁盘的标识与虚拟磁盘空间的大小。

在一种可能的实现方式中,所述方法还包括:

所述第一设备接收所述第二设备发送的磁盘类型查询命令,所述磁盘类型查询命令用于查询生成所述虚拟磁盘的存储设备的类型;所述第一设备向所述第二设备发送指示信息,所述指示信息指示所述虚拟磁盘是由所述内存区间生成的。

在本申请实施例中,第二设备在将虚拟磁盘映射为第二设备的虚拟内存之前,第二设备还需要确定生成虚拟磁盘的存储设备的类型,即确定虚拟磁盘是否是由第一设备的内存区间生成的,第二设备向第一设备发送磁盘类型查询命令,该磁盘类型查询命令用于向第一设备查询生成虚拟磁盘的存储设备的类型,第一设备根据该磁盘类型查询命令,向第二设备发送指示信息,该指示信息用于向第二设备指示虚拟磁盘是由第一设备的内存区间生成的。

在一种可能的实现方式中,所述方法还包括:所述第一设备接收所述第二设备发送的虚拟磁盘的访问请求,所述虚拟磁盘的访问请求包括所述虚拟磁盘的标识;所述第一设备根据所述虚拟磁盘的访问请求,访问生成所述虚拟磁盘的内存区间。

在本申请实施例中,当第二设备中的业务产生内存访问请求时,第二设备通过判断内存访问请求中携带的内存地址是否落在虚拟内存所提供的地址范围。如果内存访问请求携带的内存地址落在虚拟内存所提供的地址范围时,第二设备需要将该内存地址转换为内存地址对应的虚拟磁盘的逻辑地址,进而将内存访问请求转换为携带有虚拟磁盘标识与内存地址对应的虚拟磁盘的逻辑地址的虚拟磁盘的访问请求,并向第一设备虚拟磁盘的访问请求。

可以看出,当第二设备中产生的内存访问请求中携带的内存地址落入虚拟内存的地址范围时,第二设备中的业务对第二设备中虚拟内存的访问实际上是对第一设备中分配给第二设备的内存区间的访问。

第二方面,提供了一种资源管理的方法,包括:第二设备向第一设备发送请求消息,所述请求消息用于指示所述第一设备为所述第二设备分配内存,所述请求消息中携带请求内存的大小,所述第一设备与所述第二设备之间基于网络协议进行通信;所述第二设备接收第一设备上报的虚拟磁盘,所述虚拟磁盘是由所述第一设备中的内存区间生成的;所述第二设备将所述虚拟磁盘映射为所述第二设备的虚拟内存。

在本申请实施例中,当第二设备向第一设备请求为第二设备分配内存时,第一设备通过在自身的内存中划分一部分内存区间,并利用这部分内存区间生成虚拟磁盘,最终将生成的虚拟磁盘提供给第二设备作为第二设备的内存,从而使得第二设备能够对第一设备为其分配的内存进行使用,提高设备的资源利用率以及访问速率。

在一种可能的实现方式中,所述方法还包括:所述第二设备向所述第一设备发送磁盘查询命令,所述磁盘查询命令指示所述第一设备上报所述虚拟磁盘。

在本申请实施例中,当第一设备生成所述虚拟磁盘后,会将所述虚拟磁盘挂载至第二设备:第一设备在接收到第二设备发送的磁盘查询命令后,会将虚拟磁盘的相关信息上报至第二设备,以使第二设备能够根据第一设备上报的虚拟磁盘的相关信息,将该虚拟磁盘映射为第二设备的虚拟内存。

可选地,第一设备向第二设备上报的虚拟磁盘的相关信息可以包括虚拟磁盘的标识与虚拟磁盘空间的大小。

在一种可能的实现方式中,所述方法还包括:所述第二设备向所述第一设备发送磁盘类型查询命令,所述磁盘类型查询命令用于查询生成所述虚拟磁盘的存储设备的类型;所述第二设备接收所述第一设备发送的指示信息,所述指示信息用于指示虚拟磁盘是由所述内存区间生成的;所述第二设备在接收到所述指示信息后,将所述虚拟磁盘映射为所述第二设备的虚拟内存。

在本申请实施例中,第二设备在将虚拟磁盘映射为第二设备的虚拟内存之前,第二设备还需要确定生成虚拟磁盘的存储设备的类型,即确定虚拟磁盘是否是由第一设备的内存区间生成的,第二设备向第一设备发送磁盘类型查询命令,该磁盘类型查询命令用于向第一设备查询生成虚拟磁盘的存储设备的类型,第一设备根据该磁盘类型查询命令,向第二设备发送指示信息,该指示信息用于向第二设备指示虚拟磁盘是由第一设备的内存区间生成的。

在一种可能的实现方式中,所述方法还包括:所述第二设备产生内存访问请求;当所述内存访问请求中携带的内存地址落在所述虚拟内存所提供的地址范围时,所述第二设备确定所述内存地址对应的所述虚拟磁盘的逻辑地址;所述第二设备将所述内存访问请求转换为所述虚拟磁盘的访问请求,所述虚拟磁盘的访问请求包括所述虚拟磁盘的标识;所述第二设备将所述虚拟磁盘的访问请求发送至所述第一设备。

在本申请实施例中,当第二设备中的业务产生内存访问请求时,第二设备通过判断内存访问请求中携带的内存地址是否落在虚拟内存所提供的地址范围。如果内存访问请求携带的内存地址落在虚拟内存所提供的地址范围时,第二设备需要将该内存地址转换为内存地址对应的虚拟磁盘的逻辑地址,进而将内存访问请求转换为携带有虚拟磁盘标识与内存地址对应的虚拟磁盘的逻辑地址的虚拟磁盘的访问请求,并向第一设备虚拟磁盘的访问请求。

可以看出,当第二设备中产生的内存访问请求中携带的内存地址落入虚拟内存的地址范围时,第二设备中的业务对第二设备中虚拟内存的访问实际上是对第一设备中分配给第二设备的内存区间的访问。

第三方面,提供一种资源管理的装置,该装置用于执行上述第一方面或第一方面的任一可能的实现方式中的方法。具体地,该装置可以包括用于执行第一方面或第一方面的任一可能的实现方式中资源管理的方法的单元。

第四方面,提供一种资源管理的装置,该装置用于执行上述第二方面或第二方面的任一可能的实现方式中的方法。具体地,该装置可以包括用于执行第二方面或第二方面的任一可能的实现方式中资源管理的方法的单元。

第五方面,提供一种资源管理的设备,该设备包括存储器与处理器。该存储器用于存储指令;该处理器执行该存储器存储的指令,使得该设备执行第一方面或第一方面的任一可能的实现方式中资源管理的方法。

第六方面,提供一种计算设备,该设备包括存储器和处理器。该存储器用于存储指令;该处理器执行该存储器存储的指令,使得该设备执行第二方面或第二方面的任一可能的实现方式中资源管理的方法。

第七方面,提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该指令在计算机上运行时,使得计算机执行第一方面或第一方面的任一可能的实现方式中资源管理的方法。

第八方面,提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该指令在计算机上运行时,使得计算机执行第二方面或第二方面的任一可能的实现方式中资源管理的方法。

第九方面,提供一种包含指令的计算机程序产品,当该指令在计算机上运行时,使得计算机执行第一方面或第一方面的任一可能的实现方式中资源管理的方法。

第十方面,提供一种包含指令的计算机程序产品,当该指令在计算机上运行时,使得计算机执行第二方面或第二方面的任一可能的实现方式中资源管理的方法。

本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。

附图说明

图1是本申请提供的计算机系统100的架构示意图。

图2是本申请提供的资源管理的方法200的流程图示意图。

图3是本申请提供的数据访问的方法300的流程图示意图。

图4为本申请提供的装置400的结构示意图。

图5为本申请提供的装置500的结构示意图。

图6为本申请提供的设备600的结构示意图。

具体实施方式

下面将结合附图,对本申请实施例中的技术方案进行描述。

为了便于理解,首先结合图1介绍适用于本申请实施例的计算机系统的架构。图1所示的计算机系统100包括至少两个设备(例如,设备101、设备102、设备103以及设备104),其中,任意两个设备基于网络协议进行通信。

作为示例而非限定,任意两个设备之间通过nvmeoverfabric协议进行通信,其中所述fabric协议可以包括光纤通道(fiberchannel,fc)协议、传输控制协议/因特网互联协议(transmissioncontrolprotocol/internetprotocol,tcp/ip)、基于远程直接数据存取的以太网(rdmaoverconvergedethernet,roce)协议或无线带宽(infiniband,ib)协议。

设备101、设备102、设备103以及设备104中均配置有内存,每个设备均可以使用自身的内存进行数据访问。

本申请实施例提供了一种资源管理的方法,在计算机系统中,通过使内存资源丰富的设备在自身内存中划分出一部分内存区间,并利用这部分内存区间生成虚拟磁盘,最终将生成的虚拟磁盘提供给内存资源较匮乏的设备作为该设备的内存,使得内存资源较匮乏的设备能够对内存资源丰富的设备为其分配的内存进行使用,从而提供设备的资源利用率与访问速率。

需要说明的是,图1中的设备具体实现时可以为服务器或控制器,计算机系统100具体实现时可以为分布式系统,该分布式系统可以为分布式计算系统或分布式文件系统。其中,分布式存储系统还可以为分布式文件存储系统,分布式块存储系统等。

下面以计算机系统100中的设备101将资源共享给设备102使用为例,对本申请实施例提供的资源管理的方法进行说明。

图2是本申请实施例提供的资源管理的方法200的示意性流程图。该方法200至少包括以下步骤。

s201,第二设备向第一设备发送请求消息,请求消息用于指示第一设备为第二设备分配内存,请求消息中携带请求内存的大小,第一设备与第二设备之间基于网络协议进行通信。相应地,第一设备接收第二设备发送的请求消息。

具体地,设备102(例如,第二设备)向设备101(例如,第一设备)发送请求消息,请求消息用于请求设备101为设备101分配内存,其中,请求消息中携带有设备102所请求的内存的大小。

例如,当设备102自身的内存不够用时,设备102向设备101发送请求消息,该请求消息中携带的设备102所请求的内存的大小为100mbyte(兆字节)。

需要说明的是,当设备102需要计算机系统100中的其他设备为其分配内存时,设备102还可以向计算机系统100中的其他所有设备广播该请求消息,以使计算机系统100中的每个设备均可以接收到设备102发送的请求消息,接收到请求消息的设备可以根据自身内存的使用情况,决定是否要为设备102分配内存。

需要说明的是,上述的请求消息为基于nvme协议产生的,所产生的请求消息根据第一设备与第二设备之间的网络通信协议被封装为能够在所述网络通信协议中传输的请求消息。

s202,第一设备(设备101)根据请求消息中携带的请求内存的大小从第一设备(设备101)的内存中划分内存区间。

具体地,设备101在接收到设备102发送的请求消息后,先将该请求消息解封装为基于nvme协议的请求消息。设备101根据解封装后的请求消息中携带的设备102所请求分配的内存的大小,在自身内存中为设备102划分满足请求消息中携带的内存大小的内存区间。

例如,请求消息中携带的设备102请求分配的内存的大小为100mbyte,设备101接收到该请求消息后,将自身内存中的地址区间为字节byte#30~byte#1048604的内存区间划分出来,地址为byte#30~byte#1048604的内存区间为设备101为设备102分配的内存区间。

s203,第一设备(设备101)利用内存区间生成虚拟磁盘。

具体地,设备101在自身的内存中为设备102划分出内存区间后,利用该部分内存区间生成虚拟磁盘,并将虚拟磁盘提供给设备102作为设备102的内存。

例如,设备101在生成虚拟磁盘时,首先利用虚拟内存盘(ramdisk)技术将为设备102分配的内存区间模拟为磁盘空间,然后将所述磁盘空间构建为能够被外部设备访问的虚拟磁盘,例如命名空间(namespace)。

s204,第一设备(设备101)将虚拟磁盘提供给第二设备(设备102)作为第二设备(设备102)的内存。

具体地,当设备101生成虚拟磁盘后,会将所述虚拟磁盘挂载至设备120,具体挂载的过程为:设备101接收设备102发送的磁盘查询命令,所述磁盘查询命令用于指示设备101向设备102上报为设备102分配的虚拟磁盘。

设备101接收设备102发送的磁盘查询命令,根据该磁盘查询命令,将为设备102分配的虚拟磁盘的相关信息(例如,虚拟磁盘的标识与虚拟磁盘空间的大小)上报至设备102。

s205,第二设备(设备102)接收第一设备(设备101)上报的虚拟磁盘,虚拟磁盘是由第一设备(设备101)中的内存区间生成的。

s206,第二设备(设备102)向第一设备(设备101)发送磁盘类型查询命令,所述磁盘类型查询命令用于查询生成所述虚拟磁盘的存储设备的类型。

具体地,在设备102将设备101分配的虚拟磁盘映射为设备102的虚拟内存之前,设备102需要确定生成该虚拟磁盘的存储设备的类型,设备102可以向设备101发送磁盘类型查询命令,磁盘类型查询命令用于向设备101查询所述虚拟磁盘是否是由内存区间生成的

s207,所述第一设备(设备101)在接收到所述第二设备(设备102)上报的磁盘类型查询命令后,如果确定所述虚拟磁盘是由所述内存区间生成的,则返回指示所述虚拟磁盘是由所述内存区间生成的指示信息。

具体地,设备101接收设备102发送的磁盘类型查询命令,根据磁盘类型查询命令,确定所述虚拟磁盘是否是由内存区间生成的,如果设备101确定所述虚拟磁盘是由所述内存区间生成的,设备101会生成指示信息,并向设备102发送该指示信息,该指示信息用于指示设备101为设备102分配的虚拟磁盘的是由内存区间生成的。

例如,该指示信息中可以携带有标识,该标识可以承载在一个比特中,以指示生成虚拟磁盘的存储设备的类型。当承载该标识的比特的取值为0时,代表虚拟磁盘是由内存区间生成的;当承载该标识的比特的取值为1时,代表虚拟磁盘不是由内存区间生成的。

s208,所述第二设备(设备102)在接收到所述指示信息后,将所述虚拟硬盘的逻辑地址空间映射至所述第二设备(设备102)的内存空间,作为所述第二设备(设备102)的虚拟内存。

具体地,当设备102接收到设备101发送的指示信息后,根据该指示信息,确定设备101为设备120分配的虚拟磁盘是由设备101的内存区间生成的。设备102会对自身的内存空间进行扩展,将自身的内存空间扩展一段与所述虚拟磁盘同样大小的虚拟内存空间,然后将所述虚拟内存空间的地址映射至所述虚拟磁盘的逻辑地址。

例如,设备102在s204中确定设备101为其分配的虚拟磁盘空间的大小为100mbyte,设备102将自身的内存空间扩展一段大小为100mbyte的虚拟内存空间,并将大小为100mbyte的虚拟内存空间的地址映射至虚拟磁盘的逻辑地址。

当第二设备向第一设备请求为第二设备分配内存时,第一设备通过在自身的内存中划分一部分内存区间,并利用这部分内存区间生成虚拟磁盘,最终将生成的虚拟磁盘提供给第二设备作为第二设备的内存,从而使得第二设备能够对第一设备为其分配的内存进行使用,提高设备的资源利用率以及访问速率。

上述以设备101将资源共享给设备102为例,对计算机系统100中的设备之间共享内存的方法作了介绍。下面对同样以设备101将资源共享给设备102为例,对设备102使用设备101为其分配的内存进行数据访问的方法300进行介绍。图3为本申请实施例提供的数据访问的方法300的示意性流程图。方法300至少包括以下步骤。

s301,第二设备(设备102)产生内存访问请求。

s302,当内存访问请求中携带的内存地址落在虚拟内存所提供的地址范围时,第二设备(设备102)确定内存地址对应的虚拟磁盘的逻辑地址。

s303,第二设备(设备102)将内存访问请求转换为虚拟磁盘的访问请求,虚拟磁盘的访问请求包括虚拟磁盘的标识。

s304,第二设备(设备102)将虚拟磁盘的访问请求发送至第一设备(设备101)。相应地,第一设备(设备101)接收第二设备(设备102)发送的虚拟磁盘的访问请求。

s305,第一设备(设备101)根据虚拟磁盘的访问请求,访问生成虚拟磁盘的内存区间。

具体地,设备102在将设备101为其分配的虚拟磁盘映射为设备102的虚拟内存后,设备102中的业务便可以对该虚拟内存进行数据访问了。

当设备102中的业务产生内存访问请求时,设备102需要确定内存访问请求携带的内存地址是否落在虚拟内存的地址范围。如果内存访问请求携带的内存地址落在虚拟内存所提供的地址范围时,设备102需要将该内存地址映射为与其对应的虚拟磁盘的逻辑地址。

设备102在确定了内存访问请求携带的内存地址对应的虚拟磁盘的逻辑地址后,将该内存访问请求转换为虚拟磁盘的访问请求,其中,该虚拟磁盘的访问请求中携带有虚拟磁盘的标识与该内存地址对应的虚拟磁盘的逻辑地址。设备102将虚拟磁盘的访问请求发送至设备101.

设备101在接收到该虚拟磁盘的访问请求后,获取虚拟磁盘的访问请求携带的虚拟磁盘的逻辑地址,对虚拟磁盘的逻辑地址在虚拟磁盘中对应的空间进行数据访问。

例如,设备102中的某一业务需要设备102的虚拟内存进行写数据访问,设备102中产生的内存访问请求中携带的待写入虚拟内存的数据为0x1223344、携带的内存地址为byte#90、携带的地址长度为4byte。

假设设备102将设备101为其分配的虚拟磁盘映射为设备102的虚拟内存后对应的虚拟内存的地址范围为byte#30~byte#1048604,则设备102根据内存访问请求中携带的内存地址byte#90以及地址长度4byte,确定内存访问请求携带的内存地址落入虚拟内存的地址范围。

此时,设备102需要确定内存访问请求携带的内存地址byte#90对应的虚拟磁盘的逻辑地址,例如,设备102确定内存访问请求携带的内存地址byte#90对应的虚拟磁盘的逻辑地址为byte#60,设备102将内存访问请求转换为虚拟磁盘的访问请求,该虚拟磁盘的访问请求中携带的数据为0x1223344、携带的地址为byte#60、携带的地址长度为4byte。设备102向设备101发送该虚拟磁盘的访问请求。

设备101接收设备102发送的虚拟磁盘的访问请求,根据该虚拟磁盘的访问请求,将虚拟磁盘的访问请求中携带的数据0x1223344写入虚拟磁盘中的逻辑地址byte#60~byte#63对应的空间中。

可以看出,当设备102中产生的内存访问请求中携带的内存地址落入虚拟内存的地址范围时,设备102中的业务对设备102中虚拟内存的访问实际上是对设备101中分配给设备102的内存区间的访问。

上文结合图1至图3详细介绍了本申请实施例的资源管理的方法与数据访问的方法,下文结合图4至图6详细地描述本申请实施例的提供的装置与设备。

图4为本申请实施例提供的装置400的示意性框图,包括接收单元401与处理单元402。

接收单元401,用于接收第二设备发送的请求消息,所述请求消息用于指示所述资源管理的设备为所述第二设备分配内存,所述请求消息中携带有请求内存的大小,所述资源管理的设备与所述第二设备之间基于网络协议进行通信;

处理单元402,用于根据所述请求消息中携带的请求内存的大小从所述资源管理的设备的内存中划分内存区间;利用所述内存区间生成虚拟磁盘;将所述虚拟磁盘提供给所述第二设备作为所述第二设备的内存。

可选地,所述处理单元402,还用于将所述内存区间模拟为磁盘空间;利用所述磁盘空间生成所述虚拟磁盘。

可选地,所述接收单元401,还用于接收所述第二设备发送的磁盘查询命令;所述处理单元402,还用于将所述虚拟磁盘上报至所述资源管理的设备作为所述资源管理的设备的内存。

可选地,所述接收单元401,还用于接收所述第二设备发送的磁盘类型查询命令,所述磁盘类型查询命令用于查询生成所述虚拟磁盘的存储设备的类型;

所述设备400还包括:

发送单元403,用于向所述第二设备发送指示信息,所述指示信息指示所述虚拟磁盘是由所述内存区间生成的。

可选地,所述接收单元401,还用于接收所述第二设备发送的虚拟磁盘的访问请求,所述虚拟磁盘的访问请求包括所述虚拟磁盘的标识;

所述处理单元402,还用于根据所述虚拟磁盘的访问请求,访问生成所述虚拟磁盘的内存区间。

应理解的是,本申请实施例的装置400可以通过专用集成电路(application-specificintegratedcircuit,asic)实现,或可编程逻辑器件(programmablelogicdevice,pld)实现,上述pld可以是复杂程序逻辑器件(complexprogrammablelogicaldevice,cpld),现场可编程门阵列(field-programmablegatearray,fpga),通用阵列逻辑(genericarraylogic,gal)或其任意组合。也可以通过软件实现图2所示的资源管理方法或图3所示的数据访问的方法,当通过软件实现图2所示的资源管理方法或图3所示的数据访问的方法时,装置400及其各个模块也可以为软件模块。

根据本申请实施例的装置400可对应于执行本申请实施例中描述的方法,并且装置400中的各个单元的上述和其它操作和/或功能为了实现图2所示方法中第一设备执行的相应流程或图3所示方法中第一设备执行的相应流程,为了简洁,在此不再赘述。

图5为本申请实施例提供的装置500的示意性框图,包括发送单元501、接收单元502与处理单元503。

发送单元501,用于向第一设备发送请求消息,所述请求消息用于指示所述第一设备为所述资源管理的设备分配内存,所述请求消息中携带请求内存的大小,所述第一设备与所述资源管理的设备之间基于网络协议进行通信;

接收单元502,用于接收第一设备上报的虚拟磁盘,所述虚拟磁盘是由所述第一设备中的内存区间生成的;

处理单元503,用于将所述虚拟磁盘映射为所述资源管理的设备的虚拟内存。

可选地,所述发送单元501,还用于向所述第一设备发送磁盘查询命令,所述磁盘查询命令指示所述第一设备上报所述虚拟磁盘。

可选地,所述发送单元501,还用于向所述第一设备发送磁盘类型查询命令,所述磁盘类型查询命令用于查询生成所述虚拟磁盘存储设备的类型;

所述接收单元502,还用于接收所述第一设备发送的指示信息,所述指示信息用于指示虚拟磁盘是由所述内存区间生成的;

所述处理单元503,用于在接收到所述指示信息后,将所述虚拟磁盘映射为所述资源管理的设备的虚拟内存。

可选地,所述处理单元503,还用于产生内存访问请求;当所述内存访问请求中携带的内存地址落在所述虚拟内存所提供的地址范围时,确定所述内存地址对应的所述虚拟磁盘的逻辑地址;将所述内存访问请求转换为所述虚拟磁盘的访问请求,所述虚拟磁盘的访问请求包括所述虚拟磁盘的标识;

所述发送单元501,还用于将所述虚拟磁盘的访问请求发送至所述第一设备。

应理解的是,本申请实施例的装置500可以通过专用集成电路(application-specificintegratedcircuit,asic)实现,或可编程逻辑器件(programmablelogicdevice,pld)实现,上述pld可以是复杂程序逻辑器件(complexprogrammablelogicaldevice,cpld),现场可编程门阵列(field-programmablegatearray,fpga),通用阵列逻辑(genericarraylogic,gal)或其任意组合。也可以通过软件实现图2所示的资源管理方法或图3所示的数据访问的方法,当通过软件实现图2所示的资源管理方法或图3所示的数据访问的方法时,装置500及其各个模块也可以为软件模块。

根据本申请实施例的装置500可对应于执行本申请实施例中描述的方法,并且装置500中的各个单元的上述和其它操作和/或功能为了实现图2所示方法中第二设备执行的相应流程或图3所示方法中第二设备执行的相应流程,为了简洁,在此不再赘述。

图6为本申请实施例提供的一种设备的结构示意图。如图6所示,所述设备600包括处理器601、存储器602、通信接口603和总线604。其中,处理器601、存储器602、通信接口603通过总线604进行通信,也可以通过无线传输等其他手段实现通信。该存储器602用于存储指令,该处理器601用于执行该存储器602存储的指令。该存储器602存储程序代码6021,且处理器601可以调用存储器602中存储的程序代码6021执行图2所示的资源管理的方法或图3所示的数据访问的方法。

应理解,在本申请实施例中,处理器601可以是cpu,处理器601还可以是其他通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。

该存储器602可以包括只读存储器和随机存取存储器,并向处理器601提供指令和数据。存储器602还可以包括非易失性随机存取存储器。该存储器602可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,rom)、可编程只读存储器(programmablerom,

prom)、可擦除可编程只读存储器(erasableprom,eprom)、电可擦除可编程只读存储器(electricallyeprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(randomaccessmemory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(staticram,sram)、动态随机存取存储器(dram)、同步动态随机存取存储器(synchronousdram,sdram)、双倍数据速率同步动态随机存取存储器(doubledatadatesdram,ddrsdram)、增强型同步动态随机存取存储器(enhancedsdram,esdram)、同步连接动态随机存取存储器(synchlinkdram,sldram)和直接内存总线随机存取存储器(directrambusram,drram)。

该总线604除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图6中将各种总线都标为总线604。

应理解,根据本申请实施例的设备600可对应于本申请实施例中的装置300或装置400,并可以对应于本申请实施例图2所示方法中的第一设备或第二设备,也可以对应于本申请实施例图3所示方法中的第一设备或第二设备,当设备600对应于图2所示方法中的第一设备时,设备600中的各个模块的上述和其它操作和/或功能分别为了实现图2中的由第一设备执行的方法的操作步骤,当设备600对应于图2所示方法中的第二设备时,设备600中的各个模块的上述和其它操作和/或功能分别为了实现图2中的由第二设备执行的方法的操作步骤,当设备600对应于图3所示方法中的第一设备时,设备600中的各个模块的上述和其它操作和/或功能分别为了实现图3中的由第一设备执行的方法的操作步骤,当设备600对应于图3所示方法中的第二设备时,设备600中的各个模块的上述和其它操作和/或功能分别为了实现图3中的由第二设备执行的方法的操作步骤,为了简洁,在此不再赘述。

上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质。半导体介质可以是固态硬盘(solidstatedrive,ssd)。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请实施例所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请实施例各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本申请实施例的具体实施方式,但本申请实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请实施例的保护范围之内。因此,本申请实施例的保护范围应以所述权利要求的保护范围为准。

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