1.本技术涉及数据存储技术领域,尤其涉及一种数据存储管理方法、装置及设备。
背景技术:
2.smr(shingled magnetic recording disk,叠瓦记录磁盘),通过减小磁道写放大,牺牲随机写数据来提高单位空间内的磁盘密度,以获得更高的存储空间。smr盘包括cmr(传统磁记录)区域和smr(瓦状磁体记录)区域,cmr区较小,支持随机读写,一般占整个smr盘容量的1%,剩下的均为smr区;smr区不支持随机写,只能以256mb作为连续写入和删除的最小单位(称为一个zone),每个zone内有一写指针,用于控制zone内数据的顺序写入。
3.随着分布式对象存储技术的不断发展,储存数据量也呈现出爆炸式增长的趋势。为了满足不断增长的数据存储要求,希望能够将smr盘应用到分布式对象存储系统中,在获取更大的储存容量的前提下降低用户成本。
4.在分布式对象存储系统中,文件(file)被划分为不同的对象(object)),每个对象划分为不同的数据块(block)。其中文件与对象,对象到数据块的映射关系存储在元数据管理节点,数据块的内容存储在数据节点中。因此,在基于smr盘的分布式对象存储系统中,如何实现利用smr盘对数据块及其元数据索引信息进行高效存储与管理是当前分布式对象存储系统研究的热点。
5.目前将数据块存入smr盘时,元数据管理节点会将用户文件切分成若干个大小相同的数据块,并选择与文件切分数量一致的数据节点,用来保存业务数据流被切分的数据块文件,数据节点在收到业务数据块后,会选择其中一块smr盘的zone块将数据块写入,写入完成后会生成对应的索引数据并写入zone中,但这种方法中索引数据直接通过ioctl指令读写smr的zone,不仅读写速度慢,而且在分布式视频/图片储存环境下会导致io等待和阻塞,并且由于索引数据是顺序写入zone,当需要对数据块对应的索引信息进行删除时,只将以zone为单位进行删除,效率较低。
技术实现要素:
6.本技术提供了一种数据存储管理方法,实现了利用smr盘对数据块及其元数据索引信息进行高效存储与管理。
7.第一方面,本技术提供了一种数据存储管理方法,应用于基于smr盘的分布式对象存储系统,该方法包括:
8.响应于写数据指令,将数据块写入zone,并将所述数据块的唯一标识作为key,所述数据块的位置信息作为value,生成key-value形式的数据块索引,将所述数据块索引写入内存中索引信息对应的存储区域;
9.待所述存储区域的数据量达到设定阈值,将所述存储区域的数据封装为一个文件存入cmr区;
10.响应于读数据指令,根据所述读数据指令中目标数据块的目标标识,在数据块索
引中检索与所述目标标识相匹配的第一目标key;
11.根据所述第一目标key定位对应的第一目标value,根据所述第一目标value中的数据块的位置信息进行目标数据块读取。
12.在一种可能实现的方式中,响应于写数据指令,将数据块写入zone之后,还包括:
13.若写入所述数据块之前所述zone未使用,将所述zone的唯一标识作为key,所述zone中当前数据存储信息作为value,生成key-value形式的zone索引,将所述zone索引写入内存中所述存储区域;
14.若写入所述数据块之前所述zone已使用,在zone索引中检索与所述zone的唯一标识相匹配的第二目标key,根据所述第二目标key定位对应的第二目标value,利用所述zone的当前数据存储信息更新所述第二目标value。
15.在一种可能实现的方式中,响应于写数据指令,将数据块写入zone之后,还包括:
16.将所述zone的位置信息及所述zone内任一数据块的编号作为key,将所述数据块的唯一标识作为value,生成key-value形式的zone和数据块索引映射,将所述zone和数据块索引映射写入所述存储区域。
17.在一种可能实现的方式中,该方法还包括:
18.响应于删除zone指令,根据所述删除zone指令中目标zone的唯一标识,在zone索引中检索与所述目标zone的唯一标识相匹配的第二目标key,并根据所述第二目标key定位对应的第二目标value,并删除所述第二目标key和第二目标value;
19.根据所述删除zone指令中目标zone的位置信息,在zone和数据块索引映射中检索与目标zone的位置信息匹配的至少一个第三目标key,并根据各第三目标key定位对应的第三目标value,获取所述第三目标key中的数据块的唯一标识,并删除所述第三目标key和第三目标value;
20.根据所获取的数据块的唯一标识,在数据块索引中检索与所获数据块的唯一标识相匹配的第一目标key,并根据所述第一目标key定位对应的第一目标value,并删除所述第一目标key和第一目标value。
21.在一种可能实现的方式中,该方法还包括:
22.响应于smr盘全局数据确定指令,遍历zone索引;
23.确定遍历的所述zone索引中的各key对应的value,得到各zone内的数据存储信息。
24.在一种可能实现的方式中,该方法还包括:
25.响应于zone内数据块的查询指令,根据所述查询指令中携带的目标zone的位置信息,在所述zone和数据块索引映射中检索与目标zone的位置信息匹配的至少一个第三目标key;
26.根据各第三目标key定位对应的第三目标value,根据所述第三目标key中的数据块的唯一标识产生对应的读数据指令。
27.在一种可能实现的方式中,所述数据块的唯一标识包括数据块前缀、所述数据块所在文件的标识、所述数据块所在对象的标识和所述数据块的标识,其中,所述数据块前缀用于标识所述数据块的写入状态;
28.所述zone的唯一标识包括zone前缀和zone的位置信息,所述zone前缀用于标识索
引类型为zone索引。
29.在一种可能实现的方式中,所述数据块的位置信息包括所述数据块的盘内偏移和所述数据块的长度,与所述数据块的唯一标识对应的value还包括所述数据块的属性信息;
30.所述数据存储信息包括所述zone的属性信息、所述zone内写指针位置和所述zone内存储数据块的数量。
31.第二方面,本技术提供了一种数据存储管理装置,应用于基于smr盘的分布式对象存储系统,该装置包括:
32.数据块索引生成模块,用于响应于写数据指令,将数据块写入zone,并将所述数据块的唯一标识作为key,所述数据块的位置信息作为value,生成key-value形式的数据块索引,将所述数据块索引写入内存中索引信息对应的存储区域;待所述存储区域的数据量达到设定阈值,将所述存储区域的数据封装为一个文件存入cmr区;
33.数据读取模块,用于响应于读数据指令,根据所述读数据指令中目标数据块的目标标识,在数据块索引中检索与所述目标标识相匹配的第一目标key;根据所述第一目标key定位对应的第一目标value,根据所述第一目标value中的数据块的位置信息进行目标数据块读取。
34.第三方面,本技术提供了一种数据存储管理设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时执行以下步骤:
35.响应于写数据指令,将数据块写入zone,并将所述数据块的唯一标识作为key,所述数据块的位置信息作为value,生成key-value形式的数据块索引,将所述数据块索引写入内存中索引信息对应的存储区域;
36.待所述存储区域的数据量达到设定阈值,将所述存储区域的数据封装为一个文件存入cmr区;
37.响应于读数据指令,根据所述读数据指令中目标数据块的目标标识,在数据块索引中检索与所述目标标识相匹配的第一目标key;
38.根据所述第一目标key定位对应的第一目标value,根据所述第一目标value中的数据块的位置信息进行目标数据块读取。
39.第四方面,本技术提供一种计算机可读存储介质,其上存储有计算机程序指令,该计算机程序指令被处理器执行时执行以下步骤:
40.响应于写数据指令,将数据块写入zone,并将所述数据块的唯一标识作为key,所述数据块的位置信息作为value,生成key-value形式的数据块索引,将所述数据块索引写入内存中索引信息对应的存储区域;
41.待所述存储区域的数据量达到设定阈值,将所述存储区域的数据封装为一个文件存入cmr区;
42.响应于读数据指令,根据所述读数据指令中目标数据块的目标标识,在数据块索引中检索与所述目标标识相匹配的第一目标key;
43.根据所述第一目标key定位对应的第一目标value,根据所述第一目标value中的数据块的位置信息进行目标数据块读取。
44.基于以上本技术提供的数据存储管理方法,本技术具有以下有益效果:
45.通过key-value形式生成数据块索引信息,可根据数据块的唯一标识迅速索引到数据块索引的key值,并根据数据块的key值定位value,进行数据块的读取;利用cmr区的标准文件系统对数据块索引进行存储,索引信息读写速度快,对smr盘的io操作少。
附图说明
46.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
47.图1为本技术实施例提供的一种分布式对象储存系统的示意图;
48.图2为本技术实施例提供的一种数据存储管理方法的流程图;
49.图3为本技术实施例提供的一种smr盘管理形式的示意图;
50.图4为本技术实施例提供的一种索引信息组织结构的示意图;
51.图5为本技术实施例提供的一种数据存储管理装置的示意图;
52.图6为本技术实施例提供的一种数据存储管理设备的示意图。
具体实施方式
53.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术作进一步地详细描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
54.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
55.本技术实施例描述的应用场景是为了更加清楚的说明本技术实施例的技术方案,并不构成对于本技术实施例提供的技术方案的限定,本领域普通技术人员可知,随着新应用场景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。
56.如图1所示,在分布式对象存储系统中,文件(file)被划分为不同的对象(object),每个对象划分为不同的数据块(block)。其中文件与对象,对象到数据块的映射关系存储在元数据管理节点,数据块的内容存储在数据节点中,每个数据节点具有多块数据盘(smr/cmr盘)。
57.随着分布式对象存储技术的不断发展,储存数据量也呈现出爆炸式增长的趋势,为了满足不断增长的数据存储要求,希望能够将smr盘应用到分布式对象存储系统中,在获取更大的储存容量的前提下降低用户成本。而目前利用smr盘对数据块及其元数据索引信息进行存储与管理的方法中,存在读写速度慢,而且可能会产生io等待和阻塞等问题,为了解决以上问题,本技术提出了一种数据存储管理方法。
58.实施例1
59.如图2所示,本技术实施例提供一种数据存储管理方法,其中,所述数据指令包括
写数据指令和读数据指令,该方法包括以下步骤:
60.步骤201,响应于写数据指令,将数据块写入zone,并将所述数据块的唯一标识作为key,所述数据块的位置信息作为value,生成key-value形式的数据块索引,将所述数据块索引写入内存中索引信息对应的存储区域;
61.接收到写数据指令,首先查询已使用zone中剩余的空间是否还能够满足数据块写入,如果满足,则将该数据块按顺序写入该zone,否则,将该数据块按顺序写入该已使用的zone至该已使用的zone被写满,再向元数据节点反馈数据块写入长度,将数据块中未写入部分重新分配一个新的数据块标识后,再写入其余zone中。
62.数据块写入zone后,将数据块的唯一标识作为key,数据块的位置信息作为value,生成key-value形式的数据块索引,并以二进制形式写入内存中索引信息对应的存储区域中,其中,上述索引信息对应的存储区域还用于存储zone索引、及zone和数据块索引映射。
63.需要注意的是,内存中索引信息对应的存储区域中存储结构是有序的,可以随时原地更新,同时支持随时查询,并且存储区域中预先定义了key值存储区域和value值存储区域,并记录了key与value的一一对应关系。
64.作为一种可选的实施方式,上述数据块的唯一标识包括数据块前缀(数据块prefix)、所述数据块所在文件的标识(id)、所述数据块所在对象的标识(id)和所述数据块的标识(id),其中,所述数据块前缀用于标识所述数据块的写入状态。
65.上述数据块写入状态包括正在写入、写入恢复等,不同的状态用不同的前缀(prefix)进行区分。
66.作为一种可选的实施方式,上述数据块的位置信息包括所述数据块的盘内偏移,与所述数据块的唯一标识对应的value还包括所述数据块的属性信息和所述数据块的长度。
67.上述数据块属性信息包括数据块写入时间、数据块读取时间等信息,上述数据块的盘内偏移是指数据块在smr盘smr区的全局偏移。
68.步骤202,待所述存储区域的数据量达到设定阈值,将所述存储区域的数据封装为一个文件存入cmr区;
69.当内存中存储区域的存储的索引信息的数据量达到设定阈值后,会将存储区域中的全部索引信息封装为一个文件,并将该文件存入smr盘cmr区的指定位置,多次存入cmr区之后会形成多个数据存储文件,后台会按照配置自动将多个文件合并成一个文件。
70.步骤203,响应于读数据指令,根据所述读数据指令中目标数据块的目标标识,在数据块索引中检索与所述目标标识相匹配的第一目标key;
71.接收到读数据指令时,根据所述读数据指令中目标数据块的目标标识首先在内存中索引信息对应的存储区域中检索与所述目标标识相匹配的第一目标key,如果未检索到上述第一目标key,再到cmr区中索引信息对应的存储区域中检索上述第一目标key。
72.步骤204,根据所述第一目标key定位对应的第一目标value,根据所述第一目标value中的数据块的位置信息进行目标数据块读取;
73.在确定数据块的位置信息即数据块的盘内偏移和数据块的长度后,根据该数据块的盘内偏移,确定该数据块所在的zone的起始位置,并根据数据块的长度确定数据块在zone内的具体位置,进行数据块的读取。
74.例如,根据所述第一目标key定位对应的第一目标value后,确定数据块的盘内偏移位置为2000mb,该数据块长度为40mb,因zone对应的存储空间为256mb,即可确定该数据块所在的zone对应的zone起始偏移为1792mb,且该数据块在该zone内的起始位置为208mb,并可以确定该数据块在zone内的位置为从208mb到248mb。
75.通过上述方法,本技术实现了数据块索引信息的快速写入,以及根据数据块索引,快速检索到数据块位置并进行读取。
76.上述步骤201之前,还需要将smr盘的cmr区单独分区,并格式化成xfs/ext4等系统后挂载,通过标准文件系统对cmr分区进行管理,充分利用标准文件系统的io缓存/合并功能减少磁盘的随机io操作。其中,cmr区用于索引信息的记录,数据分区(smr区)用于block数据的储存,每个zone内可顺序存储一个或多个block数据,如图3所示。
77.上述步骤201中,响应于写数据指令,将数据块写入zone之后,还会生成/更新对应的zone索引。
78.实施中,如果上述zone在数据块写入之前未被使用,则在数据块写入zone之后还会对应生成zone索引,如果上述zone在数据块写入之前已被使用,则在索引信息的存储区域已存在该zone对应的zone索引,因此只需根据zone的当前数据存储信息对该zone索引中的value进行更新即可。
79.作为一种可选的实施方式,响应于写数据指令,将数据块写入zone之后,还包括:
80.若写入所述数据块之前所述zone未使用,将所述zone的唯一标识作为key,所述zone中当前数据存储信息作为value,生成key-value形式的zone索引,将所述zone索引写入内存中所述存储区域;
81.若写入所述数据块之前所述zone已使用,在zone索引中检索与所述zone的唯一标识相匹配的第二目标key,根据所述第二目标key定位对应的第二目标value,利用所述zone的当前数据存储信息更新所述第二目标value。
82.实施中,将所述zone的唯一标识作为key,所述zone中当前数据存储信息作为value,生成key-value形式的zone索引后,将该zone索引以二进制形式写入内存中所述存储区域。
83.作为一种可选的实施方式,上述zone的唯一标识包括zone前缀(zoneprefix)和zone的位置信息,所述zone前缀用于标识索引类型为zone索引。
84.上述zone的位置信息包括zone的起始偏移,可根据该zone的起始偏移定位唯一的zone,上述zone前缀(zoneprefix)用于标识该索引为zone索引,以便后续索引信息的查询。
85.作为一种可选的实施方式,上述数据存储信息包括所述zone的属性信息、所述zone内写指针位置和所述zone内存储数据块的数量。
86.上述zone的属性信息包括zone中数据块写入时间、zone中数据块修改时间等信息。
87.当smr盘启动需要对全局数据进行读取以确定zone的使用情况时,可通过遍历上述zone索引,得到各zone中的数据存储信息,作为一种可选的实施方式,该方法还包括:
88.响应于smr盘全局数据确定指令,遍历zone索引;
89.确定遍历的所述zone索引中的各key对应的value,得到各zone内的数据存储信息。
90.实施中,由于smr盘启动时,内存中存储的数据不会保留,因此接收smr盘全局数据确定指令后,到cmr区的索引信息存储区域进行zone索引的遍历,其中,首先通过zone前缀索引到全部的zone索引,然后再进行遍历。
91.上述步骤201中,响应于写数据指令,将数据块写入zone之后,还会生成对应的zone和数据块索引映射,如图4所示。
92.作为一种可选的实施方式,响应于写数据指令,将数据块写入zone之后,还包括:
93.将所述zone的位置信息及所述zone内任一数据块的编号作为key,将所述数据块的唯一标识作为value,生成key-value形式的zone和数据块索引映射,将所述zone和数据块索引映射写入所述存储区域。
94.实施中,将所述zone的位置信息及所述zone内任一数据块的编号作为key,将所述数据块的唯一标识作为value,生成key-value形式的zone和数据块索引映射后,将该zone和数据块索引映射以二进制形式写入内存中所述存储区域。
95.上述zone的位置信息包括zone的起始偏移,zone内任一数据块的编号用于标识该数据块为zone内存储的第几个数据块。
96.作为一种可选的实施方式,该方法还包括:
97.响应于zone内数据块的查询指令,根据所述查询指令中携带的目标zone的位置信息,在所述zone和数据块索引映射中检索与目标zone的位置信息匹配的至少一个第三目标key;
98.根据各第三目标key定位对应的第三目标value,根据所述第三目标key中的数据块的唯一标识产生对应的读数据指令。
99.实施中,根据所述查询指令中携带的目标zone的位置信息,在所述zone和数据块索引映射中检索与目标zone的位置信息匹配的至少一个第三目标key时,首先在内存中的索引信息对应的存储区域中检索与目标zone的位置信息匹配的至少一个第三目标key,如果未检索到上述至少一个第三目标key,则在cmr区中索引信息对应的存储区域中检索上述至少一个第三目标key。
100.本技术实施例中,如果需要对zone内全部数据块进行删除,还需要删除该zone对应的zone索引,以及该zone中存储的至少一个数据块对应的数据块索引和zone和数据块的索引映射。
101.作为一种可选的实施方式,还包括:
102.响应于删除zone指令,根据所述删除zone指令中目标zone的唯一标识,在zone索引中检索与所述目标zone的唯一标识相匹配的第二目标key,并根据所述第二目标key定位对应的第二目标value,并删除所述第二目标key和第二目标value;
103.根据所述删除zone指令中目标zone的位置信息,在zone和数据块索引映射中检索与目标zone的位置信息匹配的至少一个第三目标key,并根据各第三目标key定位对应的第三目标value,获取所述第三目标key中的数据块的唯一标识,并删除所述第三目标key和第三目标value;
104.根据所获取的数据块的唯一标识,在数据块索引中检索与所获数据块的唯一标识相匹配的第一目标key,并根据所述第一目标key定位对应的第一目标value,并删除所述第一目标key和第一目标value。
105.上述在zone索引中检索与所述目标zone的唯一标识相匹配的第二目标key、在zone和数据块索引映射中检索与目标zone的位置信息匹配的至少一个第三目标key、在数据块索引中检索与所获数据块的唯一标识相匹配的第一目标key时,首先在内存中索引信息对应存储区域中进行检索,如果未检索到对应的key,再到cmr区中索引信息对应存储区域中进行检索。
106.本技术实施例中,为保证smr盘上索引信息的可靠性,本技术还通过硬链接记录索引信息的文件的方式对索引信息进行备份,并将备份后的备份信息存入smr盘的cmr区,通过以上方式对索引信息进行备份,不会影响smr盘的io操作和储存业务。
107.实施例2
108.以上对本技术中一种数据存储管理方法进行说明,以下对执行上述数据存储管理的装置进行说明。
109.请参阅图5,本技术实施例提供一种数据存储管理装置,该装置包括:
110.数据块索引生成模块501,用于响应于写数据指令,将数据块写入zone,并将所述数据块的唯一标识作为key,所述数据块的位置信息作为value,生成key-value形式的数据块索引,将所述数据块索引写入内存中索引信息对应的存储区域;待所述存储区域的数据量达到设定阈值,将所述存储区域的数据封装为一个文件存入cmr区;
111.数据读取模块502,用于响应于读数据指令,根据所述读数据指令中目标数据块的目标标识,在数据块索引中检索与所述目标标识相匹配的第一目标key;根据所述第一目标key定位对应的第一目标value,根据所述第一目标value中的数据块的位置信息进行目标数据块读取。
112.可选的,响应于写数据指令,将数据块写入zone之后,该装置还包括:
113.zone索引生成模块,用于若写入所述数据块之前所述zone未使用,将所述zone的唯一标识作为key,所述zone中当前数据存储信息作为value,生成key-value形式的zone索引,将所述zone索引写入内存中所述存储区域;
114.zone索引更新模块,用于若写入所述数据块之前所述zone已使用,在zone索引中检索与所述zone的唯一标识相匹配的第二目标key,根据所述第二目标key定位对应的第二目标value,利用所述zone的当前数据存储信息更新所述第二目标value。
115.可选的,响应于写数据指令,将数据块写入zone之后,该装置还包括:
116.zone和数据块索引映射生成模块,用于将所述zone的位置信息及所述zone内任一数据块的编号作为key,将所述数据块的唯一标识作为value,生成key-value形式的zone和数据块索引映射,将所述zone和数据块索引映射写入所述存储区域。
117.可选的,所述zone索引生成模块还用于:
118.响应于删除zone指令,根据所述删除zone指令中目标zone的唯一标识,在zone索引中检索与所述目标zone的唯一标识相匹配的第二目标key,并根据所述第二目标key定位对应的第二目标value,并删除所述第二目标key和第二目标value;
119.根据所述删除zone指令中目标zone的位置信息,在zone和数据块索引映射中检索与目标zone的位置信息匹配的至少一个第三目标key,并根据各第三目标key定位对应的第三目标value,获取所述第三目标key中的数据块的唯一标识,并删除所述第三目标key和第三目标value;
120.根据所获取的数据块的唯一标识,在数据块索引中检索与所获数据块的唯一标识相匹配的第一目标key,并根据所述第一目标key定位对应的第一目标value,并删除所述第一目标key和第一目标value。
121.可选的,所述zone索引生成模块还用于:
122.响应于smr盘全局数据确定指令,遍历zone索引;
123.确定遍历的所述zone索引中的各key对应的value,得到各zone内的数据存储信息。
124.可选的,所述zone和数据块索引映射生成模块还用于:
125.响应于zone内数据块的查询指令,根据所述查询指令中携带的目标zone的位置信息,在所述zone和数据块索引映射中检索与目标zone的位置信息匹配的至少一个第三目标key;
126.根据各第三目标key定位对应的第三目标value,根据所述第三目标key中的数据块的唯一标识产生对应的读数据指令。
127.可选的,所述数据块的唯一标识包括数据块前缀、所述数据块所在文件的标识、所述数据块所在对象的标识和所述数据块的标识,其中,所述数据块前缀用于标识所述数据块的写入状态;
128.所述zone的唯一标识包括zone前缀和zone的位置信息,所述zone前缀用于标识索引类型为zone索引。
129.可选的,所述数据块的位置信息包括所述数据块的盘内偏移和所述数据块的长度,与所述数据块的唯一标识对应的value还包括所述数据块的属性信息;
130.所述数据存储信息包括所述zone的属性信息、所述zone内写指针位置和所述zone内存储数据块的数量。
131.实施例3
132.在介绍了本技术示例性实施方式的数据存储管理方法和装置之后,接下来,介绍根据本技术的另一示例性实施方式的设备。
133.所属技术领域的技术人员能够理解,本技术的各个方面可以实现为系统、方法或程序产品。因此,本技术的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
134.在一些可能的实施方式中,根据本技术的设备可以至少包括至少一个处理器、以及至少一个存储器。其中,存储器存储有程序代码,当程序代码被处理器执行时,使得处理器执行本说明书上述描述的根据本技术各种示例性实施方式的数据存储管理方法中的步骤。例如,处理器可以执行如数据存储管理方法中的步骤:
135.响应于写数据指令,将数据块写入zone,并将所述数据块的唯一标识作为key,所述数据块的位置信息作为value,生成key-value形式的数据块索引,将所述数据块索引写入内存中索引信息对应的存储区域;
136.待所述存储区域的数据量达到设定阈值,将所述存储区域的数据封装为一个文件存入cmr区;
137.响应于读数据指令,根据所述读数据指令中目标数据块的目标标识,在数据块索
引中检索与所述目标标识相匹配的第一目标key;
138.根据所述第一目标key定位对应的第一目标value,根据所述第一目标value中的数据块的位置信息进行目标数据块读取。
139.下面参照图6来描述根据本技术的这种实施方式的设备130。图6显示的设备130仅仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
140.如图6所示,设备130以通用设备的形式表现。设备130的组件可以包括但不限于:上述至少一个处理器131、上述至少一个存储器132、连接不同系统组件(包括存储器132和处理器131)的总线133。
141.总线133表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
142.存储器132可以包括易失性存储器形式的可读介质,例如随机存取存储器(ram)1321和/或高速缓存存储器1322,还可以进一步包括只读存储器(rom)1323。
143.存储器132还可以包括具有一组(至少一个)程序模块1324的程序/实用工具1325,这样的程序模块1324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
144.设备130也可以与一个或多个外部设备134(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与设备130交互的设备通信,和/或与使得该设备130能与一个或多个其它设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口135进行。并且,设备130还可以通过网络适配器136与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器136通过总线133与用于设备130的其它模块通信。应当理解,尽管图中未示出,可以结合设备130使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
145.可选的,所述处理器响应于写数据指令,将数据块写入zone之后,还用于:
146.若写入所述数据块之前所述zone未使用,将所述zone的唯一标识作为key,所述zone中当前数据存储信息作为value,生成key-value形式的zone索引,将所述zone索引写入内存中所述存储区域;
147.若写入所述数据块之前所述zone已使用,在zone索引中检索与所述zone的唯一标识相匹配的第二目标key,根据所述第二目标key定位对应的第二目标value,利用所述zone的当前数据存储信息更新所述第二目标value。
148.可选的,所述处理器响应于写数据指令,将数据块写入zone之后,还用于:
149.将所述zone的位置信息及所述zone内任一数据块的编号作为key,将所述数据块的唯一标识作为value,生成key-value形式的zone和数据块索引映射,将所述zone和数据块索引映射写入所述存储区域。
150.可选的,所述处理器还用于:
151.响应于删除zone指令,根据所述删除zone指令中目标zone的唯一标识,在zone索引中检索与所述目标zone的唯一标识相匹配的第二目标key,并根据所述第二目标key定位对应的第二目标value,并删除所述第二目标key和第二目标value;
152.根据所述删除zone指令中目标zone的位置信息,在zone和数据块索引映射中检索
与目标zone的位置信息匹配的至少一个第三目标key,并根据各第三目标key定位对应的第三目标value,获取所述第三目标key中的数据块的唯一标识,并删除所述第三目标key和第三目标value;
153.根据所获取的数据块的唯一标识,在数据块索引中检索与所获数据块的唯一标识相匹配的第一目标key,并根据所述第一目标key定位对应的第一目标value,并删除所述第一目标key和第一目标value。
154.可选的,所述处理器还用于:
155.响应于smr盘全局数据确定指令,遍历zone索引;
156.确定遍历的所述zone索引中的各key对应的value,得到各zone内的数据存储信息。
157.可选的,所述处理器还用于:
158.响应于zone内数据块的查询指令,根据所述查询指令中携带的目标zone的位置信息,在所述zone和数据块索引映射中检索与目标zone的位置信息匹配的至少一个第三目标key;
159.根据各第三目标key定位对应的第三目标value,根据所述第三目标key中的数据块的唯一标识产生对应的读数据指令。
160.可选的,所述数据块的唯一标识包括数据块前缀、所述数据块所在文件的标识、所述数据块所在对象的标识和所述数据块的标识,其中,所述数据块前缀用于标识所述数据块的写入状态;
161.所述zone的唯一标识包括zone前缀和zone的位置信息,所述zone前缀用于标识索引类型为zone索引。
162.可选的,所述数据块的位置信息包括所述数据块的盘内偏移和所述数据块的长度,与所述数据块的唯一标识对应的value还包括所述数据块的属性信息;
163.所述数据存储信息包括所述zone的属性信息、所述zone内写指针位置和所述zone内存储数据块的数量。
164.在一些可能的实施方式中,本技术提供的一种数据存储管理方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本技术各种示例性实施方式的一种数据存储管理方法中的步骤。
165.程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
166.本技术的实施方式的用于监控的程序产品可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在设备上运行。然而,本技术的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
167.可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
168.可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
169.可以以一种或多种程序设计语言的任意组合来编写用于执行本技术操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行、或者完全在远程设备或服务端上执行。在涉及远程设备的情形中,远程设备可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户设备,或者,可以连接到外部设备(例如利用因特网服务提供商来通过因特网连接)。
170.应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本技术的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
171.此外,尽管在附图中以特定顺序描述了本技术方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
172.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
173.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和方框图来描述的。应理解可由计算机程序指令实现流程图和方框图中的每一流程和/或方框、以及流程图和方框图中的流程和方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和方框图一个方框或多个方框中指定的功能的装置。
174.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和方框图一个方框或多个方框中指定的功能。
175.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或
其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和方框图一个方框或多个方框中指定的功能的步骤。
176.尽管已描述了本技术的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术范围的所有变更和修改。
177.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
技术特征:
1.一种数据存储管理方法,应用于基于smr盘的分布式对象存储系统,其特征在于,该方法包括:响应于写数据指令,将数据块写入zone,并将所述数据块的唯一标识作为key,所述数据块的位置信息作为value,生成key-value形式的数据块索引,将所述数据块索引写入内存中索引信息对应的存储区域;待所述存储区域的数据量达到设定阈值,将所述存储区域的数据封装为一个文件存入cmr区;响应于读数据指令,根据所述读数据指令中目标数据块的目标标识,在数据块索引中检索与所述目标标识相匹配的第一目标key;根据所述第一目标key定位对应的第一目标value,根据所述第一目标value中的数据块的位置信息进行目标数据块读取。2.根据权利要求1所述的方法,其特征在于,响应于写数据指令,将数据块写入zone之后,还包括:若写入所述数据块之前所述zone未使用,将所述zone的唯一标识作为key,所述zone中当前数据存储信息作为value,生成key-value形式的zone索引,将所述zone索引写入内存中所述存储区域;若写入所述数据块之前所述zone已使用,在zone索引中检索与所述zone的唯一标识相匹配的第二目标key,根据所述第二目标key定位对应的第二目标value,利用所述zone的当前数据存储信息更新所述第二目标value。3.根据权利要求1或2所述的方法,其特征在于,响应于写数据指令,将数据块写入zone之后,还包括:将所述zone的位置信息及所述zone内任一数据块的编号作为key,将所述数据块的唯一标识作为value,生成key-value形式的zone和数据块索引映射,将所述zone和数据块索引映射写入所述存储区域。4.根据权利要求3中所述的方法,其特征在于,还包括:响应于删除zone指令,根据所述删除zone指令中目标zone的唯一标识,在zone索引中检索与所述目标zone的唯一标识相匹配的第二目标key,并根据所述第二目标key定位对应的第二目标value,并删除所述第二目标key和第二目标value;根据所述删除zone指令中目标zone的位置信息,在zone和数据块索引映射中检索与目标zone的位置信息匹配的至少一个第三目标key,并根据各第三目标key定位对应的第三目标value,获取所述第三目标key中的数据块的唯一标识,并删除所述第三目标key和第三目标value;根据所获取的数据块的唯一标识,在数据块索引中检索与所获数据块的唯一标识相匹配的第一目标key,并根据所述第一目标key定位对应的第一目标value,并删除所述第一目标key和第一目标value。5.根据权利要求2所述的方法,其特征在于,还包括:响应于smr盘全局数据确定指令,遍历zone索引;确定遍历的所述zone索引中的各key对应的value,得到各zone内的数据存储信息。6.根据权利要求3所述的方法,其特征在于,还包括:
响应于zone内数据块的查询指令,根据所述查询指令中携带的目标zone的位置信息,在所述zone和数据块索引映射中检索与目标zone的位置信息匹配的至少一个第三目标key;根据各第三目标key定位对应的第三目标value,根据所述第三目标key中的数据块的唯一标识产生对应的读数据指令。7.根据权利要求2中所述的方法,其特征在于,所述数据块的唯一标识包括数据块前缀、所述数据块所在文件的标识、所述数据块所在对象的标识和所述数据块的标识,其中,所述数据块前缀用于标识所述数据块的写入状态;所述zone的唯一标识包括zone前缀和zone的位置信息,所述zone前缀用于标识索引类型为zone索引。8.根据权利要求3中所述的方法,其特征在于,所述数据块的位置信息包括所述数据块的盘内偏移和所述数据块的长度,与所述数据块的唯一标识对应的value还包括所述数据块的属性信息;所述数据存储信息包括所述zone的属性信息、所述zone内写指针位置和所述zone内存储数据块的数量。9.一种数据存储管理装置,应用于基于smr盘的分布式对象存储系统,其特征在于,该装置包括:数据块索引生成模块,用于响应于写数据指令,将数据块写入zone,并将所述数据块的唯一标识作为key,所述数据块的位置信息作为value,生成key-value形式的数据块索引,将所述数据块索引写入内存中索引信息对应的存储区域;待所述存储区域的数据量达到设定阈值,将所述存储区域的数据封装为一个文件存入cmr区;数据读取模块,用于响应于读数据指令,根据所述读数据指令中目标数据块的目标标识,在数据块索引中检索与所述目标标识相匹配的第一目标key;根据所述第一目标key定位对应的第一目标value,根据所述第一目标value中的数据块的位置信息进行目标数据块读取。10.一种数据存储管理设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8任一项所述数据存储管理方法。11.一种计算机存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至8任一项所述数据存储管理方法的步骤。
技术总结
本申请提供一种数据存储管理方法、装置及设备,该方法包括:响应于写数据指令,将数据块写入zone,并将数据块的唯一标识作为key,数据块的位置信息作为value,生成key-value形式的数据块索引,写入内存中索引信息对应的存储区域;待存储区域的数据量达到设定阈值,将存储区域的数据封装为一个文件存入CMR区;响应于读数据指令,在数据块索引中检索与指令中目标标识相匹配的第一目标key;根据第一目标key定位对应的第一目标value,根据第一目标value中的数据块的位置信息进行目标数据块读取,实现了利用SMR盘对数据块及其元数据索引信息进行高效存储与管理。高效存储与管理。高效存储与管理。
技术研发人员:王志豪 戴恩亮 罗心 江文龙 周明伟 应秀梅
受保护的技术使用者:浙江大华技术股份有限公司
技术研发日:2021.11.30
技术公布日:2022/3/8