一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于数据压缩的块存储设备和方法与流程

2022-03-31 11:08:08 来源:中国专利 TAG:


1.本发明涉及存储设备领域,具体涉及块存储设备。更具体地,提供了一种设备和一种方法,如果无法进行重复数据删除,则所述设备和所述方法能够对数据块应用大块压缩。


背景技术:

2.实现两阶段数据缩减的传统存储设备旨在在初始在线阶段最大限度地减少cpu占用率,并在随后的后台处理期间最大限度地进行数据缩减。
3.在在线阶段期间,传统存储设备生成输入数据块的哈希指纹,并将其与现有指纹进行比较。如果找到匹配,则存储设备将执行重复数据删除。也就是说,存储设备不存储数据块,而是存储指向现有相同数据块的指针。如果无法进行重复数据删除,则系统压缩和存储数据。在后台过程期间,传统存储设备试图进一步增大存储的数据块的大小。
4.传统存储设备在在线阶段可以使用几种数据缩减方法:如前所述,传统方法是固定大小重复数据删除。在这种方法中,输入数据块被划分为固定大小(例如4kb、8kb、16kb等)的对齐块。对于每个块,都会生成强哈希指纹。如果待写入的块与已写入的块具有相同的签名,则将它们视为相同。因此,不会再次存储数据,而是保留指向相同块的指针。
5.另一种传统方法是相似性压缩。在这种方法中,针对每个数据块生成相似性哈希函数(例如,最小哈希函数),并将其存储在机会表中。如果数据块具有相同的相似性哈希,则传统存储设备认为它们是相似的。这表示数据块中的一部分数据与另一个块中的一部分数据相同。因此,一个数据块的一部分与另一个数据块的一部分相同,总体而言,数据块相似,但不相同。这使得可以仅存储数据块的不相同部分,并使用指向相似数据块中与当前数据块的部分相同的部分的指针,或使用类似块作为参考执行差分压缩。
6.但是,传统存储设备的缺点是它们仅支持非常小尺寸以内的数据块的压缩,这导致压缩效率较低。此外,传统存储设备不支持多种数据缩减方法,具体地不支持粒度配置方式。此外,两阶段方法仅限于静态配置。


技术实现要素:

7.鉴于上述问题,本发明实施例的目的是改进传统存储设备。
8.该目的或其它目的可以通过所附独立权利要求中描述的本发明实施例实现。在从属权利要求中进一步定义本发明实施例的有利实现方式。
9.本发明的第一方面提供了一种用于数据压缩的块存储设备,用于:在第一操作阶段,如果所述块存储设备确定数据块将写入所述块存储设备的大块存储区域,则确定所述数据块是否可以进行重复数据删除;如果所述数据块不能进行重复数据删除,则使用大块压缩存储所述数据块。
10.这确保了如果所述数据块应写入的区域是大块存储区域(即通常为大块读和/或写区域),则块存储设备可以对数据块应用大块压缩。由于大块压缩的有效性提高,这提高了数据缩减的有效性。
11.具体地,大块压缩表示整个数据块被一次压缩。具体地,大块压缩表示在应用压缩之前,整个数据块不被划分为子块。具体地,大块压缩表示对大小大于预定义阈值的数据块应用压缩。具体地,预定义阈值可以是以下文件大小中的一种:128千字节、256千字节、512千字节、1兆字节、2兆字节、4兆字节、8兆字节等等。
12.具体地,确定数据块将写入大块存储区域,确定数据块是否可以进行重复数据删除,以及数据块的大块压缩在第一操作阶段期间执行。
13.具体地,大块存储区域包括虚拟磁盘或物理磁盘的至少一部分;和/或虚拟分区或物理分区的至少一部分。
14.具体地,重复数据删除包括:如果数据块包括至少两个相同的子块,则仅存储相同的子块中的一个,并且对于每个剩余的子块,保留指向存储的子块的指针。也就是说,不需要n个相同的子块,仅需要一个子块和指向该子块的(n

1)个指针。
15.在第一方面的一种实现方式中,所述大块存储区域是平均大小大于预定义阈值的数据块读和/或写的区域。
16.这确保了块存储设备能够检测到可以有效应用大块压缩的存储区域。
17.具体地,预定义阈值可以是以下文件大小中的一种:128千字节、256千字节、512千字节、1兆字节、2兆字节、4兆字节、8兆字节等等。
18.在第一方面的另一种实现方式中,所述块存储设备还用于根据读统计和/或写统计确定所述平均大小。
19.这为确定平均输入/输出(input/output,io)大小提供了合适的度量。
20.在第一方面的又一种实现方式中,所述第一操作阶段为在线阶段。
21.这确保了块存储设备可以在在线阶段使用。
22.具体地,在线阶段与数据块的写操作相关联地执行。
23.在第一方面的又一种实现方式中,所述块存储设备还用于:如果所述数据块可以进行重复数据删除,则对所述数据块进行重复数据删除和压缩,并存储所述得到的数据块。
24.这确保了可以同时从数据块中选择多个数据缩减技术和/或将多个数据缩减技术应用于数据块,以最大限度地提高数据缩减的效果。此外,还可以选择最佳的缩减技术。
25.具体地,在这种情况下,数据块被划分为小子块(例如8kb的小子块),以8kb的小粒度进行重复数据删除,并以小粒度进行压缩。
26.具体地,在此步骤中应用的压缩不同于大块压缩。
27.在第一方面的又一种实现方式中,所述块存储设备还用于:如果所述数据块可以进行重复数据删除,则比较对所述数据块进行重复数据删除和压缩得到的大小与对所述数据块进行大块压缩得到的大小。
28.这确保了可以评估几种数据缩减技术。
29.在第一方面的又一种实现方式中,块存储设备还用于:如果所述由重复数据删除和压缩得到的大小大于或等于所述由大块压缩得到的大小,则使用大块压缩存储所述数据块。
30.这确保了选择最有效的数据缩减技术。
31.具体地,块存储设备还用于:如果所述由重复数据删除和压缩得到的大小小于所述由大块压缩得到的大小,则使用重复数据删除和压缩存储所述数据块。
32.在第一方面的另一种实现方式中,所述块存储设备还用于对所述数据块的第一子块部分进行重复数据删除,并对所述数据块的第二子块部分进行压缩并存储所述得到的数据块,以对所述数据块进行重复数据删除和压缩。
33.这提供了同时应用重复数据删除和压缩以最大限度地提高数据缩减的效果的详细实现方式。
34.具体地,第一子块部分和第二子块部分一起形成数据块的所有子块。具体地,第一部分和第二部分不重叠。
35.具体地,在此步骤中应用的压缩与大块压缩不同,因为它不应用于整个数据块,而是应用于数据块的至少一个子块。
36.在第一方面的又一种实现方式中,所述块存储设备还用于:对于所述数据块的每个子块,将相似性哈希写入相似性哈希表。
37.这确保了在第一操作阶段,可以完成第二操作阶段相似性重复数据删除的前提条件,即当最高效地获取和写入子块的相似性哈希时。
38.具体地,一个相似性哈希对应于一个子块。
39.在第一方面的另一种实现方式中,所述块存储设备还用于:在第二操作阶段,根据相似性哈希确定是否可以使用相似性重复数据删除进一步减小在所述第一操作阶段存储的数据块的大小。
40.这确保了在第二操作阶段,数据块的大小可以进一步减小,具体地最适合第二操作阶段的大小减小技术。
41.具体地,相似性哈希是存储在相似性哈希表中的相似性哈希。
42.具体地,相似性重复数据删除包括重复数据删除也应用于数据块的所有子块。
43.在第一方面的另一种实现方式中,所述块存储设备还用于确定使用相似性重复数据删除存储所述数据块所需的空间,并确定以其当前格式存储所述数据块所需的空间。
44.这确保了可以评估相似性重复数据删除的有效性。
45.具体地,当前格式是大数据块压缩,或是重复数据删除和压缩的组合。
46.在第一方面的另一种实现方式中,所述块存储设备还用于:如果所述使用相似性重复数据删除存储所述数据块所需的空间小于所述以其当前格式存储所述数据块所需的空间,则使用相似性重复数据删除仅将所述数据块存储在所述数据存储器中。
47.这确保了在第二个操作阶段,选择最有效的数据缩减方式。如果相似性重复数据删除比用于存储数据块的当前格式更有效,则具体地仅选择相似性重复数据删除。
48.在第一方面的又一种实现方式中,所述第二操作阶段为离线阶段。
49.这确保了块存储设备可以在离线阶段使用。
50.具体地,离线阶段是周期性地执行的。具体地,周期性地表示根据预定义的时间间隔。具体地,周期性地表示该操作阶段独立于写操作和/或读操作执行。
51.本发明的第二方面提供了一种用于数据压缩的方法,所述方法包括以下步骤:在第一操作阶段,如果块存储设备确定数据块将写入所述块存储设备的大块存储区域,则所述块存储设备确定所述数据块是否可以进行重复数据删除;如果所述数据块不能进行重复数据删除,则所述块存储设备使用大块压缩存储所述数据块。
52.在第二方面的一种实现方式中,所述大块存储区域是平均大小大于预定义阈值的
数据块读和/或写区域。
53.在第二方面的又一种实现方式中,所述方法还包括所述块存储设备根据读统计和/或写统计确定所述平均大小。
54.在第二方面的又一种实现方式中,所述第一操作阶段为在线阶段。
55.在第二方面的另一种实现方式中,所述方法还包括:如果所述数据块可以进行重复数据删除,则所述块存储设备对所述数据块进行重复数据删除和压缩,并且所述块存储设备存储所述得到的数据块。
56.在第二方面的又一种实现方式中,所述方法还包括:如果所述数据块可以进行重复数据删除,则所述块存储设备比较对所述数据块进行重复数据删除和压缩得到的大小与对所述数据块进行大块压缩得到的大小。
57.在第二方面的又一种实现方式中,所述方法还包括:如果所述由重复数据删除和压缩得到的大小大于或等于所述由大块压缩得到的大小,则所述块存储设备使用大块压缩存储所述数据块。
58.在第二方面的另一种实现方式中,方法还包括所述块存储设备对所述数据块的第一子块部分进行重复数据删除,所述块存储设备对所述数据块的第二子块部分进行压缩,并且所述块存储设备存储所述得到的数据块,对所述数据块进行重复数据删除和压缩。
59.在第二方面的另一种实现方式中,所述方法还包括:对于所述数据块的每个子块,所述块存储设备将相似性哈希写入相似性哈希表。
60.在第二方面的另一种实现方式中,所述方法还包括:在第二操作阶段,所述块存储设备根据相似性哈希确定是否可以使用相似性重复数据删除进一步减小在所述第一操作阶段存储的数据块的大小。
61.在第二方面的另一种实现方式中,所述方法还包括:所述块存储设备确定使用相似性重复数据删除存储所述数据块所需的空间,所述块存储设备确定以其当前格式存储所述数据块所需的空间。
62.在第二方面的又一种实现方式中,所述方法还包括:如果所述使用相似性重复数据删除存储所述数据块所需的空间小于所述以其当前格式存储所述数据块所需的空间,则所述块存储设备使用相似性重复数据删除仅将所述数据块存储在所述数据存储器中。
63.在第二方面的又一种实现方式中,所述第二操作阶段为离线阶段。
64.第二方面及其实现方式包括与第一方面及其各自的实现方式相同的优点。
65.本发明的第三方面提供了一种计算机程序产品,包括指令,当计算机执行程序时,所述指令使所述计算机执行第二方面或其任何实现方式的方法的步骤。
66.第三方面及其实现方式包括与第二方面及其各自的实现方式相同的优点。
67.本发明的第四方面提供了一种非瞬时性计算机可读存储介质,包括指令,当由计算机执行时,使所述计算机执行第二方面或其任何实现方式的方法的步骤。
68.第四方面及其实现方式包括与第二方面及其各自的实现方式相同的优点。
69.换句话说,本发明提供了一种方案,该方案确定哪种数据缩减方法将产生最佳结果。例如,与另一种可用方法相比,一种数据缩减方法可以产生更好的cpu性能和/或可以更高效地使用磁盘空间。此外,可以充分利用两阶段方法。例如,根据每个阶段的设计考虑因素和可用资源,在每个阶段采用不同的数据缩减方法可更高效和有效地减少所需空间。换
句话说,本发明采用了一种方案,该方案分析了一系列参数,例如数据块的大小、通常在当前地址执行的读/写类型或数据的可压缩性,并根据该分析的结果选择最合适的数据缩减方法。此外,该分析和决策流使用两阶段方法,其中,差分逻辑应用于在线和后台处理。这使得块存储设备能够在在在线处理期间当cpu占用率最临界时优先考虑性能,并且在后台处理期间当cpu有更多可用空间时优先考虑磁盘空间。块存储设备具体地可以利用这些数据缩减方法中的至少一种:相同块的重复数据删除、大块的压缩、小块的压缩、相似性压缩。
70.需要说明的是,本技术中描述的所有设备、元件、单元和模块可以在软件或硬件元件或其任何类型的组合中实现。本技术中描述的各种实体执行的所有步骤以及所描述的将由各种实体执行的功能旨在表明相应的实体适于或用于执行相应的步骤和功能。虽然在以下具体实施例的描述中,由外部实体执行的具体功能或步骤没有在执行具体步骤或功能的该实体的具体元件的描述中反映,但是技术人员应该清楚的是这些方法和功能可以在对应的硬件元件或软件元件或其任何类型的组合中实现。
附图说明
71.结合所附附图,下面具体实施例的描述将阐述上述本发明的各方面及其实现方式。
72.图1示出了本发明实施例提供的设备的示意图;
73.图2更详细地示出了本发明实施例提供的设备的示意图;
74.图3示出了本发明提供的操作方式的示意图;
75.图4示出了本发明提供的操作方式的示意图;
76.图5示出了本发明实施例提供的方法的另一示意图。
具体实施方式
77.图1示出了本发明实施例提供的块存储设备100的示意图。块存储设备100用于数据压缩,因此用于:如果块存储设备100确定数据块101将写入块存储设备100的大块存储区域102,则确定数据块101是否可以进行重复数据删除。
78.此外,块存储设备100用于:如果数据块101不能进行重复数据删除,则使用大块压缩存储数据块101。数据块101具体地存储在大块存储区域102中。
79.所有这些步骤都在第一操作阶段期间执行。第一操作阶段具体地可以是在线阶段。
80.可选地,大块存储区域102可以是平均大小大于预定义阈值的数据块101读和/或写区域。大块存储区域具体地可以是物理磁盘、物理卷、虚拟磁盘或虚拟卷的一部分。待写入或待读取数据块的平均大小可以可选地基于读统计和/或写统计。
81.图2更详细地示出了本发明实施例提供的块存储设备100的示意图。图2所示的设备100包括图1的设备100的所有特征和功能,以及以下可选特征:
82.如图2所示,块存储设备100可选地可以用于:如果数据块101可以进行重复数据删除,则对数据块101进行重复数据删除和压缩,并存储得到的数据块201。也就是说,对数据块101执行重复数据删除和压缩,而不是执行大块压缩。这种压缩与大块压缩的不同之处具体在于:它应用于小于大块的数据块。
83.此外可选地,如果数据块101可以进行重复数据删除,则块存储设备100可以比较对数据块101进行重复数据删除和压缩得到的大小与对数据块101进行大块压缩得到的大小。该评估有助于确定更有效的数据缩减方式。如果由重复数据删除和压缩得到的大小大于或等于由大块压缩得到的大小,则块存储设备100可以使用大块压缩存储数据块101。
84.如图2中进一步所示,块存储设备100可以对数据块101的第一子块部分202进行重复数据删除。块存储设备100还可以压缩数据块101的第二子块部分203。然后,由重复数据删除和压缩得到的数据块201可以由块存储设备100存储。这可以例如在大块存储区域102中完成,或在块存储设备100的传统存储区域中完成。例如,如果数据块101的大小为1mb,则第一子块部分202例如可以包括两个子块,每个子块的大小为256kb,并且第二子块部分203例如可以包括四个子块,每个子块的大小为128kb。但是,遵循这一原则的任何类型的子块分布都是可能的。
85.在一个具体实施例中,使用两级块大小。在该实施例中,数据块101的大小为512kb,子块的大小为8kb。因此,512kb数据块101可以被压缩为单个块或被压缩为64个8kb大小的子块,其中,每个8kb子块可以被单独重复数据删除或压缩。
86.如图2中进一步所示,为了准备相似性重复数据删除(例如,可以在块存储设备100的第二操作阶段执行),对于数据块101的每个子块202、203,块存储设备100可以将相似性哈希204写入相似性哈希表205。该步骤具体地在块存储设备100的第一操作阶段期间执行。
87.此外可选地,在第二操作阶段,块存储设备100可以根据相似性哈希204确定是否可以使用相似性重复数据删除进一步减小在第一操作阶段存储的数据块101的大小。该相似性哈希204例如可以是在第一操作阶段期间存储在相似性哈希表205中的相似性哈希。
88.块存储设备100可选地可以确定使用相似性重复数据删除存储数据块101所需的空间。块存储设备100可选地还可以确定以其当前格式存储数据块(101)所需的空间。这使得如果使用相似性重复数据删除存储数据块101所需的空间小于以其当前格式存储数据块101所需的空间,则使用相似性重复数据删除仅将数据块101存储在数据存储器102中。
89.具体地,第二操作阶段可以是离线阶段。
90.图3更详细地描述了在第一操作阶段期间执行的操作场景。
91.在步骤301中,块存储设备100检查数据块101是否可以进行重复数据删除(根据哈希指纹,可以确定相同的数据块已经写入磁盘),如果可以,则执行重复数据删除(参见步骤302)。在任何情况下,在步骤301中,块存储设备100生成最小哈希(即,相似性哈希204),该最小哈希将添加到机会表(即,相似性哈希表205),以使得可以随后在第二操作阶段进行相似性重复数据删除。
92.如果数据块101不能进行重复数据删除,则块存储设备100检查(在步骤303中)预测表,以确定可用的物理地址范围通常用于写入和读取小数据块或写入和读取大数据块(换句话说,确定数据块101是否将写入大块存储区域102)。如果当前范围通常用于写入和读取小数据块,则系统照常进行(即,它存储小数据块),如步骤304中所示。
93.如果识别出数据块101将写入大多数读取和写入在大块中完成的区域,则块存储设备100分析(在步骤305中)大块压缩是否会产生比小块压缩更好的压缩。如果大块压缩不会产生更好的压缩,则块存储设备照常进行(即,它存储压缩数据块101),参见步骤306。如果大块压缩将产生更好的压缩,则块存储设备100存储使用大块压缩设置的压缩数据块101
(参见步骤307)。例如,这可以通过以下方法中的一种实现:大块压缩可用于将大块存储区域102标记为包含相同数据。块存储设备100例如可以在每个相关的大块存储区域102中以相同的偏移写入相同的颗粒(物理)地址,或者块存储设备100可以设置指示相同大块存储区域102范围的开始和结束的位。
94.此外,如果数据块101可以进行重复数据删除,则块存储设备100也可以确定数据块101的大块压缩是否会产生更好的结果,或者对数据块101进行重复数据删除和压缩的组合是否产生更好的结果,并选择更好的选项。
95.因此,在第一操作阶段结束时,块存储设备100生成并保存了最小哈希,并且将已经对数据块101进行了重复数据删除和/或已经存储了以小块压缩的数据块101;或者将已经使用大块压缩存储了数据块101。
96.图4更详细地描述了在第一操作阶段期间执行的操作场景。
97.例如,如上所述,在线处理(即,第一操作阶段)优先减少cpu占用率而不是最小化磁盘利用率。然后,在后台处理期间(即,第二操作阶段),当cpu占用率不那么临界时,块存储设备100尝试进一步优化磁盘利用率,如下所述。图4的步骤401具体地在图3的步骤307之后执行。
98.如步骤402所示,在第二操作阶段,对于以大数据块压缩的数据块401,块存储设备100检查机会表(即,相似性哈希表205),以查看是否存在相似性重复数据删除选项(即,是否存在具有相同最小哈希的另一个数据块101)。
99.如果无法进行相似性重复数据删除,则块存储设备100不做任何操作,并且数据块401保持大块压缩,参见步骤403。
100.如果可以进行相似性重复数据删除,则块存储设备100分析相似性重复数据删除是否会产生比大块压缩更好的结果,参见步骤404。
101.如果相似性重复数据删除将产生比大块压缩更低的数据缩减,则系统不做任何操作,并且数据块101保持大块压缩,参见步骤405。
102.如果相似性重复数据删除将产生比大块压缩更好的数据缩减,则系统执行相似性重复数据删除,并且数据块101例如存储在8k数据块中,如有必要,该数据块具有相似性重复数据删除指针。
103.图5示出了本发明实施例提供的方法500的示意图。方法500用于数据压缩。在第一操作阶段,该方法包括以下步骤:如果块存储设备100确定数据块101将写入所述块存储设备100的大块存储区域102,则所述块存储设备100确定501所述数据块101是否可以进行重复数据删除。该方法包括(仍在第一操作阶段)以下另一个步骤:如果数据块101不能进行重复数据删除,则块存储设备100使用大块压缩存储502数据块100。
104.已经结合作为示例的不同实施例以及实现方式描述了本发明。但是,根据对附图、本发明和独立权利要求的研究,本领域技术人员在实践所要求保护的发明时,能够理解和实现其它变化。在权利要求以及说明书中,词语“包括”不排除其它元件或步骤,且词语“一”或“一个”不排除多个。单个元件或其它单元可满足权利要求书中所叙述的若干实体或项目的功能。在互不相同的从属权利要求中列举某些措施并不表示这些措施的组合不能用于有益的实现方式。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献