CN109690493B - 用于修复去重存储装置中的映像的系统和方法 - Google Patents

用于修复去重存储装置中的映像的系统和方法 Download PDF

Info

Publication number
CN109690493B
CN109690493B CN201680089144.6A CN201680089144A CN109690493B CN 109690493 B CN109690493 B CN 109690493B CN 201680089144 A CN201680089144 A CN 201680089144A CN 109690493 B CN109690493 B CN 109690493B
Authority
CN
China
Prior art keywords
data segment
corrupted
container
image
digital fingerprint
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
Application number
CN201680089144.6A
Other languages
English (en)
Other versions
CN109690493A (zh
Inventor
刘彬
张先波
程帅
单诚
姜文峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Veritas Technologies LLC
Original Assignee
Veritas Technologies LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Veritas Technologies LLC filed Critical Veritas Technologies LLC
Publication of CN109690493A publication Critical patent/CN109690493A/zh
Application granted granted Critical
Publication of CN109690493B publication Critical patent/CN109690493B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1453Management of the data involved in backup or backup restore using de-duplication of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Retry When Errors Occur (AREA)
  • Storage Device Security (AREA)

Abstract

本公开提供了一种用于修复去重存储装置中的映像的所公开的计算机实现的方法,所述方法可以包括:(1)通过对数据片段执行算法以生成所述数据片段的数字标识符并通过确定所述数字标识符与所述数据片段的先前存储的数字标识符不匹配来检测存储在去重存储装置内的所述数据片段损坏,(2)在备份操作期间,校验正在备份的映像的数据片段的数字指纹是否与在损坏之前获取的并已经存储在所述去重存储装置内的所述损坏的数据片段的数字指纹匹配,以及(3)将所述数据片段从正在备份的所述映像附加到已经包含所述损坏的数据片段的容器,而不是替换所述损坏的数据片段。本发明还公开了各种其他方法、系统和计算机可读介质。

Description

用于修复去重存储装置中的映像的系统和方法
背景技术
个人和组织经常寻求改进他们的系统来存储大量数据。例如,企业组织可能寻求用于压缩数据或以其他方式优化数据存储效率的改进的系统和技术。在一个具体的示例中,企业组织可能在去重系统内组织他们的数据。一般来讲,去重是指在较大数据集合内多次包括某个数据片段或部分时移除该相同数据片段或部分的冗余实例的过程。去重过程可以用对数据片段的单个实例的引用来替换相同数据片段或部分的冗余实例。因此,去重可以减少用于存储数据的存储空间的量,并且还可以获得其他效率。
当然,传统的去重系统依赖于底层物理、虚拟和/或基于软件的存储解决方案来最终地存储唯一数据片段的单个实例。由于这些底层存储解决方案并不完善,因此有时可能失败并且对应数据片段可能损坏。此外,由于多个磁盘映像可能引用同一唯一数据片段,因此单个数据片段损坏可能影响或危害大量顾客和/或磁盘映像。因此,本公开识别并解决了对用于修复去重存储装置中的映像的系统和方法的需要。
发明内容
如下文将更详细地描述,本公开描述了用于修复去重存储装置中的映像的各种系统和方法。在一个示例中,用于修复去重存储装置中的映像的计算机实现的方法可以包括:(i)通过对数据片段执行算法以生成数据片段的数字标识符并通过确定数字标识符与数据片段的先前存储的数字标识符不匹配来检测存储在去重存储装置内的数据片段损坏,(ii)在备份操作期间,校验正在备份的映像的数据片段的数字指纹是否与在损坏之前获取的并已经存储在去重存储装置内的损坏的数据片段的数字指纹匹配,以及(iii)响应于确定正在备份的映像的数据片段的数字指纹匹配损坏的数据片段的数字指纹,将数据片段从正在备份的映像附加到已经包含损坏的数据片段的容器,使得在容器内附加数据片段的偏移大于在同一容器内损坏的数据片段的偏移,而不是替换损坏的数据片段。
在一个实施方案中,算法可以包括(i)校验和算法、(ii)散列算法和/或(iii)数字指纹算法。在一些示例中,将数据片段从正在备份的映像附加到容器有效地修复引用损坏的数据片段的至少一个映像。
在一个实施方案中,该计算机实现的方法还可以包括在恢复引用损坏的数据片段的映像的恢复操作期间,基于具有较大偏移的附加数据片段而提供附加数据片段而不是损坏的数据片段。在一些示例中,根据读取操作来执行提供附加数据片段而不是损坏的数据片段,读取操作被配置为在具有相同的数字指纹的多个数据片段之间选择在容器内具有最大偏移的数据片段。
在一个实施方案中,该计算机实现的方法还可以包括响应于检测到存储在去重存储装置内的数据片段损坏,将数据片段的数字指纹添加到识别损坏的数据片段的指纹损坏列表。在一些示例中,该计算机实现的方法还可以包括将容器的标识符与数据片段的数字指纹一起添加到指纹损坏列表。
在一个实施方案中,该计算机实现的方法还可以包括在备份操作期间校验指纹损坏列表以确定正在备份的映像的数据片段的数字指纹与在损坏之前获取的并已经存储在去重存储装置中的损坏的数据片段的数字指纹匹配。在一个实施方案中,至少部分地通过引用指纹损坏列表内用于损坏的数据片段的容器的标识符,将数据片段附加到已经包含损坏的数据片段的容器而不是不同容器。在一个实施方案中,该计算机实现的方法还可以包括响应于检测到存储在去重存储装置内的数据片段损坏,用设定为真的损坏标志来标记数据片段。
在一个实施方案中,用于实现上述方法的系统可以包括:(i)检测模块,该检测模块存储在存储器中,通过对数据片段执行算法以生成数据片段的数字标识符并确定数字标识符与数据片段的先前存储的数字标识符不匹配来检测存储在去重存储装置内的数据片段损坏;(ii)校验模块,该校验模块存储在存储器中,在备份操作期间,校验正在备份的映像的数据片段的数字指纹是否与在损坏之前获取的并已经存储在去重存储装置内的损坏的数据片段的数字指纹匹配;(iii)附加模块,该附加模块存储在存储器中,响应于确定正在备份的映像的数据片段的数字指纹匹配损坏的数据片段的数字指纹,将数据片段从正在备份的映像附加到已经包含损坏的数据片段的容器,使得在容器内附加数据片段的偏移大于在同一容器内损坏的数据片段的偏移,而不是替换损坏的数据片段;以及(iv)至少一个物理处理器,该物理处理器被配置为执行检测模块、校验模块和附加模块。
在一些示例中,上述方法可被编码为非暂态计算机可读介质上的计算机可读指令。例如,计算机可读介质可包括一个或多个计算机可执行指令,该一个或多个计算机可执行指令当由计算设备的至少一个处理器执行时可以使计算设备:(i)通过对数据片段执行算法以生成数据片段的数字标识符并通过确定数字标识符与数据片段的先前存储的数字标识符不匹配来检测存储在去重存储装置内的数据片段损坏;(ii)在备份操作期间,校验正在备份的映像的数据片段的数字指纹是否与在损坏之前获取的并已经存储在去重存储装置内的损坏的数据片段的数字指纹匹配;以及(iii)响应于确定正在备份的映像的数据片段的数字指纹匹配损坏的数据片段的数字指纹,将数据片段从正在备份的映像附加到已经包含损坏的数据片段的容器,使得在容器内附加数据片段的偏移大于在同一容器内损坏的数据片段的偏移,而不是替换损坏的数据片段。
来自任意上述实施方案的特征可根据本文所述的一般原理彼此结合使用。在结合附图和权利要求阅读以下详细描述后,将更全面地理解这些以及其他实施方案、特征和优点。
附图说明
附图示出多个示例性实施方案,并且是说明书的一部分。这些附图与以下描述一起展示并说明本公开的各种原理。
图1是用于修复去重存储装置中的映像的示例性系统的框图。
图2是用于修复去重存储装置中的映像的另外的示例性系统的框图。
图3是用于修复去重存储装置中的映像的示例性方法的流程图。
图4是在执行修复之前由示例性计算系统引用的示例性容器的框图。
图5是在执行修复之后由示例性计算系统引用的示例性容器的框图。
在整个附图中,相同的参考字符和描述指示类似但未必相同的元件。虽然本文所述的示例性实施方案易存在各种修改形式和另选形式,但是附图中以举例的方式示出了具体的实施方案,这些具体的实施方案将在本文中详细地描述。然而,本文所述的示例性实施方案并不旨在限于所公开的特定形式。相反,本公开涵盖落在所附权利要求范围内的所有修改形式、等同形式和替代形式。
具体实施方式
本公开整体涉及用于修复去重存储装置中的映像的系统和方法。这些系统和方法可以获得超过其他相关系统的各种益处。例如,该系统和方法可以自动地或自主地修复去重系统内的映像,而不是仅将数据片段标记为已损坏的并进一步防止映像引用损坏的数据片段。该系统和方法可以通过利用在与去重系统或服务器接合的客户端设备上仍可用的数据片段的未损坏的副本来实现这些益处。换句话说,即使在去重系统或服务器上的数据片段损坏之后,一个或多个客户端或顾客仍有可能拥有数据片段的未损坏的实例。另外,客户端或顾客可以将数据片段的未损坏的实例上载到去重系统或服务器。例如,客户端或顾客可以上载数据片段的未损坏的实例作为备份操作的一部分,以将磁盘映像新备份到去重系统。
另外,所公开的系统和方法可以将未损坏的数据片段附加到存储有损坏的数据片段的相同容器,而不是用未损坏的内容替换容器内损坏的数据片段的内容,也不是将未损坏的数据片段写入新的容器或不同容器。所公开的系统和方法由此避免与这些替代方法相关联的许多问题。例如,仅用未损坏的数据片段的内容替换损坏的数据片段的内容可能造成将未损坏的数据片段仅写入存储设备的坏的或故障部分的问题,从而重复数据片段的损坏。另外,去重系统可以使用压缩方案,即使原始数据具有相同大小,压缩方案也不一定生成相同大小的压缩数据,并且因此,经压缩的未损坏的数据片段可能不适合于被损坏的数据片段占用的存储空间。此外,仅将未损坏的数据片段写入新的容器而不是相同容器可能造成大范围地修改映像的引用损坏的数据片段的元数据,这可能成本过高。
下面将参考图1至图2来提供用于修复去重存储装置中的映像的示例性系统的详细描述。还将结合图3至图5提供对应的计算机实现的方法的详细描述。
图1是用于修复去重存储装置中的映像的示例性系统100的框图。如该图所示,示例性系统100可以包括用于执行一个或多个任务的一个或多个模块102。例如,并且如下面将更详细地解释的,示例性系统100可以包括检测模块104,该检测模块通过对数据片段执行算法以生成数据片段的数字标识符并确定数字标识符与数据片段的先前存储的数字标识符不匹配来检测存储在去重存储装置中的数据片段损坏。示例性系统100可以另外包括校验模块106,该校验模块106在备份操作期间校验正在备份的映像的数据片段的数字指纹是否与在损坏之前获取的并已经存储在去重存储装置中的损坏的数据片段的数字指纹匹配。示例性系统100还可以包括附加模块108,该附加模块108响应于确定正在备份的映像的数据片段的数字指纹与损坏的数据片段的数字指纹匹配,将数据片段从正在备份的映像附加到已经包含损坏的数据片段的容器,使得在容器内附加数据片段的偏移大于在同一容器内的损坏的数据片段的偏移,而不是替换损坏的数据片段。另外,示例性系统100还可以包括提供模块110,该提供模块110执行各种其他功能,如下面进一步讨论的。虽然示出为单独元件,但图1的模块102中的一者或多者可表示单个模块或应用程序的若干部分。
在某些实施方案中,图1中的模块102中的一者或多者可表示一个或多个软件应用程序或程序,其在由计算设备执行时可致使计算设备执行一个或多个任务。例如,并且如下文将更详细地描述的,模块102中的一个或多个可以表示存储在一个或多个计算设备上并且被配置为在该计算设备上运行的模块,该计算设备诸如图2中所示的设备(例如,计算设备202和/或服务器206)。图1中的模块102中的一者或多者还可表示被配置为执行一个或多个任务的一个或多个专用计算机的全部或部分。
如图1所示,示例性系统100还可以包括一个或多个存储器设备,诸如存储器140。存储器140通常表示能够存储数据和/或计算机可读指令的任何类型或形式的易失性或非易失性存储设备或介质。在一个示例中,存储器140可以存储、加载和/或维护模块102中的一个或多个。存储器140的示例包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、闪存存储器、硬盘驱动器(HDD)、固态驱动器(SSD)、光盘驱动器、高速缓存、以上项中的一个或多个的变型或组合、或任何其他合适的存储器。
如图1所示,示例性系统100还可以包括一个或多个物理处理器,诸如物理处理器130。物理处理器130通常表示能够解释和/或执行计算机可读指令的任何类型或形式的硬件实现的处理单元。在一个示例中,物理处理器130可以访问和/或修改存储在存储器140中的模块102中的一个或多个。附加地或另选地,物理处理器130可以执行模块102中的一个或多个,以便于修复去重存储装置中的映像。物理处理器130的示例包括但不限于微处理器、微控制器、中央处理单元(CPU)、实现软核处理器的现场可编程门阵列(FPGA)、专用集成电路(ASIC)、以上项中的一个或多个的部分、以上项中的一个或多个的变型或组合,或任何其他合适的物理处理器。
如图1所示,示例性系统100还可以包括一个或多个附加的元素120,诸如数据片段122、数据片段124和数字指纹126。数据片段122可对应于损坏的数据片段,并且数据片段124可对应于同一数据片段的未损坏的实例,如下面进一步讨论的。另外,数字指纹126可对应于在数据片段122的损坏之前获取的数据片段122的数字指纹。一般来讲,附加的元素120可以作为数据结构或元素存储在对应的存储设备(诸如存储器140)内。
图1中的示例性系统100能够以各种方式实现。例如,示例性系统100的全部或一部分可以表示图2中的示例性系统200的部分。如图2所示,系统200可以包括经由网络204与服务器206通信的计算设备202。在一个示例中,模块102的功能性的全部或一部分可以由计算设备202、服务器206和/或任何其他合适的计算系统来执行。如下面将更详细地描述的,来自图1的模块102中的一个或多个当由计算设备202和/或服务器206的至少一个处理器执行时可以使计算设备202和/或服务器206能够修复去重存储装置中的映像。
例如,检测模块104可以通过对数据片段122执行算法以生成数据片段122的数字标识符并通过确定数字标识符确实与数据片段122的先前存储的数字标识符不匹配来检测存储在去重存储装置(其可对应于服务器206)内的数据片段122损坏。类似地,校验模块106可以在备份操作期间校验正在备份(例如,正从对应于计算设备202的客户端或顾客备份)的映像的另一个数据片段124的数字指纹226(在计算设备202的附加的元件220内)是否与在损坏之前获取的并已经存储在去重存储装置内的损坏的数据片段122的数字指纹126匹配。最后,响应于校验模块106确定正在备份的映像的数据片段124的数字指纹226与损坏的数据片段122的数字指纹126匹配,附加模块108可以将数据片段124从正在备份的映像附加到已经包含损坏的数据片段122的容器,而不是替换损坏的数据片段122。在这种情况下,在容器内附加的数据片段124的偏移可以大于在同一容器内损坏的数据片段122的偏移。
计算设备202通常表示能够读取计算机可执行指令的任何类型或形式的计算设备。在一些实施方案中,计算设备202可对应于通过服务器206执行备份和/或恢复操作的客户端或顾客设备,服务器206对应于去重存储系统。计算设备202的附加的示例包括但不限于膝上型电脑、平板电脑、台式计算机、服务器、蜂窝电话、个人数字助理(PDA)、多媒体播放器、嵌入式系统、可穿戴设备(例如,智能手表、智能眼镜等)、游戏机、以上项中的一个或多个的变型或组合、或任何其他合适的计算设备。
服务器206通常表示能够通过去重来促成数据存储的任何类型或形式的计算设备,如下面进一步讨论的。服务器206的附加的示例包括但不限于存储服务器、数据库服务器、应用服务器和/或web服务器,它们被配置为运行某些软件应用程序和/或提供各种存储、数据库和/或web服务。虽然在图2中示出为单个实体,服务器206可以包括和/或表示彼此结合来工作和/或操作的多个服务器。
网络204通常表示能够促进通信或数据传送的任何介质或架构。在一个示例中,网络204可以促成计算设备202与服务器206之间的通信。在该示例中,网络204可以使用无线和/或有线连接来促成通信或数据传输。网络204的示例包括但不限于:内联网、广域网(WAN)、局域网(LAN)、个人区域网(PAN)、互联网、电力线通信(PLC)、蜂窝网络(例如,全球移动通信系统(GSM)网络)、以上项中的一个或多个的部分、以上项中的一个或多个的变型或组合,或任何其他合适的网络。
许多其他设备或子系统可以连接到图1中的计算系统100和/或图2中的计算系统200。相反,图1和图2中所示的组件和设备不必都存在以实践本文所述和/或示出的实施方案。上文提及的设备和子系统也可以按照与图2所示不同的方式互连。计算系统100和200还可以采用任何数量的软件、固件和/或硬件配置。例如,本文所公开的示例性实施方案中的一个或多个实施方案可以被编码为计算机可读介质上的计算机程序(也被称为计算机软件、软件应用程序、计算机可读指令和/或计算机控制逻辑)。
如本文所用,术语“计算机可读介质”通常是指能够存储或携带计算机可读指令的任何形式的设备、载体或介质。计算机可读介质的示例包括但不限于传输型介质,诸如载波,和非暂态型介质,诸如磁存储介质(例如,硬盘驱动器、磁带驱动器和软盘)、光存储介质(例如,光盘(CD)、数字视频盘(DVD)、BLU-RAY盘)、电子存储介质(例如,固态驱动器和闪存介质)和其他分配系统。
图3是用于修复去重存储装置中的映像的示例性计算机实现的方法300的流程图。图3中所示的步骤可以通过任何合适的计算机可执行代码和/或计算系统执行,包括图1中的系统100、图2中的系统200和/或以上项中的一个或多个的变型或组合。在一个示例中,图3中所示的每个步骤可以表示算法,其结构包括多个子步骤和/或由多个子步骤表示,这些子步骤的示例将在下面更详细地提供。
参考图3,在步骤302处,本文描述的系统中的一个或多个可以通过对数据片段执行算法以生成数据片段的数字标识符并确定数字标识符与数据片段的先前存储的数字标识符不匹配来检测存储在去重存储装置中的数据片段损坏。例如,检测模块104可以作为图2中的服务器206的一部分通过对数据片段122执行算法以生成数据片段122的数字标识符并确定数字标识符与数据片段122的先前存储的数字标识符不匹配来检测存储在服务器206内的数据片段122损坏。
如本文所用,术语“数据片段”通常是指去重系统可多次引用而不是存储对应数据的多个副本的数据片段,从而实现去重。在一些实施方案中,去重系统可以仅存储数据片段的单个实例,这个实例在去重系统内可能是唯一的,并且由此通过引用数据片段的单个实例来使数据片段的任何其他实例能够被有效地存储。另外,如本文所用,短语“损坏的”通常是指防止去重系统访问对应数据片段的任何问题、故障和/或错误。在一些示例中,数据片段可能因对应于物理存储设备上的特定位置的硬件和/或软件故障而损坏。
检测模块104能够以各种方式检测到数据片段损坏。在一些示例中,检测模块104可以通过对数据片段执行以下中的至少一个来检测数据片段损坏:(i)校验和算法,(ii)散列算法,和/或(iii)数字指纹算法。这些算法中的一种或多种可以生成识别数据片段的输出,在这种意义上,算法针对特定数据片段生成该输出,但是根据统计测量,不可能针对不同数据片段生成相同输出。在一个示例中,从算法得到的数字标识符可对应于数据片段的数字指纹,诸如数字指纹126,其在步骤304处进一步由校验模块106引用,如下面进一步讨论的。
在一个实施方案中,检测模块104可以响应于检测到存储在去重存储装置内的数据片段损坏而将数据片段的数字指纹添加到识别损坏的数据片段的指纹损坏列表。数据片段的数字指纹可以唯一地识别数据片段,在这种意义上,根据统计测量,数据片段的任何变化不可能产生相同的数字指纹。更一般地,检测模块104可以出于执行方法300的目的而维护损坏的数据片段的列表。检测模块104可以部分地通过存储在列表内被检测为损坏的数据片段的标识符来维护列表,并且这些标识符可以包括数字指纹。指纹损坏列表可以另外存储包含损坏的数据片段的容器的标识符,如下面进一步讨论的。
如本文所用,术语“容器”通常是指以对应偏移存储用于去重的数据片段(如上面在去重存储装置的上下文中进一步定义的)的硬件、软件、虚拟和/或逻辑存储设备、文件夹、文件和/或其他存储容器。在一些示例中,容器能够以滚动或时间顺序的方式存储数据片段,使得稍后存储的数据片段以增加或更大的偏移存储,如下面进一步讨论的。在另外的示例中,当这些映像包含先前未存储在任何其他容器内的数据片段时,去重系统可以为相应映像创建容器(即,在任何其他容器内缺少数据片段产生对生成新的容器的需要)。在特定示例中,容器对应于由去重存储系统建立的用于存储数据片段的文件。另外,在一些示例中,检测模块104可以响应于检测到存储在去重存储装置内的数据片段损坏而用设定为真的损坏标志来标记数据片段。如这里所用,术语“标志”通常是指出于标记对应数据片段是否损坏的目的而区分真或假的任何位或位序列。
在步骤304处,本文描述的系统中的一个或多个可以在备份操作期间校验正在备份的映像的数据片段的数字指纹是否与在损坏之前获取的并已经存储在去重存储装置中的损坏的数据片段的数字指纹匹配。例如,校验模块106可以作为图2中的服务器206的一部分在备份操作期间校验正在备份的映像的数据片段124的数字指纹226是否与在损坏之前获取的并已经存储在服务器206中的损坏的数据片段122的数字指纹126匹配。
校验模块106能够以各种方式校验两个数字指纹是否匹配。在一些示例中,校验模块106可以执行位比较以识别两个数字指纹之间的任何位是否不同。另外,在其他示例中,校验模块106可以检索先前存储在去重存储装置内的数字指纹126。可能在数据片段122损坏之前的某个时间生成或计算数字指纹126。因此,数字指纹126可以识别数据片段122的未损坏的内容。通过在作为备份操作的一部分被上载的过程中校验数字指纹126是否匹配数据片段124的数字指纹226,校验模块106可以有效地确定一个或多个客户端设备(诸如计算设备202)是否另外包含数据片段122的未损坏的版本或实例。
在更具体的示例中,校验模块106可以校验指纹损坏列表以确定正在备份的映像的数据片段124的数字指纹226与在损坏之前获取的并已经存储在去重存储装置中的损坏的数据片段122的数字指纹126匹配(即,可以校验数字指纹226是否与存储在指纹损坏列表内的数字指纹126的实例匹配)。换句话说,校验模块106可以在备份操作期间校验正在备份的映像是否包含先前在去重服务器处被检测为损坏并在指纹损坏列表上被识别出的任何一个或多个数据片段的未损坏的版本。换句话说,对于在备份操作中由传入映像引用的一个、一些或所有数据片段,校验模块106可以校验该数据片段是否与识别先前存储在去重存储装置内并已经损坏的数据片段的数字指纹匹配。通过自动地、例行地或周期性扫描或搜索传入映像,作为备份过程的一部分或响应于备份过程,对于这些数据片段的未损坏的版本,模块102由此可以利用数据片段的未损坏的版本以自动地修复去重存储装置中的对应映像,如下面进一步讨论的。
在步骤306处,本文所述的系统中的一个或多个可以响应于确定正在备份的映像的数据片段的数字指纹与损坏的数据片段的数字指纹匹配,将数据片段从正在备份的映像附加到已经包含损坏的数据片段的容器,使得在容器内附加数据片段的偏移大于在同一容器内的损坏的数据片段的偏移,而不是替换损坏的数据片段。例如,附加模块108可以作为图2中的服务器206的一部分响应于校验模块106确定正在备份的映像的数据片段124的数字指纹226与损坏的数据片段122的数字指纹126匹配而将数据片段124从正在备份的映像附加到已经包含损坏的数据片段122的容器,而不是替换损坏的数据片段122。
如本文所用,短语“附加”通常是指在容器内的端部处或以当前偏移将数据片段添加到容器,而不是替换或覆盖先前存储在容器内的数据片段的损坏的版本。一般来讲,容器能够以滚动或时间顺序的方式以相应偏移将数据片段存储在去重系统内,使得数据片段的稍后写入将造成数据片段以更大的偏移存储在容器内。此外,一般来讲,如本文所用,术语“容器”通常是指物理、逻辑的和/或其他存储设备或位置,其被配置为以相应偏移将数据片段存储在去重系统内,如上面所述讨论。
附加模块108能够以各种方式附加数据片段的未损坏的实例。在一些示例中,附加模块108能够以有效地修复引用损坏的数据片段的至少一个映像的方式将数据片段从正在备份的映像附加到容器。如本文所用,短语“有效地修复”通常是指将数据片段附加在去重系统内,该去重系统被配置为响应于尝试访问数据片段(例如,作为用于恢复引用数据片段的磁盘映像的恢复过程的一部分)而提供数据片段的未损坏的版本,而不是数据片段的先前存储的损坏的版本,从而克服与数据片段的损坏相关联的问题。例如,提供模块110可以在用于恢复引用损坏的数据片段的映像的恢复操作期间基于具有更大偏移的附加数据片段而提供附加数据片段而不是损坏的数据片段。
在更具体的示例中,提供模块110可以根据读取操作来提供数据片段124而不是损坏的数据片段122,该读取操作被配置为在具有相同数字指纹的多个数据片段之间选择在容器内具有最大偏移的数据片段。提供模块110可以通过数据片段的在容器内的偏移来对容器内的数据片段进行排序,并且由此基于排序而为数据片段提供更大的偏移。更一般地,如上所述,提供模块110可以被配置为在容器内搜索具有与在损坏之前的数据片段的数字指纹匹配的数字指纹的数据片段。在一些示例中,提供模块110可以识别具有匹配的数字指纹的多个数据片段。在这些示例中,提供模块110可以被配置为选择在容器内具有最大偏移的数据片段。附加地或另选地,提供模块110可以被配置为仅选择未被检测为损坏的数据片段,诸如通过引用数据片段的对应损坏标志,如下面进一步讨论的。在其他示例中,提供模块110可以仅以确保具有匹配的数字指纹的第一发现数据片段在容器内具有最大偏移的方式在容器中搜索具有匹配的数字指纹的数据片段。换句话说,提供模块110可以在容器中按从较高偏移到较低偏移的方向搜索具有匹配的数字指纹的数据片段。
图4示出了容器402和容器404在数据片段中的一个已经损坏之后如何存储由映像406引用的各种数据片段的图示400。具体地,容器402包含两个数据片段,数据片段1在数据片段2中。在该图的示例中,这些容器还针对每个数据片段存储指定该数据片段是否损坏的标志。虽然在该示例中,针对每个数据片段存储标志,但是在其他示例中,仅在检测到数据片段损坏时才会针对数据片段插入标志,如上所述。如图4中进一步所示,在该示例中,去重存储装置通过引用形成映像406的三个数据片段,即存储在容器1内的数据片段1、存储在容器1内的数据片段2和存储在容器2内的数据片段3来实现映像406的恢复。值得注意,存储在容器402和404内的所有数据片段都是未损坏的,不过存储在容器402内的数据片段1除外,该数据片段已经损坏,如上面所讨论,并且因此具有设定为真的对应损坏标志。
图5示出了进一步示出了容器402和容器404在损坏的数据片段被修复之后如何存储由映像406引用的数据片段的图示500,如下面进一步讨论的。具体地,图5进一步示出了数据片段1的未损坏的版本已经被附加到容器402(例如,在容器402的端部或当前写入位置处)。由于数据片段1的新添加的未损坏的版本未损坏,因此对应损坏标志尚未设定为真。因此,在用于恢复映像406的恢复操作期间,提供模块110可以通过提供附加数据片段1而不是损坏的和先前存储的数据片段1来提供来自容器402的数据片段1的未损坏的版本。提供模块110能够以上述的任何方式提供数据片段的未损坏的版本。例如,提供模块110可以按从较高偏移到较低偏移的方向搜索容器402内的匹配的数据片段,从而在搜索内首先遇到数据片段的未损坏的版本。提供模块110还可以搜索(例如,按从较高偏移到较低偏移的方向)容器402内的第一匹配数据片段,该第一匹配数据片段没有设定为真的损坏标志。在其他示例中,提供模块110可以识别容器402内的所有匹配数据片段,并且然后选择具有最高偏移和/或具有设定为假的损坏标志的数据片段,如上面进一步讨论的。
另外,在一些示例中,附加模块108可以至少部分地通过引用指纹损坏列表内用于损坏的数据片段的容器的标识符,将数据片段附加到已经包含损坏的数据片段的容器而不是不同容器。换句话说,检测模块104可以将损坏的数据片段的数字指纹和/或其中存储损坏的数据片段的容器的标识符中的一个或两者添加到指纹损坏列表。附加模块108可以通过仅引用容器的存储在标识已经存储损坏的数据片段的位置的指纹损坏列表中的标识符来确定将未损坏的数据片段附加到哪个容器,从而使附加模块108能够将未损坏的数据片段附加到同一容器。
以上讨论参考图3的方法300提供了所公开的系统和方法的实施方案的概述。另外,以下讨论提供了对所公开的系统和方法的具体的实施方案的细节的更具体的概述。所公开的系统和方法提供了用于用来自去重系统中的新的备份的良好数据片段自动地修复映像损坏的机制。在去重系统中,一个损坏的片段可能导致许多数据映像损坏,因此在诸如VERITAS MEDIA SERVER DEDUPLICATION POOL的存储系统中,可以引入在线校验机制以防止损坏的数据片段被未来备份引用。然而,在这些示例中,去重系统可能缺少用来自新的备份的数据片段自动地修复损坏的映像的机制。在大多数的情况下,在客户端上仍存在良好的数据片段,并且其将进入具有新的备份的去重服务器。所公开的系统和方法可以用传入良好数据片段自动地修复损坏的映像。
自我修复机制可以包括以下三个操作中的一个或多个。在线或损坏检测过程(诸如循环冗余校验)可以计算存储的数据片段的校验和并将其与先前存储的校验和(即,先前存储的在数据片段损坏之前计算的校验和)进行比较。如果不匹配,那么将数据片段标记有设定为真的损坏标志。可以将损坏的指纹及其容器标识符添加到指纹损坏列表。在备份操作期间,将执行查询以校验被上载的映像所引用的未损坏的数据片段的一个或多个数字指纹是否与存储在指纹损坏列表内的一个或多个数字指纹匹配。如果在指纹损坏列表中找到匹配项,那么将上载未损坏的数据片段并将其附加到同一容器。另外,可以从指纹损坏列表移除数据片段的指纹。如果在指纹损坏列表中未找到指纹,那么针对正常去重指纹索引(例如,先前建立的容器)校验数字指纹,并且如果未找到匹配,那么可以生成新的容器,并且可以将数据片段存储在新的容器中。在映像恢复操作期间,如果在具有相同的数字指纹的容器中存在多于一个数据片段,那么恢复操作可以使用在容器内具有最大偏移的数据片段来执行恢复。
将未损坏的数据片段附加到同一容器而不是替换损坏的数据片段的内容和/或将未损坏的数据片段写入不同容器避免与这些替代解决方案相关联的问题。具体地,在替换损坏的数据片段的内容的情况下,由于物理存储的一部分(诸如静默硬盘扇区)的故障,数据片段可能损坏。因此,在将未损坏的数据片段复制到同一位置之后,数据片段可能再次损坏。另外,由于压缩方案(例如Lempel-Ziv-Oberhumer压缩),即使使用相同的原始数据片段内容,也不一定生成相同大小的压缩数据,因此替换损坏的数据片段的内容可能是不可能的。此外,将未损坏的数据片段写入不同容器而不是相同的容器可能导致修改引用损坏的数据片段的一些或所有映像的一些或所有元数据。类似地,将未损坏的数据片段写入不同容器可能导致将对应映像引用添加到不同(例如,新的)容器。对应成本可能过高。
虽然上述公开使用特定框图、流程图和示例阐述了各种实施方案,但每个框图组件、流程图步骤、操作和/或本文描述和/或示出的组件可使用多种硬件、软件或固件(或它们的任意组合)配置单独和/或共同地实施。此外,包含在其他组件内的组件的任何公开应当被视为在本质上是示例性的,因为可实施许多其他体系结构来实现相同的功能。
在一些示例中,图1中的示例性系统100的全部或一部分可以表示基于云计算或网络的环境的部分。云计算环境可经由互联网提供各种服务和应用程序。这些基于云的服务(例如软件即服务、平台即服务、基础设施即服务等)可通过网页浏览器或其它远程接口访问。本文所述的各种功能可通过远程桌面环境或任何其它基于云的计算环境提供。
在各种实施方案中,图1中的示例性系统100的全部或一部分可以促成基于云的计算环境内的多租户应用。换句话讲,本文所述的模块可以配置计算系统(例如,服务器)以促成本文所述的功能中的一种或多种的多租户应用。例如,本文所述的模块中的一个或多个可以对服务器进行编程以允许两个或更多个客户端(例如,顾客)共享正在服务器上运行的应用程序。以这种方式编程的服务器可在多个顾客(即,租户)之间共享应用程序、操作系统、处理系统和/或存储系统。本文所述的模块中的一个或多个还可为每个顾客分割多租户应用程序的数据和/或配置信息以使得一个顾客不能访问另一个顾客的数据和/或配置信息。
根据各种实施方案,图1中的示例性系统100的全部或一部分可以在虚拟环境内实现。例如,本文所述的模块和/或数据可在虚拟机内驻留和/或执行。如本文所用,术语“虚拟机”通常是指由虚拟机管理器(例如,管理程序)从计算硬件中提取出来的任何操作系统环境。
在一些示例中,图1中的示例性系统100的全部或一部分可以表示移动计算环境的部分。移动计算环境可以由多种移动计算设备实现,所述移动计算设备包括移动电话、平板电脑、电子书阅读器、个人数字助理、可穿戴计算设备(例如,具有头戴式显示器的计算设备、智能手表等)、以上项中的一个或多个的变型或组合、或任何其他合适的移动计算设备。在一些示例中,移动计算环境可具有一个或多个显著特征,包括例如依赖电池供电、在任何给定时间只呈现一个前台应用程序、远程管理特征、触摸屏特征、(例如,由全球定位系统、陀螺仪、加速计等提供的)位置和移动数据、用于限制对系统级配置的修改和/或限制第三方软件检查其他应用程序的行为的能力的受限平台、用于限制应用程序的安装(例如,仅限于安装来源于经批准的应用程序商店的应用程序)的控制设备,等等。本文所述的各种功能可被提供用于移动计算环境和/或可与移动计算环境交互。
本文描述和/或示出的过程参数和步骤序列仅以举例的方式给出并且可根据需要改变。例如,虽然本文示出和/或描述的步骤能够以特定顺序示出或讨论,但这些步骤不必以示出或讨论的顺序来执行。本文描述和/或示出的各种示例性方法也可以省略本文描述或示出的步骤中的一个或多个,或除了所公开的那些步骤之外还包括另外步骤。
虽然本文已经在全功能计算系统的上下文中描述和/或示出了各种实施方案,但是这些示例性实施方案中的一个或多个可以作为各种形式的程序产品分配,而不考虑用于实际实施分配的计算机可读介质的特定类型。本文公开的实施方案还可以使用执行某些任务的模块来实现。这些模块可以包括脚本文件、批文件或可存储在计算机可读存储介质上或计算系统中的其他可执行文件。在一些实施方案中,这些模块可以将计算系统配置为执行本文公开的示例性实施方案中的一个或多个。
前述描述旨在使本领域的其他技术人员能够最好地利用本文公开的示例性实施方案的各个方面。该示例性描述并非旨在是详尽的或限于所公开的任何确切形式。在不脱离本公开的实质和范围的前提下,可进行许多修改和变化。本文所公开的实施方案在所有方面均应被视为示例性的而非限制性的。应参考所附权利要求及其等同形式来确定本公开的范围。
除非另有说明,否则本说明书和权利要求中所用的术语“连接到”和“联接到”(以及它们的衍生形式)应被理解为既允许直接的连接,又允许间接(即,经由其他元件或组件)的连接。此外,本说明书和权利要求中所用的术语“一”或“一个”应被理解为意指“至少一个......”。最后,为了便于使用,本说明书和权利要求中所用的术语“包括”和“具有”(以及它们的衍生形式)与词语“包含”可互换并且与词语“包含”具有相同含义。

Claims (20)

1.一种用于修复去重存储装置中的映像的计算机实现的方法,所述方法的至少一部分由包括至少一个处理器的计算设备执行,所述方法包括:
通过对数据片段执行算法以生成所述数据片段的数字标识符并通过确定所述数字标识符与所述数据片段的先前存储的数字标识符不匹配来检测存储在去重存储装置内的所述数据片段是损坏的数据片段;
在备份操作期间,校验正在备份的映像的数据片段的数字指纹是否与在损坏之前获取的并已经存储在所述去重存储装置内的所述损坏的数据片段的数字指纹匹配;以及
响应于确定正在备份的所述映像的所述数据片段的所述数字指纹匹配所述损坏的数据片段的所述数字指纹,将所述数据片段从正在备份的所述映像附加到已经包含所述损坏的数据片段的容器作为附加数据片段,使得在所述容器内所述附加数据片段的偏移大于在同一容器内所述损坏的数据片段的偏移,而不是替换所述损坏的数据片段。
2.根据权利要求1所述的计算机实现的方法,其中所述算法包括以下中的至少一种:
校验和算法;
散列算法;和
数字指纹算法。
3.根据权利要求1所述的计算机实现的方法,其中将所述数据片段从正在备份的所述映像附加到所述容器有效地修复引用所述损坏的数据片段的至少一个映像。
4.根据权利要求1所述的计算机实现的方法,还包括在恢复引用所述损坏的数据片段的映像的恢复操作期间,基于具有较大偏移的所述附加数据片段而提供所述附加数据片段而不是所述损坏的数据片段。
5.根据权利要求4所述的计算机实现的方法,其中根据读取操作来执行提供所述附加数据片段而不是所述损坏的数据片段,所述读取操作被配置为在具有相同的数字指纹的多个数据片段之间选择在所述容器内具有最大偏移的所述数据片段。
6.根据权利要求1所述的计算机实现的方法,还包括响应于检测到存储在去重存储装置内的所述数据片段是损坏的数据片段,将所述数据片段的所述数字指纹添加到识别损坏的数据片段的指纹损坏列表。
7.根据权利要求6所述的计算机实现的方法,还包括将所述容器的标识符与所述数据片段的所述数字指纹一起添加到所述指纹损坏列表。
8.根据权利要求7所述的计算机实现的方法,其中至少部分地通过引用所述指纹损坏列表内用于所述损坏的数据片段的所述容器的所述标识符,将所述数据片段附加到已经包含所述损坏的数据片段的所述容器而不是不同容器。
9.根据权利要求6所述的计算机实现的方法,还包括在所述备份操作期间校验所述指纹损坏列表以确定正在备份的所述映像的所述数据片段的所述数字指纹与在损坏之前获取的并已经存储在所述去重存储装置中的所述损坏的数据片段的所述数字指纹匹配。
10.根据权利要求1所述的计算机实现的方法,还包括响应于检测到存储在所述去重存储装置内的所述数据片段是损坏的数据片段,用设定为真的损坏标志来标记所述数据片段。
11.一种用于修复去重存储装置中的映像的系统,所述系统包括:
用于检测的装置,所述用于检测的装置存储在存储器中,所述用于检测的装置通过对数据片段执行算法以生成所述数据片段的数字标识符并通过确定所述数字标识符与所述数据片段的先前存储的数字标识符不匹配来检测存储在去重存储装置内的所述数据片段是损坏的数据片段;
用于校验的装置,所述用于校验的装置存储在存储器中,所述用于校验的装置在备份操作期间,校验正在备份的映像的数据片段的数字指纹是否与在损坏之前获取的并已经存储在所述去重存储装置内的所述损坏的数据片段的数字指纹匹配;
用于附加的装置,所述用于附加的装置存储在存储器中,所述用于附加的装置响应于确定正在备份的所述映像的所述数据片段的所述数字指纹匹配所述损坏的数据片段的所述数字指纹,将所述数据片段从正在备份的所述映像附加到已经包含所述损坏的数据片段的容器作为附加数据片段,使得在所述容器内所述附加数据片段的偏移大于在同一容器内所述损坏的数据片段的偏移,而不是替换所述损坏的数据片段;和
至少一个物理处理器,所述至少一个物理处理器被配置为执行所述用于检测的装置、所述用于校验的装置和所述用于附加的装置。
12.根据权利要求11所述的系统,其中所述算法包括以下中的至少一种:
校验和算法;
散列算法;和
数字指纹算法。
13.根据权利要求11所述的系统,其中所述用于附加的装置以有效地修复引用所述损坏的数据片段的至少一个映像的方式将所述数据片段从正在备份的所述映像附加到所述容器。
14.根据权利要求11所述的系统,还包括用于提供的装置,所述用于提供的装置存储在存储器中,所述用于提供的装置在恢复引用所述损坏的数据片段的映像的恢复操作期间,基于具有较大偏移的所述附加数据片段而提供所述附加数据片段而不是所述损坏的数据片段。
15.根据权利要求14所述的系统,其中所述用于提供的装置根据读取操作来提供所述附加数据片段而不是所述损坏的数据片段,所述读取操作被配置为在具有相同的数字指纹的多个数据片段之间选择在所述容器内具有最大偏移的所述数据片段。
16.根据权利要求11所述的系统,其中所述用于检测的装置响应于检测到存储在去重存储装置内的所述数据片段是损坏的数据片段,将所述数据片段的所述数字指纹添加到识别损坏的数据片段的指纹损坏列表。
17.根据权利要求16所述的系统,其中所述用于检测的装置将所述容器的标识符与所述数据片段的所述数字指纹一起添加到所述指纹损坏列表。
18.根据权利要求17所述的系统,其中所述用于附加的装置至少部分地通过引用所述指纹损坏列表内用于所述损坏的数据片段的所述容器的所述标识符,将所述数据片段附加到已经包含所述损坏的数据片段的所述容器而不是不同容器。
19.根据权利要求16所述的系统,其中所述用于检测的装置还在所述备份操作期间校验所述指纹损坏列表以确定正在备份的所述映像的所述数据片段的所述数字指纹与在损坏之前获取的并已经存储在所述去重存储装置中的所述损坏的数据片段的所述数字指纹匹配。
20.根据权利要求11所述的系统,其中所述用于附加的装置还响应于检测到存储在所述去重存储装置内的所述数据片段是损坏的数据片段,用设定为真的损坏标志来标记所述数据片段。
CN201680089144.6A 2016-09-29 2016-09-29 用于修复去重存储装置中的映像的系统和方法 Active CN109690493B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2016/100855 WO2018058446A1 (en) 2016-09-29 2016-09-29 Systems and methods for healing images in deduplication storage

Publications (2)

Publication Number Publication Date
CN109690493A CN109690493A (zh) 2019-04-26
CN109690493B true CN109690493B (zh) 2023-03-31

Family

ID=61686237

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680089144.6A Active CN109690493B (zh) 2016-09-29 2016-09-29 用于修复去重存储装置中的映像的系统和方法

Country Status (5)

Country Link
US (1) US10031816B2 (zh)
EP (1) EP3519965B1 (zh)
JP (1) JP6854885B2 (zh)
CN (1) CN109690493B (zh)
WO (1) WO2018058446A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11269888B1 (en) * 2016-11-28 2022-03-08 Amazon Technologies, Inc. Archival data storage for structured data
US10795859B1 (en) 2017-04-13 2020-10-06 EMC IP Holding Company LLC Micro-service based deduplication
US10795860B1 (en) 2017-04-13 2020-10-06 EMC IP Holding Company LLC WAN optimized micro-service based deduplication
US10936543B1 (en) 2017-07-21 2021-03-02 EMC IP Holding Company LLC Metadata protected sparse block set for SSD cache space management
US10459633B1 (en) 2017-07-21 2019-10-29 EMC IP Holding Company LLC Method for efficient load balancing in virtual storage systems
US10949088B1 (en) 2017-07-21 2021-03-16 EMC IP Holding Company LLC Method or an apparatus for having perfect deduplication, adapted for saving space in a deduplication file system
US10860212B1 (en) 2017-07-21 2020-12-08 EMC IP Holding Company LLC Method or an apparatus to move perfect de-duplicated unique data from a source to destination storage tier
US11461269B2 (en) 2017-07-21 2022-10-04 EMC IP Holding Company Metadata separated container format
US11113153B2 (en) 2017-07-27 2021-09-07 EMC IP Holding Company LLC Method and system for sharing pre-calculated fingerprints and data chunks amongst storage systems on a cloud local area network
US20190034282A1 (en) * 2017-07-28 2019-01-31 EMC IP Holding Company LLC Offline repopulation of cache
US10481813B1 (en) 2017-07-28 2019-11-19 EMC IP Holding Company LLC Device and method for extending cache operational lifetime
US10929382B1 (en) 2017-07-31 2021-02-23 EMC IP Holding Company LLC Method and system to verify integrity of a portion of replicated data
US11093453B1 (en) 2017-08-31 2021-08-17 EMC IP Holding Company LLC System and method for asynchronous cleaning of data objects on cloud partition in a file system with deduplication
US11494335B2 (en) * 2019-10-25 2022-11-08 EMC IP Holding Company LLC Reconstructing lost data objects by generating virtual user files from available tiers within a node
US20230244569A1 (en) * 2022-01-28 2023-08-03 Pure Storage, Inc. Recover Corrupted Data Through Speculative Bitflip And Cross-Validation

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103229165A (zh) * 2010-08-12 2013-07-31 安全第一公司 用于数据的安全远程存储的系统和方法
CN103548003A (zh) * 2011-02-11 2014-01-29 赛门铁克公司 用于提高去重复系统备份性能的客户端侧指纹缓存的过程和方法
US9002798B1 (en) * 2013-02-11 2015-04-07 Symantec Corporation Systems and methods for remedying corrupt backup images of host devices

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7162582B2 (en) 2002-11-18 2007-01-09 Aristos Logic Corporation Caching in a virtualization system
US9065835B2 (en) 2008-07-23 2015-06-23 International Business Machines Corporation Redirecting web content
US7913114B2 (en) * 2008-07-31 2011-03-22 Quantum Corporation Repair of a corrupt data segment used by a de-duplication engine
US8290915B2 (en) 2008-09-15 2012-10-16 International Business Machines Corporation Retrieval and recovery of data chunks from alternate data stores in a deduplicating system
US8495392B1 (en) * 2010-09-02 2013-07-23 Symantec Corporation Systems and methods for securely deduplicating data owned by multiple entities
CN102799598A (zh) * 2011-05-25 2012-11-28 英业达股份有限公司 重复数据删除的数据复原方法
AU2012395331B2 (en) * 2012-11-21 2017-06-01 Huawei Technologies Co., Ltd. Method and apparatus for recovering data
US9442807B1 (en) * 2013-05-29 2016-09-13 Veritas Technologies, LLC Handling data segments in deduplication
US9928248B2 (en) * 2013-07-08 2018-03-27 International Business Machines Corporation Self-healing by hash-based deduplication
US10380072B2 (en) * 2014-03-17 2019-08-13 Commvault Systems, Inc. Managing deletions from a deduplication database
US9633056B2 (en) * 2014-03-17 2017-04-25 Commvault Systems, Inc. Maintaining a deduplication database
CN105930234A (zh) * 2016-05-25 2016-09-07 华中科技大学 一种基于溯源信息的数据重建系统及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103229165A (zh) * 2010-08-12 2013-07-31 安全第一公司 用于数据的安全远程存储的系统和方法
CN103548003A (zh) * 2011-02-11 2014-01-29 赛门铁克公司 用于提高去重复系统备份性能的客户端侧指纹缓存的过程和方法
US9002798B1 (en) * 2013-02-11 2015-04-07 Symantec Corporation Systems and methods for remedying corrupt backup images of host devices

Also Published As

Publication number Publication date
EP3519965A1 (en) 2019-08-07
CN109690493A (zh) 2019-04-26
US20180089037A1 (en) 2018-03-29
WO2018058446A1 (en) 2018-04-05
US10031816B2 (en) 2018-07-24
EP3519965A4 (en) 2020-06-10
JP6854885B2 (ja) 2021-04-07
JP2019530085A (ja) 2019-10-17
EP3519965B1 (en) 2023-05-03

Similar Documents

Publication Publication Date Title
CN109690493B (zh) 用于修复去重存储装置中的映像的系统和方法
US9715521B2 (en) Data scrubbing in cluster-based storage systems
US8954398B1 (en) Systems and methods for managing deduplication reference data
US9594652B1 (en) Systems and methods for decreasing RAID rebuilding time
US10666435B2 (en) Multi-tenant encryption on distributed storage having deduplication and compression capability
US7509544B2 (en) Data repair and synchronization method of dual flash read only memory
US9977706B2 (en) System and method of validating data for incremental format of backup archive
US9979785B2 (en) Systems and methods for restoring data from opaque data backup streams
US10310736B1 (en) Systems and methods for storing data
US10127119B1 (en) Systems and methods for modifying track logs during restore processes
US10691543B2 (en) Machine learning to enhance redundant array of independent disks rebuilds
US8229898B1 (en) Methods and systems for utilizing redundant data
US10581602B2 (en) End-to-end checksum in a multi-tenant encryption storage system
CN111771193A (zh) 用于在生产集群中备份最终一致的数据库的系统和方法
US20140379649A1 (en) Distributed storage system and file synchronization method
US9280431B2 (en) Prioritizing backups on a disk level within enterprise storage
US9645897B2 (en) Using duplicated data to enhance data security in RAID environments
US10366076B1 (en) Systems and methods for repairing corrupted data segments in deduplicated data systems
US8595271B1 (en) Systems and methods for performing file system checks
US9959179B1 (en) Systems and methods for repairing corrupted data segments
US8595243B1 (en) Systems and methods for deduplicating archived data
US10002050B1 (en) Systems and methods for improving rehydration performance in data deduplication systems
US20170337213A1 (en) Metadata regeneration
JP6327028B2 (ja) オブジェクトストレージシステムおよびその制御方法およびその制御プログラム
US9424189B1 (en) Systems and methods for mitigating write-back caching failures

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