数据处理方法、相关设备及计算机存储介质

文档序号:1477142 发布日期:2020-02-25 浏览:19次 >En<

阅读说明:本技术 数据处理方法、相关设备及计算机存储介质 (Data processing method, related device and computer storage medium ) 是由 饶蓉 魏明昌 于 2018-08-17 设计创作,主要内容包括:本发明实施例公开了数据处理方法,包括:对象存储设备接收数据读或写IO请求,所述数据读或写IO请求包括数据完整性域DIF,所述DIF用于承载待操作数据的属性信息。具体可为待读取数据的属性信息或待写入数据的属性信息。进一步地,对象存储设备根据所述待操作数据的属性信息,对所述待操作数据进行处理。采用本发明实施例,能够提升磁盘的性能、避免存储资源的浪费。(The embodiment of the invention discloses a data processing method, which comprises the following steps: the method comprises the steps that an object storage device receives a data reading or writing IO request, wherein the data reading or writing IO request comprises a data integrity field DIF, and the DIF is used for bearing attribute information of data to be operated. Specifically, the attribute information of the data to be read or the attribute information of the data to be written may be used. Further, the object storage device processes the data to be operated according to the attribute information of the data to be operated. By adopting the embodiment of the invention, the performance of the disk can be improved, and the waste of storage resources can be avoided.)

数据处理方法、相关设备及计算机存储介质

技术领域

本发明涉及存储技术领域,尤其涉及数据处理方法、相关设备及计算机存储介质。

背景技术

随着互联网的发展和进步,全球的数据量每天以极快的速度增长。面对如此庞大的数据,对数据存储系统的要求显得尤为重要了。目前,为满足海量数据的存储需求,通常采用分布式存储系统来进行数据的存储。

然而在实践中发现,目前的分布式存储系统对数据采用统一的存储策略以及存储布局进行存储,这样将带来磁盘性能的损失和存储资源的浪费。

发明内容

本发明实施例公开了数据处理方法、相关设备及计算机存储介质,降低了磁盘性能损失和存储资源的浪费。

第一方面,本发明实施例公开提供了一种数据处理方法,所述方法包括:对象存储设备接收主机发送的数据读IO请求,该数据读IO请求中包括数据完整性域DIF,该DIF承载有待读取数据的属性信息,例如待读取数据的大小、待读取数据的读取粒度、待读取数据对应的待读取地址的读取信息等。相应地,对象存储设备可根据该待读取数据的属性信息,对待读取数据进行处理。

通过实施本发明实施例,能够依据待读取数据的属性信息对待读取数据进行存储管理,利用数据特征进行个性化存储,以避免磁盘性能较低以及存储资源浪费等问题。

在一些可能的实施方式中,待读取数据的属性信息包括待读取数据的读取粒度,该读取粒度用于指示包括待读取数据在内的预读数据的大小。相应地,如果预读数据的大小大于或等于第一阈值时,对象存储设备可读取包括待读取数据在内的预读数据,并将该预读数据发送给客户端,以将其缓存在客户端的内存。便于下次主机发送相同的数据读IO请求时,直接从客户端的缓存中读取相应地待读取数据,以节省数据读取时间,提升数据处理效率。

如果预读数据的大小小于第一阈值,对象存储设备可直接读取该待读取数据,并将该待读取数据发送给主机。

通过实施本发明实施例,能够根据预读数据的大小来决定是否提取获得预读数据,便于下次直接从客户端的内存中读取数据,从而节省数据读取时间,提高数据处理效率。

在一些可能的实施例中,待读取数据的属性信息包括待读取数据对应所在待读取地址的读取信息。该读取信息可包括但不限于读取频率或读取类型等。该读取信息用于指示单位时间内待读取地址发生数据读取的频率。相应地,当读取信息为第一读取信息时,对象存储设备将待读取数据写到对象存储设备的非易失性缓存中。当读取信息为第二读取信息时,对象存储设备将待读取数据写到对象存储设备的非易失性缓存中,并在该非易失性缓存中设置过期时长,以清除该非易失性缓存中存储时长超过过期时长的数据。其中,第一读取信息所指示的频率大于第二读取信息所指示的频率。

在一些可能的实施例中,待读取数据的属性信息包括待读取数据对应所在待读取地址的读取信息。该读取信息用于指示单位时间内待读取地址发生数据读取的频率。当该读取信息所指示的频率大于或等于第二阈值时,将待读取数据发送给客户端,以缓存到客户端的内存中。便于下次直接从客户端的内存中直接读取待读取数据,从而提升数据读取效率。相应地,当读取信息所指示的频率小于第二阈值时,将待读取数据发送给客户端,并将该读取数据缓存到客户端的硬盘中。

第二方面,本发明实施例公开提供了一种数据处理方法,所述方法包括:对象存储设备接收客户端转发的数据写IO请求,该数据写IO请求中包括数据完整性域DIF,该DIF承载有待写入数据的属性信息,例如待写入数据的大小、待写入数据的写入粒度、待写入数据对应的待写入地址的写入信息等。相应地,对象存储设备根据待写入数据的属性信息,对待写入数据进行处理。通过实施本发明实施例,能够合理利用待写入数据的属性信息对待写入数据进行存储管理,以解决现有分布式存储系统中存在的磁盘性能损失和存储资源浪费等问题。

在一些可能的实施方式中,待写入数据的属性信息包括待写入数据对应的待写入地址的写入信息,例如写入频率或写入类型等。该写入信息用于指示单位时间内待写入地址发生数据写入的频率。相应地,当写入信息为第一写入信息时,对象存储设备可将待写入数据存储到对象存储设备的非易失性缓存中。当写入信息为第二写入信息时,对象存储设备可将待写入数据存储到对象存储设备的硬盘中。其中,第一写入信息所指示的频率大于第二写入信息所指示的频率。非易失性缓存的读写速率大于硬盘的读写速率。

通过实施上述步骤,能够根据待写入数据的属性特征将待写入数据存储到相应地缓存或硬盘中,便于提升数据处理的高效性。

在一些可能的实施方式中,待写入数据的属性信息包括待写入数据的写入粒度,该写入粒度用于指示待写入数据存储时采用的存储粒度。客户端接收主机发送的数据写IO请求后,可根据待写入数据的属性信息,为待写入数据分配对应的条带信息,该条带信息包括待写入数据存储时使用的一个或多个条带单元以及每个条带单元的物理地址。其中,每个条带单元用于存储所述待写入数据中的一小部分数据,也可称为待存储数据。进一步地,客户端根据条带信息,将待写入数据存储时使用的条带单元发送给对应的对象存储设备,该条带单元携带有自身的物理地址以及所需存储的待存储数据。相应地,对象存储设备接收客户端发送的条带单元。对象存储设备根据该条带单元的物理地址,将待写入数据中的部分数据(待存储数据)写入到对象存储设备的硬盘中。

通过实施上述步骤,客户端可根据待写入数据的属性信息为其配置相应地条带,该条带由一个或多个条带单元组成,每个条带单元与对象存储设备中的硬盘映射。相应地,对象存储设备接收条带单元后,按照条带单元来将该待写入数据写到或存储到硬盘中。有利于提高硬盘性能以及硬盘的利用率。

在一些可能的实施方式中,客户端在配置条带信息后,可根据待写入数据的写入粒度,为待写入数据创建相应地存储映射关系,即待写入数据的存储映射关系。相应地,对象存储设备接收所述客户端发送的所述待写入数据的存储映射关系,所述待写入数据的存储映射关系包括所述待写入数据存储时的所述待写入地址和物理地址之间的映射关系。

在一些可能的实施方式中,对象存储设备还可根据待写入数据的写入粒度,创建待存储数据的存储映射关系,该存储映射关系包括待存储数据存储时的逻辑地址和物理地址之间的映射关系,该逻辑地址与待写入数据的待写入地址相关。具体的,该逻辑地址可为根据待写入地址和待写入数据的写入粒度确定获得。

