CN110187834B - 重删副本的数据处理方法、装置、电子设备 - Google Patents
重删副本的数据处理方法、装置、电子设备 Download PDFInfo
- Publication number
- CN110187834B CN110187834B CN201910439175.5A CN201910439175A CN110187834B CN 110187834 B CN110187834 B CN 110187834B CN 201910439175 A CN201910439175 A CN 201910439175A CN 110187834 B CN110187834 B CN 110187834B
- Authority
- CN
- China
- Prior art keywords
- data
- copy
- duplicate
- fingerprint
- storage system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种重删副本的数据处理方法、装置、电子设备及机器可读存储介质。在本申请中,接收应用端对所述存储系统发起的针对所述存储系统管理的重删副本的数据写请求;基于所述数据写请求,确定与所述数据写请求对应的目标写重删副本;基于所述目标写重删副本以及所述数据写请求,更新所述目标写重删副本的数据及对应重删副本指纹。基于补HASH机制创建重删副本,以及对补HASH机制重删副本执行数据处理,避免了针对同一重删副本的多次写入数据时,需要新建重删副本,从而提高了已有重删副本利用率,节省了存储空间。
Description
技术领域
本申请涉及存储技术领域,尤其涉及重删副本的数据处理方法、装置、电子设备及机器可读存储介质。
背景技术
重删技术,全称重复数据删除技术,是一种在存储系统中自动搜索重复数据,将相同数据只保留唯一的一个副本,并使用指向单一副本的指针替换掉其他重复副本,以达到消除冗余数据、降低存储容量需求的存储技术。
随着SSD(Solid State Drive,固态磁盘)技术的出现,全闪存存储系统全面进入主存储领域,对重删技术需求变得愈加强烈;同时,伴随硬件技术的高速发展,比如:CPU计算速度越来越快,支持的内存规模越来越大,为主存储中重删技术实现提供了良好条件。由此,主流的存储厂商纷纷改进重删技术方案,推出在主存储上应用重删技术功能。
HASH,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。在重删技术中,常常使用HASH算法来计算重删副本的数据摘要,而该数据摘要也被简称为“重删指纹”,重删指纹用于唯一指示一个重删副本(重删副本对应数据块中数据)。
发明内容
本申请提供一种重删副本的数据处理方法,所述方法应用于存储系统,所述存储系统管理有若干重删副本,所述重删副本为所述存储系统基于补HASH机制创建的重删副本,所述重删副本的数据包括净荷数据、基于补HASH机制创建的若干个校验数据;其中,所述校验数据为所述重删副本的数据中的计划待补零数据的HASH替代值,所述方法包括:
接收应用端对所述存储系统发起的针对所述存储系统管理的重删副本的数据写请求;
基于所述数据写请求,确定与所述数据写请求对应的目标写重删副本;
基于所述目标写重删副本以及所述数据写请求,更新所述目标写重删副本的数据及对应重删副本指纹。
可选的,所述基于所述数据写请求,确定与所述数据写请求对应的目标写重删副本,包括:
响应于所述数据写请求,检查所述数据写请求的LBA在所述存储系统的LUN逻辑映射表中是否已存在对应映射关系;
若所述数据写请求的LBA在所述存储系统的LUN逻辑映射表中存在对应映射关系,则基于所述LUN逻辑映射表,获得所述数据写请求对应的第一重删副本指纹;
以所述第一重删副本指纹作为查找索引,在所述存储系统管理的重删副本的重删指纹映射库中查询,获取与所述第一重删副本指纹对应的所述目标写重删副本的PBA。
可选的,所述基于所述目标写重删副本以及所述数据写请求,更新所述目标写重删副本的数据及对应重删副本指纹,包括:
基于所述目标写重删副本的PBA,从所述目标写重删副本对应存储空间中,获取所述目标写重删副本的数据;
基于所述目标写重删副本的数据以及所述数据写请求的数据,计算获得所述目标写重删副本进行数据更新后对应的第二重删副本指纹,并更新所述目标写重删副本的数据;
在所述重删指纹映射库中,将所述第一重删副本指纹更新为所述第二重删副本指纹。
可选的,还包括:
若所述数据写请求的LBA在所述存储系统的LUN逻辑映射表中不存在对应映射关系,则将所述数据写请求的数据,以所述目标写重删副本的容量作为对齐执行补零后,获得第一数据;
对所述第一数据,计算并获得对应HASH指纹;
在所述重删指纹映射库中查找,若存在与所述HASH指纹相同的第三重删副本指纹,则基于所述第三重删副本指纹,恢复出对应重删副本中的第二数据;
若所述第一数据与所述第二数据相同,则将所述第一数据写入到所述第三重删副本指纹对应的重删副本,并在所述LUN逻辑映射表中,新增所述数据写请求的LBA对应映射关系R,以使R与第三重删副本指纹相对应。
可选的,若接收到所述应用端对所述存储系统发起的针对所述存储系统管理的重删副本的数据读请求,还包括:
响应于所述数据读请求,检查所述数据读请求的LBA是否在所述存储系统的LUN逻辑映射表中已存在对应映射关系;若存在,则基于所述数据读请求,确定与所述数据读请求对应的目标读重删副本。
可选的,还包括:
从所述目标读重删副本的存储空间中读出对应的若干个校验数据后并将其恢复为全零数据;
将所述全零数据与所述目标读重删副本的净荷数据,作为所述目标读重删副本的数据返给所述应用端。
可选的,所述存储系统为全闪存存储系统。
本申请还提供一种重删副本的数据处理装置,所述装置应用于存储系统,所述存储系统管理有若干重删副本,所述重删副本为所述存储系统基于补HASH机制创建的重删副本,所述重删副本的数据包括净荷数据、基于补HASH机制创建的若干个校验数据;其中,所述校验数据为所述重删副本的数据中的计划待补零数据的HASH替代值,所述装置包括:
接收模块,接收应用端对所述存储系统发起的针对所述存储系统管理的重删副本的数据写请求;
获取模块,基于所述数据写请求,确定与所述数据写请求对应的目标写重删副本;
处理模块,基于所述目标写重删副本以及所述数据写请求,更新所述目标写重删副本的数据及对应重删副本指纹。
可选的,所述获取模块进一步:
响应于所述数据写请求,检查所述数据写请求的LBA在所述存储系统的LUN逻辑映射表中是否已存在对应映射关系;
若所述数据写请求的LBA在所述存储系统的LUN逻辑映射表中存在对应映射关系,则基于所述LUN逻辑映射表,获得所述数据写请求对应的第一重删副本指纹;
以所述第一重删副本指纹作为查找索引,在所述存储系统管理的重删副本的重删指纹映射库中查询,获取与所述第一重删副本指纹对应的所述目标写重删副本的PBA。
可选的,所述处理模块进一步:
基于所述目标写重删副本的PBA,从所述目标写重删副本对应存储空间中,获取所述目标写重删副本的数据;
基于所述目标写重删副本的数据以及所述数据写请求的数据,计算获得所述目标写重删副本进行数据更新后对应的第二重删副本指纹,并更新所述目标写重删副本的数据;
在所述重删指纹映射库中,将所述第一重删副本指纹更新为所述第二重删副本指纹。
可选的,所述处理模块进一步:
若所述数据写请求的LBA在所述存储系统的LUN逻辑映射表中不存在对应映射关系,则将所述数据写请求的数据,以所述目标写重删副本的容量作为对齐执行补零后,获得第一数据;
对所述第一数据,计算并获得对应HASH指纹;
在所述重删指纹映射库中查找,若存在与所述HASH指纹相同的第三重删副本指纹,则基于所述第三重删副本指纹,恢复出对应重删副本中的第二数据;
若所述第一数据与所述第二数据相同,则将所述第一数据写入到所述第三重删副本指纹对应的重删副本,并在所述LUN逻辑映射表中,新增所述数据写请求的LBA对应映射关系R,以使R与第三重删副本指纹相对应。
可选的,若接收到所述应用端对所述存储系统发起的针对所述存储系统管理的重删副本的数据读请求,还包括:
所述获取模块进一步,响应于所述数据读请求,检查所述数据读请求的LBA是否在所述存储系统的LUN逻辑映射表中已存在对应映射关系;若存在,则基于所述数据读请求,确定与所述数据读请求对应的目标读重删副本;
所述处理模块进一步,从所述目标读重删副本的存储空间中读出对应的若干个校验数据后并将其恢复为全零数据;
所述处理模块进一步,将所述全零数据与所述目标读重删副本的净荷数据,作为所述目标读重删副本的数据返给所述应用端。
可选的,所述存储系统为全闪存存储系统。
本申请还提供一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行上述的方法。
本申请还提供一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现上述方法。
通过以上实施例,基于补HASH机制创建重删副本,以及对补HASH机制重删副本执行数据处理,避免了针对同一重删副本的多次写入数据时,需要新建重删副本,从而提高了已有重删副本利用率,节省了存储空间。
附图说明
图1是一示例性实施例提供的一种T1时刻存储系统中的重删副本的数据分布图;
图2是一示例性实施例提供的一种T2时刻存储系统中的重删副本的数据分布图;
图3是一示例性实施例提供的一种重删副本的数据处理方法的流程图;
图4是一示例性实施例提供的一种补HASH机制创建的重删副本;
图5是一示例性实施例提供的一种补HASH机制数据更新后的重删副本;
图6是一示例性实施例提供的另一种补HASH机制数据更新后的重删副本;
图7是一示例性实施例提供的一种电子设备的硬件结构图;
图8是一示例性实施例提供的一种重删副本的数据处理装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了使本技术领域的人员更好地理解本申请实施例中的技术方案,下面先对本申请实施例涉及的重删副本的数据处理的相关技术,进行简要说明。
重删技术在实现时有多种实现技术方案;其中,目前比较流行的技术方案是基于散列(HASH)的技术方案,就是存储系统内部建立一个HASH索引,将写入的内容划分成定长(也有不定长的方式)的数据块,计算每个数据块内容的HASH值,通过索引匹配,保留新增内容的数据块,删除重复写入的数据块。
而基于散列的重删技术方案存在两个主要缺点:首先,由于需要大量的HASH计算,所以增加存储系统的CPU消耗;其次,由于数据块映射关系复杂,所以需要增加大量的映射元数据。由于以上缺点,长久以来,重删技术主要应用在备份存储领域,而主存储领域很少有部署重删技术应用的情况。
在一些场景下,当一个重删副本在未发生重复引用的情况时,若对该重删副本中的数据发生多次小块数据写入,则现有技术实现会创建一个新重删副本,由该新重删副本保存新写入的数据。
例如:请参见图1,图1是本申请一实施例提供的一种T1时刻存储系统中的重删副本的数据分布图。如图1所示,在T1时刻,存储系统中有重删副本P1;其中,P1中的数据被划分为16个数据块(对应图1中的16个小方格)保存;在左上角小方格中对应数据块中存有数据D1,其它小方格中对应数据块中存有全零数据。在T2时刻(T2晚于T1),当针对重删副本P1内D1右侧位置对应的第二个数据块(对应图2中的存在斜线的数据块)的计划首次写入数据D2,则现有技术实现会创建一个新重删副本P2,由P2保存新写入的数据;在T2时刻,存储系统中的重删副本的数据分布图请参见图2,图2是本申请一实施例提供的一种T2时刻存储系统中的重删副本的数据分布图。
由此,基于上述现有实现可见,如果多次写入的数据范围在一个重删副本范围内,由于写入数据的变化导致对应HASH指纹不同,致使存储系统需要不断申请新的重删副本来存放新旧数据合并后的数据。如果旧的重删副本(比如:如图2中的P1)并无重复引用,则导致存储空间以及性能浪费。
而本申请旨在提出一种,基于补HASH机制创建重删副本,以及对补HASH机制重删副本执行数据处理的技术方案。
在实现时,存储系统管理有若干重删副本,所述重删副本为所述存储系统基于补HASH机制创建的重删副本,所述重删副本的数据包括净荷数据、基于补HASH机制创建的若干个校验数据;其中,所述校验数据为所述重删副本的数据中的计划待补零数据的HASH替代值。
进一步地,在存储系统已创建基于补HASH机制创建的重删副本后,当接收应用端对所述存储系统发起的针对所述存储系统管理的重删副本的数据写请求;基于所述数据写请求,确定与所述数据写请求对应的目标写重删副本;基于所述目标写重删副本以及所述数据写请求,更新所述目标写重删副本的数据及对应重删副本指纹。
在以上方案中,基于补HASH机制创建重删副本,以及对补HASH机制重删副本执行数据处理,避免了针对同一重删副本的多次写入数据时,需要新建重删副本,从而提高了已有重删副本利用率,节省了存储空间。
下面通过具体实施例并结合具体的应用场景对本申请进行描述。
请参考图3,图3是本申请一实施例提供的一种重删副本的数据处理方法的流程图,所述方法应用于存储系统,所述存储系统管理有若干重删副本,所述重删副本为所述存储系统基于补HASH机制创建的重删副本,所述重删副本的数据包括净荷数据、基于补HASH机制创建的若干个校验数据;其中,所述校验数据为所述重删副本的数据中的计划待补零数据的HASH替代值,上述方法执行以下步骤:
步骤302、接收应用端对所述存储系统发起的针对所述存储系统管理的重删副本的数据写请求。
步骤304、基于所述数据写请求,确定与所述数据写请求对应的目标写重删副本。
步骤306、基于所述目标写重删副本以及所述数据写请求,更新所述目标写重删副本的数据及对应重删副本指纹。
在本说明书中,上述存储系统,包括管理任何存储介质或存储对象的存储设备或存储设备集群。
在示出的一种的实施方式中,上述存储系统为全闪存存储系统。例如:上述存储系统为管理固态硬盘的存储系统。
当然,除了为上述全闪存存储系统外,上述存储系统也可以是管理SAS(SerialAttached SCSI)硬盘的存储设备。
需要说明的是,上述存储系统可以是块存储系统,也可以是文件存储系统,还可以是对象存储系统,上述存储系统的管理方式在本说明书中不作具体限定。
在本说明书中,上述应用端,包括可以针对上述存储系统管理的若干重删副本发送数据写请求的任何应用程序;其中,该应用程序的类型在本申请中不作具体限定。
以下通过具体的实施例,并结合“重删副本创建”、“重删副本写处理”、“重删副本读处理”,对本申请的涉及的技术方案进行详细描述:
1)重删副本创建
为了方便理解,先介绍下现有现有重删技术中的重删副本创建原理。在现有重删技术中的重删副本是基于补零机制创建的,也即,当计划写入重删副本的数据小于该重删副本的容量(重删副本通常为定长数据块)时,通常会采用补零的方式,将该重删副本对应的从未写过的LBA(Logic Block Address,逻辑块地址)范围对应的数据默认已写入全零数据,以凑齐该重删副本的定长数据块大小(对应该重删副本的容量),再进行HASH计算。这里隐含一个逻辑,就是:如果应用程序从该重删副本从未写过的LBA数据段读取数据时,则存储系统为该应用程序返回数据为全零。
例如:请参见图1所示,假定图1所示的重删副本P1的总容量为8KB(千字节),则对应图1所示的每个小方格代表512字节空间。依据现有重删技术中的实现,当创建重删副本P1时,当对应只有512字节的已写入数据(对应图1的D1)时,则需要对512字节至8KB字节(对应图1除D1以外的其它15个小方格)对应的从未写过数据的默认执行补零,从而完成基于补零机制的重删副本P1的创建,也即重删副本P1的512字节至8KB字节对应数据为全零数据。
而在本说明书中,上述重删副本,是指上述存储系统基于补HASH机制创建的重删副本。
例如:请参见图4,图4是本申请一实施例提供的一种补HASH机制创建的重删副本,假定图4所示的重删副本P1的总容量为8KB(千字节),则对应图4所示的每个小方格代表512字节空间。上述补HASH机制是指,当创建重删副本P1时,当对应只有512字节的已写入数据(对应图4的D1,也即重删副本P1的净荷数据为D1)时,则需要对512字节至8KB字节(对应图4除D1以外的其它15个小方格)对应的从未写过数据的执行补零后获得数据M,以数据M作为预设HASH算法的输入,从而获得该HASH算法的HASH计算结果X,通常该HASH计算结果X占用16字节,为了填满512字节(对应图4所示的一个小方格),需要32(根据512/16=32计算获得)个X拼接在一起(后续简称“32X”),上述存储系统将32X作为重删副本P1的对应512字节至8KB字节的填充数据,从而完成基于补HASH机制的重删副本P1的创建,也即重删副本P1的512字节至8KB字节对应数据为32X。
需要说明的是,基于上述补HASH机制的重删副本相对于上述现有基于补零机制的重删副本,主要区别在将原本如图1所示全零数据(对应图1),使用该全零数据的HASH替代值(如图4所示的32X)进行替换。
在本说明书中,上述重删副本的数据包括净荷数据、基于补HASH机制创建的若干个校验数据,上述校验数据为所述重删副本的数据中的计划待补零数据的HASH替代值。
基于以上述例子继续举例,请参见图4所示的补HASH机制创建的重删副本P1,上述重删副本P1的净荷数据例如为图4所示的D1,重删副本P1除了包含D1外,还包括基于补HASH机制创建的若干个校验数据(例如对应图4所示若干32X),其中,32X为基于上述补HASH机制计算获得,是重删副本P1的数据中的计划待补零数据的HASH替代值,具体计算过程在以上“请参见图4所示的补HASH机制创建的重删副本”部分中已详细描述,这里不再赘述。
在本说明书中,上述存储系统管理有若干重删副本;其中,上述重删副本为上述存储系统基于补HASH机制创建的重删副本。
2)重删副本写处理
在本说明书中,在上述存储系统创建上述重删副本后,上述应用端对上述存储系统发起的针对上述存储系统管理的重删副本的数据写请求。
基于以上述例子继续举例,上述应用端针对上述存储系统管理的例如基于图4所示的重删副本P1的LBA范围为[1~2KB](包括1KB和2KB边界)对应存储空间(对应图4所示的灰色斜线的两个小方格),计划写入512字节大小的数据D2以及512字节大小的数据D3。
在本说明书中,上述存储系统接收上述应用端对上述存储系统发起的针对上述存储系统管理的重删副本的数据写请求。
基于以上述例子继续举例,上述存储系统接收上述应用端针对上述存储系统管理的例如基于图4所示的重删副本P1的LBA范围为[1~2KB]对应存储空间的数据写请求。
需要说明的是,上述数据写请求可以是一个或多个,上述数据写请求对应上述存储系统管理的上述重删副本可以是一个或多个,在本申请中不作具体限定。
在本说明书中,在接收到上述数据写请求后,上述存储系统基于上述数据写请求,确定与上述数据写请求对应的目标写重删副本;
其中,上述目标写重删副本,是指与上述数据写请求对应的上述重删副本(基于补HASH机制创建的重删副本)。
基于以上述例子继续举例,上述存储系统接收上述应用端针对上述存储系统管理的例如基于图4所示的重删副本P1的LBA范围为[1~2KB]对应存储空间的数据写请求,则上述存储系统与该数据写请求对应的目标写重删副本为如图4所示的重删副本P1。
在本说明书中,上述LUN逻辑映射表是指,用于指示一个LUN(Logical UnitNumber,逻辑单元号)卷中的数据对应的由逻辑地址空间到物理地址空间的映射关系表。
为了方便理解,先介绍下相关LUN逻辑映射表相关概念。LUN卷,也即存储逻辑卷,是呈现给上述应用端一定容量的可访问逻辑空间,LUN卷是存储领域基础的概念,这里不再赘述。由于上述存储系统将其管理的物理存储空间通过LUN卷方式呈献给上述应用端,所以,上述应用端无需知晓该物理存储空间的真实物理地址;也即上述应用端的上述数据写请求中所包括的数据写地址是该数据的逻辑地址(后续简称“LBA”),上述存储系统需要根据该LBA,通过查询由上述存储系统维护的LUN逻辑映射表,从而进一步获取该LBA对应的物理地址(后续简称“PBA”)。
需要说明的是,通过LUN逻辑映射表建立的该LBA以及对应的PBA映射关系,可以有直接映射或间接映射方式,在本说明中不作具体限定,为了方便说明和理解,后续在本说明书中,以上述LUN逻辑映射表为间接映射方式进行说明或举例。
基于以上述例子继续举例,上述LUN逻辑映射表例如为表1所示。
表1
如表1所示,上述目标写重删副本例如为如图4所示的重删副本P1,重删副本P1在上述LUN逻辑映射表中的对应LBA范围为[0KB-8KB],重删副本P1的重删副本指纹为X。需要说明的是,该重删副本指纹X与图4中所示的小方格中的32X的X是相同的。
在示出的一种实施方式中,上述存储系统响应于上述数据写请求,检查上述数据写请求的LBA在上述存储系统的LUN逻辑映射表中是否已存在对应映射关系。
基于以上述例子继续举例,上述存储系统响应于上述应用端针对上述存储系统管理的例如基于图4所示的重删副本P1的LBA范围为[1~2KB]对应存储空间的数据写请求,检查该数据写请求的LBA范围为[1~2KB],上述存储系统在如表1所示的上述LUN逻辑映射表中检查是否已存在对应映射关系。
在本说明书中,进一步地,若上述数据写请求的LBA在上述存储系统的LUN逻辑映射表中存在对应映射关系,则基于上述LUN逻辑映射表,获得上述数据写请求对应的第一重删副本指纹;
基于以上述例子继续举例,上述数据写请求的LBA范围为[1~2KB],在如表1所示的[0~8KB]LBA范围内,则上述数据写请求的LBA在上述存储系统的LUN逻辑映射表中存在对应映射关系,上述存储系统在如表1所示的上述LUN逻辑映射表中,获得上述数据写请求对应的第一重删副本指纹,上述第一重删副本指纹为X。
在本说明书中,上述重删指纹映射库是指,用来保存上述存储系统所管理的若干上述重删副本对应的所有指纹信息,并建立指纹到物理地址PBA的映射关系表(也可以叫做HASH到PBA的映射)。
基于以上述例子继续举例,上述重删指纹映射库例如为表2所示。
表2
如表2所示,上述目标写重删副本例如为如图4所示的重删副本P1,上述第一重删副本指纹例如为表1的X,在上述重删指纹映射库中X对应的PBA为PBA1。
在本说明书中,进一步地,在基于上述LUN逻辑映射表,获得上述数据写请求对应的上述第一重删副本指纹后,上述存储系统以上述第一重删副本指纹作为查找索引,在上述存储系统管理的重删副本的重删指纹映射库中查询,获取与上述第一重删副本指纹对应的上述目标写重删副本的PBA;
基于以上述例子继续举例,上述存储系统以X(上述第一重删副本指纹的示例值)作为查找索引,在如表2所示的重删指纹映射库中查询,获取与上述第一重删副本指纹对应的上述目标写重删副本例如为图4的P1的PBA,也即PBA1。
在本说明书中,在上述存储系统获取与上述第一重删副本指纹对应的上述目标写重删副本的PBA后,上述存储系统从而完成了确定与上述数据写请求对应的上述目标写重删副本的过程,由此可以进一步,基于上述目标写重删副本以及上述数据写请求,更新上述目标写重删副本的数据及对应重删副本指纹,从而完成将上述数据写请求中的计划写入数据写入到上述目标写重删副本中。
在示出的一种实施方式中,上述存储系统基于上述目标写重删副本的PBA,从上述目标写重删副本对应存储空间中,获取上述目标写重删副本的数据。
基于以上述例子继续举例,在获取目标写重删副本(例如为P1)的PBA(对应为PBA1)后,上述存储系统基于PBA1,从该目标写重删副本P1对应存储空间中,获取该目标写重删副本P1的数据;其中,该数据包括D1(对应图4)、以及15个512字节的全零数据(对应由图4中15个“32X”的上述若干校验数据恢复出来,具体恢复过程,请参见后续“重删副本读处理”中详细说明)。
在本说明书中,进一步地,在获取上述目标写重删副本的数据后,上述存储系统基于上述目标写重删副本的数据以及上述数据写请求的数据,计算获得上述目标写重删副本进行数据更新后对应的第二重删副本指纹,并更新上述目标写重删副本的数据。
基于以上述例子继续举例,上述数据写请求的数据为上述应用端计划写入目标写重删副本P1的512字节大小的数据D2以及512字节大小的数据D3(待写入的D2、D3从左到右分别对应图4所示的灰色斜线的两个小方格);在获取目标写重删副本P1的数据后,目标写重删副本P1的数据包括D1(对应图4)、以及15个512字节的全零数据后,上述存储系统将目标写重删副本P1中的与D2、D3分别对应的512字节的全零数据,使用D2、D3替换后执行数据合并,并针对将合并后的数据(注意也包括D1)作为预设的HASH算法的输入,计算其对应的HASH值Y。
在本说明书中,上述第二重删副本指纹是指,上述目标写重删副本进行数据更新后对应的HASH值。基于以上述例子继续举例,上述第二重删副本指纹例如为HASH值Y。
在本说明书中,进一步地,在计算获得上述第二重删副本指纹后,上述存储系统更新上述目标写重删副本的数据。
基于以上述例子继续举例,请参见图5,图5是本申请一实施例提供的一种补HASH机制数据更新后的重删副本。如图5所示,以上示例中的数据D2、D3已写入目标写重删副本P1对应存储空间。同时类似图4所示,上述存储系统使用最新的32Y代替图4中的32X,作为更新数据后的目标写重删副本P1的数据中的计划待补零数据的HASH替代值。具体过程在以上“重删副本创建”中已详细描述,这里不再赘述。
在本说明书中,进一步地,在计算获得上述第二重删副本指纹后,上述存储系统在上述重删指纹映射库中,将上述第一重删副本指纹更新为上述第二重删副本指纹。
基于以上述例子继续举例,更新后的上述重删指纹映射库例如为表3所示。
表3
如表3所示,上述目标写重删副本例如为如图5所示的重删副本P1,P1重删副本指纹已被由如表2所示的X,被更新如表3所示的Y。需要说明的是,上述逻辑映射表(例如为表1)需要被同时修改,修改后的上述逻辑映射表例如为表4。
表4
在示出的另一种实施方式中,上述存储系统响应于上述数据写请求,检查上述数据写请求的LBA在上述存储系统的LUN逻辑映射表中是否已存在对应映射关系;若上述数据写请求的LBA在上述存储系统的LUN逻辑映射表中不存在对应映射关系,则将上述数据写请求的数据,以上述目标写重删副本的容量作为对齐执行补零后,获得第一数据。
基于以上述例子继续举例,当上述存储系统接收上述应用端针对上述存储系统管理的重删副本的LBA范围为[1MB~(1MB+2KB)]对应存储空间的数据写请求(该数据写请求中计划写入数据例如为N)时,上述存储系统在上述存储系统的LUN逻辑映射表(例如为表1)中,检查上述数据写请求的LBA是否存在映射关系,经检查不存在对应映射关系,也即[1MB~(1MB+2KB)]不落在如表1所示的任何LBA范围内;上述存储系统对该数据写请求中计划写入数据N,以上述目标写重删副本的容量(例如为8KB)作为对齐执行补零后,获得第一数据N1。
在本说明书中,进一步地,在获得上述第一数据后,上述存储系统对上述第一数据,计算并获得对应HASH指纹。
基于以上述例子继续举例,在获得上述第一数据N1后,上述存储系统基于预设的HASH算法,以上述第一数据N1作为该HASH算法,从而计算获得上述第一数据N1对应HASH指纹Z。
在本说明书中,进一步地,在获得上述第一数据对应HASH指纹后,上述存储系统在上述重删指纹映射库中查找,若存在与上述HASH指纹相同的第三重删副本指纹,则基于上述第三重删副本指纹,恢复出对应重删副本中的第二数据;
基于以上述例子继续举例,在获得上述第一数据对应HASH指纹Z后,上述存储系统在上述重删指纹映射库(例如为表3)中查找,若存在与得上述HASH指纹相同的第三重删副本指纹(例如为表3所示的Y),也即Z=Y;重删副本指纹Y对应的重删副本为如图5所示的P1,则上述存储系统从如图5所示的重删副本P1,恢复出对应重删副本P1中的数据O1(对应上述第二数据,在实现时,需要将如图5所示的32Y对应恢复为全零数据)。
在本说明书中,进一步地,若上述第一数据与上述第二数据相同,则上述存储系统将上述第一数据写入到上述第三重删副本指纹对应的重删副本,并在上述LUN逻辑映射表中,新增上述数据写请求的LBA对应映射关系R,以使R与第三重删副本指纹相对应。
基于以上述例子继续举例,若上述第一数据N1与上述第二数据O1相同,则上述存储系统将N1写入到重删副本P1中。重删副本P1的数据分布情况,请参见图6,图6是本申请一实施例提供的另一种补HASH机制数据更新后的重删副本。同时,上述存储系统在上述LUN逻辑映射表(例如为表4)中,新增上述数据写请求的LBA([1MB~(1MB+8KB)])对应映射关系R(对应表5中的第二条记录),以使R与第三重删副本指纹(例如为表3所示的Y))相对应,更新后的上述LUN逻辑映射表例如请参见如下表5所示。
表5
需要说明,如图6所示,由于同一个重删指纹Y实际有2个对应映射关系(请参见图5所示的前两条记录,Y对应两个LBA),则重删副本P1中不再有“补HASH”的数据(对比图5中所示的32Y),而是对应为全零数据(对应图6中所示的0)。
3)重删副本读处理
在本说明书中,在上述存储系统创建上述重删副本后,若接收到所述应用端对所述存储系统发起的针对所述存储系统管理的重删副本的数据读请求,上述存储系统响应于上述数据读请求,执行对应的数据读请求处理过程。
在示出的一种实施方式中,上述存储系统响应于上述数据读请求,检查上述数据读请求的LBA是否在上述存储系统的LUN逻辑映射表中已存在对应映射关系;若存在,则基于上述数据读请求,确定与上述数据读请求对应的目标读重删副本。
基于以上述例子继续举例,上述数据读请求的LBA范围为[0~1KB],在如表1所示的[0~8KB]LBA范围内,则上述数据读请求的LBA在上述存储系统的LUN逻辑映射表中存在对应映射关系(例如参见表1),上述存储系统,则基于上述数据读请求,确定与上述数据读请求对应的目标读重删副本(例如为图4所示的P1)。
在本说明书中,进一步地,在基于上述数据读请求,确定与上述数据读请求对应的上述目标读重删副本后,上述存储系统从上述目标读重删副本的存储空间中读出对应的若干个校验数据后并将其恢复为全零数据。
基于以上述例子继续举例,上述目标读重删副本例如为图4所示的P1,上述存储系统从目标读重删副本P1的存储空间中读出对应的若干个校验数据(对应图4所示的若干32X)后并将其恢复为全零数据,上述存储系统从目标读重删副本P1的存储空间中读出对应的净荷数据(对应图4所示的若干D1),上述存储系统将D1以及该全零数据,作为目标读重删副本P1的数据返给上述应用端。
在以上技术方案中,基于补HASH机制创建重删副本,以及对补HASH机制重删副本执行数据处理,避免了针对同一重删副本的多次写入数据时,需要新建重删副本,从而提高了已有重删副本利用率,节省了存储空间。
与上述方法实施例相对应,本申请还提供了重删副本的数据处理装置的实施例。
与上述方法实施例相对应,本说明书还提供了一种重删副本的数据处理装置的实施例。本说明书的重删副本的数据处理装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图7所示,为本说明书的重删副本的数据处理装置所在电子设备的一种硬件结构图,除了图7所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
图8是本说明书一实施例示出的一种重删副本的数据处理装置的框图。
请参考图8,所述重删副本的数据处理装置80可以应用在前述图7所示的电子设备中,所述装置应用于存储系统,所述存储系统管理有若干重删副本,所述重删副本为所述存储系统基于补HASH机制创建的重删副本,所述重删副本的数据包括净荷数据、基于补HASH机制创建的若干个校验数据;其中,所述校验数据为所述重删副本的数据中的计划待补零数据的HASH替代值,所述装置包括:
接收模块801,接收应用端对所述存储系统发起的针对所述存储系统管理的重删副本的数据写请求;
获取模块802,基于所述数据写请求,确定与所述数据写请求对应的目标写重删副本;
处理模块803,基于所述目标写重删副本以及所述数据写请求,更新所述目标写重删副本的数据及对应重删副本指纹。
在本实施例中,所述获取模块802进一步:
响应于所述数据写请求,检查所述数据写请求的LBA在所述存储系统的LUN逻辑映射表中是否已存在对应映射关系;
若所述数据写请求的LBA在所述存储系统的LUN逻辑映射表中存在对应映射关系,则基于所述LUN逻辑映射表,获得所述数据写请求对应的第一重删副本指纹;
以所述第一重删副本指纹作为查找索引,在所述存储系统管理的重删副本的重删指纹映射库中查询,获取与所述第一重删副本指纹对应的所述目标写重删副本的PBA。
在本实施例中,所述处理模块803进一步:
基于所述目标写重删副本的PBA,从所述目标写重删副本对应存储空间中,获取所述目标写重删副本的数据;
基于所述目标写重删副本的数据以及所述数据写请求的数据,计算获得所述目标写重删副本进行数据更新后对应的第二重删副本指纹,并更新所述目标写重删副本的数据;
在所述重删指纹映射库中,将所述第一重删副本指纹更新为所述第二重删副本指纹。
在本实施例中,所述处理模块803进一步:
若所述数据写请求的LBA在所述存储系统的LUN逻辑映射表中不存在对应映射关系,则将所述数据写请求的数据,以所述目标写重删副本的容量作为对齐执行补零后,获得第一数据;
对所述第一数据,计算并获得对应HASH指纹;
在所述重删指纹映射库中查找,若存在与所述HASH指纹相同的第三重删副本指纹,则基于所述第三重删副本指纹,恢复出对应重删副本中的第二数据;
若所述第一数据与所述第二数据相同,则将所述第一数据写入到所述第三重删副本指纹对应的重删副本,并在所述LUN逻辑映射表中,新增所述数据写请求的LBA对应映射关系R,以使R与第三重删副本指纹相对应。
在本实施例中,若接收到所述应用端对所述存储系统发起的针对所述存储系统管理的重删副本的数据读请求,所述获取模块802进一步:
响应于所述数据读请求,检查所述数据读请求的LBA是否在所述存储系统的LUN逻辑映射表中已存在对应映射关系;若存在,则基于所述数据读请求,确定与所述数据读请求对应的目标读重删副本。
在本实施例中,所述处理模块803进一步:
从所述目标读重删副本的存储空间中读出对应的若干个校验数据后并将其恢复为全零数据;
将所述全零数据与所述目标读重删副本的净荷数据,作为所述目标读重删副本的数据返给所述应用端。
在本实施例中,所述存储系统为全闪存存储系统。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的装置、装置、模块或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
与上述方法实施例相对应,本说明书还提供了一种电子设备的实施例。所述电子设备可以应用于存储系统,所述存储系统管理有若干重删副本,所述重删副本为所述存储系统基于补HASH机制创建的重删副本,所述重删副本的数据包括净荷数据、基于补HASH机制创建的若干个校验数据;其中,所述校验数据为所述重删副本的数据中的计划待补零数据的HASH替代值;该电子设备包括:处理器以及用于存储机器可执行指令的存储器;其中,处理器和存储器通常通过内部总线相互连接。在其他可能的实现方式中,所述设备还可能包括外部接口,以能够与其他设备或者部件进行通信。
在本实施例中,通过读取并执行所述存储器存储的与重删副本的数据处理逻辑对应的机器可执行指令,所述处理器被促使:
接收应用端对所述存储系统发起的针对所述存储系统管理的重删副本的数据写请求;
基于所述数据写请求,确定与所述数据写请求对应的目标写重删副本;
基于所述目标写重删副本以及所述数据写请求,更新所述目标写重删副本的数据及对应重删副本指纹。
在本实施例中,通过读取并执行所述存储器存储的与重删副本的数据处理逻辑对应的机器可执行指令,所述处理器被促使:
响应于所述数据写请求,检查所述数据写请求的LBA在所述存储系统的LUN逻辑映射表中是否已存在对应映射关系;
若所述数据写请求的LBA在所述存储系统的LUN逻辑映射表中存在对应映射关系,则基于所述LUN逻辑映射表,获得所述数据写请求对应的第一重删副本指纹;
以所述第一重删副本指纹作为查找索引,在所述存储系统管理的重删副本的重删指纹映射库中查询,获取与所述第一重删副本指纹对应的所述目标写重删副本的PBA。
在本实施例中,通过读取并执行所述存储器存储的与重删副本的数据处理逻辑对应的机器可执行指令,所述处理器被促使:
基于所述目标写重删副本的PBA,从所述目标写重删副本对应存储空间中,获取所述目标写重删副本的数据;
基于所述目标写重删副本的数据以及所述数据写请求的数据,计算获得所述目标写重删副本进行数据更新后对应的第二重删副本指纹,并更新所述目标写重删副本的数据;
在所述重删指纹映射库中,将所述第一重删副本指纹更新为所述第二重删副本指纹。
在本实施例中,通过读取并执行所述存储器存储的与重删副本的数据处理逻辑对应的机器可执行指令,所述处理器被促使:
若所述数据写请求的LBA在所述存储系统的LUN逻辑映射表中不存在对应映射关系,则将所述数据写请求的数据,以所述目标写重删副本的容量作为对齐执行补零后,获得第一数据;
对所述第一数据,计算并获得对应HASH指纹;
在所述重删指纹映射库中查找,若存在与所述HASH指纹相同的第三重删副本指纹,则基于所述第三重删副本指纹,恢复出对应重删副本中的第二数据;
若所述第一数据与所述第二数据相同,则将所述第一数据写入到所述第三重删副本指纹对应的重删副本,并在所述LUN逻辑映射表中,新增所述数据写请求的LBA对应映射关系R,以使R与第三重删副本指纹相对应。
在本实施例中,若接收到所述应用端对所述存储系统发起的针对所述存储系统管理的重删副本的数据读请求,通过读取并执行所述存储器存储的与重删副本的数据处理逻辑对应的机器可执行指令,所述处理器被促使:
响应于所述数据读请求,检查所述数据读请求的LBA是否在所述存储系统的LUN逻辑映射表中已存在对应映射关系;若存在,则基于所述数据读请求,确定与所述数据读请求对应的目标读重删副本。
在本实施例中,通过读取并执行所述存储器存储的与重删副本的数据处理逻辑对应的机器可执行指令,所述处理器被促使:
从所述目标读重删副本的存储空间中读出对应的若干个校验数据后并将其恢复为全零数据;
将所述全零数据与所述目标读重删副本的净荷数据,作为所述目标读重删副本的数据返给所述应用端。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。
Claims (16)
1.一种重删副本的数据处理方法,其特征在于,所述方法应用于存储系统,所述存储系统管理有若干重删副本,所述重删副本为所述存储系统基于补HASH机制创建的重删副本,所述重删副本的数据包括净荷数据、基于补HASH机制创建的若干个校验数据;其中,所述校验数据为所述重删副本的数据中的计划待补零数据的HASH替代值,所述方法包括:
接收应用端对所述存储系统发起的针对所述存储系统管理的重删副本的数据写请求;
基于所述数据写请求,确定与所述数据写请求对应的目标写重删副本;
基于所述目标写重删副本以及所述数据写请求,更新所述目标写重删副本的数据及对应重删副本指纹。
2.根据权利要求1所述的方法,其特征在于,所述基于所述数据写请求,确定与所述数据写请求对应的目标写重删副本,包括:
响应于所述数据写请求,检查所述数据写请求的LBA在所述存储系统的LUN逻辑映射表中是否已存在对应映射关系;
若所述数据写请求的LBA在所述存储系统的LUN逻辑映射表中存在对应映射关系,则基于所述LUN逻辑映射表,获得所述数据写请求对应的第一重删副本指纹;
以所述第一重删副本指纹作为查找索引,在所述存储系统管理的重删副本的重删指纹映射库中查询,获取与所述第一重删副本指纹对应的所述目标写重删副本的PBA。
3.根据权利要求2所述的方法,其特征在于,所述基于所述目标写重删副本以及所述数据写请求,更新所述目标写重删副本的数据及对应重删副本指纹,包括:
基于所述目标写重删副本的PBA,从所述目标写重删副本对应存储空间中,获取所述目标写重删副本的数据;
基于所述目标写重删副本的数据以及所述数据写请求的数据,计算获得所述目标写重删副本进行数据更新后对应的第二重删副本指纹,并更新所述目标写重删副本的数据;
在所述重删指纹映射库中,将所述第一重删副本指纹更新为所述第二重删副本指纹。
4.根据权利要求2所述的方法,其特征在于,还包括:
若所述数据写请求的LBA在所述存储系统的LUN逻辑映射表中不存在对应映射关系,则将所述数据写请求的数据,以所述目标写重删副本的容量作为对齐执行补零后,获得第一数据;
对所述第一数据,计算并获得对应HASH指纹;
在所述重删指纹映射库中查找,若存在与所述HASH指纹相同的第三重删副本指纹,则基于所述第三重删副本指纹,恢复出对应重删副本中的第二数据;
若所述第一数据与所述第二数据相同,则将所述第一数据写入到所述第三重删副本指纹对应的重删副本,并在所述LUN逻辑映射表中,新增所述数据写请求的LBA对应映射关系R,以使R与第三重删副本指纹相对应。
5.根据权利要求1所述的方法,其特征在于,若接收到所述应用端对所述存储系统发起的针对所述存储系统管理的重删副本的数据读请求,还包括:
响应于所述数据读请求,检查所述数据读请求的LBA是否在所述存储系统的LUN逻辑映射表中已存在对应映射关系;若存在,则基于所述数据读请求,确定与所述数据读请求对应的目标读重删副本。
6.根据权利要求5所述的方法,其特征在于,还包括:
从所述目标读重删副本的存储空间中读出对应的若干个校验数据后并将其恢复为全零数据;
将所述全零数据与所述目标读重删副本的净荷数据,作为所述目标读重删副本的数据返给所述应用端。
7.根据权利要求1所述的方法,其特征在于,所述存储系统为全闪存存储系统。
8.一种重删副本的数据处理装置,其特征在于,所述装置应用于存储系统,所述存储系统管理有若干重删副本,所述重删副本为所述存储系统基于补HASH机制创建的重删副本,所述重删副本的数据包括净荷数据、基于补HASH机制创建的若干个校验数据;其中,所述校验数据为所述重删副本的数据中的计划待补零数据的HASH替代值,所述装置包括:
接收模块,接收应用端对所述存储系统发起的针对所述存储系统管理的重删副本的数据写请求;
获取模块,基于所述数据写请求,确定与所述数据写请求对应的目标写重删副本;
处理模块,基于所述目标写重删副本以及所述数据写请求,更新所述目标写重删副本的数据及对应重删副本指纹。
9.根据权利要求8所述的装置,其特征在于,所述获取模块进一步:
响应于所述数据写请求,检查所述数据写请求的LBA在所述存储系统的LUN逻辑映射表中是否已存在对应映射关系;
若所述数据写请求的LBA在所述存储系统的LUN逻辑映射表中存在对应映射关系,则基于所述LUN逻辑映射表,获得所述数据写请求对应的第一重删副本指纹;
以所述第一重删副本指纹作为查找索引,在所述存储系统管理的重删副本的重删指纹映射库中查询,获取与所述第一重删副本指纹对应的所述目标写重删副本的PBA。
10.根据权利要求9所述的装置,其特征在于,所述处理模块进一步:
基于所述目标写重删副本的PBA,从所述目标写重删副本对应存储空间中,获取所述目标写重删副本的数据;
基于所述目标写重删副本的数据以及所述数据写请求的数据,计算获得所述目标写重删副本进行数据更新后对应的第二重删副本指纹,并更新所述目标写重删副本的数据;
在所述重删指纹映射库中,将所述第一重删副本指纹更新为所述第二重删副本指纹。
11.根据权利要求9所述的装置,其特征在于,所述处理模块进一步:
若所述数据写请求的LBA在所述存储系统的LUN逻辑映射表中不存在对应映射关系,则将所述数据写请求的数据,以所述目标写重删副本的容量作为对齐执行补零后,获得第一数据;
对所述第一数据,计算并获得对应HASH指纹;
在所述重删指纹映射库中查找,若存在与所述HASH指纹相同的第三重删副本指纹,则基于所述第三重删副本指纹,恢复出对应重删副本中的第二数据;
若所述第一数据与所述第二数据相同,则将所述第一数据写入到所述第三重删副本指纹对应的重删副本,并在所述LUN逻辑映射表中,新增所述数据写请求的LBA对应映射关系R,以使R与第三重删副本指纹相对应。
12.根据权利要求8所述的装置,其特征在于,若接收到所述应用端对所述存储系统发起的针对所述存储系统管理的重删副本的数据读请求,所述获取模块进一步:
响应于所述数据读请求,检查所述数据读请求的LBA是否在所述存储系统的LUN逻辑映射表中已存在对应映射关系;若存在,则基于所述数据读请求,确定与所述数据读请求对应的目标读重删副本。
13.根据权利要求12所述的装置,其特征在于,所述处理模块进一步:从所述目标读重删副本的存储空间中读出对应的若干个校验数据后并将其恢复为全零数据;
将所述全零数据与所述目标读重删副本的净荷数据,作为所述目标读重删副本的数据返给所述应用端。
14.根据权利要求8所述的装置,其特征在于,所述存储系统为全闪存存储系统。
15.一种电子设备,其特征在于,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行如权利要求1至7任一项所述的方法。
16.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910439175.5A CN110187834B (zh) | 2019-05-24 | 2019-05-24 | 重删副本的数据处理方法、装置、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910439175.5A CN110187834B (zh) | 2019-05-24 | 2019-05-24 | 重删副本的数据处理方法、装置、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110187834A CN110187834A (zh) | 2019-08-30 |
CN110187834B true CN110187834B (zh) | 2022-08-09 |
Family
ID=67717776
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910439175.5A Active CN110187834B (zh) | 2019-05-24 | 2019-05-24 | 重删副本的数据处理方法、装置、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110187834B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113050892B (zh) * | 2021-03-26 | 2022-02-25 | 杭州宏杉科技股份有限公司 | 重删数据保护方法及装置 |
CN113050891B (zh) * | 2021-03-26 | 2022-02-25 | 杭州宏杉科技股份有限公司 | 重删数据保护方法及装置 |
CN113568583B (zh) * | 2021-07-30 | 2023-04-21 | 杭州宏杉科技股份有限公司 | 重删数据保护方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528703A (zh) * | 2016-10-26 | 2017-03-22 | 杭州宏杉科技股份有限公司 | 一种重复删除的模式切换方法及装置 |
CN107992269A (zh) * | 2017-12-08 | 2018-05-04 | 华中科技大学 | 一种基于去重ssd的事务写入方法 |
-
2019
- 2019-05-24 CN CN201910439175.5A patent/CN110187834B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528703A (zh) * | 2016-10-26 | 2017-03-22 | 杭州宏杉科技股份有限公司 | 一种重复删除的模式切换方法及装置 |
CN107992269A (zh) * | 2017-12-08 | 2018-05-04 | 华中科技大学 | 一种基于去重ssd的事务写入方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110187834A (zh) | 2019-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10430286B2 (en) | Storage control device and storage system | |
US11226747B2 (en) | System and method for copy on write on an SSD | |
US9910620B1 (en) | Method and system for leveraging secondary storage for primary storage snapshots | |
US10430282B2 (en) | Optimizing replication by distinguishing user and system write activity | |
US8930648B1 (en) | Distributed deduplication using global chunk data structure and epochs | |
CN105843551B (zh) | 高性能和大容量储存重复删除中的数据完整性和损耗电阻 | |
CN110531940B (zh) | 视频文件处理方法及装置 | |
US10402091B1 (en) | Managing data in log-structured storage systems | |
US9009429B2 (en) | Deduplication of data stored in a copy volume | |
US8856469B2 (en) | Apparatus and method for logging optimization using non-volatile memory | |
US10108356B1 (en) | Determining data to store in retention storage | |
US9317375B1 (en) | Managing cache backup and restore for continuous data replication and protection | |
US9075754B1 (en) | Managing cache backup and restore | |
CN110187834B (zh) | 重删副本的数据处理方法、装置、电子设备 | |
US10489289B1 (en) | Physical media aware spacially coupled journaling and trim | |
CN109902034B (zh) | 快照创建方法、装置、电子设备及机器可读存储介质 | |
CN105027069A (zh) | 卷区域的重复数据删除 | |
CN109144416B (zh) | 查询数据的方法和装置 | |
US10289321B1 (en) | Bad block table recovery in a solid state drives | |
US10733105B1 (en) | Method for pipelined read optimization to improve performance of reading data from data cache and storage units | |
JP7376488B2 (ja) | スナップショットのコピーオンライトのデータ移動を回避するインフラストラクチャとしての重複除外 | |
JP2019028954A (ja) | ストレージ制御装置、プログラム、及び重複排除方法 | |
CN107273306A (zh) | 一种固态硬盘的数据读取、数据写入方法及固态硬盘 | |
CN110134551B (zh) | 一种持续数据保护方法及装置 | |
US10922003B1 (en) | Realizing host-assisted device-level data deduplication on solid-state data storage devices with embedded non-volatile memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |