掌桥专利:专业的专利平台
掌桥专利
首页

重删数据保护方法及装置

文献发布时间:2023-06-19 11:39:06


重删数据保护方法及装置

技术领域

本申请涉及存储技术领域,尤其涉及一种重删数据保护方法及装置。

背景技术

为了提升存储设备的资源利用率,通常采用重删(全称:重复数据删除)机制消除存储设备中的重复数据,以使相同数据仅保存一份。

存储设备中支持重删功能的逻辑单元号(英文:Logical Unit Number,缩写:LUN)称为重删LUN。写入重删LUN的数据同样存在数据保护需求,比如,将重删LUN(记为第一重删LUN)的数据复制到目标LUN,以得到重删LUN的备份数据。

如果该目标LUN同样为支持重删功能的LUN(记为第二重删LUN),则向该第二重删LUN复制(写入)第一重删LUN的数据时,需要执行重删流程。由于重删流程涉及指纹计算、指纹库维护以及重复数据比较等操作,因此,其计算量大、访问路径长,导致数据保护效率较低。

如果目标LUN不为重删LUN,不执行重删流程,则所有数据(包括重复数据)均写入存储设备的存储空间,导致存储空间利用率较低。

可以看出,针对重删LUN的数据保护,目前还没有可同时兼顾保护效率和空间利用率的技术方案。

发明内容

有鉴于此,本申请提出一种重删数据保护方法及装置,用以兼顾数据保护效率和存储设备的空间利用率,同时,可有效降低数据保护对前端业务性能的影响。

为实现上述申请目的,本申请提供了如下技术方案:

第一方面,本申请提供一种重删数据保护方法,应用于存储设备,所述存储设备包括至少一个重删LUN和至少一个磁盘阵列(英文:Redundant Arrays of IndependentDisks,缩写:RAID),所述至少一个重删LUN中的目标重删LUN对应基于RAID创建的重删池,所述重删池按照预设重删块大小划分为多个重删块,所述目标重删LUN按照所述预设重删块大小划分为多个逻辑块,所述目标重删LUN还对应有基于RAID创建的指纹库,所述指纹库用于存储若干指纹记录,所述指纹记录用于记录数据的指纹信息、存储该数据的主重删块的物理地址、存储该数据的备重删块的物理地址之间的对应关系,所述方法包括:

确定待写入第一逻辑块的第一数据,所述第一逻辑块为所述目标重删LUN中待写入数据的任一逻辑块;

如果所述指纹库中不存在所述第一数据的指纹信息,从所述重删池中,为所述第一逻辑块分配第一主重删块;

将所述第一数据写入所述第一主重删块;

在所述指纹库中增加第一指纹记录,所述第一指纹记录的指纹信息为所述第一数据的指纹信息、所述第一指纹记录的主重删块的物理地址为所述第一主重删块的物理地址、所述第一指纹记录的备重删块的物理地址为空;

遍历所述指纹库中备重删块的物理地址为空的第二指纹记录,所述第二指纹记录的主重删块的物理地址为第二主重删块的物理地址;

针对每一个第二指纹记录执行如下处理:

从所述重删池中,为所述第二主重删块分配对应的第二备重删块;

读取所述第二主重删块中的第二数据;

将所述第二数据写入所述第二备重删块;

更新所述第二指纹记录中备重删块的物理地址为所述第二备重删块的物理地址。

可选的,主重删块位于第一RAID,备重删块位于第二RAID,所述第一RAID的读写性能等于或优于所述第二RAID的读写性能。

可选的,当主重删块与备重删块位于同一RAID时,主重删块与备重删块之间的物理地址间隔大于预设的地址间隔阈值。

可选的,所述目标重删LUN还对应有逻辑空间映射表,所述逻辑空间映射表用于记录已映射逻辑块的逻辑地址与重删块的物理地址之间的映射关系,所述方法还包括:

当需要读取第二逻辑块中的第三数据时,从所述逻辑空间映射表中,确定与所述第二逻辑块对应的第一重删块;

从所述第一重删块中读取所述第三数据;

如果从所述第一重删块中读取失败,且所述指纹库中存在第三指纹记录,所述第三指纹记录包括所述第一重删块的物理地址和第二重删块的物理地址,则从所述第二重删块中读取所述第三数据;