第三方面,本发明实施例公开提供了一种数据处理方法,所述方法包括:主机获取待操作数据的属性信息,根据待操作数据的属性信息生成数据操作请求。进一步地,主机向客户端发送数据操作请求,该数据操作请求包括数据完整性域DIF。该DIF用于承载待操作数据的属性信息。

通过实施本发明实施例,主机可根据实际需求获得待操作数据的属性信息,进而生成数据操作请求以下发给客户端或通过客户端转发给对象存储设备。便于客户端或对象存储设备根据该待操作数据的属性信息对待操作数据进行存储管理,以实现依据数据的属性特征进行存储,减少磁盘的性能损失、避免存储资源的浪费等。

在一些可能的实施方式中,数据操作请求可为数据读IO请求。相应地,待操作数据的属性信息可包括待读取数据的读取粒度和/或待读取数据对应的读取地址的读取信息,该读取信息具体可为读取频率或读取类型。其中,该读取粒度用于指示包括待读取数据在内的预读数据的大小。该读取信息用于指示单位时间内待读取地址发生数据读取的频率。

在一些可能的实施方式中,数据操作请求可为数据写IO请求。相应地,待操作数据的属性信息包括待写入数据的写入粒度和/或待写入数据对应的待写入地址的写入信息,该写入新具体可为写入频率或写入类型。其中,该写入粒度用于指示待写入数据存储时采用的存储粒度。写入信息用于指示单位时间内待写入地址发生数据写入的频率。

第四方面,本发明实施例公开提供了一种数据处理方法,所述方法包括:客户端接收主机发送的数据写IO请求,该数据写IO请求中包括数据完整性域DIF,DIF中承载有待写入数据的属性信息。相应地,客户端根据待写入数据的属性信息,为待写入数据配置对应的条带信息,所述条带信息包括待写入数据存储时使用的至少一个条带单元以及每个条带单元的物理地址。客户端根据条带信息,将携带有待写入数据的部分数据以及物理地址的条带单元发送给对应的对象存储设备。

在一些可能的实施例中,待写入数据的属性信息包括待写入数据的写入粒度。相应地,客户端可为待写入数据配置条带单元的大小与该写入粒度匹配的条带,该条带的信息(即条带信息)包括待写入数据存储时的至少一个条带单元以及每个条带单元各自的物理地址。每个条带单元用于存储待写入数据中的部分数据。换句话说,客户端选取条带单元与写入粒度相同的条带,以存储待写入数据,有利于提升磁盘的利用率。

在一些可能的实施方式中,待写入数据的属性信息包括待写入数据对应的待写入地址的写入信息,用于指示单位时间内待写入地址发生数据写入的频率。相应地,客户端可为待写入数据配置与该写入信息所指示的频率相匹配的条带。该写入类型具体可为写入频率或写入类型。换句话说,客户端可将同一写入类型或者位于同一写入频率范围的待写入数据存储到同一条带中。

第五方面,本发明实施例提供了一种数据处理装置(具体可为对象存储设备),包括通信单元和处理单元,其中:

所述通信单元,用于接收数据读IO请求,所述数据读IO请求包括数据完整性域DIF,所述DIF用于承载待读取数据的属性信息;

所述处理单元,用于根据所述待读取数据的属性信息,对所述待读取数据进行处理。

在一些可能的实施方式中,所述待读取数据的属性信息包括待读取数据的读取粒度,用于指示包括所述待读取数据在内的预读数据的大小。所述处理单元具体用于在所述预读数据的大小大于或等于第一阈值时,读取包括所述待读取数据在内的预读数据,并将所述预读数据发送给客户端,以缓存到所述客户端的内存中;或者,在所述预设数据的大小小于第一阈值时,读取所述待读取数据,并将所述待读取数据发送至主机。

在一些可能的实施方式中,所述待读取数据的属性信息包括所述待读取数据对应的待读取地址的读取信息,所述读取信息用于指示单位时间内所述待读取地址发生数据读取的频率。所述处理单元具体用于当所述读取信息为第一读取信息时,将所述待读取数据写到所述对象存储设备的非易失性缓存中;或者,当所述读取信息为第二读取信息时,将所述待读取数据写到所述对象存储设备的非易失性缓存中,并在所述所述对象存储设备的非易失性缓存中设置过期时长,以清除所述非易失性缓存中存储时长超过所述过期时长的数据;其中,所述第一读取信息所指示的频率大于所述第二读取信息所指示的频率。

关于本发明实施例中未示出或未描述的内容,可参见前述第一方面所述实施例中的相关阐述,这里不做赘述。

第六方面,本发明实施例提供了另一种数据处理装置(具体可为对象存储设备),包括通信单元和处理单元,其中:

所述通信单元,用于接收数据写IO请求,所述数据写IO请求包括数据完整性域DIF,所述DIF用于承载待写入数据的属性信息;

所述处理单元,用于根据所述待写入数据的属性信息,对所述待写入数据进行处理。

在一些可能的实施方式中,所述待写入数据的属性信息包括所述待写入数据对应的待写入地址的写入信息,所述写入信息用于指示单位时间内所述待写入地址发生数据写入的频率。所述处理单元具体用于当所述写入信息为第一写入信息,所述对象存储设备将所述待写入数据存储到所述对象存储设备的非易失性缓存中;或者,当所述写入信息为第二写入信息,所述对象存储设备将所述待写入数据存储到所述对象存储设备的硬盘中;其中,所述第一写入信息所指示的频率大于所述第二写入信息所指示的频率。

在一些可能的实施方式中,所述待写入数据的属性信息包括待写入数据的写入粒度,用于指示所述待写入数据存储时采用的存储粒度。客户端接收所述数据写IO请求,根据所述待写入数据的属性信息,为所述待写入数据配置对应的条带信息,所述条带信息包括所述待写入数据存储时使用的条带单元以及所述条带单元的物理地址;所述客户端根据所述条带信息,将携带有所述待写入数据以及所述物理地址在内的条带单元发送给所述通信单元;所述通信单元接收所述客户端发送的所述携带有所述待写入数据以及所述物理地址在内的条带单元。相应地,所述处理单元具体用于按照所述条带单元的物理地址,将所述待写入数据存储到所述对象存储设备的硬盘中。

在一些可能的实施方式中,所述处理单元还用于根据所述待写入数据的写入粒度,创建所述待写入数据的存储映射关系,所述存储映射关系包括所述待写入数据存储时的所述待写入地址和所述物理地址之间的映射关系。

关于本发明实施例中未示出或未描述的内容,可参见前述第二方面所述实施例中的相关阐述,这里不做赘述。

第七方面,本发明实施例提供了另一种数据处理装置(具体可为主机),包括通信单元和处理单元,其中:

所述处理单元,用于获取待操作数据的属性信息;

所述通信单元,用于向客户端发送数据操作请求,所述数据操作请求包括数据完整性域DIF,所述DIF用于承载所述待操作数据的属性信息。

在一些可能的实施方式中,在所述数据操作请求为数据读IO请求时,所述待操作数据的属性信息包括待读取数据的读取粒度和/或待读取数据对应的待读取地址的读取信息。其中,所述待读取数据的读取粒度用于指示包括所述待读取数据在内的预读数据的大小;所述待读取地址的读取信息用于指示单位时间内所述待读取地址发生数据读取的频率。

在一些可能的实施方式中,在所述数据操作请求为数据写IO请求时,所述待操作数据的属性信息包括待写入数据的写入粒度和/或待写入数据对应的待写入地址的写入信息。其中,所述待写入数据的写入粒度用于指示所述待写入数据存储时采用的存储粒度;所述待写入地址的写入信息用于指示单位时间内所述待写入地址发生数据写入的频率。

关于本发明实施例中未示出或未描述的内容,可参见前述第三方面所述实施例中的相关阐述,这里不做赘述。

