CN108196983A - 一种提高备份恢复速度的方法及系统 - Google Patents
一种提高备份恢复速度的方法及系统 Download PDFInfo
- Publication number
- CN108196983A CN108196983A CN201711479820.3A CN201711479820A CN108196983A CN 108196983 A CN108196983 A CN 108196983A CN 201711479820 A CN201711479820 A CN 201711479820A CN 108196983 A CN108196983 A CN 108196983A
- Authority
- CN
- China
- Prior art keywords
- data
- backup
- capsule
- module
- subset
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1453—Management of the data involved in backup or backup restore using de-duplication of the data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种提高备份恢复速度的方法及系统,方法包括:识别重复数据删除的存储系统中数据容器的数据备份;检测包含附加数据的后续备份操作;计算在后续备份中附加数据与存储在数据容器的数据之间的重复量;确定附加数据与数据容器中的数据之间的重复量低于预定阈值;识别至少一个附加数据容器以存储附加数据,而不是存储相对于数据容器复制附加数据;将附加数据存储在附加数据容器中以便于增加后续备份的恢复速度。本发明通过在备份操作期间预取存储特定数据的重复实例来提高重复数据消除的存储系统中备份的恢复速。
Description
技术领域
本发明涉及存储恢复技术领域,特别是一种提高备份恢复速度的方法及系统。
背景技术
人们经常使用重复数据删除的存储系统,通过识别备份图像中包含冗余数据的模式来减少存储备份图像所需的存储空间。例如,备份和恢复技术可以捕获客户端设备的备份图像,并且识别备份图像和重复数据删除的存储系统内一个或多个数据容器的各种数据模式。在本申请中,该模式不是将数据模式的多个实例存储到重复数据删除的存储系统,而是使用备份和还原技术将备份图像配置为简单地引用已经包含在重复数据删除的存储系统内的数据容器的数据模式。通过该数据模式,备份和还原技术可以减少在重复数据删除的存储系统中存储备份图像所需的存储空间量。
不幸地,虽然传统的备份和恢复技术可能减少将重复数据删除的存储系统中备份图像存储所需的存储空间,但这种备份和还原技术也可能具有某些缺陷和低效率。在一些实例中,随着存储到该系统的备份图像的数量增加,传统的备份和还原技术恢复之后备份数据的速度可能会显著减少,但新的技术在恢复存储到该系统时,恢复速度将高达每秒1千兆字节,而传统的备份和恢复技术只有每秒33兆字节。
发明内容
本发明的目的在于克服现有技术的不足,提供一种提高备份恢复速度的方法及系统,解决了传统数据删除后无法恢复的弊端,以及恢复数据时需要包含冗余数据的模式,使得恢复时间过慢的问题。
本发明的目的是通过以下技术方案来实现的:
一种提高备份恢复速度的方法,所述方法用于在重复数据删除系统中,其至少包含计算设备中一个处理器执行的方法,所述方法包括:
识别重复数据删除存储系统中至少一个数据容器中的数据备份;
检测与数据容器中数据部分相同的附加数据的后续备份;
计算后续备份中附加数据与数据容器中数据之间的重复量;
确定该重复量低于预定阈值;其中所述重复量表示存储在所述数据容器中的与后续备份中包含的附加数据相同的数据相对于存储在所述数据容器中的总数据量的量值;
确保重复量低于预定阈值;
识别至少一个附加数据容器以存储附加数据,将附加数据存储在附加数据容器中以便于增加后续备份的恢复速度。
优选的,所述方法还包括:
检测存储后续备份操作到一个客户端设备的请求;
响应上述请求,从重复数据删除系统中预取后续备份操作的一部分,用于提高该备份操作恢复到客户端设备的速度。
优选的,从重复删除数据的存储系统中预取后续备份操作的方法包括:
识别在后续备份操作中包含一系列数据扩展区的数据容器;
确保数据容器中数据扩展区的子集都是相邻的;
通过上述方式,缓存这些相邻的数据扩展区用于提高备份恢复速度。
优选的,从重复删除数据的存储系统中预取后续备份操作的方法包括:
确保数据容器中数据扩展区的子集都是相邻的;
通过上述方式,缓存这些相邻的数据扩展区用于提高备份恢复速度。
优选的,确保数据容器中数据扩展区的子集都是相邻的方法包括:
识别在后续备份操作时数据容器中每个扩展区的起点;
识别在后续备份操作时数据容器中每个扩展区的终点;
计算一个扩展区的起点和另一个的终点之间的差值。
优选的,缓存相邻数据扩展区的子集包括:
使用单一的读操作读取数据容器内相邻数据扩展区的子集;
通过上述操作,将该子集存储在一个客户端设备的缓存中,用于提高后续备份操作的恢复速度。
优选的,缓存相邻数据扩展区的子集包括:
通过单次读取操作,读取一部分不需要从数据容器恢复后续备份的数据;
在执行以上操作的同时,丢弃不需要的部分数据,而不是将不需要的数据部分存储在高速缓存中。
优选的,所述方法包括:
响应于将所述后续备份恢复到所述客户端设备的请求,检测恢复应用执行的恢复操作;
指导还原应用程序搜索缓存中后续备份操作的数据扩展区的子集,而不是搜索重复数据删除存储系统的数据容器中数据扩展区的子集。
优选的,还原应用程序搜索缓存中后续备份操作的数据扩展区的子集的方法还包括:
当执行恢复操作时,检测到恢复应用程序需要读取数据扩展区的子集;
为了响应该检测,指导还原应用程序搜索缓存中后续备份操作的数据扩展区的子集,而不是搜索重复数据删除存储系统的数据容器中数据扩展区的子集。
优选的,所述方法包括:
确保执行恢复操作时,程序已经从缓存中读取了数据扩展区的子集;
为了响应该操作,将从缓存中删除上述子集。
一种重复数据删除的存储系统,包括:
被编程为识别重复数据删除的存储系统内数据容器的数据备份的识别模块;
被编程为检测与数据容器中至少一部分相同的附加数据的后续备份的检测模块;
被编程为计算后续备份中附加数据与数据容器中数据之间重复量的计算模块;
被编程为确保重复量低于预定阈值的决策模块;
其中所述识别模块进一步被编程为识别重复数据删除的存储系统内附加数据容器中以存储后续备份中的附加数据,以响应所述重复量低于预定阈值;
被编程为将附加数据存储在重复数据删除的存储系统内附加数据容器中的存储模块,以便于增加后续备份的恢复速度;
至少有一个被配置为执行以上模块的处理器。
优选的,被编程为从存储系统预取至少一部分后续备份的预取模块,用于提高后续备份操作在一个客户端设备上的恢复操作。
优选的,预取模块还被编程为:
识别在后续备份操作时数据容器中的数据扩展区;
确保数据扩展区的子集是相邻的;
缓存相邻数据扩展区的子集,用于提高后续备份操作恢复数据到客户端设备的速度。
优选的,预取模块还被编程为:
确保数据容器内的数据扩展区的子集相邻;
同时,缓存其他子集,用于提高备份的恢复速度。
进一步的,其还包括:
识别数据扩展区的地址;
计算数据扩展区地址之间的差异;
确保该差异低于预定阈值。
本发明的有益效果是:本发明通过在备份操作期间预取存储特定数据的重复实例来提高重复数据消除的存储系统中备份的恢复速。
附图说明
图1是用于增加重复数据删除的存储系统中备份恢复速度的示例性系统的框图;
图2是用于增加重复数据删除的存储系统中备份恢复速度的示例性系统的框图;
图3是用于增加重复数据删除的存储系统中备份恢复速度的示例性方法的流程图;
图4是示例性数据容器和备份的图示;
图5是重复数据删除的存储系统中数据容器内数据扩展区的图示;
图6是能够实现本申请描述的一个或多个实例的计算系统的框图;
图7是能够实现本申请描述的一个或多个实例的计算网络的框图。
具体实施方式
下面结合附图进一步详细描述本发明的技术方案,但本发明的保护范围不局限于以下所述。
本申请通常涉及用于提高重复数据消除的存储系统中备份恢复速度的系统和方法。通过计算重复数据删除的存储系统内备份和先前使用的数据容器中数据之间的重复量,使该重复量低于预定阈值的情况下,本申请描述的各种系统和方法可以将备份的一部分存储在新数据容器中作为重复数据。本申请描述的虚拟系统和方法可以提高存储在重复数据删除的存储系统备份中数据容器的存储效率。
此外,通过提高存储效率,本申请描述的各种系统和方法可以减少从该系统恢复备份所需的数据容器的数量。通过减少该数量,本申请所述的各种系统和方法可以增加备份的恢复速度。
此外,通过在还原操作期间从该系统内数据容器预取备份的相邻部分,本申请描述的系统和方法可以减少从系统中恢复备份所需的读取操作的数量,进而提高备份恢复的速度。
如下,将更详细地解释通过在备份和恢复备份时组合这些技术,本申请所述的各种系统和方法将使得备份的恢复速度得到意想不到的增加。在备份和先前使用的数据容器之间的重复量低于预定阈值的情况下,这里描述的系统和方法在实现有选择地存储重复数据时,可以将备份的恢复速度从33MB/秒提高到77MB /秒。
在另一个例子中,通过在还原操作期间仅从重复数据删除的存储系统的数据容器中预取备份的相邻部分,可以将备份的恢复速度从33MB / s增加到140MB/ S。然而,在备份操作期间通过组合,选择性地存储重复数据并且在恢复操作期间预取备份的相邻部分,本申请所描述的系统和方法还可以将备份的恢复速度从33MB / s提高到600MB / s。
以下将参考图1-2,提供用于增加重复数据消除的存储系统中备份恢复速度的示例性系统的详细描述;参考图3描述计算机实现方法;参考图4描述数据容器和备份过程;参考图5描述容器内的数据扩展区;另外,参考图6和7描述计算机系统和网络结构的一个或多个实例。
图1是用于增加重复数据消除的存储系统中备份恢复速度的示例性系统100的框图。如该图所示,系统100包括用于执行一个或多个任务的一个或多个模块102。并且该系统还用于识别重复数据删除系统中数据容器内数据备份的识别模块104和用于检测存储在数据容器中附加数据的后续备份的检测模块106。
此外,系统100还用于计算在后续备份中附加数据与数据容器中数据之间重复量的计算模块108;用于确保后续备份中的附加数据与数据容器中数据之间重复量低于预定阈值的决策模块110;被编程为将附加数据存储在重复数据删除的存储系统内附加数据容器中的存储模块112,以便于增加后续备份的恢复速度;用于响应于将后续备份还原到客户端设备的请求,从存储系统预取至少一部分后续备份的预取模块114。如图1中所示,还包含了表示单个模块或应用程序的某一部分的一个或多个模块102。
在一些实例中,图1所示的一个或多个模块102 表示一个或多个执行任务的计算机设备的软件应用程序。例如,可以代表存储和配置用于计算机设备执行的软件模块,具体这些设备将在图2(例如客户端设备202和重复数据删除系统124)、图6的计算机系统610以及图7中网络架构700进行说明。图1所示模块102还表示所有或部分执行一个或多个任务的具有特殊使用目的的计算机。
如图1所示,系统100包含了一个或多个备份,如备份操作120和备份122。这里的“备份”,是指在特定时间点存储在计算设备上的任意类型的物理或虚拟的包含所有或部分数据的磁盘映像。在一个实例中,备份122代表了在随后的时间点存储在计算设备上的部分数据。
如图1所示,系统100包含一个重复数据删除的存储系统,如系统124。这里“重复数据删除的存储系统”可以是任意类型的存储设备以及能够对备份中数据进行重复数据删除并将此类删除数据存储在数据容器中的机制。在一个实例中,系统124包含一个数据容器126和128,并且数据容器126还包含了备份操作120的一部分,同时数据容器128包含了备份122的一部分。
系统100还包含了一个或多个数据库(图1中未示出)。在一个实例中,数据库被配置为存储用于提高存储在系统124中备份恢复速度的任何数据、元数据和信息。例如,系统124中一个数据库可以存储数据容器126和128。在这个例子中,该数据库可以存储标识包含对应于备份操作120和122的数据容器的元数据。
这样的数据库可以表示一个单独的数据库或计算设备,又或者是一系列的数据库或计算设备。例如,一个数据库表示图1和图2中系统124,图2中客户端设备202,以及图7中网络架构700的一部分。又或者代表了能够访问计算设备的一个或多个独立的设备,例如图1和图2中系统124,图2中客户端设备202,以及图7中网络架构700的一部分。
图1所示的系统100 还以不同的方式进行了实现。例如,系统100代表了图2的系统200的部分内容。如图2所示,系统200包含通过网络204与重复数据删除系统124进行通信的客户端设备202。其中客户端设备202包含一个在该设备上执行恢复操作的恢复应用程序208。
此外,重复数据删除系统124可以用模块102中的一个或多个进行编程,并且该系统能够存储一个或多个数据扩展区(例如,图4中所示的一个或多个数据扩展区400、404和406),且有助于还原应用程序208在恢复操作期间访问这些数据扩展区的高速缓存210。另外,系统124还包含能够存储对应于一个或多个备份操作120(1)-(N)和122的数据容器126(1)-(N)与存储包含后续备份122的附加数据的数据容器128(1)-(N)。正如上文所描述的一样,该系统包含了存储在一个或多个数据容器126(1)-(N)和128(1)-(N)上的重复数据。
在一些实例中,系统124包含一个或多个能够存储对应于一个或多个其他备份(未能在图1或者图2中示出)的数据容器。例如,在客户端设备202的一个或多个其他备份已经被存储到系统124之后,备份操作120可以表示存储在系统124中客户端设备202的备份。在这个例子中,备份122表示在备份操作120被存储到系统124之后的客户端设备202的下一个备份。
在一个实例中,图 1所示的一个或多个模块102在被系统124中至少一个客户端设备202的处理器执行时,将提高设备202和系统124的备份恢复速度。例如,一个或多个模块102可以使客户端设备202和系统124:(1)识别数据容器126中数据的备份操作120;(2)检测数据容器126上附加数据的后续备份122;(3)计算后续备份122中附加数据与数据容器126(1)-(N)中数据之间的重复量;(4)确保后续备份122的附加数据与数据容器126(1)-(N)中数据之间的重复量低于预定阈值;5. 识别至少一个系统124的附加数据容器128(1)-(N)以存储后续备份122的附加数据,而不是对容器128(1)-(N)的重复数据进行删除;6. 将附加数据存储在附加数据容器128(1)-(N)中以便于增加后续备份的恢复速度。
客户端设备202通常表示任意类型的能够读取计算机可读指令的计算设备,例如:台式机、笔记本、服务器、移动电话、多媒体播放器、嵌入式系统、一个或多个以上设备的组合、图6所示的计算系统610以及任意类型的可适用的计算设备。
网络204通常表示任意类型的能够进行通信或信息传输的媒介或架构。网络204的例子包括:局域网、广域网、英特网、个人区域网、内部网、电力线通信网、全球移动通信系统、图7所示的网络架构700 以及其他类似网络。且网络204可以通过有线或者无线方式进行通信。在一个实例中,系统124通过网络204与客户端设备202进行通信。
如图3所示,在步骤302中,一个或多个本申请描述的系统能够识别一个存储在数据容器中数据的备份。此例中,步骤302 的识别模块104,作为图2中系统124客户端设备202的一部分,识别数据容器126(1)-(N)中数据的备份操作120。并且,备份操作120表示在某个特殊的时间点上客户端设备202上数据的备份。
不同的系统会以不同的方式执行步骤302。在一个例子中,识别模块104识别备份操作120,因为备份操作120中相对于系统124内现有数据容器内的至少一部分重复数据将被删除。例如,一个备份应用程序能够在客户端设备202执行备份操作时捕捉到备份操作120。设备202在执行此操作时,该备份应用程序会删除系统124中数据容器126(1)上的备份操作120的重复数据。识别模块104能够在删除的同时识别备份操作120。
在一个实例中,识别模块104识别系统124新建的一个数据容器的备份操作120。例如,在设备202上执行备份操作时,备份应用程序能够创建数据容器126(N),然后将备份操作120的至少一部分数据存储在该容器上。其中,识别模块104能够在存储操作进行的同时识别备份操作120。
在一个实例中,识别模块104能够在备份操作120中包括的所有数据已经存储在系统124中之后识别备份操作120。例如,在执行该操作时,备份应用程序可以相对于数据容器126(1)对备份120的至少一部分进行重复数据删除,并将备份120的至少一部分存储在数据容器126(N)中。其中,识别模块104能够识别备份应用程序删除和存储数据以后的备份操作120。
如图4所示,数据容器126(1)能够存储各种数据片段(例如,本例中的:系统124中的数据400、数据402、数据404、数据406、数据408、数据410)。数据400、402、404、408对应于备份操作120存储在数据容器126(1)中,数据406和410虽然也存储在126(1)中,但对应了不同的备份操作(本申请未示出)。
如图3所示,本申请所述的步骤304检测与数据容器中数据的至少一部分相同的附加数据的一个或多个后续备份。例如,在步骤304中检测模块106,作为图2中系统124和客户端设备202的一部分,能够检测与存储在数据容器126(1)-(N)中数据的至少一部分相同的附加数据的一个或多个后续备份122。其中,后续备份122能够表示在特定时间点位于设备202上的备份操作(例如,在备份操作120之后的特定时间点)。
不同的系统会以不同的方式执行步骤304。在一个实例中,检测模块106能够检测在客户端设备202上的后续备份122的至少一部分。例如,备份应用程序能够在后续备份操作期间捕获设备202上的操作122。其中,模块106能够在识别202上执行备份操作时检测操作122。同理,检测模块106也能够在设备202上操作122执行之后检测到该操作。
在一个实例中,检测模块106能够在后续备份操作122删除相对于数据容器126(1)-(N)和系统124中重复数据进行之前检测到。例如,在设备202上执行该操作时,备份应用程序会对删除数据容器126(1)-(N)上的操作进行准备。其中,检测模块106就能够在该程序进行准备的同时检测到该动作。
在一些实例中,检测模块106能够至少部分地基于后续备份122已经或即将在设备202上被捕获的证据来检测后续备份122。在一个实例中,模块106还能够检测来自备份应用程序的删除重复数据的请求,该请求将删除数据容器126(1)-(N)的后续备份122的至少一部分,并将其存储到系统124中。在另一个例子中,检测模块106能够检测在设备202或系统124上运行的用于初始化后续备份操作的应用程序。
如图4所示,后续备份操作122包含了各种不同的数据(例如:数据400、数据402、数据408、数据412、数据414、数据416)。在一个实例中,后续备份操作122包含与系统124内数据容器126中数据的至少一部分相同的一条或多条数据。例如,如4中的后续备份操作122包含并没有存储在数据容器126(1)上的数据412,数据414和416(存储在其他未在图4中示出的容器上)。
如图3所示,步骤306中描述的系统可以计算后续备份操作的附加数与存储在容器中的数据之间的重复量。例如,在步骤306中计算模块108作为图2中客户端设备202和系统124的一部分,能够计算后续备份操作122的附加数与存储在容器126(1)-(N)中的数据之间的重复数据删除量。其中,重复数据删除量表示存储在数据容器126(1)-(N)中的数据与后续备份操作122中的附件数据之间相同的百分比。
如图4所示,“重复数据删除量”是指与数据容器中存储的数据总量相比,数据容器中存储的数据量与备份中包含数据相同的部分。在一些实例中,“重复数据删除量”和“容器利用率”通常表示,如果备份操作对数据容器进行了重复数据删除,存储在数据容器中的数据量则由备份引用或以其他方式使用。正是如此,“重复数据删除量”和“容器利用率”可以互换使用。
步骤306中描述的系统将以不同的方式实现。在一个实例中,计算模块108比较后续备份122的附加数据和数据容器126(1)中的数据。例如,,计算模块108可以比较图4中备份操作122的数据400、402、404、406、408 与数据容器126(1)中的数据410。
在一个实例中,计算模块108可以确保存储在数据容器126(1)中的数据包含在备份操作122中。例如,计算模块108可以确保存储在数据容器126(1)中的数据400、402、408或者代表了这些数据(数据400、402、404、406、408 与数据容器126(1)中的数据410)一半的数据包含在备份操作122中。换句话说,模块108能够确保后续备份操作122中附加数据和数据容器126(1)的数据之间重复数据删除量达到数据容器126(1)中所有数据的一半。
在一些实例中,备份应用程序可以搜索系统124中一个或多个容器内与后续备份操作122中附加数据相同的这部分数据。例如,该应用程序能够生成数据400、402或者408的一个哈希值。其中,该程序可以比较数据400、402或者数据408的一个哈希值,与数据库或包含存储在系统124内的数据容器126(1)-(N)中的每个数据模式的散列的哈希表。并且该程序能够确保每个数据都能够基于此比较存储在数据容器126(1)中。
在一个实例中,计算模块108能够计算出后续备份操作122中其他数据与系统数据容器126(1)-(N)中另一个数据容器之间的数据重复量。例如,计算模块108能够比较出后续备份操作122中其他数据与系统数据容器126(1)-(N)中一个数据容器的该重复量达到59%。
如图3所示,步骤308中描述的系统能够确保该重复量低于预定阈值。例如,在步骤308中决策模块110能够作为设备202或者系统124的一部分,确保上述重复量低于预定阈值。其中,该预定阈值可以是任何类型的比较测量值,该值用作确定是否对数据容器126(1)-(N)上的后续备份操作122中的附加数据进行重复数据删除,或将附加数据作为重复数据存储在一个或多个新的数据容器中。
在步骤308中不同的系统将以不同的方式进行实现。在一个实例中,决策模块110能够识别该预定阈值。例如,模块110能够定位系统124中一个数据库中的预定阈值,且在定位的同时,模块110确保该值为60%。
在一个实例中,决策模块110可以比较后续备份操作122上附件数据和数据容器126(1)中经过预定阈值处理的数据之间的重复数据量。例如,模块110可以计算出当阈值为60%时该重复量为50%。其中,模块110还能确保该重复量低于预定阈值。
在一个实例中,模块110还可以操作122中其他数据和126(1)-(N)其他数据容器的预定阈值。例如,模块110能够在预定阈值达到60%时,确保重复量为59%。其中,模块110确保该重复量低于预定阈值。
如图3所示,步骤310中描述的系统能够识别重复数据删除系统内数据容器的附加数据,该附加数据存储在后续备份操作中,而不是直接存储在数据容器中。例如,步骤310中识别模块104,作为设备202或系统124的一部分,能够识别系统124上存储备份122中附加数据的附加数据容器128(1)-(N),而不是存储在数据容器126(1)-(N)中的去重数据的附加数据。识别模块104能够初始化识别步骤,用于响应确保数据重复量低于预定阈值的决策。
不同的系统在步骤310中将以不同的方式实现。在一个实例中,识别模块104可以识别已经被预分配为存储系统124中重复数据的附加数据容器128(1)-(N)。例如,备份应用程序能够预分配附加数据容器128(1),然后保持该容器一直为空。并且配置其用于存储在现有数据容器(该容器被初始化为预定阈值低于60%)中复制的数据。然后,识别模块104识别系统124中附加数据容器128(1),用于响应确保后续备份操作122与数据容器126(1)的数据重复量低于预定阈值60%。
在一个实例中,模块104能够创建用于存储后续备份操作122中其他数据的附加数据容器128(N)。例如,模块104可以分配系统124中的附加数据容器128(N),并且进行配置其用于存储其他数据。
如图3所示,步骤312可以存储附加数据容器中的附加数据,用于提高后续备份操作的恢复速度。例如,步骤312中存储模块112,作为客户端设备202或系统124的一部分,可以存储附加数据容器128(1)-(N)的附加数据,而不是存储数据容器126(1)-(N)的数据。
不同的系统在步骤312中将以不同的方式实现。在一个实例中,模块112能够存储附加数据容器128(1)的附加数据作为重复数据,因为数据容器126(1)的容器利用率将低于预定阈值60%。例如,模块112可以存储附加数据容器128(1)中的数据400、402、408、414和416,而不是存储数据容器126(1)的重复删除数据400、402和408。其中,通过存储这些数据,模块112可以提高数据容器存储附加数据的存储效率。
此外,通过提高存储效率,模块112能够减少用于存储后续备份操作122的数据容器的数量,通过该方法提高后续备份操作122的恢复速度。
在一个实例中,因为数据容器126(1)的容器利用率将低于预定阈值60%,存储模块112能够存储数据容器128(1)中的其他数据作为重复数据。例如,模块112能够存储数据容器128(N)中的其他数据作为重复数据,而不是数据容器126(1)-(N)中的其他容器的后续备份操作122的去重数据。通过存储该数据,模块112能够提高用于存储后续备份操作122的数据的存储效率。
在一些实例中,本申请所述系统和方法通过不同的方式提高备份的恢复速度。在一个实例中,检测模块106能够检测到将后续备份操作存储到客户端设备202的请求。例如,恢复应用程序208能够发出请求212,用于响应用户输入的存储后续备份操作122的请求。其中,检测模块106能够检测检测到应用程序208发出的请求212.
在一个例子中,预取模块114可以预取用于响应检测请求212的后续备份操作122中的一部分,还可以识别图5中存储数据扩展区500、502、504和506的数据容器128(1)。然后,预取模块114确保以上数据扩展区包含在备份122中,同时确保这些扩展区都彼此相邻。
在一些实例中,模块114能够识别上述每个扩展区的起点和终点。并且,该模块能够确保每个扩展区开始的地址。例如,模块114能够确保图5中数据容器128中数据扩展区500开始于“0XF000000”,数据扩展区500开始于“0XF0A7D8C0”。其中,模块114也能够确保数据扩展区504开始于“0XF5F5E100”,数据扩展区500开始于“0XF6ACF00”。
在一个实例中,预取模块114能够识别每个数据容器128(1)中数据扩展区的地址。例如,模块114能够确保数据容器128(1)中数据扩展区500以地址“0XF0989680”结束,地址扩展区502以地址“0XF1406F40”结束,地址扩展区504以地址“0XF68E7780”结束,地址扩展区506以地址“0XF7459280”结束。
在一个实例中,预取模块114能够识别数据扩展区500、502、504和506的基于起点的终点和字节数。例如,预取模块114通过向数据容器内数据扩展区围500和502的相应地址添加10兆字节,能够识别地址“0XF0989680”和“0XF1406F40”分别是数据容器128(1)中扩展区500和502的终点。其余扩展区的识别同理。
在一些例子中,预取模块114能够确保数据扩展区500和502是相邻的。在一个实例中,模块114能够计算出扩展区502的起点与扩展区500的终点之间的距离。例如,模块114能够通过使用地址“0XF0989680”减去“0XF0A7D8C0”,得到扩展区500和502之间有1兆字节的距离。同理,确定扩展区504和506之间的距离为2兆字节,502和504之间的的距离为100兆字节。
在计算差值时,模块114能够确保扩展区之间的差值低于预定阈值。该阈值是一定数量用于确定数据扩展区是否相邻的任意类型。并且,模块114能够定位出一个数据库中预定阈值的位置。例如,114能够定位出系统124或者客户端设备202中数据库的位置。并且,通过定位,能够确保该预定阈值为3兆字节。
在一个实例中,模块114能够数据扩展区500和502之间的阈值为1兆字节,502和504之间的阈值为2兆字节,504和506之间的预定阈值为3兆字节。并且,模块114确保了这些阈值都低于预定阈值3兆字节。
通过确保阈值低于预定阈值,模块114能够缓存数据扩展区,用于提高后续备份操作122的恢复速度。例如,模块114能够通过一个简单的读指令读取图5中数据容器128(1)的数据扩展500和502,并且,模块114能够通过一条简单的读指令读取地址段“0XF000000”与“0XF140F40”之间的所有数据,然后,将这些扩展区中的数据存储在系统124的高速缓存210中。同理,模块114也能够读取504和506之间的数据。但是,模块114能够确保504和506之间2兆字节的距离不存储在后续备份操作122中,结果是,将这2兆字节丢弃掉而不是存储在高速缓存210中。
在一个实例中,模块114能够通过预定阈值判断出扩展区502和504之间的差异。例如,模块114通过预定阈值为3兆字节时判断出扩展区502和504之间的距离为100兆字节。
在一些实例中,检测模块106检测到用于响应请求212的恢复应用程序208的一个恢复操作,该请求将后续备份操作122恢复到客户端设备202上。在一个实例中,检测模块106检测用于读取数据扩展区500、502、504和506的数据请求。然后,模块106直接还原应用程序208来搜索数据扩展区500、502、504和506的高速缓存210,而不是从数据容器128(1)中读取这些数据扩展区。
在一个实例中,决策模块110确保恢复应用程序208在执行恢复操作时从高速缓存210中读取数据扩展区500、502、504和506的数据。读取之后,模块110将以上扩展区的数据移除。通过移除这些数据,模块110能够清空高速缓存210,用于存储即将从一个或多个数据容器中预取的附加数据扩展区。
如图2中系统200和图3中的方法300都能够提高备份的恢复速度。例如,通过计算一个备份操作和之前使用的数据容器之间的数据重复量,能够在低于预定阈值的情况下有选择地将备份的一部分作为重复数据存储。
另外,通过提高数据容器存储数据的效率,能够减少所需的数据容器的数量,进而提高备份的恢复速度。通过预取恢复操作期间一个容器内相邻备份的部分,能够减少用于恢复备份操作的读指令数量,从而也能够提高备份的恢复速度。通过结合以上的这些技术,能够达到意想不到的速度提升。
在一个实例中,通过在恢复操作期间实现预取相邻备份的部分的技术,能够将备份的恢复速度从33MB/s提高到140MB/s。但是,通过结合在备份过程中有选择性的存储重复数据和预取相邻部分的备份,能够将备份速度从从33MB/s提高到600MB/s。
如图6所示,计算系统610的所有部分都能够单独地或与其他元素结合去执行识别、检测、计算、决策、存储、预取、缓存、读取、移除、减少等等上文描述的操作。系统610也能够执行其他没有在本申请中描述的方法和步骤等。
计算系统610可以是拥有一个或多个处理器的计算设备或能够执行计算机可读指令的系统。计算系统610的例子可以是:工作站、笔记本、台式机、服务器、分布式计算系统、掌上电脑或其他形式的计算设备。但系统610至少应包含一个处理器614和一个系统内存616。
处理器614可以是任意类型的可以处理数据或解读和执行指令的处理单元。在具体的实例中,处理器614可以接受来自一个软件模块或者应用程序的指令。这些指令能够使处理器614执行本申请描述的实例的功能。
系统内存616能够使任意类型的易失性或非易失性存储设备,又或者是能够存储数据或计算机可读指令的设备。系统内存616的实例包括但不限于:RAM、ROM、闪存或其他类型的设备。尽管没有具体要求,但系统610可以包含一个非易失性存储单元632和一个易失性存储单元616。在一个实例中,一个或多个图1中的模块102将在系统内存616上加载。
在一些具体的实例中,系统610除了处理器614和系统内存616之外还包含一个或多个部件。例如,如图6所示,系统610包含一个内存控制器618、一个输入输出控制器629、一个通讯接口622和基础通讯设施612。该设施可以是任意类型的可以促进计算设备通信的设备。例如:一个通信总线和一个网络。
内存控制器618通常是任意类型能够处理存储、数据或者部件之间通信的设备。例如,内存控制器618可以能够控制通过通讯基础设施612,处理器614、系统内存616和输入输出控制器620之间的通信。
I/O控制器620可以是任意能够协调或控制一台设备的输入输出功能的模块。例如,控制器620能够控制或者帮助计算系统610中数据从一个元件到另一个元件的转移。例如处理器614、系统内存616、通信接口622、显示适配器626、输入接口630和存储接口634。
通信接口622可以是任意类型的通信设备或是帮助计算系统610与一个或多个其他设备进行通信的适配器。例如,通信接口622能够帮助计算系统610和其他计算系统的一个私有或公有网络之间进行通信。通信接口的例子包括,但不限于:无线网络接口、有线网络接口、调制解调器和任意适用的其他接口。另外,通信接口622可以间接提供诸如通过局域网、个人区域网络、有线网络、蜂窝电话连接等一系列的连接。
在一些具体的实例中,通讯接口622被配置用于提高通信计算系统610与其他网络或存储设备通过外部总线或其他通信渠道进行通信的主机适配器。主机适配器的实例包括:USB主机适配器、IEEE1394主机适配器、ATA、PATA和光纤接口适配器等。通信接口622允许计算系统610从事分布式或远程计算。例如,通信接口622接收来自一个远端设备的请求,或者发送一个请求到远端设备。
如图6所示,计算设备610包含至少一个通过显示适配器连接到通信基础设施612的显示设备624。显示设备624可以是任意能够通过显示适配器626显示信息的设备,用于显示图像、文本或其他通过通讯基础设施612的数据。
如图6所示,计算系统610包含至少一个通过输入接口630连接到通信基础设施612的输入设备628。输入设备628可以是任意能够提供计算机或人工输入到系统610的设备,包括:键盘、指点设备、语音识别或其它输入设备。
如图6所示,四天610包含通过存储接口634连接到通信基础设施612的一个主存储设备632和备份存储设备633。存储设备632和633可以是任意类型用于存储数据或其他计算机可读指令的设备或者介质。例如,存储设备632和633可以是一个磁盘驱动器、固态硬盘、闪存或其他相似设备。存储接口634可以是任意类型用于存储设备632和633传输数据的接口或设备。
在一个具体实例中,存储设备632和633向一个用于存储计算机软件、数据或其他计算机可读指令信息的可移动存储中读取或写入信息。可移动存储设备的例子包括:闪存、磁带和光盘等。存储设备632和633可以包含许多相同的结构或设备用于将计算机软件、数据或其他计算机可读指令加载到系统610中。存储设备632和633可以是系统610的一部分,也可以是通过其他接口系统连接的单独的设备。
许多其他的设备或子系统都可以连接到计算系统610上。相反地,图6中所示的所有设备或原件并不是都需要在本申请中进行详细描述。计算系统610可以使用任意数量的软件、固件和硬件配置。
计算机可读存储介质包含加载到系统610上的计算机程序。存储在计算机可读存储介质上的计算机程序将被存储到系统内存616或存储设备632或633的一部分上。被加载到系统610上的程序将促使处理器614执行该程序。另外,系统610被配置为专用集成电路用于实现本申请所述实例。
如图7所示,客户端系统710、720和730,以及服务器740和750都被耦合到一个网络750。如上所述,网络架构700能够执行识别、检测、计算、决策、存储、预取、缓存、读、删除、维护和减少等一系列操作,或本申请其他步骤和功能。
客户端系统710、720和730可以是任意类型的计算设备或系统,诸如图6中的计算设备610.类似地,服务器740和745可以是任意的用提供数据库服务或运行软件程序的计算设备或系统,如应用服务器或数据库服务器。网络750可以是任意类型的电信网路或计算机网络,如:WAN、LAN、PAN或英特网。并且,客户端系统710、720和730以及服务器740和745都含有图1中系统100的全部或某些部分。
如图7所示,一个或多个存储设备760(1)-(N)能够直接连接到服务器740上。类似地,一个或多个存储设备770(1)-(N)能够直接连接到服务器745上。存储设备760(1)-(N)和770(1)-(N)可以是任意能够存储数据或计算机可读指令的设备或介质。在具体的实例中,存储设备760(1)-(N)和770(1)-(N)使用不同协议与服务器740和745通信的NAS设备。
服务器740和745连接到存储区域网络780。它可以是任意帮助不同设备之间通信的网络或者架构。存储区域网络780能够帮助服务器740和745、存储设备790(1)-(N)和一个智能存储阵列795之间的通信。同时,存储设备790(1)-(N)和阵列795直接与客户端系统710、720和730连接。
如图6所示计算系统610,一个通信接口,例如图6中的通信接口622,可以提供客户端系统710、720和730与网络750的连接,并且通过一个web浏览器或其他客户端软件访问750上的信息。这些软件允许客户端系统访问各种存储设备或服务器的数据。
如上所述,计算系统610或网络架构700中的一个或多个元件能够单独或与其他元件结合执行(作为执行的一种方式)用于提高备份恢复速度的一个或多个步骤。
尽管上述内容使用特定框图、流程图和示例阐述了各种实例,但是可以使用各种硬件,软件或固件配置单独地或一起实现本申请描述的每个框图、流程图步骤、操作和组件。
在一些实例中,如图1中系统100可以表述云计算或基于网络的环境。云计算环境提供各种服务和应用程序。这些基于云的服务(软件作为服务,平台作为服务,架构作为服务等)能够通过一个web浏览器或其他远端接口进行访问。本申请描述的不同功能将通过一个远程桌面或者其他基于云计算环境进行访问。
在不同的实例中,图1中的系统100能够在基于云计算环境中的方便多用户。换句话说,软件模块可以配置为一个计算系统,用于多用户从备份中恢复数据。还可以编程为方便运行在一个服务器上的二个或多个客户端分享应用程序。通过这种编程方式可以分享应用程序、操作系统、处理系统或者存储系统。本申请描述的一个或多个模块可以划分多用户应用程序的数据或配置信息,提供给不能访问其他用户的某个用户使用。
根据不同的实例,图1的系统100能够在不同的环境下实现,本申请所示的模块或者数据也能在虚拟机器中执行。这里的虚拟机器可以是任意从计算硬件或虚拟机器管理器中抽象出来的操作系统环境。另外,这些模块或者数据都将在一个虚拟层中执行,这个层通常是从一个操作系统环境中抽象出的数据层或应用程序层。这里虚拟层将有一个软件虚拟化解决方法管理。该方法通常将最初定向到基本申请件系统和注册表中位置的呼叫重定向到虚拟层内的位置。
另外,一个或多个模块能够转换数据、物理设备和从一个设备到另一个设备的表示。这些模块可以接收一个备份操作,用于转换备份接收要转换的备份,进行转换,输出转换结果以便于恢复备份,该结果便于增加备份的还原速度,并将转换结果存储到从备份还原的设备缓存中。此外,这些模块还可以转换处理器、易失性存储器以及其他物理计算设备。
以上所述实施例仅表达了本发明的具体实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
Claims (9)
1.一种提高备份恢复速度的方法,所述方法用于在重复数据删除系统中,其特征在于,其至少包含计算设备中一个处理器执行的方法,所述方法包括:
识别重复数据删除存储系统中至少一个数据容器中的数据备份;
检测与数据容器中数据部分相同的附加数据的后续备份;
计算后续备份中附加数据与数据容器中数据之间的重复量;
确定该重复量低于预定阈值;其中所述重复量表示存储在所述数据容器中的与后续备份中包含的附加数据相同的数据相对于存储在所述数据容器中的总数据量的量值;
确保重复量低于预定阈值;
识别至少一个附加数据容器以存储附加数据,将附加数据存储在附加数据容器中以便于增加后续备份的恢复速度。
2.根据权利要求1所述一种提高备份恢复速度的方法,其特征在于,所述方法还包括:
检测存储后续备份操作到一个客户端设备的请求;
响应上述请求,从重复数据删除系统中预取后续备份操作的一部分,用于提高该备份操作恢复到客户端设备的速度。
3.根据权利要求2所述一种提高备份恢复速度的方法,其特征在于,从重复删除数据的存储系统中预取后续备份操作的方法包括:
识别在后续备份操作中包含一系列数据扩展区的数据容器;
确保数据容器中数据扩展区的子集都是相邻的;
通过上述方式,缓存这些相邻的数据扩展区用于提高备份恢复速度;
通过上述方式,可以确保数据容器中数据扩展区的子集都是相邻的;
缓存这些相邻的数据扩展区用于提高备份恢复速度。
4.根据权利要求3所述一种提高备份恢复速度的方法,其特征在于,确保数据容器中数据扩展区的子集都是相邻的方法包括:
识别在后续备份操作时数据容器中每个扩展区的起点;
识别在后续备份操作时数据容器中每个扩展区的终点;
计算一个扩展区的起点和另一个的终点之间的差值。
5.根据权利要求3所述一种提高备份恢复速度的方法,其特征在于,缓存相邻数据扩展区的子集包括:
使用单一的读操作读取数据容器内相邻数据扩展区的子集;
通过上述操作,将该子集存储在一个客户端设备的缓存中,用于提高后续备份操作的恢复速度;
依照前面的步骤,通过单次读取操作,读取一部分不需要从数据容器恢复后续备份的数据;
在执行以上操作的同时,丢弃不需要的部分数据,而不是将不需要的数据部分存储在高速缓存中;
响应于将所述后续备份恢复到所述客户端设备的请求,检测恢复应用执行的恢复操作;
指导还原应用程序搜索缓存中后续备份操作的数据扩展区的子集,而不是搜索重复数据删除存储系统的数据容器中数据扩展区的子集。
6.根据权利要求5所述一种提高备份恢复速度的方法,其特征在于,还原应用程序搜索缓存中后续备份操作的数据扩展区的子集的方法还包括:
当执行恢复操作时,检测到恢复应用程序需要读取数据扩展区的子集;
为了响应该检测,指导还原应用程序搜索缓存中后续备份操作的数据扩展区的子集,而不是搜索重复数据删除存储系统的数据容器中数据扩展区的子集;
确保执行恢复操作时,程序已经从缓存中读取了数据扩展区的子集;
为了响应该操作,将从缓存中删除上述子集。
7.一种重复数据删除的存储系统,其特征在于,包括:
被编程为识别重复数据删除的存储系统内数据容器的数据备份的识别模块;
被编程为检测与数据容器中至少一部分相同的附加数据的后续备份的检测模块;
被编程为计算后续备份中附加数据与数据容器中数据之间重复量的计算模块;
被编程为确保重复量低于预定阈值的决策模块;
其中所述识别模块进一步被编程为识别重复数据删除的存储系统内附加数据容器中以存储后续备份中的附加数据,以响应所述重复量低于预定阈值;
被编程为将附加数据存储在重复数据删除的存储系统内附加数据容器中的存储模块,以便于增加后续备份的恢复速度;
至少有一个被配置为执行以上模块的处理器。
8.根据权利要求7所述一种重复数据删除的存储系统,其特征在于,被编程为从存储系统预取至少一部分后续备份的预取模块,用于提高后续备份操作在一个客户端设备上的恢复操作;
其特征在于,预取模块还被编程为:识别在后续备份操作时数据容器中的数据扩展区;
确保数据扩展区的子集是相邻的;
缓存相邻数据扩展区的子集,用于提高后续备份操作恢复数据到客户端设备的速度;
确保数据容器内的数据扩展区的子集相邻;
同时,缓存其他子集,用于提高备份的恢复速度。
9.根据权利要求8所述一种重复数据删除的存储系统,其特征在于:
识别数据扩展区的地址;
计算数据扩展区地址之间的差异;
确保该差异低于预定阈值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711479820.3A CN108196983A (zh) | 2017-12-29 | 2017-12-29 | 一种提高备份恢复速度的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711479820.3A CN108196983A (zh) | 2017-12-29 | 2017-12-29 | 一种提高备份恢复速度的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108196983A true CN108196983A (zh) | 2018-06-22 |
Family
ID=62586654
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711479820.3A Withdrawn CN108196983A (zh) | 2017-12-29 | 2017-12-29 | 一种提高备份恢复速度的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108196983A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110990195A (zh) * | 2019-11-24 | 2020-04-10 | 浪潮电子信息产业股份有限公司 | 一种数据恢复方法、设备及存储介质 |
-
2017
- 2017-12-29 CN CN201711479820.3A patent/CN108196983A/zh not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110990195A (zh) * | 2019-11-24 | 2020-04-10 | 浪潮电子信息产业股份有限公司 | 一种数据恢复方法、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9501233B2 (en) | Providing snapshots of virtual storage devices | |
JP7221975B2 (ja) | マルチマスタ分散データ管理システムにおけるトランザクション処理 | |
CN106610790B (zh) | 一种重复数据删除方法及装置 | |
CN106446263B (zh) | 一种多媒体文件云存储平台及使用该云存储平台去冗的方法 | |
JP6756079B2 (ja) | 人工知能に基づく三元組チェック方法、装置及びコンピュータプログラム | |
CN103905503A (zh) | 数据存取方法、调度方法、设备及系统 | |
CN104011717A (zh) | 对数据存储备份的数据选择 | |
CN101840362A (zh) | 一种改进的写时拷贝快照的实现方法和装置 | |
CN107016027A (zh) | 实现业务信息快速搜索的方法和装置 | |
CN103491155A (zh) | 一种实现移动计算和获取移动数据的云计算方法及系统 | |
CN105227672B (zh) | 数据存储及访问的方法和系统 | |
CN102904944A (zh) | 一种遥感数据远程云处理系统及方法 | |
CN104731848B (zh) | 管理对客户机设备上的数据的访问的方法和客户机设备 | |
US20140317359A1 (en) | Clustered file system caching | |
CN108427728A (zh) | 元数据的管理方法、设备及计算机可读介质 | |
CN109005226A (zh) | 服务器中传感器数据的获取方法、获取系统和相关装置 | |
CN104899161A (zh) | 一种基于云存储环境的连续数据保护的缓存方法 | |
CN109669644A (zh) | 一种数据存储的方法和装置 | |
JP2021515299A (ja) | 時系列順のアウトオブプレース更新のためのシステム、時系列順のアウトオブプレース更新のための方法、および時系列順のアウトオブプレース更新のためのコンピュータ・プログラム | |
CN110209341A (zh) | 一种数据写入方法、装置和存储设备 | |
WO2019005402A1 (en) | COST-BASED WASTE RECOVERY PLANNING IN A DISTRIBUTED MEMORY ENVIRONMENT | |
CN113688139B (zh) | 对象存储方法、网关、设备及介质 | |
CN104331525B (zh) | 基于重复数据删除的共享方法 | |
CN108196983A (zh) | 一种提高备份恢复速度的方法及系统 | |
US10048883B2 (en) | Integrated page-sharing cache storing a single copy of data where the data is stored in two volumes and propagating changes to the data in the cache back to the two volumes via volume identifiers |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20180622 |