如果从所述第二重删块中读取成功,将所述逻辑空间映射表中所述第二逻辑块的逻辑地址与所述第一重删块的物理地址的映射关系,修改为所述第二逻辑块的逻辑地址与所述第二重删块的物理地址的映射关系。

可选的,从所述第二重删块中读取成功之后,所述方法还包括:

将所述第三指纹记录中第一重删块的物理地址更新为空;

所述方法还包括:

遍历所述指纹库中主重删块的物理地址为空的第四指纹记录,所述第四指纹记录的备重删块的物理地址为第三备重删块的物理地址;

针对每一个第四指纹记录执行如下处理:

从所述重删池中,为所述第三备重删块分配对应的第三主重删块;

读取所述第三备重删块中的第四数据;

将所述第四数据写入所述第三主重删块;

更新所述第四指纹记录中主重删块的物理地址为所述第三主重删块的物理地址。

第二方面,本申请提供一种重删数据保护装置,应用于存储设备,所述存储设备包括至少一个重删LUN和至少一个RAID,所述至少一个重删LUN中的目标重删LUN对应基于RAID创建的重删池,所述重删池按照预设重删块大小划分为多个重删块,所述目标重删LUN按照所述预设重删块大小划分为多个逻辑块,所述目标重删LUN还对应有基于RAID创建的指纹库,所述指纹库用于存储若干指纹记录,所述指纹记录用于记录数据的指纹信息、存储该数据的主重删块的物理地址、存储该数据的备重删块的物理地址之间的对应关系,所述装置包括:

数据确定单元,用于确定待写入第一逻辑块的第一数据,所述第一逻辑块为所述目标重删LUN中待写入数据的任一逻辑块;

分配单元,用于如果所述指纹库中不存在所述第一数据的指纹信息,从所述重删池中,为所述第一逻辑块分配第一主重删块;

写入单元,用于将所述第一数据写入所述第一主重删块;

记录增加单元,用于在所述指纹库中增加第一指纹记录,所述第一指纹记录的指纹信息为所述第一数据的指纹信息、所述第一指纹记录的主重删块的物理地址为所述第一主重删块的物理地址、所述第一指纹记录的备重删块的物理地址为空;

遍历单元,用于遍历所述指纹库中备重删块的物理地址为空的第二指纹记录,所述第二指纹记录的主重删块的物理地址为第二主重删块的物理地址;

所述分配单元,还用于从所述重删池中,为所述第二主重删块分配对应的第二备重删块;

读取单元,用于读取所述第二主重删块中的第二数据;

所述写入单元,用于将所述第二数据写入所述第二备重删块;

记录更新单元,用于更新所述第二指纹记录中备重删块的物理地址为所述第二备重删块的物理地址。

可选的,主重删块位于第一RAID,备重删块位于第二RAID,所述第一RAID的读写性能等于或优于所述第二RAID的读写性能。

可选的,当主重删块与备重删块位于同一RAID时,主重删块与备重删块之间的物理地址间隔大于预设的地址间隔阈值。

可选的,所述目标重删LUN还对应有逻辑空间映射表,所述逻辑空间映射表用于记录已映射逻辑块的逻辑地址与重删块的物理地址之间的映射关系,所述装置还包括:

重删块确定单元,用于当需要读取第二逻辑块中的第三数据时,从所述逻辑空间映射表中,确定与所述第二逻辑块对应的第一重删块;

所述读取单元,还用于从所述第一重删块中读取所述第三数据;

所述读取单元,还用于如果从所述第一重删块中读取失败,且所述指纹库中存在第三指纹记录,所述第三指纹记录包括所述第一重删块的物理地址和第二重删块的物理地址,则从所述第二重删块中读取所述第三数据;

修改单元,用于如果从所述第二重删块中读取成功,将所述逻辑空间映射表中所述第二逻辑块的逻辑地址与所述第一重删块的物理地址的映射关系,修改为所述第二逻辑块的逻辑地址与所述第二重删块的物理地址的映射关系。

可选的,所述装置还包括:

所述记录更新单元,用于将所述第三指纹记录中第一重删块的物理地址更新为空;

所述遍历单元,还用于遍历所述指纹库中主重删块的物理地址为空的第四指纹记录,所述第四指纹记录的备重删块的物理地址为第三备重删块的物理地址;

所述分配单元,还用于从所述重删池中,为所述第三备重删块分配对应的第三主重删块;

所述读取单元,还用于读取所述第三备重删块中的第四数据;

所述写入单元,还用于将所述第四数据写入所述第三主重删块;

所述记录更新单元,还用于更新所述第四指纹记录中主重删块的物理地址为所述第三主重删块的物理地址。

由以上描述可以看出,本申请实施例中,通过在同一重删处理流程中执行数据写入和数据备份,可有效提升数据保护效率,同时兼顾存储设备的空间利用率。此外,由于数据写入与数据备份异步执行,因此,可有效降低数据备份(保护)对前端业务性能的影响。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例示出的一种重删数据保护方法流程图;

图2是本申请实施例示出的一种重删数据读取流程;

图3是本申请实施例示出的一种重删数据修复流程;

图4是本申请实施例示出的一种重删数据保护装置的结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。

在本申请实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请实施例。在本申请实施例中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请实施例范围的情况下,协商信息也可以被称为第二信息,类似地,第二信息也可以被称为协商信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

为了使本申请实施例的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本申请实施例执行详细描述:

参见图1,为本申请实施例示出的一种重删数据保护方法的流程图。该流程应用于存储设备。

该存储设备包括至少一个重删LUN和至少一个RAID。该至少一个重删LUN中的目标重删LUN对应基于RAID创建的重删池。

这里,目标重删LUN可以为至少一个重删LUN中的任一重删LUN。之所以称为目标重删LUN,只是为了便于区分而进行的命名,并非用于限定。

重删池按照预设重删块大小(比如,8KB)划分为多个重删块。目标重删LUN按照预设重删块大小划分为多个逻辑块。

目标重删LUN还对应有基于RAID创建的指纹库。该指纹库包括若干指纹记录,每一个指纹记录用于记录数据的指纹信息、存储该数据的主重删块的物理地址、以及存储该数据的备重删块的物理地址之间的对应关系。

可以看出,本申请实施例中,同一数据在重删池中至少存储两份,分别位于主重删块和备重删块中。其中,主重删块用于存储前端业务写入的数据;备重删块用于存储与主重删块中相同的数据,以起到数据备份(保护)作用。

如图1所示,该重删数据保护流程可包括以下步骤:

步骤101,确定待写入第一逻辑块的第一数据,该第一逻辑块为目标重删LUN中待写入数据的任一逻辑块。

用户通过上层应用向存储设备下发针对目标重删LUN的写请求,该写请求包括待写入数据以及待写入数据在目标重删LUN中对应的待写入地址范围。比如,待写入数据大小为64KB,待写入起始地址为256MB,则待写入地址范围为【256MB,256MB+64KB】。

根据该待写入地址范围,可确定该待写入地址范围在目标重删LUN中对应的待写入逻辑块。以逻辑块大小为8KB、待写入地址范围为【256MB,256MB+64KB】为例,该待写入地址范围在目标重删LUN中对应从256MB到256MB+64KB之间的8个待写入逻辑块。

然后,对写请求携带的待写入数据按照逻辑块大小划分,确定待写入各待写入逻辑块的数据,并对待写入各待写入逻辑块的数据分别计算指纹信息。计算指纹的方法可采用重删的通用实现方案,本发明中不再展开阐述。

这里,将待写入逻辑块称为第一逻辑块,待写入该第一逻辑块的数据称为第一数据。可以理解的是,之所以称为第一逻辑块、第一数据只是为了便于描述而进行的命名,并非用于限定。

针对每一个第一逻辑块执行步骤102至步骤104:

步骤102,如果指纹库中不存在第一数据的指纹信息,从重删池中,为该第一逻辑块分配第一主重删块。

指纹库用于记录重删池中已存储数据的指纹信息。当确定指纹库中不存在第一数据的指纹信息时,说明该第一数据为未存储过的新数据,则需要将该新数据写入重删池。

为此,本申请实施例从目标重删LUN对应的重删池中,为该第一数据所属第一逻辑块分配对应的主重删块。这里,将为第一逻辑块分配的主重删块,称为第一主重删块。可以理解的是,之所以称为第一主重删块,只是为了便于区分而进行的命名,并非用于限定。

步骤103,将第一数据写入第一主重删块。

即,将第一数据写入重删池中。

然后,在目标重删LUN对应的逻辑空间映射表(用于记录已映射逻辑块的逻辑地址与重删块的物理地址之间的映射关系)中,增加第一逻辑块的逻辑地址与第一主重删块的物理地址之间的映射关系,以便后续根据该映射关系从第一主重删块读取第一逻辑块对应数据。