第八方面,本发明实施例提供了一种对象存储设备,包括:处理器,存储器,通信接口和总线;处理器、通信接口、存储器通过总线相互通信;通信接口,用于接收和发送数据;存储器,用于存储指令;处理器,用于调用存储器中的指令,执行上述第一方面或第一方面的任意可能的实施方式中所描述的方法。第九方面,本发明实施例提供了又一种对象存储设备,包括:处理器,存储器,通信接口和总线;处理器、通信接口、存储器通过总线相互通信;通信接口,用于接收和发送数据;存储器,用于存储指令;处理器,用于调用存储器中的指令,执行上述第二方面或第二方面的任意可能的实施方式中所描述的方法。

第十方面,本发明实施例提供了一种主机,包括:处理器,存储器,通信接口和总线;处理器、通信接口、存储器通过总线相互通信;通信接口,用于接收和发送数据;存储器,用于存储指令;处理器,用于调用存储器中的指令,执行上述第三方面或第三方面的任意可能的实施方式中所描述的方法。第十一方面,本发明实施例提供了一种客户端,包括:处理器,存储器,通信接口和总线;处理器、通信接口、存储器通过总线相互通信;通信接口,用于接收和发送数据;存储器,用于存储指令;处理器,用于调用存储器中的指令,执行上述第四方面或第四方面的任意可能的实施方式中所描述的方法。

第十二方面,提供了一种计算机非瞬态(non-transitory)存储介质,所述计算机非瞬态存储介质存储了用于数据处理的程序代码。所述程序代码包括用于执行上述第一方面或第一方面的任意可能的实施方式中所描述的方法的指令。

第十三方面,提供了一种计算机非瞬态存储介质,所述计算机非瞬态存储介质存储了用于数据处理的程序代码。所述程序代码包括用于执行上述第二方面或第二方面的任意可能的实施方式中所描述的方法的指令。

第十四方面,提供了一种计算机非瞬态存储介质,所述计算机非瞬态存储介质存储了用于数据处理的程序代码。所述程序代码包括用于执行上述第三方面或第三方面的任意可能的实施方式中所描述的方法的指令。

第十五方面,提供了一种计算机非瞬态存储介质,所述计算机非瞬态存储介质存储了用于数据处理的程序代码。所述程序代码包括用于执行上述第四方面或第四方面的任意可能的实施方式中所描述的方法的指令。

以上存储介质可以为非易失性的。

第十六方面,提供了一种芯片产品,以执行上述第一方面或第一方面的任意可能的实施方式中的方法。

第十七方面,提供了一种芯片产品,以执行上述第二方面或第二方面的任意可能的实施方式中的方法。

第十八方面,提供了一种芯片产品,以执行上述第三方面或第三方面的任意可能的实施方式中的方法。

第十九方面,提供了一种芯片产品,以执行上述第四方面或第四方面的任意可能的实施方式中的方法。

通过实施本发明实施例,能够解决现有分布式存储系统中存在的资源浪费和性能损失的问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。

图1是本发明实施例提供的一种数据处理系统的网络框架示意图。

图2是本发明实施例提供的一种数据处理方法的流程示意图。

图3是本发明实施例提供的一种数据操作请求的格式示意图。

图4是本发明实施例提供的另一种数据处理方法的流程示意图。

图5是本发明实施例提供的另一种数据处理方法的流程示意图。

图6是本发明实施例提供的一种数据处理装置的结构示意图。

图7是本发明实施例提供的另一种数据处理设备的结构示意图。

具体实施方式

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

首先,介绍本申请涉及的一些技术术语。

逻辑块地址(logical block address,LBA),也名逻辑地址或相对地址。是指存储在磁盘或磁带上的数据块所具有的用于检索或重写的地址。也可指在具有地址变换功能的计算设备中,访问指令给出的地址(或操作数)叫逻辑地址。

物理块地址(physical block address,LBA),也名物理地址。是指中央处理器(central processing unit,CPU)地址总线传来用于寻址的地址。其中,物理地址通常是映射到内存或存储器上的。在具有地址变换功能的计算设备中,通过寻址方式的计算或变换可将逻辑地址转换为存储器中的实际有效地址(即物理地址)。

条带(stripe),是把连续的数据分割成相同大小的数据块,把每段数据分布写入阵列中的不同磁盘上的方法。其中,影响条带效果的参数有两个:条带深度和条带大小。条带深度是指同时可以并行读或写的条带数量。条带大小(stripe size)是指写到每个磁盘上的数据块的大小。本申请下文将举例说明。

为解决现有数据存储方案中存在的性能损失以及资源浪费等问题,本申请提出一种数据处理的方法、所述方法适用的网络框架以及相关设备。首先,参见图1是本发明实施例提供的一种数据处理系统的网络框架示意图。如图1所示的数据处理系统100包括应用软件102、虚拟磁盘接口104、客户端106、元数据控制器108(meta data controller,MDC)以及对象存储设备110(object-based storage device,OSD)。其中,

应用软件102根据自身的实际需求可向虚拟磁盘下发数据读或写输入输出(inputoutput,IO)请求,该数据读/写IO请求中携带有待读取/写入的数据的大小以及该数据存储的逻辑块地址(logical block address,LBA),下文简称逻辑地址等信息。

虚拟磁盘接口104可为虚拟块存储(virtual blcok storage,VBS)管理组件提供的接口,用于访问虚拟磁盘。具体的,应用软件102通过虚拟磁盘接口104向相应虚拟磁盘发送数据读/写IO请求,以从相应地磁盘中读取或写入数据。在实际应用中,所述虚拟磁盘接口104和所述应用软件102通常部署在同一物理设备(例如主机或服务器等)上。元数据控制器108负责管理对象存储设备110,该对象存储设备110的数量可以是一个或多个,图示以n个为例示出,n为正整数。在分布式数据存储系统中,对象存储设备110的数量通常是多个。

数据处理系统100也可以分为两个部分部署,应用软件102和虚拟磁盘接口104部署在客户端的设备上,客户端106、元数据控制器108、对象存储设备110部署在云服务提供商的数据中心内。云服务提供商通过客户端106、元数据控制器108、对象存储设备110向客户提供对象存储服务。客户通过应用软件102和虚拟磁盘接口104对对象存储服务进行访问。

具体的,元数据控制器108可负责维护对象存储设备110与客户端106之间的连接状态,该连接状态包括在线状态和离线状态。所述在线状态指对象存储设备110与客户端106之间能够正常通信,建立有通信连接关系。所述离线状态指对象存储设备110与客户端106之间无通信连接,即客户端无法将数据存储到离线状态的对象存储设备中。可选地,元数据控制器108还可根据一定的部署策略来部署对象存储设备110,例如分区部署策略、均衡负载部署策略等等,这里不做限定。相应地,元数据控制器108可获知当前与客户端106通信的每个对象存储设备OSD的信息,例如OSD的网络协议地址(internet protocoladdress,IP)、OSD的标识等等。可选地,元数据控制器108可将对象存储设备110的信息预先发送给客户端106,便于客户端106接收到数据读/写IO请求后,能依据该请求中的LBA逻辑地址计算出相应地对象存储设备110,这里不做详述。进一步地,客户端可依据该OSD的信息(例如标识、IP地址等)建立客户端106与该对象存储设备110之间的通信,例如客户端106将数据读/写IO请求转发给该对象存储设备等。

在实际应用中,元数据控制器108可单独部署到某个物理设备上,或者采用分布式部署到一个或多个物理设备上,并不做限定。

客户端106可为软件模块,用于接收应用软件102通过虚拟磁盘接口104下发的数据读/写IO请求。进一步地,客户端106可根据该数据读/写IO请求为待读取/写入的数据配置相应地数据条带,以将该数据写入或存储到数据条带中。换句话说,本申请中数据采用条带的方式进行存储。可选地,客户端106还可采用预设算法计算该数据对应的纠错校验码(erasure code,EC)。所述预设算法为用户或系统自定义设置的,例如EC校验码算法等。关于如何计算EC校验码本申请这里不做详述,如何配置数据条带具体在本申请下文进行详述。

