1.本申请涉及存储技术领域,尤其涉及一种重删数据保护方法及装置。
背景技术:
2.为了提升存储设备的资源利用率,通常采用重删(全称:重复数据删除)机制消除存储设备中的重复数据,以使相同数据仅保存一份。
3.存储设备中支持重删功能的逻辑单元号(英文:logical unit number,缩写:lun)称为重删lun。写入重删lun的数据同样存在数据保护需求,比如,将重删lun(记为第一重删lun)的数据复制到目标lun,以得到重删lun的备份数据。
4.如果该目标lun同样为支持重删功能的lun(记为第二重删lun),则向该第二重删lun复制(写入)第一重删lun的数据时,需要执行重删流程。由于重删流程涉及指纹计算、指纹库维护以及重复数据比较等操作,因此,其计算量大、访问路径长,导致数据保护效率较低。
5.如果目标lun不为重删lun,不执行重删流程,则所有数据(包括重复数据)均写入存储设备的存储空间,导致存储空间利用率较低。
6.可以看出,针对重删lun的数据保护,目前还没有可同时兼顾保护效率和空间利用率的技术方案。
技术实现要素:
7.有鉴于此,本申请提出一种重删数据保护方法及装置,用以提升重删数据保护效率并兼顾存储设备的存储空间利用率。
8.为实现上述申请目的,本申请提供了如下技术方案:
9.第一方面,本申请提供一种重删数据保护方法,应用于存储设备,所述存储设备包括至少一个重删lun和至少一个磁盘阵列(英文:redundant arrays of independent disks,缩写:raid),所述至少一个重删lun中的目标重删lun对应至少两个重删池,每一个重删池按照预设重删块大小划分为多个重删块,所述目标重删lun按照所述预设重删块大小划分为多个逻辑块,所述重删池由虚拟地址连续的至少一个虚拟地址段组成,每一个虚拟地址段对应raid中的一段物理空间,所述目标重删lun还对应有基于raid创建的指纹库,所述指纹库用于记录数据的指纹信息与存储该数据的重删块的虚拟地址之间的对应关系,所述目标重删lun还对应有逻辑空间映射表,所述逻辑空间映射表用于记录已映射逻辑块的逻辑地址与重删块的虚拟地址之间的映射关系,所述方法包括:
10.确定待写入第一逻辑块的第一数据,所述第一逻辑块为所述目标重删lun中待写入数据的任一逻辑块;
11.如果所述指纹库中不存在所述第一数据的指纹信息,分别从所述至少两个重删池中为所述第一逻辑块分配对应的目标重删块,所述第一逻辑块在各重删池中对应的目标重删块的虚拟地址相同;
12.分别向各目标重删块写入所述第一数据;
13.在所述逻辑空间映射表中,记录所述第一逻辑块的逻辑地址与所述目标重删块的虚拟地址之间的映射关系;
14.在所述指纹库中,记录所述第一数据的指纹信息与所述目标重删块的虚拟地址之间的对应关系。
15.可选的,所述方法还包括:
16.如果所述指纹库中存在所述第一数据的指纹信息,获取与所述第一数据的指纹信息对应的目标重删块的虚拟地址;
17.在所述逻辑空间映射表中,记录所述第一逻辑块的逻辑地址与所述目标重删块的虚拟地址之间的映射关系。
18.可选的,所述至少两个重删池来源于不同raid。
19.可选的,每一个重删池对应各自的数据有效性标识以及写入结果位图,所述分别向各目标重删块写入所述第一数据之后,所述方法还包括:
20.如果所述各目标重删块中同时存在写入成功的第一目标重删块和写入失败的第二目标重删块,修改所述第二目标重删块所属重删池的数据有效性标识为第一有效值,所述第一有效值用于表示对应重删池中部分数据有效;
21.针对所述第一目标重删块所属重删池对应的写入结果位图,将该写入结果位图中第一目标重删块对应位的值修改为第一结果值,所述第一结果值用于表示本重删池中目标重删块写入成功,其它重删池中对应目标重删块写入失败。
22.可选的,所述方法还包括:
23.当需要读取第二逻辑块中的第二数据时,查询所述逻辑空间映射表,确定与所述第二逻辑块对应的待读取重删块;
24.如果所述至少两个重删池中存在数据有效性标识为第二有效值的第一重删池,所述第二有效值用于表示重删池中所有数据均有效,则从所述第一重删池读取待读取重删块中的第二数据;
25.如果所述至少两个重删池的数据有效性标识均为所述第一有效值,且所述待读取重删块在各重删池对应写入结果位图中对应位的值存在第一结果值,则从该值为第一结果值的位所属写入结果位图对应的第二重删池,读取待读取重删块中的第二数据;否则,从任一重删池读取待读取重删块中的第二数据。
26.可选的,所述方法还包括:
27.针对数据有效性标识为第一有效值的第三重删池,获取第四重删池对应写入结果位图,所述第四重删池为所述至少两个重删池中除当前第三重删池之外的重删池;
28.从所述第四重删池对应写入结果位图中,查找值为所述第一结果值的各目标位;
29.针对每一个目标位,将所述第四重删池中该目标位对应重删块的数据同步到所述第三重删池中对应重删块。
30.第二方面,本申请提供一种重删数据保护装置,应用于存储设备,所述存储设备包括至少一个重删lun和至少一个raid,所述至少一个重删lun中的目标重删lun对应至少两个重删池,每一个重删池按照预设重删块大小划分为多个重删块,所述目标重删lun按照所述预设重删块大小划分为多个逻辑块,所述重删池由虚拟地址连续的至少一个虚拟地址段
组成,每一个虚拟地址段对应raid中的一段物理空间,所述目标重删lun还对应有基于raid创建的指纹库,所述指纹库用于记录数据的指纹信息与存储该数据的重删块的虚拟地址之间的对应关系,所述目标重删lun还对应有逻辑空间映射表,所述逻辑空间映射表用于记录已映射逻辑块的逻辑地址与重删块的虚拟地址之间的映射关系,所述装置包括:
31.确定单元,用于确定待写入第一逻辑块的第一数据,所述第一逻辑块为所述目标重删lun中待写入数据的任一逻辑块;
32.分配单元,用于所述指纹库中不存在所述第一数据的指纹信息,分别从所述至少两个重删池中为所述第一逻辑块分配对应的目标重删块,所述第一逻辑块在各重删池中对应的目标重删块的虚拟地址相同;
33.写入单元,用于分别向各目标重删块写入所述第一数据;
34.第一记录单元,用于在所述逻辑空间映射表中,记录所述第一逻辑块的逻辑地址与所述目标重删块的虚拟地址之间的映射关系;
35.第二记录单元,用于在所述指纹库中,记录所述第一数据的指纹信息与所述目标重删块的虚拟地址之间的对应关系。
36.可选的,所述装置还包括:
37.获取单元,用于如果所述指纹库中存在所述第一数据的指纹信息,获取与所述第一数据的指纹信息对应的目标重删块的虚拟地址;
38.所述第一记录单元,用于在所述逻辑空间映射表中,记录所述第一逻辑块的逻辑地址与所述目标重删块的虚拟地址之间的映射关系。
39.可选的,所述至少两个重删池来源于不同raid。
40.可选的,每一个重删池对应各自的数据有效性标识以及写入结果位图,所述装置还包括:
41.第一修改单元,用于如果所述各目标重删块中同时存在写入成功的第一目标重删块和写入失败的第二目标重删块,修改所述第二目标重删块所属重删池的数据有效性标识为第一有效值,所述第一有效值用于表示对应重删池中部分数据有效;
42.第二修改单元,用于针对所述第一目标重删块所属重删池对应的写入结果位图,将该写入结果位图中第一目标重删块对应位的值修改为第一结果值,所述第一结果值用于表示本重删池中目标重删块写入成功,其它重删池中对应目标重删块写入失败。
43.可选的,所述装置还包括:
44.确定单元,用于当需要读取第二逻辑块中的第二数据时,查询所述逻辑空间映射表,确定与所述第二逻辑块对应的待读取重删块;
45.读取单元,用于如果所述至少两个重删池中存在数据有效性标识为第二有效值的第一重删池,所述第二有效值用于表示重删池中所有数据均有效,则从所述第一重删池读取待读取重删块中的第二数据;
46.所述读取单元,还用于如果所述至少两个重删池的数据有效性标识均为所述第一有效值,且所述待读取重删块在各重删池对应写入结果位图中对应位的值存在第一结果值,则从该值为第一结果值的位所属写入结果位图对应的第二重删池,读取待读取重删块中的第二数据;否则,从任一重删池读取待读取重删块中的第二数据。
47.可选的,所述装置还包括:
48.获取单元,用于针对数据有效性标识为第一有效值的第三重删池,获取第四重删池对应写入结果位图,所述第四重删池为所述至少两个重删池中除当前第三重删池之外的重删池;
49.查找单元,用于从所述第四重删池对应写入结果位图中,查找值为所述第一结果值的各目标位;
50.同步单元,用于针对每一个目标位,将所述第四重删池中该目标位对应重删块的数据同步到所述第三重删池中对应重删块。
51.由以上描述可以看出,本申请实施例中,为同一重删lun配置至少两个重删池,并在同一重删处理流程中,将数据同步写入该至少两个重删池,即,同步完成数据写入和数据备份,因此,可有效提升数据保护效率,同时,由于基于重删机制备份数据,因此,可兼顾提升存储设备的空间利用率。
附图说明
52.为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
53.图1是本申请实施例示出的一种重删数据保护方法流程图;
54.图2是本申请实施例示出的一种重删数据读取流程;
55.图3是本申请实施例示出的一种重删数据同步流程;
56.图4是本申请实施例示出的一种重删数据保护装置的结构示意图。
具体实施方式
57.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。
58.在本申请实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请实施例。在本申请实施例中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
59.应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请实施例范围的情况下,协商信息也可以被称为第二信息,类似地,第二信息也可以被称为协商信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
60.为了使本申请实施例的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本申请实施例执行详细描述:
61.参见图1,为本申请实施例示出的一种重删数据保护方法的流程图。该流程应用于存储设备。
62.该存储设备包括至少一个重删lun和至少一个raid。该至少一个重删lun中的目标重删lun对应至少两个重删池。
63.这里,需要说明的是,目标重删lun可以为至少一个重删lun中的任一重删lun。之所以称为目标重删lun,只是为了便于区分而进行的命名,并非用于限定。
64.本申请实施例中,重删池由虚拟地址连续的至少一个虚拟地址段组成,每一个虚拟地址段对应raid中的一段物理空间。
65.比如,容量为100gb的重删池由两个虚拟地址段组成,分别为前50gb虚拟地址段和后50gb虚拟地址段。其中,前50gb虚拟地址段来源于raid_1的起始地址为lba_1的50gb物理空间;后50gb虚拟地址段来源于raid_2起始地址为lba_2的50gb物理空间。
66.每一个重删池按照预设重删块大小(比如,8kb)划分为多个重删块。目标重删lun按照预设重删块大小划分为多个逻辑块。
67.目标重删lun对应有逻辑空间映射表,该逻辑空间映射表用于记录已映射逻辑块的逻辑地址与重删块的虚拟地址之间的映射关系。
68.目标重删lun还对应有基于raid创建的指纹库,该指纹库用于记录数据的指纹信息与存储该数据的重删块的虚拟地址之间的对应关系。
69.这里,需要说明的是,上述逻辑空间映射表和指纹库中均记录的是重删块的虚拟地址,而不是重删块的实际物理地址(包括来源于哪个raid以及在该raid中的位置信息),从而避免逻辑空间映射表和指纹库中出现大量重复的raid信息,因此,可有效节约存储设备维护以及使用逻辑空间映射表和指纹库时所需消耗的资源。
70.如图1所示,重删数据保护流程可包括以下步骤:
71.步骤101,确定待写入第一逻辑块的第一数据,该第一逻辑块为目标重删lun中待写入数据的任一逻辑块。
72.用户通过上层应用向存储设备下发针对目标重删lun的写请求,该写请求包括待写入数据以及待写入数据在目标重删lun中对应的待写入地址范围。比如,待写入数据大小为64kb,待写入起始地址为256mb,则待写入地址范围为【256mb,256mb 64kb】。
73.根据该待写入地址范围,可确定该待写入地址范围在目标重删lun中对应的待写入逻辑块。以逻辑块大小为8kb、待写入地址范围为【256mb,256mb 64kb】为例,该待写入地址范围在目标重删lun中对应从256mb到256mb 64kb之间的8个待写入逻辑块。
74.然后,对写请求携带的待写入数据按照逻辑块大小划分,确定待写入各待写入逻辑块的数据,并对待写入各待写入逻辑块的数据分别计算指纹信息。计算指纹的方法可采用重删的通用实现方案,本发明中不再展开阐述。
75.这里,将待写入逻辑块称为第一逻辑块,待写入该第一逻辑块的数据称为第一数据。可以理解的是,之所以称为第一逻辑块、第一数据只是为了便于描述而进行的命名,并非用于限定。
76.针对每一个第一逻辑块执行后续处理。
77.步骤102,如果指纹库中不存在第一数据的指纹信息,分别从至少两个重删池中为第一逻辑块分配对应的目标重删块,该第一逻辑块在各重删池中对应的目标重删块的虚拟地址相同。
78.指纹库用于记录重删池中已存储数据的指纹信息。当确定指纹库中不存在第一数
据的指纹信息时,说明该第一数据为未存储过的新数据(非重复数据),则需要将该非重复数据存储到重删池中。
79.为此,本申请实施例从目标重删lun对应的至少两个重删池中,分别为第一数据所属第一逻辑块分配对应的目标重删块,即,为同一第一逻辑块分配位于不同重删池中的至少两个目标重删块。可以理解的是,之所以称为目标重删块,只是为了便于区分而进行的命名,并非用于限定。
80.作为一个实施例,该第一逻辑块对应的至少两个目标重删块的虚拟地址相同。
81.步骤103,分别向各目标重删块写入第一数据。
82.由于各目标重删块位于不同重删池,因此,相当于将第一数据写入多个重删池,从而起到数据备份(保护)作用。
83.为了进一步保证数据的安全性,目标重删lun对应的至少两个重删池可来源于不同raid,以避免单个raid故障导致来源于该raid的多个重删池均无法使用。
84.步骤104,在逻辑空间映射表中,记录第一逻辑块的逻辑地址与目标重删块的虚拟地址之间的映射关系。
85.在数据写入后,需要记录已映射逻辑块与为该逻辑块分配的重删块之间的映射关系,因此,本步骤将第一逻辑块的逻辑地址与目标重删块的虚拟地址之间的映射关系,添加到逻辑空间映射表中。
86.需要说明的是,虽然第一逻辑块对应至少两个目标重删块,但由于该至少两个目标重删块的虚拟地址相同,因此,只需记录第一逻辑地址的逻辑地址与一个目标重删块的虚拟地址的映射关系即可,可有效节约设备资源。
87.步骤105,在指纹库中,记录第一数据的指纹信息与目标重删块的虚拟地址之间的对应关系。
88.对于已存储的数据,需要记录数据的指纹信息与存储该数据的重删块的对应关系,因此,本步骤将第一数据的指纹信息与存储该第一数据的目标重删块的虚拟地址之间的对应关系,添加到指纹库中。
89.至此,完成图1所示流程。
90.通过图1所示流程可以看出,本申请实施例中,为同一重删lun配置至少两个重删池,并在同一重删处理流程中,将数据同步写入该至少两个重删池,即,同步完成数据写入和数据备份,因此,可有效提升数据保护效率,同时,由于基于重删机制备份数据,因此,可兼顾提升存储设备的空间利用率。
91.作为一个实施例,在执行步骤101之后,如果确定指纹库中存在第一数据的指纹信息,说明重删池中已存在相同数据,该第一数据为已有数据的重复数据,因此,基于重删机制,该第一数据无需写入重删池,但需要在逻辑空间映射表中记录该第一数据所属第一逻辑块与重删池存储有相同数据的目标重删块的虚拟地址之间的映射关系。
92.为此,本申请实施例从指纹库中,查询与该第一数据的指纹信息对应的目标重删块的虚拟地址,然后,在逻辑空间映射表中,记录第一逻辑块的逻辑地址与该目标重删块的虚拟地址之间的映射关系,以便后续可从该第一逻辑块对应的目标重删块中读取到第一数据。
93.作为一个实施例,本申请还维护各重删池对应的数据有效性标识以及写入结果位
图。其中,数据有效性标识用于标识重删池中数据是否全部有效;写入结果位图用于标识重删池中各重删块是否写入成功。
94.在通过步骤103分别向各目标重删块写入第一数据后,可根据写入结果(成功或失败)更新各重删池对应的数据有效性标识以及写入结果位图。
95.具体为,如果写入的多个目标重删块中同时存在写入成功的第一目标重删块和写入失败的第二目标重删块,则修改第二目标重删块所属重删池的数据有效性标识为第一有效值,该第一有效值用于表示重删池中部分数据有效,即,该重删池中存在写入失败的无效数据。
96.这里,第一目标重删块、第二目标重删块、第一有效值均只是为了便于区分而进行的命名,并非用于限定。
97.此外,针对写入成功的第一目标重删块,需要修改该第一目标重删块所属重删池对应的写入结果位图。将该写入结果位图中第一目标重删块对应位的值修改为第一结果值,该第一结果值用于表示本重删池中目标重删块写入成功,而其它重删池中对应目标重删块写入失败。
98.举例说明:比如,重删lun1对应两个重删池(重删池1和重删池2),将数据1分别写入重删池1的重删块11和重删池2的重删块21。如果重删块11写入成功、重删块21写入失败,则修改重删块21所在重删池2的数据有效性标识为第一有效值(比如,1),以标识重删池2中存在写入失败的无效数据。
99.同时,更新重删块11所在重删池1的写入结果位图(bitmap)。这里,为了简化说明,以重删池1包括8个重删块(分别为重删块10~重删块17)为例,在数据1写入之前,重删块1的写入结果位图为{00000000};在数据1成功写入重删块11但写入重删块21失败后,更新重删池1的写入结果位图为{01000000},即,将重删池1中第二个重删块(重删块11)对应位的值更新为第一结果值(1),以表示该数据1在重删池1中对应重删块写入成功,但在重删池2中对应重删块写入失败。
100.这里,需要说明的是,当第一数据在各目标重删块中均写入成功时,可禁止更新各重删池对应的数据有效性标识以及写入结果位图。
101.参见图2,为本申请实施例示出的一种重删数据读取流程。如图2所示,该流程可包括以下步骤:
102.步骤201,当需要读取第二逻辑块中的第二数据时,查询逻辑空间映射表,确定与第二逻辑块对应的待读取重删块。
103.如前所述,逻辑空间映射表用于记录已映射逻辑块的逻辑地址与重删块的虚拟地址之间的映射关系,因此,通过逻辑空间映射表可确定所要读取数据在重删池中的存储位置(待读取重删块)。
104.这里,第二逻辑块、第二数据均只是为了便于区分而进行的命名,并非用于限定。
105.步骤202,如果至少两个重删池中存在数据有效性标识为第二有效值的第一重删池,该第二有效值用于表示重删池中所有数据均有效,则从第一重删池读取待读取重删块中的第二数据。
106.如前所述,目标重删lun对应至少两个重删池,且每一个重删池对应有用于标识重删池中数据是否全部有效的数据有效性标识,因此,在通过数据有效性标识(第二有效值)
确定第一重删池中数据全部有效(存储有目标重删lun中的全部数据)时,直接从该第一重删池中读取待读取重删块中的数据(第二数据)。
107.这里,第二有效值、第一重删池只是为了便于区分而进行的命名,并非用于限定。
108.步骤203,如果至少两个重删池的数据有效性标识均为第一有效值,且待读取重删块在各重删池对应写入结果位图中对应位的值存在第一结果值,则从该值为第一结果值的位所属写入结果位图对应的第二重删池,读取待读取重删块中的第二数据;否则,从任一重删池读取待读取重删块中的第二数据。
109.各重删池对应的数据有效性标识均为第一有效值,说明各重删池均未成功存储目标重删lun中的全部数据,因此,需要进一步确定哪一个重删池成功存储了待读取的第二数据。
110.为此,可查询各重删池对应的写入结果位图。
111.如果当前重删池对应写入结果位图中待读取重删块对应的位的值为第一结果值,说明该重删池(第二重删池)中待读取重删块存储的数据(第二数据)有效(写入成功),其它重删池中待读取重删块存储的数据无效(写入失败),因此,从第二重删池读取待读取重删块中的第二数据。
112.这里,第二重删池只是为便于区分而进行的命名,并非用于限定。
113.如果各重删池对应写入结果位图中待读取重删块对应的位的值均不为第一结果值,说明各重删池中待读取重删块的数据有效性相同(比如,均写入成功),则可从任一重删池读取待读取重删块中的第二数据。
114.至此,完成图2所示流程。
115.通过图2所示流程实现对重删数据的读取。
116.参见图3,为本申请实施例示出的一种重删数据同步流程。如图3所示,该流程可包括如下步骤:
117.步骤301,针对数据有效性标识为第一有效值的第三重删池,获取第四重删池对应写入结果位图,该第四重删池为至少两个重删池中除当前第三重删池之外的重删池。
118.当重删池的数据有效性标识为第一有效值时,说明该重删池(第三重删池)中存在写入失败的重删块,此时,可获取其它重删池(第四重删池)的写入结果位图。
119.这里,第三重删池、第四重删池只是为便于区分而进行的命名,并非用于限定。
120.步骤302,从第四重删池对应写入结果位图中,查找值为第一结果值的各目标位。
121.如前所述,第一结果值用于表示本重删池中重删块写入成功,而其它重删池中对应重删块写入失败,因此,本步骤通过查找第四重删池对应写入位图中值为第一结果值的位(简称目标位),可确定第四重删池中写入成功而第三重删池中写入失败的重删块。
122.这里,可以理解的是,之所以称为目标位,只是为便于区分而进行的命名,并非用于限定。
123.步骤303,针对每一个目标位,将第四重删池中该目标位对应重删块的数据同步到第三重删池中对应重删块。
124.即,将第四重删池中写入成功的重删块的数据,同步到第三重删池中对应重删块,以尽量使各重删块均存储有效数据,起到数据备份作用。
125.至此,完成图3所示流程。
126.通过图3所示流程可实现对写入失败的重删块的修复,从而提升存储设备的备份性能。
127.以上对本申请实施例提供的方法进行了描述,下面对本申请实施例提供的装置进行描述:
128.参见图4,为本申请实施例提供的装置的结构示意图。该装置应用于存储设备,所述存储设备包括至少一个重删lun和至少一个raid,所述至少一个重删lun中的目标重删lun对应至少两个重删池,每一个重删池按照预设重删块大小划分为多个重删块,所述目标重删lun按照所述预设重删块大小划分为多个逻辑块,所述重删池由虚拟地址连续的至少一个虚拟地址段组成,每一个虚拟地址段对应raid中的一段物理空间,所述目标重删lun还对应有基于raid创建的指纹库,所述指纹库用于记录数据的指纹信息与存储该数据的重删块的虚拟地址之间的对应关系,所述目标重删lun还对应有逻辑空间映射表,所述逻辑空间映射表用于记录已映射逻辑块的逻辑地址与重删块的虚拟地址之间的映射关系,所述装置包括:其中:
129.确定单元401,用于确定待写入第一逻辑块的第一数据,所述第一逻辑块为所述目标重删lun中待写入数据的任一逻辑块;
130.分配单元402,用于所述指纹库中不存在所述第一数据的指纹信息,分别从所述至少两个重删池中为所述第一逻辑块分配对应的目标重删块,所述第一逻辑块在各重删池中对应的目标重删块的虚拟地址相同;
131.写入单元403,用于分别向各目标重删块写入所述第一数据;
132.第一记录单元404,用于在所述逻辑空间映射表中,记录所述第一逻辑块的逻辑地址与所述目标重删块的虚拟地址之间的映射关系;
133.第二记录单元405,用于在所述指纹库中,记录所述第一数据的指纹信息与所述目标重删块的虚拟地址之间的对应关系。
134.作为一个实施例,所述装置还包括:
135.获取单元,用于如果所述指纹库中存在所述第一数据的指纹信息,获取与所述第一数据的指纹信息对应的目标重删块的虚拟地址;
136.所述第一记录单元404,用于在所述逻辑空间映射表中,记录所述第一逻辑块的逻辑地址与所述目标重删块的虚拟地址之间的映射关系。
137.作为一个实施例,所述至少两个重删池来源于不同raid。
138.作为一个实施例,每一个重删池对应各自的数据有效性标识以及写入结果位图,所述装置还包括:
139.第一修改单元,用于如果所述各目标重删块中同时存在写入成功的第一目标重删块和写入失败的第二目标重删块,修改所述第二目标重删块所属重删池的数据有效性标识为第一有效值,所述第一有效值用于表示对应重删池中部分数据有效;
140.第二修改单元,用于针对所述第一目标重删块所属重删池对应的写入结果位图,将该写入结果位图中第一目标重删块对应位的值修改为第一结果值,所述第一结果值用于表示本重删池中目标重删块写入成功,其它重删池中对应目标重删块写入失败。
141.作为一个实施例,所述装置还包括:
142.确定单元,用于当需要读取第二逻辑块中的第二数据时,查询所述逻辑空间映射
表,确定与所述第二逻辑块对应的待读取重删块;
143.读取单元,用于如果所述至少两个重删池中存在数据有效性标识为第二有效值的第一重删池,所述第二有效值用于表示重删池中所有数据均有效,则从所述第一重删池读取待读取重删块中的第二数据;
144.所述读取单元,还用于如果所述至少两个重删池的数据有效性标识均为所述第一有效值,且所述待读取重删块在各重删池对应写入结果位图中对应位的值存在第一结果值,则从该值为第一结果值的位所属写入结果位图对应的第二重删池,读取待读取重删块中的第二数据;否则,从任一重删池读取待读取重删块中的第二数据。
145.作为一个实施例,所述装置还包括:
146.获取单元,用于针对数据有效性标识为第一有效值的第三重删池,获取第四重删池对应写入结果位图,所述第四重删池为所述至少两个重删池中除当前第三重删池之外的重删池;
147.查找单元,用于从所述第四重删池对应写入结果位图中,查找值为所述第一结果值的各目标位;
148.同步单元,用于针对每一个目标位,将所述第四重删池中该目标位对应重删块的数据同步到所述第三重删池中对应重删块。
149.由以上描述可以看出,本申请实施例中,为同一重删lun配置至少两个重删池,并在同一重删处理流程中,将数据同步写入该至少两个重删池,即,同步完成数据写入和数据备份,因此,可有效提升数据保护效率,同时,由于基于重删机制备份数据,因此,可兼顾提升存储设备的空间利用率。
150.以上所述仅为本申请实施例的较佳实施例而已,并不用以限制本申请,凡在本申请实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
技术特征:
1.一种重删数据保护方法,其特征在于,应用于存储设备,所述存储设备包括至少一个重删lun和至少一个raid,所述至少一个重删lun中的目标重删lun对应至少两个重删池,每一个重删池按照预设重删块大小划分为多个重删块,所述目标重删lun按照所述预设重删块大小划分为多个逻辑块,所述重删池由虚拟地址连续的至少一个虚拟地址段组成,每一个虚拟地址段对应raid中的一段物理空间,所述目标重删lun还对应有基于raid创建的指纹库,所述指纹库用于记录数据的指纹信息与存储该数据的重删块的虚拟地址之间的对应关系,所述目标重删lun还对应有逻辑空间映射表,所述逻辑空间映射表用于记录已映射逻辑块的逻辑地址与重删块的虚拟地址之间的映射关系,所述方法包括:确定待写入第一逻辑块的第一数据,所述第一逻辑块为所述目标重删lun中待写入数据的任一逻辑块;如果所述指纹库中不存在所述第一数据的指纹信息,分别从所述至少两个重删池中为所述第一逻辑块分配对应的目标重删块,所述第一逻辑块在各重删池中对应的目标重删块的虚拟地址相同;分别向各目标重删块写入所述第一数据;在所述逻辑空间映射表中,记录所述第一逻辑块的逻辑地址与所述目标重删块的虚拟地址之间的映射关系;在所述指纹库中,记录所述第一数据的指纹信息与所述目标重删块的虚拟地址之间的对应关系。2.如权利要求1所述的方法,其特征在于,所述方法还包括:如果所述指纹库中存在所述第一数据的指纹信息,获取与所述第一数据的指纹信息对应的目标重删块的虚拟地址;在所述逻辑空间映射表中,记录所述第一逻辑块的逻辑地址与所述目标重删块的虚拟地址之间的映射关系。3.如权利要求1所述的方法,其特征在于,所述至少两个重删池来源于不同raid。4.如权利要求1所述的方法,其特征在于,每一个重删池对应各自的数据有效性标识以及写入结果位图,所述分别向各目标重删块写入所述第一数据之后,所述方法还包括:如果所述各目标重删块中同时存在写入成功的第一目标重删块和写入失败的第二目标重删块,修改所述第二目标重删块所属重删池的数据有效性标识为第一有效值,所述第一有效值用于表示对应重删池中部分数据有效;针对所述第一目标重删块所属重删池对应的写入结果位图,将该写入结果位图中第一目标重删块对应位的值修改为第一结果值,所述第一结果值用于表示本重删池中目标重删块写入成功,其它重删池中对应目标重删块写入失败。5.如权利要求4所述的方法,其特征在于,所述方法还包括:当需要读取第二逻辑块中的第二数据时,查询所述逻辑空间映射表,确定与所述第二逻辑块对应的待读取重删块;如果所述至少两个重删池中存在数据有效性标识为第二有效值的第一重删池,所述第二有效值用于表示重删池中所有数据均有效,则从所述第一重删池读取待读取重删块中的第二数据;如果所述至少两个重删池的数据有效性标识均为所述第一有效值,且所述待读取重删
块在各重删池对应写入结果位图中对应位的值存在第一结果值,则从该值为第一结果值的位所属写入结果位图对应的第二重删池,读取待读取重删块中的第二数据;否则,从任一重删池读取待读取重删块中的第二数据。6.如权利要求4所述的方法,其特征在于,所述方法还包括:针对数据有效性标识为第一有效值的第三重删池,获取第四重删池对应写入结果位图,所述第四重删池为所述至少两个重删池中除当前第三重删池之外的重删池;从所述第四重删池对应写入结果位图中,查找值为所述第一结果值的各目标位;针对每一个目标位,将所述第四重删池中该目标位对应重删块的数据同步到所述第三重删池中对应重删块。7.一种重删数据保护装置,其特征在于,应用于存储设备,所述存储设备包括至少一个重删lun和至少一个raid,所述至少一个重删lun中的目标重删lun对应至少两个重删池,每一个重删池按照预设重删块大小划分为多个重删块,所述目标重删lun按照所述预设重删块大小划分为多个逻辑块,所述重删池由虚拟地址连续的至少一个虚拟地址段组成,每一个虚拟地址段对应raid中的一段物理空间,所述目标重删lun还对应有基于raid创建的指纹库,所述指纹库用于记录数据的指纹信息与存储该数据的重删块的虚拟地址之间的对应关系,所述目标重删lun还对应有逻辑空间映射表,所述逻辑空间映射表用于记录已映射逻辑块的逻辑地址与重删块的虚拟地址之间的映射关系,所述装置包括:确定单元,用于确定待写入第一逻辑块的第一数据,所述第一逻辑块为所述目标重删lun中待写入数据的任一逻辑块;分配单元,用于如果所述指纹库中不存在所述第一数据的指纹信息,分别从所述至少两个重删池中为所述第一逻辑块分配对应的目标重删块,所述第一逻辑块在各重删池中对应的目标重删块的虚拟地址相同;写入单元,用于分别向各目标重删块写入所述第一数据;第一记录单元,用于在所述逻辑空间映射表中,记录所述第一逻辑块的逻辑地址与所述目标重删块的虚拟地址之间的映射关系;第二记录单元,用于在所述指纹库中,记录所述第一数据的指纹信息与所述目标重删块的虚拟地址之间的对应关系。8.如权利要求7所述的装置,其特征在于,每一个重删池对应各自的数据有效性标识以及写入结果位图,所述装置还包括:第一修改单元,用于如果所述各目标重删块中同时存在写入成功的第一目标重删块和写入失败的第二目标重删块,修改所述第二目标重删块所属重删池的数据有效性标识为第一有效值,所述第一有效值用于表示对应重删池中部分数据有效;第二修改单元,用于针对所述第一目标重删块所属重删池对应的写入结果位图,将该写入结果位图中第一目标重删块对应位的值修改为第一结果值,所述第一结果值用于表示本重删池中目标重删块写入成功,其它重删池中对应目标重删块写入失败。9.如权利要求8所述的装置,其特征在于,所述装置还包括:确定单元,用于当需要读取第二逻辑块中的第二数据时,查询所述逻辑空间映射表,确定与所述第二逻辑块对应的待读取重删块;读取单元,用于如果所述至少两个重删池中存在数据有效性标识为第二有效值的第一
重删池,所述第二有效值用于表示重删池中所有数据均有效,则从所述第一重删池读取待读取重删块中的第二数据;所述读取单元,还用于如果所述至少两个重删池的数据有效性标识均为所述第一有效值,且所述待读取重删块在各重删池对应写入结果位图中对应位的值存在第一结果值,则从该值为第一结果值的位所属写入结果位图对应的第二重删池,读取待读取重删块中的第二数据;否则,从任一重删池读取待读取重删块中的第二数据。10.如权利要求8所述的装置,其特征在于,所述装置还包括:获取单元,用于针对数据有效性标识为第一有效值的第三重删池,获取第四重删池对应写入结果位图,所述第四重删池为所述至少两个重删池中除当前第三重删池之外的重删池;查找单元,用于从所述第四重删池对应写入结果位图中,查找值为所述第一结果值的各目标位;同步单元,用于针对每一个目标位,将所述第四重删池中该目标位对应重删块的数据同步到所述第三重删池中对应重删块。
技术总结
本申请提供一种重删数据保护方法及装置,应用于存储设备。本申请实施例中,为同一重删LUN配置至少两个重删池,并在同一重删处理流程中,将数据同时写入该至少两个重删池,即,同步完成数据写入和数据备份,因此,可有效提升数据保护效率,同时,由于基于重删机制备份数据,因此,可兼顾提升存储设备的空间利用率。可兼顾提升存储设备的空间利用率。可兼顾提升存储设备的空间利用率。
技术研发人员:上官应兰
受保护的技术使用者:杭州宏杉科技股份有限公司
技术研发日:2021.03.26
技术公布日:2021/6/29
转载请注明原文地址:https://doc.8miu.com/read-203.html