数据处理方法及装置制造方法及图纸

技术编号:36817658 阅读:18 留言:0更新日期:2023-03-12 00:34
本申请提供一种数据处理方法及装置,涉及存储领域,用于节省数据读写过程中的资源开销。该方法包括:获取写请求。该写请求中携带第一数据。根据第一数据的大小,选择存储第一数据的分条。将第一数据存储到分条的数据分片对应的一个存储节点。其中,根据第一数据的大小,确定存储第一数据的分条包括:根据第一数据的大小,从具有不同分片大小的分条中选择一个分片大小不小于第一数据大小的分条;或者,根据第一数据的大小,选择数据分片位于一个存储节点的多个分条。点的多个分条。点的多个分条。

【技术实现步骤摘要】
数据处理方法及装置


[0001]本申请涉及数据存储领域,尤其涉及一种数据处理方法及装置。

技术介绍

[0002]目前,一个存储系统中通常可以包括多个存储节点。以集中式存储系统为例,一个存储系统中可以包括多个硬盘或硬盘框,其中一个硬盘或硬盘框可以作为一个存储节点;以分布式存储系统为例,一个存储系统可以包括多个存储服务器,其中一个存储服务器可以作为一个存储节点。
[0003]为了保证存储系统的数据可靠性,在向存储系统写入数据的过程中,通常会在写入数据积累到一定大小后,按照预设大小将写入数据分为多个数据分片,并生成该多个数据分片的校验分片,然后再将这些数据分片和校验分片分别写入不同的存储节点,进行持久化存储。然而,这样一来会造成存储节点上读/写数据消耗资源较多的问题。

技术实现思路

[0004]本申请提供一种数据处理方法及装置,解决了存储系统中读/写数据消耗资源较多的问题。
[0005]为达到上述目的,本申请采用如下技术方案:
[0006]第一方面,提供一种数据处理方法,该方法包括:获取写请求;写请求中携带第一数据。根据第一数据的大小,选择存储第一数据的分条。将第一数据存储到分条的数据分片对应的一个存储节点。其中,根据第一数据的大小,确定存储第一数据的分条包括:根据第一数据的大小,从具有不同分片大小的分条中选择一个分片大小不小于第一数据大小的分条;或者,根据第一数据的大小,选择数据分片位于一个存储节点的多个分条。
[0007]通过上述方法,可以将单次写请求中携带的第一数据,存储到同一存储节点中。从而可以在单个存储节点上完成上述第一数据的读/写操作,降低数据读写时的资源消耗。具体的,一方面,上述方法中可以根据第一数据的大小,从不同分片大小的分条中,选择能够将第一数据承载在一个分片中(即分片大小不小于第一数据大小)的分条,进而将第一数据存储在该分条的一个数据分片中,从而达到将第一数据存储在同一存储节点的目的。另一方面,上述方法中还可以根据第一数据的大小,选择多个分条,进而将第一数据存储到该多个分条对应的数据分片中位于同一存储节点的数据分片中,从而达到将第一数据存储在同一存储节点的目的。
[0008]在一种可能的设计中,具有不同分片大小的分条中,各分条的分片大小为存储系统中逻辑块组的条带单元大小的整数倍。
[0009]上述设计中,考虑到在将数据写入硬盘区域的过程中,通常是以逻辑块组中的条带单元为一次数据读写的最小单元。因此,采用按照条带单元的大小的整数倍来划分分片中分片的大小,从而可以便于数据的读写。
[0010]在一种可能的设计中,该方法还包括:确定已存储在存储系统中的与第一数据相
关联的第二数据。上述将第一数据存储到分条的数据分片对应的一个存储节点中,包括:将第一数据存储到分条的数据分片对应的存储有第二数据的一个存储节点中。
[0011]通过上述设计,本申请可以选择已经存储有与第一数据相关联的数据(即目标数据)的存储节点,来存储第一数据。这样一来,当需要一并读取目标数据和第一数据,则仅通过一个存储节点的读操作,即可完成数据读取。
[0012]在一种可能的设计中,该方法还包括:获取垃圾收集GC指令。GC指令用于指示回收逻辑块组。根据GC指令,并行对逻辑块组中的逻辑块上的数据进行迁移。在逻辑块组中的逻辑块上的有效数据迁移完成后,释放逻辑块组。
[0013]上述设计中,考虑到在采用将单次IO请求对应的数据存在同一存储节点的这种方式下,一方面从逻辑块组侧来看一个IO请求对应的数据所属的条带单元可能不是连续的,另一方面从逻辑块组下层的逻辑盘侧来看,一个IO请求对应的数据可以是连续的。因此,在对逻辑块组进行GC过程中,可以通过并行对多个逻辑块上的有效数据进行迁移,例如可以通过执行多个进程其中各进程用于对逻辑块组中一个数据块上的数据进行迁移。这样可以避免在进行数据迁移过程中在多个逻辑盘之间来回切换以读取有效数据,从而降低资源开销。
[0014]在一种可能的设计中,该方法还包括:获取读请求。读请求中携带有第一数据的标识。根据第一数据的标识,确定第一数据在存储系统的逻辑块组中的第一起始位和第一数据长度。根据第一起始位和第一数据长度,确定逻辑块组中从第一起始位开始的属于同一存储节点的多段存储空间,多段存储空间的数据长度之和为第一数据长度。读取多个条带中的数据,得到该第一数据。
[0015]在上述设计中,一方面,考虑到相关技术中,通常采用根据待读取数据在逻辑块组中的起始位和数据长度,从逻辑块组中读取从该起始位开始并且长度为上述数据长度的连续多个条带单元的方式,来读取待读取数据。另一方面,在本申请采用将单次IO请求对应的数据存储在同一存储节点的这种方式下,从逻辑块组侧来看,数据所属的存储空间可能不是连续的,因此可能无法根据待读取数据在逻辑块组中的起始位和数据长度直接读取该数据。进而,本设计中,在获取读取第一数据的读请求后,通过先确定第一数据在逻辑块组中的起始位(即第一起始位)和数据长度(即第一数据长度),再根据第一起始位和第一数据长度,确定逻辑块组中属于同一存储节点的多段存储空间(例如,这多段存储空间可以是逻辑块中多个连续的条带单元。这些条带单元在逻辑块组中可以不是连续的)。进而通过读取多段存储空间中数据,便可以得到第一数据。
[0016]在一种可能的设计中,上述存储节点可以为硬盘、硬盘框或存储服务器中任一种。
[0017]第二方面,提供一种数据处理装置,包括:获取单元,用于获取写请求。该写请求中携带第一数据。处理单元,用于根据第一数据的大小,选择存储第一数据的分条。读写单元,用于将第一数据存储到分条的数据分片对应的一个存储节点。其中,根据第一数据的大小,确定存储第一数据的分条包括:根据第一数据的大小,从具有不同分片大小的分条中选择一个分片大小不小于第一数据大小的分条;或者,根据第一数据的大小,选择数据分片位于一个存储节点的多个分条。
[0018]在一种可能的设计中,具有不同分片大小的分条中,各分条的分片大小为存储系统中逻辑块组的条带单元大小的整数倍。
[0019]在一种可能的设计中,处理单元,还用于确定已存储在存储系统中的与第一数据相关联的第二数据。读写单元,用于将第一数据存储到分条的数据分片对应的一个存储节点,包括:读写单元,用于将第一数据存储到分条的数据分片对应的存储有第二数据的一个存储节点中。
[0020]在一种可能的设计中,处理单元,还用于获取垃圾收集GC指令;GC指令用于指示回收逻辑块组。处理单元,还用于根据GC指令,并行对逻辑块组中的逻辑块上的数据进行迁移。读写单元,还用于在逻辑块组中的逻辑块上的有效数据迁移完成后,释放逻辑块组。
[0021]在一种可能的设计中,获取单元,还用于获取读请求。该读请求中携带有第一数据的标识。处理单元,还用于根据第一数据的标识,确定第一数据在存储系统的逻辑块组中的第一起始位和第一数据长度。处理单元,还用于根据第一起始位和第一数据长度,确定逻辑块组中从第一起始位开始的属于同本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,其特征在于,所述方法包括:获取写请求;所述写请求中携带第一数据;根据所述第一数据的大小,选择存储所述第一数据的分条;将所述第一数据存储到所述分条的数据分片对应的一个存储节点;其中,根据所述第一数据的大小,确定存储所述第一数据的分条包括:根据所述第一数据的大小,从具有不同分片大小的分条中选择一个分片大小不小于所述第一数据大小的分条;或者,根据所述第一数据的大小,选择所述数据分片位于所述一个存储节点的多个分条。2.根据权利要求1所述的方法,其特征在于,所述具有不同分片大小的分条中,各分条的分片大小为存储系统中逻辑块组的条带单元大小的整数倍。3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:确定已存储在所述存储系统中的与所述第一数据相关联的第二数据;所述将所述第一数据存储到所述分条的数据分片对应的一个存储节点中,包括:将所述第一数据存储到所述分条的数据分片对应的存储有所述第二数据的一个存储节点中。4.根据权利要求1