可选地,客户端106还可将数据待存储的数据条带、EC校验码以及接收到的数据读/写IO请求一起或分别发送给相应地对象存储设备OSD。示例性地,客户端106获得数据待存储的数据条带以及EC校验码后,可将这两个信息新加入数据读/写IO请求中进行重新封装,并将重新封装后的数据读/写IO请求发送给对象存储设备,本申请不做限定。

相应地,对象存储设备110可接收数据读/写IO请求,并根据该请求进行相应数据的读取或写入。当对象存储设备110接收到数据读IO请求时,根据该请求中的LBA逻辑地址读取相应虚拟磁盘中的数据块以及元数据等。这里的元数据可指用于描述数据块的属性的数据,例如数据块存储的逻辑地址、物理地址、数据块的大小中的一个或者多个。相应地,当对象存储设备110接收到数据写IO请求后,可根据该请求中的LBA逻辑地址将数据写到相应地虚拟磁盘中。关于对象存储设备如何依据数据读/写IO请求进行相应地数据操作,具体在本申请下文进行详述。

在实际应用中,应用软件102、虚拟磁盘接口104以及客户端106通常部署到一个物理设备上。对象存储设备110部署到另外的物理设备上。可选地,对象存储设备110也可和应用软件102以及客户端106等部署到同一物理设备上。元数据控制器108被单独部署到另外的物理设备上。关于图1中各部分的部署,本申请不做限定。

在可选实施例中,对象存储设备110中包括有缓存以及磁盘。关于缓存和磁盘的数量不做限定,图示以1个缓存和1个磁盘为例。所述磁盘包括但不限于虚拟磁盘或物理磁盘等。为避免多个进程访问同一磁盘,导致发生磁盘冲突的问题,本申请采用条带技术将IO负载(数据)均衡到各对象存储设备的磁盘中。下面以n个对象存储设备为例进行数据存储的相关说明。即是,n个对象存储设备各自的磁盘都提供相应地存储空间(条带单元)用于存储该数据中的一小部分。如图所示,可将数据分为n份,得到n个数据块,每个数据块包括数据中的一小部分数据。相应地,n个对象存储设备中每个对象存储单元可提供一个条带单元来存储一份数据块,即可获得n个条带单元,以对应存储n个数据块。如图所示,对象存储设备1可提供条带单元1来存储第一个数据块(数据块1),对象存储设备2可提供条带单元2来存储第二个数据块(数据块2)。依次类推,对象存储设备n可提供条带单元n来存储第n个数据块(数据块n)。换句话说,这里用于存储整份数据的条带由n个条带单元组成,该n个条带单元来自n个对象存储设备,即由n个磁盘中每个磁盘提供的一个条带单元组成。

相应地,当某个对象存储设备获知到携带数据块的条带单元后,可根据该条带单元的物理地址,将该数据块存储到该条带单元上,即是将该数据块按照条带单元的物理地址写到或存储到自身的磁盘中。例如,以对象存储设备1为例,当其获知其上条带单元1需存储数据块1后,可根据条带单元1的物理地址,将数据块1写到条带单元1,即是写到自身的磁盘中。

同样地,当n个对象存储设备各自获知到自身条带单元需存储的数据块后,可按照对应条带单元的物理地址来存储相应地数据块。当n个对象存储设备均完成各自的数据块存储时,即可完成整份数据的存储。

其中,对象存储设备中的缓存用于临时或短暂性存放数据。可选地,该缓存中还可设置定时器,当该缓存中存储的数据超过预设过期时长后,可对该缓存中的数据进行处理,例如清除该缓存中的数据或者将该缓存中的数据写到硬盘中等等。

接着,请参见图2是本发明实施例提供的一种数据处理方法的流程示意图。如图2所示的数据处理方法包括如下实施步骤:

步骤S202、主机获取待操作数据的属性信息,根据待操作数据的属性信息生成数据操作请求。

步骤S204、主机向客户端发送数据操作请求。相应地,客户端接收该数据操作请求,并将其转发给对象存储设备。

本申请中,主机是指运行有应用软件的物理设备。具体的,主机中的应用软件根据实际需求可获得待操作数据的属性信息。进一步地,主机可生成数据操作请求,并将该待操作数据的属性信息封装到数据操作请求中的数据完整性域(date inyegrity field,DIF)中。进而将数据操作请求发送给客户端,以通过客户端转发给对象存储设备。

其中,这里的待操作数据可包括但不限于待读取数据或者待写入数据等。相应地,待操作数据的属性信息具体可指待写入数据的属性信息、或待读取数据的属性信息等。关于待操作数据的属性信息具体在下文阐述。

步骤S206、对象存储设备获取数据操作请求,所述数据操作请求包括待操作数据的属性信息,所述属性信息用于描述所述待操作数据的属性。

步骤S208、所述对象存储设备根据所述待操作数据的属性信息,对所述待操作数据进行处理。

本申请中,所述数据操作请求具体可为数据读IO请求或者数据写IO请求。当所述数据操作请求为数据读IO请求时,所述待操作数据具体可为待读取数据。当所述数据操作请求为数据写IO请求时,所述待操作数据具体可为待写入数据。

所述数据操作请求中包括用户或系统自定义设置的标志字段,该标志字段用于指示所述待操作数据的属性信息,例如待操作数据的大小、数据IO粒度、待操作数据的逻辑地址、该逻辑地址涉及的读取信息(例如读取频率或者读取类型)以及写入信息(例如写入频率或写入类型)中的任意一个或多个,具体在下文进行详述。

具体的,如图3示出一种数据操作请求的格式示意图。所述数据操作请求包括数据域和数据完整性域(date inyegrity field,DIF)。其中,所述数据域用于承载待传输的数据,这里具体可为待操作数据(待读取数据或待写入数据)。DIF域用于检测待传输的数据的完整性,如图所示DIF域包括校验区、版本区、应用软件区以及地址区。所述数据域和所述DIF域各自的大小具体可为用户或系统自定义设置的,例如采用512+8字节(bytes)、4096+8以及4096+64等几种存储方式等,本申请不做限定。其中,

校验区用于承载校验数据,例如循环冗余校验(cyclic redundancy check,CRC)数据等。校验区占用的字节大小可为用户或系统自定义设置的,例如2个字节。

版本区用于指示DIF的版本号,版本区占用的大小可为用户或系统自定义设置的,例如1个字节。

地址区用于指示待操作数据对应所在的逻辑地址LBA。其占用的大小具体可为用户或系统自定义设置的,例如4个字节。

应用软件区由保留字段以及LBA有效指示字段组成,所述应用软件区占用的大小具体可为用户或系统自定义设置的,例如图示以1个字节为例示出。LBA有效指示字段用于指示地址区承载的LBA逻辑地址是否有效。具体的,当LBA有效指示字段为第一预设字符(如1)时,则表示地址区中承载的LBA逻辑地址有效;当LBA有效指示字段为第二预设字符(如0)时,则表示地址区中承载的LBA逻辑地址无效。所述LBA有效指示字段占用的大小具体可为用户或系统自定义设置的,例如1个比特(bit)。

保留字段为待定义的字段,其占用的大小同样可为用户或系统自定义设置的,例如7bit等。本申请重新对保留字段进行定义,即将待操作数据的属性信息携带于保留字段中。具体的,所述保留字段包括但不限于数据IO粒度字段、数据写字段以及数据读字段中的任意一个或多个,其各自占用的大小以及位置可根据实际需求进行定义,本申请不做限定。其中,

数据IO粒度字段,在不同的应用场景中该字段所表示的含义有所不同。具体的,在写数据应用场景中(即所述数据操作请求为数据写IO请求),数据IO粒度字段具体可为写入粒度字段,用于表示待操作数据被存储时采用的最小单位大小。换句话说,待存储数据在存储时被划分的最小单位粒度。所述存储粒度字段占用的大小以及位置具体可为用户或系统自定义设置的。示例性地,存储粒度字段占用3bit,其对应表示的写粒度有以下8种:512byte、1Kbyte、4Kbyte、8Kbyte、16Kbyte、32Kbyte、64Kbyte以及12Kbyte等。

在读数据应用场景中(即所述数据操作请求为数据读IO请求),数据IO粒度字段具体可为读取粒度字段,用于表示预读数据的大小,所述预读数据包括所述待操作数据。所述预读数据为即将读取的数据。示例性地,假设上层应用软件需读取1M的数据(即预读数据的大小为1M),每次应用软件支持发送的数据读IO请求的大小为1K,即每次应用软件下发的数据读IO请求所请求读取的数据的大小为1K。相应地,为完成1M数据的读取,应用软件需下发1000次数据读IO请求。然而本申请,可通过读取粒度字段来指示预读数据的大小,采用一次数据读IO请求即可完成预读数据的提前读取,节省时间,提升数据读取的高效性。

数据写字段,用于表示待写入地址的写入信息,该待写入地址为待操作数据被写入时的地址,其具体可为LBA逻辑地址。所述写入信息包括但不限于写入类型或写入频率等。换句话说,数据写字段用于指示该待写入地址的写入类型或写入频率。具体的,所述数据写字段可用于反映单位时间内在所述待写入地址中写入数据的写入频率,即单位时间内待写入地址中发生数据写入的频率。

可选地,本申请中设备(具体可为客户端或对象存储设备)还可根据所述待写入地址的写入频率来获得该待写入地址的写入类型。示例性地,当所述待写入地址的写入频率位于第一阈值范围时,可认为或确定其对应的写入类型为第一写入类型,例如很快被覆盖写或经常被覆盖写等。当待写入地址的写入频率位于第二阈值范围时,可认为或确定其对应的写入类型为第二写入类型,例如很少被覆盖写等。所述第一阈值范围和所述第二阈值范围各自的上限值和下限值具体可为用户或系统自定义设置的,所述第一阈值范围的下限值大于或等于第二阈值范围的上限值。

所述数据写字段占用的大小具体可为用户或系统根据实际需求进行设置的,例如2bit等等。同一待写入地址存在多次数据写入时会发生数据被覆盖的情况,即后写入的数据会覆盖前一次写入的数据。因此,待写入地址的写入频率或类型,也表示待写入地址发生数据覆盖写入的写入频率或类型。

数据读字段,用于表示待读取地址的读取信息。所述待读取地址为待操作数据读取时的地址,其具体可为LBA逻辑地址。所述读取信息包括但不限于待读取地址的读取类型或读取频率。具体的,所述数据读字段可用于反映单位时间内所述待读取地址发生数据读取的读取频率。

可选地,本申请设备(具体可为客户端或对象存储设备)还可根据所述待读取地址的读取频率来获得该待读取地址的读取类型。示例性地,当所述待读取地址的读取频率位于第三阈值范围时,可认为或确定其对应的读取类型为第一读取类型,例如经常读。当所述待读取地址的读取频率位于第四阈值范围时,可认为或确定其对应的读取类型为第二读取类型,例如即将读取多次或顺序读等。当所述待读取地址的读取频率位于第五阈值范围时,可认为或确定其对应的读取类型为第三类型,例如很少读或只读一次等。所述第三阈值范围、所述第四阈值范围以及所述第五阈值范围具体可为用户或系统自定义设置的。其中,所述第三阈值范围的下限值大于或等于所述第四阈值范围的上限值,所述第四阈值范围的下限值大于或等于所述第五阈值范围的上限值。

所述数据读字段占用的大小具体可为用户或系统自定义设置的,例如2bit等等。

下面结合本申请适用的两种应用场景,阐述本发明提出的数据存储方法涉及的相关实施例。首先,在写数据的应用场景中,参见图4是本发明实施例提出的另一种数据处理方法的流程示意图。请参见图4所示的方法包括如下实施步骤:

步骤S402、应用软件获取待写入数据的属性信息。

步骤S404、应用软件向客户端发送数据写IO请求,所述数据写IO请求包括数据完整性域DIF,该DIF用于承载所述待写入数据的属性信息。相应地,客户端接收该数据写IO请求。

本申请中,应用软件(具体可为运行有应用软件的主机)可根据实际需求向客户端下发数据写IO请求,所述数据写IO请求中包括所述待写入数据的属性信息。具体的,所述待写入数据的属性信息承载于数据写IO请求中的DIF字段,所述待写入信息的属性信息可包括但不限于以下中的任一个或多个的组合:所述待写入数据对应的待写入地址(具体可为LBA逻辑地址)、所述待写入数据的大小以及所述待写入地址的写入信息、数据IO粒度等信息。相应地,客户端接收所述数据写IO请求。

步骤S406、客户端根据待写入数据的属性信息,为待写入数据配置相应地条带信息,该条带信息包括待写入数据存储时使用的至少一个条带单元以及所述至少一个条带单元中每个条带单元的物理地址。

步骤S408、客户端根据所述条带信息,将所述至少一个条带单元以及该条带单元的物理地址对应发送给各个对象存储设备。其中,每个条带单元用于存储所述待写入数据中的一小部分数据。相应地,对象存储设备接收客户端发送的条带单元以及该条带单元的物理地址,该条带单元携带有待存储数据,待存储数据为所述待写入数据中的部分数据。可选地,该条带单元还携带有该条带单元的物理地址。

步骤S410、所述对象存储设备根据所述待写入数据的属性信息,对所述待写入数据中的待存储数据进行处理。

步骤S406中,客户端接收数据写IO请求后,可根据所述数据写IO请求中所述待写入数据的属性信息,决定是否为所述待写入数据配置相应地数据条带,以存储所述待写入数据。具体的,当所述待写入数据的属性信息包括待写入数据对应的待写入地址的写入信息。所述写入信息具体可为写入频率或写入类型,其可用于指示单位时间内所述待写入地址发生数据写入的频率或频率范围。当所述写入信息为第一写入信息,用于指示单位时间内所述待写入地址发生数据写入的频率处于第一阈值范围,或者所述第一写入信息指示的写入类型为很快被覆盖写或经常被覆盖写等,客户端可放弃为待写入数据配置相应地条带信息。反之,当所述写入信息为第二写入信息,用于指示单位时间内所述待写入地址发生数据写入的频率处于第二阈值范围,或者所述第一写入信息指示的写入类型为很少被覆盖写等,客户端可为待写入数据配置相应地条带信息,具体在下文进行详述。其中,第一阈值范围的下限值大于或等于第二阈值范围的上限值。

可选地,客户端接收数据写IO请求后,也可直接根据所述数据写IO请求中所述待写入数据的属性信息,为所述待写入数据配置相应地条带信息,并下发给相应地对象存储设备。在对象存储设备侧再次根据待写入数据的属性信息,决定是否按照该条带信息中相应地条带单元的物理地址来存储数据,本申请不做限定。

客户端根据待写入数据的属性信息为待写入数据配置对应的条带信息,其具体存在以下几种实施方式:

第一种,当所述待写入数据的属性信息包括所述待写入数据的写入粒度时,客户端可根据所述写入粒度,为所述待写入数据选择出大小与所述写入粒度匹配的条带单元,以用于存储所述待写入数据。具体的,为减少数据存储量,通常选择条带大小和所述写入粒度相同的条带单元,以组成用于存储所述待写入数据的条带。在获得所述条带中的每个条带单元后,即可获得每个条带单元各自对应的物理地址,所述条带单元与所述条带单元对应所在的物理地址一一对应。

举例来说,假设数据写IO请求的大小为32K,写入粒度为8K。相应地,客户端在为待写入数据选择配置条带时,可选用4个8K大小的条带,以组合形成存储该待写入数据的条带。换句话说,这里的条带包括4个8K大小的条带。相应地,在数据存储时,32K的待写入数据同样可被分为4份待存储数据,每份待存储数据的大小为8K,用一个条带单元存储。这4个条带单元可分别来自4个对象存储设备,这里不做论述。

第二种,当所述待写入数据的属性信息包括所述待写入数据对应所在待写入地址的写入信息时,所述写入信息具体可为写入频率或写入类型。相应地,客户端可根据所述写入信息,为所述待写入数据分配相应地条带信息,用以存储所述待写入数据。所述条带单元包括一个或多个条带单元以及每个条带单元的物理地址,每个条带单元用于存储待写入数据中的部分数据(即待存储数据)。

具体的,当所述写入信息为写入频率时,客户端可将位于同一频率范围的待写入数据写到或存储到相同的条带或条带单元中。所述同一频率范围具体可为用户或系统根据实际需求自定义设置的,例如10-15次/分钟等。当所述写入信息为写入类型时,对象存储设备可将同一写入类型的待写入数据存储到相同的条带或条带单元中,以实现数据的分类存储。

第三种,所述待写入数据的属性信息包括所述待写入数据的写入粒度以及所述待写入数据对应所在待写入地址的写入信息。相应地,客户端可根据所述写入粒度以及待写入地址的写入信息,来为所述待写入数据配置相应地条带信息,该条带信息包括用于存储待写入数据的一个或多个条带单元以及每个条带单元各自的物理地址。每个条带单元用于存储待写入数据中的部分数据(即待存储数据)。示例性地,选取条带大小与所述写入粒度相同的条带单元,且所述条带单元支持承载或存储和所述待写入地址的写入信息匹配的数据。换句话说,客户端将综合考虑待写入数据的写入类型以及待写入地址的写入信息(写入频率或写入类型)来为待写入数据配置相应地条带,以存储该待写入数据。

在可选实施例中,客户端接收数据读IO请求后,还可为待写入数据计算相应的EC校验码,例如采用预设算法计算获得EC校验码等。相应地,客户端还可将计算获得的EC校验码以及待写入数据一起发送给对象存储设备,便于对象存储设备将所述待写入数据和所述EC校验码进行一起存储。

可选地,本申请在采用条带方式存储数据的过程中,对于不是满条带的EC校验码而言,可将该条带对应待写入地址的写入类型标记为预设类型,例如即将被覆盖写。便于系统后台重新计算新的EC校验码,结合待写入数据以组成满条带,覆盖原来计算获得的EC校验码,这样有利于提高磁盘存储空间的利用率。

客户端为待写入数据配置条带信息后,可将条带信息中的一个或多个条带单元对应分发给相应地对象存储设备,该条带单元可携带有该条带单元的物理地址以及所需存储的待存储数据,该待存储数据为待写入数据中的部分数据。关于条带单元和对象存储设备之间的映射关系,具体可参见前述实施例中的相关阐述,这里不再赘述。换句话说,客户端获知到用于存储待存储数据的条带单元后,即可获知该条带单元的物理地址,进而可获知该条带单元对应所在的对象存储设备或对象存储设备的硬盘(磁盘),这里不做限定和详述。

相应地,对象存储设备后续可根据接收的条带单元,按照该条带单元的存储地址将待存储数据写到对象存储设备的硬盘中。

步骤S410中,对象存储设备接收客户端发送的数据写IO请求以及携带待存储数据以及物理地址的条带单元后,可根据数据写IO请求中待写入数据的属性信息,对所述待存储数据进行存储。

具体的,所述待写入数据的属性信息包括待写入地址的写入信息(例如写入频率或写入类型)。当所述写入信息为第一写入信息,该第一写入信息用于指示待写入地址发生数据写入的频率。具体的,该第一写入信息可用于指示所述待写入地址的写入频率位于第一阈值范围,或者该待写入地址的写入类型为第一类型(例如经常被覆盖写、很快被覆盖写等)。则相应地,对象存储设备可将所述待写入数据写入或存储到第一非易失性缓存中(一般设置与对象存储设备内部)。可选地,在经过一段时间后,对象存储设备可将第一非易失性缓存中存储的数据写到对象存储设备的非易失性硬盘中,便于基于待写入数据的特征合理安排待写入数据的存储介质,提升数据读写的效率。由于待写入地址的写入频率较高,将待写入数据存储在缓存一段时间后再写到硬盘中可以使得如果该段时间内,对象存储设备接收到其他的针对该待写入地址的新写IO请求,新写IO请求携带的待写入数据可以覆盖缓存内存储的旧的待写入数据,使得该段时间结束后,只有针对该待写入地址的最新的写IO请求的待写入数据才会被写入硬盘。避免了针对该待写入地址的每一个写IO请求携带的待写入数据都需要被写入硬盘造成的效率低下。

当所述写入信息为第二写入信息,该第二写入信息用于指示所述待写入地址的写入频率位于第二阈值范围,或者该待写入地址的写入类型为第二类型(如很少被覆盖写)。其均可用于指示待写入数据发生数据写入的频率。相应地,对象存储设备可将所述待写入数据直接写入或存储到对象存储设备的非易失性硬盘中。具体的,对象存储设备将按照所述条带单元的物理地址,将所述待写入数据中的待存储数据写到或存储到对象存储设备的非易失性硬盘中。

其中,第一阈值范围和第二阈值范围为用户或系统预先设置的,第一阈值范围的下限值大于或等于第二阈值范围的上限值。非易失性缓存的读写速率大于非易失性硬盘的读写速率。

换句话说,对象存储设备可将不同写入频率或写入类型的待写入数据存储或写入到不同的非易失性存储器中。示例性地,若所述待写入数据对应的待写入地址的写入类型为很快被覆盖写,则对象存储设备可将待写入数据写到非易失性缓存中,并非写到磁盘或硬盘中。可选地,对象存储设备还可将写入类型为经常被覆盖写和很少被覆盖写的待写入数据进行分开存储,以减少数据访问干扰。

在可选实施例中,所述待写入数据的属性信息包括所述待写入数据的写入粒度。在对象存储设备接收数据写IO请求以及携带待存储数据的条带单元后,对象存储设备可根据待写入数据的写入粒度,构建所述待存储数据的存储映射关系。该存储映射关系包括所述待存储数据存储时的逻辑地址和物理地址之间的映射关系。该逻辑地址是根据待写入地址和写入粒度确定的。

具体的,客户端接收数据写IO请求中携带有待写入数据的待写入地址(通常为LBA逻辑地址)。相应地,在客户端为待写入数据配置条带信息(一个或多个条带单元)后,可根据待写入数据的写入粒度(或条带单元的数量)对待写入地址进行划分,以获得每个条带单元各自对应的逻辑地址。进一步地,将每个条带单元的逻辑地址、物理地址以及该条带单元所需存储的待存储数据发送给相应地对象存储设备。相应地,对象存储设备接收上述信息后,可为待存储数据创建相应地存储映射关系,即待存储数据的存储映射关系。其包括有该待存储数据存储时(条带单元)的逻辑地址和物理地址之间的映射关系。

或者,客户端将条带单元以及数据写IO请求对应发送给对象存储设备后,对象存储设备可根据数据写IO请求中的待写入地址以及待写入数据的写入粒度,获得该条带单元对应的逻辑地址,即是该条带单元中待存储数据存储时的逻辑地址。关于如何获得条带单元的逻辑地址,本申请不做限定。示例性地,假设客户端为待写入数据配置了4个条带单元,分别为条带单元1-条带单元4。其分别位于对象存储设备1-对象存储设备4。相应地,当对象存储设备4接收到客户端发送的条带单元4,其携带有自身的物理地址以及待存储数据。进一步地,再结合接收的数据写IO请求中的待写入地址(假设为0-40),确定条带单元4的逻辑地址,这里即为30-40。最后,为待存储数据创建存储映射关系,这里即为条带单元4存储的待存储数据的逻辑地址和物理地址之间的映射关系。

在可选实施例中,客户端在为待写入数据配置条带信息后,还可根据待写入数据的写入粒度,为待写入数据创建相应地存储映射关系,即待写入数据的存储映射关系。该存储映射关系包括所述待写入数据存储时的逻辑地址(即待写入地址)和物理地址之间的映射关系。

具体的,数据写IO请求中包括有待写入数据的LBA逻辑地址,但该逻辑地址与待写入数据实际存储时所在的条带单元的物理地址并无联系或关联关系。相应地,在待写入数据被存储后,系统无法依据待写入数据的逻辑地址确定其实际存储所在的物理地址,进而无法查询到待写入数据。因此,对象存储设备还需建立并保存所述待写入数据的存储映射关系,该存储映射关系具体是根据写入粒度来划分或定制的,将待写入数据被存储时的逻辑地址和物理地址进行关联绑定而获得。

举例来说,假设数据写IO请求的大小(具体为该数据写IO请求中待写入数据的大小)为32K byte,该请求中包括有待写入数据的LBA逻辑地址为0-200,且该待写入数据的写入粒度为8K。客户端为待写入数据组合配置的条带包括4个条带单元,各自的物理地址分别为0X00-0X04。相应地,对象存储设备创建如下表1所示的存储映射关系表,用于反映待写入数据的存储映射关系。

表1

由上表1可知,待写入数据存储时的条带由4个条带单元组成,每个条带单元的大小为8K。每个条带单元都有各自对应的逻辑地址和物理地址。相应地,对象存储设备在接收到数据读IO请求后,该数据读IO请求中包括待读取数据的逻辑地址(例如0-50),则对象存储设备可根据上述表1记录的存储映射关系表,查找到该逻辑地址对应的物理地址(这里即条带单元1的物理地址0X01),进而从0X01处读取条带单元1的数据即为待读取数据。

在可选实施例中,客户端还可将该待写入数据的存储映射关系发送给各个对象存储设备,便于对象存储设备获知数据存储的条带单元的逻辑地址和物理地址之间的映射关系。在对象存储设备接收到数据读IO请求中携带的待读取数据的逻辑地址后,根据该逻辑地址从相应物理地址处获得待读取数据。

通过实施本发明实施例,通过重新对DIF域的字段进行定义,优化数据的存储布局,相比于现有技术而言能够提升存储器的存储性能,提高存储器的利用率。

其次,在读数据的应用场景,请参见图5是本发明实施例提供的另一种数据处理方法的流程示意图。请参见图5所示的方法包括如下实施步骤:

步骤S502、应用软件(具体可为运行有应用软件的主机)获取待读取数据的属性信息。

步骤S504、应用软件向客户端发送数据读IO请求,所述数据读IO请求包括DIF域,该DIF用于承载待读取数据的属性信息。相应地,客户端读取该数据读IO请求。关于所述数据读IO请求可对应参照前述所述数据写IO请求的相关描述,这里不再赘述。

步骤S506、客户端将数据读IO请求发送给对象存储设备。相应地,对象存储设备接收该数据读IO请求。

本申请中,客户端在接收到数据读IO请求后,如果数据读IO请求中待读取数据的属性信息包括预读数据的大小,当该预读数据的大小大于第一阈值时,可将数据读IO请求提前下发给对象存储设备,便于更快地读取获得该预读数据。这里提前下发的具体实施方式有多种,本申请不做限定。例如,客户端可为数据读IO请求分配更多的传输资源,以提升数据读IO请求的下发速率,从而将数据读IO请求提取下发给对象存储设备等。当该预读数据的大小小于或等于第一阈值时,按照正常下发速率将数据读IO请求下发给对象存储设备。

其中,所述预读数据包括所述待读取数据,可理解为应用软件一段时间内需要读取数据的总大小。可理解的,受限于应用软件自身的性能,应用软件每次发送的数据读IO请求的大小存在限制。当预读数据较大时,应用软件可通过多次下发数据读IO请求以完成相应大小的预读数据的读取。例如,预读数据的大小为1M,数据读IO请求的大小为1K(即数据读IO请求中请求待读取数据的大小为1K),则应用软件可通过1000个数据读IO请求来完成预读数据的读取。

步骤S508、对象存储设备读取所述待读取数据,并根据所述待读取数据的属性信息,对所述待读取数据进行处理。

步骤S508具体存在以下几种实施方式:第一种,所述待读取数据的属性信息包括所述待读取数据在内的预读数据的大小。如果所述预读数据的大小大于第一阈值时,则所述对象存储设备可先读取所述预读数据,然后将该预读数据发送给客户端,并将其缓存到客户端侧。便于后续应用软件下发相同数据读IO请求时,直接从客户端中读取该预读数据中相应的待读取数据,节省数据读取时间。

具体的,数据读IO请求中包括有预读数据的LBA逻辑地址,对象存储设备可根据该预读数据的逻辑地址从自身存储的存储映射关系中获得该预读数据的逻辑地址对应所在的物理地址,然后根据该预读数据的物理地址读取获得该预读数据。进一步地,对象存储设备可将该预读数据发送给客户端。相应地,客户端可将该预读数据写到内存中,或者客户端可根据数据读IO请求中待读取数据的属性信息来对预读数据进行存储,具体参见下文进行详述。

如果所述预读数据的大小小于或等于第一阈值时,对象存储设备可读取所述待读取数据,然后根据该待读取数据的属性信息对该待读取数据进行存储。可选的,对象存储设备读取所述待读取数据后,还可将该待读取数据发送给其他对象存储设备,便于其他对象存储设备根据该待读取数据的属性信息来对应存储该待读取数据,本申请不做限定。此种情况下,待读取数据可以不必存储于客户端的内存中。

具体的,预读数据的大小小于或等于第一阈值时,数据读IO请求中包括该待读取数据的LBA逻辑地址。相应地,对象存储设备依据该待读取数据的逻辑地址,从保存的存储映射关系中获得该待读取数据的逻辑地址所对应的物理地址。然后,从该物理地址处读取获得所述待读取数据。进一步地,将该待读取数据发给上层应用软件(即部署有应用软件的主机)。

第二种,当所述待读取数据的属性信息包括所述待读取数据对应所在的待读取地址的读取信息时,对象存储设备可根据该待读取数据的属性信息对所述待读取数据进行处理。

具体的,所述待读取数据的属性信息包括所述待读取数据对应的待读取地址的读取信息,所述读取信息包括但不限于读取类型或者读取频率。当所述读取信息用于指示单位时间内待读取地址发生数据读取的频率,当该频率大于或等于第二阈值时,对象存储设备可将待读取数据发送给客户端,以缓存到客户端的内存中。便于下次直接从客户端的内存中读取该待读取数据,提升数据读取速率。相应地,当该频率小于第二阈值时,对象存储设备可将待读取数据存储到对象存储设备的硬盘中。可选地,对象存储设备也可将待读取数据发送给客户端,以存储到客户端的硬盘中等,本申请不做限定。

可选地,当所述读取信息为第一读取信息,该第一读取信息用于指示待读取地址的读取频率位于第三阈值范围,或者指示待读取地址的读取类型为第三类型(例如经常读)。则相应地,对象存储设备可将所述待读取数据写到对象存储设备的第二非易失性缓存中,便于下次直接从第二非易失性缓存中读取其缓存的待读取数据。

当所述读取信息为第二读取信息,该第二读取信息用于指示待读取数据对应的待读取地址的读取频率位于第四阈值范围,或者指示待读取地址的读取类型为第四类型(例如即将多次读等)。则相应地,对象存储设备可将待读取数据存储到对象存储设备的第三非易失性缓存中。可选地,对象存储设备还可在第三非易失性缓存中设置相应地过期时长,便于清除第三非易失性缓存中存储时长超过过期时长的数据。所述过期时长具体可为用户或系统自定义设置的,例如1天等。

当所述读取信息为第三读取信息,该第三读取信息用于指示待读取数据对应的待读取地址的读取频率位于第五阈值范围,或者指示待读取地址的读取类型为第五类型(例如很少读或只读依次等)。则相应地,对象存储设备可将待读取数据写入或存储到对象存储设备的硬盘中,和/或,对象存储设备可清除预设存储地址所对应存储的数据。具体的,对象存储设备可根据数据写IO请求确定出其所指示待清除数据所在的预设存储地址(或者非易失性存储器),该预设存储地址可为LBA逻辑地址。相应地,对象存储设备可清除该预设存储地址对应存储的数据,以释放非易失性存储器中对应存储的数据;或者直接释放该非易失性存储器中存储的所有数据。