步骤104,在指纹库中增加第一指纹记录,该第一指纹记录的指纹信息为第一数据的指纹信息、第一指纹记录的主重删块的物理地址为第一主重删块的物理地址、第一指纹记录的备重删块的物理地址为空。

在通过步骤103写入第一数据后,需要记录该第一数据的指纹信息与存储该第一数据的第一主重删块的物理地址的对应关系。

为此,本申请实施例在指纹库中新增一条指纹记录,记为第一指纹记录。这里,第一指纹记录只是为便于区分而进行的命名,并非用于限定。

该第一指纹记录的指纹信息为第一数据的指纹信息、第一指纹记录的主重删块的物理地址为第一主重删块的物理地址、第一指纹记录的备重删块的物理地址为空。

这里,可以理解的是,由于当前尚未对第一数据执行备份操作,因此,第一指纹记录的备重删块的物理地址为空。

至此,完成基于前端业务的数据写入流程。

步骤105,遍历指纹库中备重删块的物理地址为空的第二指纹记录。

这里,将遍历指纹库时查找到的备重删块的物理地址为空的指纹记录,称为第二指纹记录。可以理解的是,之所以称为第二指纹记录,只是为便于区分而进行的命名,并非用于限定。

该第二指纹记录中主重删块的物理地址为第二主重删块的物理地址。这里,第二主重删块只是为了便于区分而进行的命名,并非用于限定。

针对每一个第二指纹记录执行步骤106至步骤109:

步骤106,从重删池中,为第二主重删块分配对应的第二备重删块。

由于第二指纹记录中备重删块的物理地址为空,说明尚未对第二主重删块中的数据进行备份,或者,原备重删块可能损坏,因此,本步骤为第二主重删块分配用于备份的第二备重删块。这里,第二备重删块只是为了便于区分而进行的命名,并非用于限定。

步骤107,读取第二主重删块中的第二数据。

这里,将第二主重删块中存储的数据,称为第二数据。可以理解的是,之所以称为第二数据,只是为便于区分而进行的命名,并非用于限定。

步骤108,将第二数据写入第二备重删块。

即,完成对第二数据的备份。

步骤109,更新第二指纹记录中备重删块的物理地址为第二备重删块的物理地址。

即,建立第二主重删块和第二备重删块的备份关系。

至此,完成图1所示流程。

通过图1所示流程可以看出,本申请实施例中,通过在同一重删处理流程中执行数据写入和数据备份,可有效提升数据保护效率,同时兼顾存储设备的空间利用率。此外,由于数据写入与数据备份异步执行,因此,可有效降低数据备份(保护)对前端业务性能的影响。

此外,需要补充说明的是,为了进一步保证数据的安全性,可对主重删块和备重删块进行隔离。

作为一个实施例,主重删块和备重删块可来源于不同RAID。

这里,将主重删块所属RAID,称为第一RAID;备重删块所属RAID,称为第二RAID。可以理解的是,之所以称为第一RAID、第二RAID,只是为了便于区分而进行的命名,并非用于限定。

其中,第一RAID的读写性能可优于第二RAID的读写性能。即,用于前端业务的RAID的读写性能优于用于备份的RAID的读写性能。

比如,第一RAID由固态硬盘(英文:Solid State Disk,缩写:SSD)组成;第二RAID由硬盘驱动器(英文:Hard Disk Drive,缩写:HDD)组成。

这样可以在确保安全性的同时,降低设备成本。

当然,第一RAID的读写性能还可等于第二RAID的读写性能。

作为另一个实施例,如果主重删块与备重删块位于同一RAID,控制主重删块与备重删块之间的物理地址间隔大于预设的地址间隔阈值。

也就是说,即使主重删块和备重删块不得不位于同一RAID,也要将主重删块和备重删块在物理位置上离得远一些,以避免磁盘连续扇区故障导致主备数据均无法访问。

参见图2,为本申请实施例示出的一种重删数据读取流程。如图2所示,该流程可包括以下步骤:

步骤201,当需要读取第二逻辑块中的第三数据时,从逻辑空间映射表中,确定与第二逻辑块对应的第一重删块。

如前所述,逻辑空间映射表用于记录已映射逻辑块的逻辑地址与重删块的物理地址之间的映射关系,因此,通过查询逻辑空间映射表,可确定所要读取数据在重删池中的存储位置(第一重删块)。

这里,第二逻辑块、第三数据、第一重删块均只是为了便于区分而进行的命名,并非用于限定。

步骤202,从第一重删块中读取第三数据。

如果读取成功,结束读取流程。如果读取失败,转步骤203。

步骤203,如果从第一重删块中读取失败,且指纹库中存在第三指纹记录,该第三指纹记录包括第一重删块的物理地址和第二重删块的物理地址,则从第二重删块中读取第三数据。

由于指纹记录中记录有存储同一数据的所有重删块(主重删块和备重删块)的物理地址,因此,当从第一重删块无法读取到第三数据时,可通过查询指纹库中的指纹记录,找到与第一重删块存储有相同数据的第二重删块的物理地址,从该第二重删块中读取第三数据。这里,第二重删块只是为了便于区分而进行的命名,并非用于限定。

此外,本申请实施例将包括第一重删块的物理地址和第二重删块的物理地址的指纹记录,称为第三指纹记录。可以理解的是,之所以称为第三指纹记录,只是为了便于区分而进行的命名,并非用于限定。

步骤204,如果从第二重删块中读取成功,将逻辑空间映射表中第二逻辑块的逻辑地址与第一重删块的物理地址的映射关系,修改为第二逻辑块的逻辑地址与第二重删块的物理地址的映射关系。

由于第一重删块已经发生异常,通过逻辑空间映射表查找到第一重删块后,无法直接从该第一重删块中读取到数据,这在一定程度上,影响数据读取效率。

为此,本申请实施例在成功读取第二重删块中的数据后,将逻辑空间映射表中第二逻辑块的逻辑地址与第一重删块的物理地址的映射关系,修改为第二逻辑块的逻辑地址与第二重删块的物理地址的映射关系。

这样,当再次读取第二逻辑块中的第三数据时,可直接从逻辑空间映射表(无需查询指纹库)中,查找到存储有第三数据且未发生异常的第二重删块,从该第二重删块中读取第三数据,从而提升数据读取效率。

至此,完成图2所示流程。

通过图2所示流程实现对重删数据的读取。

此外,需要补充说明的是,在确定第一重删块读取失败、第二重删块读取成功后,可将第三指纹记录中第一重删块的物理地址更新为空,以便后续异步修复已损坏重删块中的数据,这里暂不赘述。

参见图3,为本申请实施例示出的一种重删数据修复流程。如图3所示,该流程可包括如下步骤:

步骤301,遍历指纹库中主重删块的物理地址为空的第四指纹记录。

这里,将指纹库中主重删块的物理地址为空的指纹记录,称为第四指纹记录。可以理解的是,之所以称为第四指纹记录,只是为便于区分而进行的命名,并非用于限定。

该第四指纹记录中备重删块的物理地址为第三备重删块的物理地址。这里,第三备重删块只是为便于区分而进行的命名,并非用于限定。

针对每一个第四指纹记录执行如下处理:

步骤302,从重删池中,为第三备重删块分配对应的第三主重删块。

由于第四指纹记录中主重删块的物理地址为空,说明原主重删块可能损坏,因此,为该第三备重删块分配新的主重删块,称为第三主重删块。这里,第三备主删块只是为便于区分而进行的命名,并非用于限定。

步骤303,读取第三备重删块中的第四数据。

这里,将第三备重删块中存储的数据,称为第四数据。可以理解的是,之所以称为第四数据,只是为便于区分而进行的命名,并非用于限定。

步骤304,将第四数据写入第三主重删块。

即,恢复主重删块的数据。

步骤305,更新第四指纹记录中主重删块的物理地址为第三主重删块的物理地址。

即,建立第三主重删块和第三备重删块的备份关系,恢复对第四数据的备份。

至此,完成图3所示流程。

通过图3所示流程可以看出,本申请实施例利用异步修复方式修复主重删块中的数据,不占用前端业务处理时间,因此,可有效降低对前端业务性能的影响。

此外,需要补充说明的是,如果主重删块的读写性能优于备重删块的读写性能,可在主重删块修复后,将逻辑空间映射表中逻辑块与备重删块的映射关系修改为逻辑块与修复后的主重删块的映射关系,以便后续从主重删块中读取数据,提升数据访问性能。

以上对本申请实施例提供的方法进行了描述,下面对本申请实施例提供的装置进行描述:

参见图4,为本申请实施例提供的装置的结构示意图。该装置应用于存储设备,所述存储设备包括至少一个重删LUN和至少一个RAID,所述至少一个重删LUN中的目标重删LUN对应基于RAID创建的重删池,所述重删池按照预设重删块大小划分为多个重删块,所述目标重删LUN按照所述预设重删块大小划分为多个逻辑块,所述目标重删LUN还对应有基于RAID创建的指纹库,所述指纹库用于存储若干指纹记录,所述指纹记录用于记录数据的指纹信息、存储该数据的主重删块的物理地址、存储该数据的备重删块的物理地址之间的对应关系,所述装置包括:数据确定单元401、分配单元402、写入单元403、记录增加单元404、遍历单元405、读取单元406以及记录更新单元407,其中:

数据确定单元401,用于确定待写入第一逻辑块的第一数据,所述第一逻辑块为所述目标重删LUN中待写入数据的任一逻辑块;

分配单元402,用于如果所述指纹库中不存在所述第一数据的指纹信息,从所述重删池中,为所述第一逻辑块分配第一主重删块;

写入单元403,用于将所述第一数据写入所述第一主重删块;

记录增加单元404,用于在所述指纹库中增加第一指纹记录,所述第一指纹记录的指纹信息为所述第一数据的指纹信息、所述第一指纹记录的主重删块的物理地址为所述第一主重删块的物理地址、所述第一指纹记录的备重删块的物理地址为空;

遍历单元405,用于遍历所述指纹库中备重删块的物理地址为空的第二指纹记录,所述第二指纹记录的主重删块的物理地址为第二主重删块的物理地址;

所述分配单元402,还用于从所述重删池中,为所述第二主重删块分配对应的第二备重删块;

读取单元406,用于读取所述第二主重删块中的第二数据;

所述写入单元403,用于将所述第二数据写入所述第二备重删块;

记录更新单元407,用于更新所述第二指纹记录中备重删块的物理地址为所述第二备重删块的物理地址。

作为一个实施例,主重删块位于第一RAID,备重删块位于第二RAID,所述第一RAID的读写性能等于或优于所述第二RAID的读写性能。

作为一个实施例,当主重删块与备重删块位于同一RAID时,主重删块与备重删块之间的物理地址间隔大于预设的地址间隔阈值。

作为一个实施例,所述目标重删LUN还对应有逻辑空间映射表,所述逻辑空间映射表用于记录已映射逻辑块的逻辑地址与重删块的物理地址之间的映射关系,所述装置还包括:

重删块确定单元,用于当需要读取第二逻辑块中的第三数据时,从所述逻辑空间映射表中,确定与所述第二逻辑块对应的第一重删块;

所述读取单元406,还用于从所述第一重删块中读取所述第三数据;

所述读取单元406,还用于如果从所述第一重删块中读取失败,且所述指纹库中存在第三指纹记录,所述第三指纹记录包括所述第一重删块的物理地址和第二重删块的物理地址,则从所述第二重删块中读取所述第三数据;

修改单元,用于如果从所述第二重删块中读取成功,将所述逻辑空间映射表中所述第二逻辑块的逻辑地址与所述第一重删块的物理地址的映射关系,修改为所述第二逻辑块的逻辑地址与所述第二重删块的物理地址的映射关系。

作为一个实施例,所述装置还包括:

所述记录更新单元407,用于将所述第三指纹记录中第一重删块的物理地址更新为空;

所述遍历单元405,还用于遍历所述指纹库中主重删块的物理地址为空的第四指纹记录,所述第四指纹记录的备重删块的物理地址为第三备重删块的物理地址;

所述分配单元402,还用于从所述重删池中,为所述第三备重删块分配对应的第三主重删块;

所述读取单元406,还用于读取所述第三备重删块中的第四数据;

所述写入单元403,还用于将所述第四数据写入所述第三主重删块;

所述记录更新单元407,还用于更新所述第四指纹记录中主重删块的物理地址为所述第三主重删块的物理地址。

由以上描述可以看出,本申请实施例中,通过在同一重删处理流程中执行数据写入和数据备份,可有效提升数据保护效率,同时兼顾存储设备的空间利用率。此外,由于数据写入与数据备份异步执行,因此,可有效降低数据备份(保护)对前端业务性能的影响。

以上所述仅为本申请实施例的较佳实施例而已,并不用以限制本申请,凡在本申请实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

相关技术
  • 重删数据保护方法及装置
  • 重删数据保护方法及装置
技术分类

06120113008564