3任一项所述的方法,其特征在于,所述方法还包括:获取垃圾收集GC指令;所述GC指令用于指示回收逻辑块组;根据所述GC指令,并行对所述逻辑块组中的逻辑块上的数据进行迁移;在所述逻辑块组中的逻辑块上的有效数据迁移完成后,释放所述逻辑块组。5.根据权利要求1

4任一项所述的方法,其特征在于,所述方法还包括:获取读请求;所述读请求中携带有所述第一数据的标识;根据所述第一数据的标识,确定所述第一数据在存储系统的逻辑块组中的第一起始位和第一数据长度;根据所述第一起始位和所述第一数据长度,确定所述逻辑块组中从所述第一起始位开始的属于同一存储节点的多段存储空间,所述多段存储空间的数据长度之和为所述第一数据长度;读取所述多个条带中的数据,得到所述第一数据。6.根据权利要求1

5任一项所述的方法,其特征在于,所述存储节点为硬盘、硬盘框或存储服务器中任一种。7.一种数据处理装置,其特征在于,包括:获取单元,用于获取写请求;所述写请求中携带第一数据;处理单元,用于根据所述第一数据的大小,选择存储所述第一数据的分条;读写单元,用于将所述第一数据存储到所述分条的数据分片对应的一个存储节点;其中,根据所述第一数据的大小,确定存储所述第一数据的分条包括:根据所述第一数据的大小,从具有不同分片大小的分条中选择一个分片大小不小于所述第一数据大小的分条;或者,根据所述第一数据的大小,选择所述数据分片位于所述一个存储节点的多个分条。8.根据权利要求7所述的装置,其特征在于,所述具有不同分片大小的分条中,各分条的分片大小为存储系统中逻辑块组的条带单元大小的整数倍。
9.根据权利要求7或8所述的装置,其特征在于,所...

【专利技术属性】
技术研发人员:肖建龙
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1