其中,第三阈值范围、第四阈值范围以及第五阈值范围均可为用户或系统根据实际需求自定义设置的,第三阈值范围的下限值大于或等于第四阈值范围的上限值,第四阈值范围的上限值大于或等于第五阈值范围的下限值。非易失性缓存的读写速率大于非易失性硬盘的读写速率。本申请涉及的第一非易失性缓存和第二非易失性缓存可为对象存储设备中部署的同一缓存或者不同缓存,具体可根据实际需求而定,并不做限定。

换句话说,对象存储设备可将不同读取频率或读取类型的待读取地址所对应的待读取数据存储或写入到不同的非易失性存储器中。示例性地,当待读取数据对应的待读取地址的读取类型为经常读,则对象存储设备可将待读取数据写到缓存中。当所述待读取数据对应的待读取地址的读取类型为即将读多次(顺序读),则对象存储可将待读取数据写到同一存储器(例如内存、缓存或磁盘)中,以提高数据读取的性能和效率。可选地,还可在存储器中设置超期淘汰时长(即过期时长),以限制在存储器中存储数据的存储时长。当所述待读取数据的读取类型为读一次,则对象存储设备可不对所述待读取数据进行缓存,直接将所述待读取数据写到磁盘中。当所述待读取数据对应的待读取地址的读取类型为用于指示释放缓存的类型,则对象存储设备可从数据写IO请求中获得待清除数据的预设存储地址(如逻辑地址),清除该预设存储地址所对应存储的数据,以释放缓存等等。

通过实施本发明实施例,通过重新对DIF域的字段进行定义,优化数据的存储布局,相比于现有技术而言能够提升存储系统的存储性能,提高存储系统的工作效率。

请参见图6是本发明实施例提供的一种数据处理装置的结构示意图。如图6所示的装置600包括通信模块602和处理模块604。其中,

在一种可能的实施方式中,数据处理装置600为主机。具体的,处理模块604可用于对数据处理装置600的动作进行控制管理。示例性地,处理模块604用于支持主机执行图2中步骤S202,图4中步骤S402,图5中步骤S502,和/或用于执行本文所描述的技术的其它步骤。通信模块602用于支持数据处理装置600与其它设备的通信,例如,通信模块602用于主机执行图2中步骤S204、图4中步骤S404,图5中步骤S504,和/或用于执行本文所描述的技术的其它步骤。

在另一种可能的实施方式中,数据处理装置600为对象存储设备。具体的,处理模块604可用于对数据处理装置600的动作进行控制管理。示例性地,处理模块604用于支持对象存储设备执行图2中步骤S206和S208,图4中步骤S410,图5中步骤S508,和/或用于执行本文所描述的技术的其它步骤。通信模块602用于支持数据处理装置600与其它设备的通信,例如,通信模块602用于对象存储设备接收客户端发送的数据读IO请求或数据写IO请求,和/或用于执行本文所描述的技术的其它步骤。

在另一种可能的实施方式中,数据处理装置600为客户端。具体的,处理模块604可用于对数据处理装置600的动作进行控制管理。示例性地,处理模块604用于支持客户端执行图4中步骤S406,和/或用于执行本文所描述的技术的其它步骤。通信模块602用于支持数据处理装置600与其它设备的通信,例如,通信模块602用于执行图4中步骤S408,图5中步骤S506,和/或用于执行本文所描述的技术的其它步骤。

可选地,数据处理装置600还可以包括存储模块606,用于存储数据处理装置600的程序代码和数据。

其中,处理模块604可以是处理器或控制器,例如可以是中央处理器(CentralProcessing Unit,CPU),通用处理器,数字信号处理器(Digital Signal Processor,DSP),专用集成电路(Application-Specific Integrated Circuit,ASIC),现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信模块602可以是通信接口、收发器、收发电路等,其中,通信接口是统称,可以包括一个或多个接口,例如通信模块与处理模块之间的接口、对象存储设备与其他设备(如主机或客户端)之间的接口等。存储模块606可以是存储器,或者其他用于提供存储功能的服务或模块。

当处理模块604为处理器,通信模块602为通信接口,存储模块606为存储器时,本发明实施例所涉及数据处理装置可以为图7所示的数据处理设备。处理模块604、通信模块602、存储模块606也可以通过软件实现。

请参见图7所示,该数据处理设备700包括一个或多个处理器701、通信接口701、存储器703。可选地,数据处理设备700还可以包括总线704。其中,通信接口703、处理器702以及存储器701可以通过总线704相互连接;总线704可以是外设部件互连标准(PeripheralComponent Interconnect,简称PCI)总线或扩展工业标准结构(Extended IndustryStandard Architecture,简称EISA)总线等。所述总线704可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。其中:

处理器701可以由一个或者多个通用处理器构成,例如中央处理器(CentralProcessing Unit,CPU)。处理器701可用于运行相关的程序代码中处理功能的程序。也就是说,处理器701执行程序代码可以实现处理模块的功能。其中,关于处理模块具体可参见前述实施例中的相关阐述。

在一种可能的实施方式中,当所述数据处理设备700为主机时,主机的处理器701用于运行相关的程序代码,以实现本申请上述处理模块的功能。或者实现本申请上述图2中步骤S202,图4中步骤S402,图5中步骤S502,和/或用于执行本文所描述的技术的其它步骤等,本申请不做限定。

在另一种可能的实施方式中,当所述数据处理设备700为对象存储设备时,对象存储设备的处理器701用于运行相关的程序代码,以实现本申请上述处理模块的功能。或者实现本申请上述图2中步骤S206和S208,图4中步骤S410,图5中步骤S508,和/或用于执行本文所描述的技术的其它步骤等,本申请不做限定。

在另一种可能的实施方式中,当所述数据处理设备700为客户端时,客户端的处理器701用于运行相关的程序代码,以实现本申请上述处理模块的功能。或者实现本申请上述图4中步骤S406,和/或用于执行本文所描述的技术的其它步骤等,本申请不做限定。通信接口602可以为有线接口(例如以太网接口)或无线接口(例如蜂窝网络接口或使用无线局域网接口),用于与其他模块/设备进行通信。例如,本申请实施例中通信接口602具体可用于获取待操作数据的属性信息,例如待读取数据或者待写入数据的属性信息等。

存储器603可以包括易失性存储器(Volatile Memory),例如随机存取存储器(Random Access Memory,RAM);存储器也可以包括非易失性存储器(Non-VolatileMemory),例如只读存储器(Read-Only Memory,ROM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);存储器603还可以包括上述种类的存储器的组合。存储器603可用于存储一组程序代码,以便于处理器601调用存储器603中存储的程序代码以实现本发明实施例中涉及的通信模块和/或处理模块的功能。

需要说明的,图7仅仅是本申请实施例的一种可能的实现方式,实际应用中,数据处理设备还可以包括更多或更少的部件,这里不作限制。关于本申请实施例中未示出或未描述的内容,可参见前述图2-图5任一实施例中的相关阐述,这里不再赘述。

本发明实施例还提供一种计算机非瞬态存储介质,所述计算机非瞬态存储介质中存储有指令,当其在处理器上运行时,图2-图5中任一实施例中所示的方法流程得以实现。

本发明实施例还提供一种计算机程序产品,当所述计算机程序产品在处理器上运行时,图2-图5中任一实施例中所示的方法流程得以实现。

结合本发明实施例公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(Random Access Memory,RAM)、闪存、只读存储器(Read Only Memory,ROM)、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(Electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于计算设备中。当然,处理器和存储介质也可以作为分立组件存在于计算设备中。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

28页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:缓存数据的处理方法及装置、计算机存储介质、电子设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类