CN110658989B - 用于备份存储垃圾收集的系统和方法 - Google Patents
用于备份存储垃圾收集的系统和方法 Download PDFInfo
- Publication number
- CN110658989B CN110658989B CN201910565938.0A CN201910565938A CN110658989B CN 110658989 B CN110658989 B CN 110658989B CN 201910565938 A CN201910565938 A CN 201910565938A CN 110658989 B CN110658989 B CN 110658989B
- Authority
- CN
- China
- Prior art keywords
- backup
- backups
- failed
- virtual machine
- storage device
- 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
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
- 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
-
- 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
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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
-
- 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/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/815—Virtual
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种用于存储虚拟机的备份的存储装置包含永久性存储装置和垃圾收集器。所述永久性存储装置存储所述备份。所述垃圾收集器识别备份生成会话的结束;响应于识别所述备份生成会话的结束,所述垃圾收集器执行日期分析以识别所述备份的可能失效备份集;执行对所述可能失效备份集中的每个备份的连续性链分析以识别失效备份集;且删除所述失效备份集中的每个备份。
Description
背景技术
计算装置生成、使用和存储数据。所述数据可以是例如与所述数据相关联的图像、文件、网页或元数据。所述数据可存储于永久性存储装置上。所存储的数据可从永久性存储装置删除。
存储在计算装置上的数据的备份可通过将其存储在第二计算装置上来备份。所述第二计算装置可在地理上与计算装置分开。
发明内容
在一个方面中,根据本发明的一个或多个实施例的一种用于存储虚拟机的备份的存储装置包含永久性存储装置和垃圾收集器。所述永久性存储装置存储所述备份。所述垃圾收集器识别备份生成会话的结束;响应于识别所述备份生成会话的结束,所述垃圾收集器执行日期分析以识别所述备份的可能失效备份集;执行对所述可能失效备份集中的每个备份的连续性链分析以识别失效备份集;且删除所述失效备份集中的每个备份。
在一个方面中,根据本发明的一个或多个实施例的一种用于存储虚拟机的备份的方法包含识别备份生成会话的结束;响应于对所述结束的所述识别而:执行日期分析以识别所述备份的可能失效备份集;执行对所述可能失效备份集中的每个备份的连续性链分析以识别失效备份集;且删除所述失效备份集中的每个备份。
在一个方面中,根据本发明的一个或多个实施例的一种非暂时性计算机可读介质包含计算机可读程序代码,所述代码当由计算机处理器执行时使所述计算机处理器能够执行用于存储虚拟机的备份的方法,以及方法包含识别备份生成会话的结束;响应于对所述结束的所述识别而:执行日期分析以识别所述备份的可能失效备份集;执行对所述可能失效备份集中的每个备份的连续性链分析以识别失效备份集;且删除所述失效备份集中的每个备份。
附图说明
将参考附图描述本发明的某些实施例。然而,所述附图仅通过实例说明本发明的某些方面或实施,且并不打算限制权利要求书的范围。
图1示出根据本发明的一个或多个实施例的系统的图式。
图2示出根据本发明的一个或多个实施例的实例生产主机的图式。
图3示出根据本发明的一个或多个实施例的实例备份存储装置的图式。
图4示出根据本发明的一个或多个实施例的实例重复数据删除后的数据存储装置的图式。
图5示出根据本发明的一个或多个实施例的实例备份的图式。
图6A示出根据本发明的一个或多个实施例的删除失效备份的方法的流程图。
图6B示出根据本发明的一个或多个实施例的执行日期分析的方法的流程图。
图6C示出根据本发明的一个或多个实施例的执行连续性链分析的方法的流程图。
图7示出根据本发明的一个或多个实施例的存储备份的方法的流程图。
图8A示出在第一时间点处的重复数据删除后的存储装置的实例的图式。
图8B示出在第二时间点处的图8A的实例重复数据删除后的存储装置的图式。
图8C示出在第三时间点处的图8A的实例重复数据删除后的存储装置的图式。
图8D示出在第四时间点处的图8A的实例重复数据删除后的存储装置的图式。
图9示出根据本发明的一个或多个实施例的计算装置的图式。
具体实施方式
现在将参看附图来描述特定实施例。在以下描述中,将众多细节阐述为本发明的实例。本领域的技术人员应理解,可在无这些具体细节的情况下实践本发明的一个或多个实施例,并且在不脱离本发明的范围的情况下,众多变化或修改可为可能的。省略本领域的普通技术人员已知的某些细节,以避免混淆描述。
在所述图式的以下描述中,在本发明的各种实施例中,关于一个图描述的任一组件可等效于关于任一其它图描述的一个或多个相似命名的组件。为简洁起见,将不关于每个图来重复此等组件的描述。因此,每个图的组件的每个实施例被以引用的方式并入,且假定为任选地存在于具有一个或多个相似命名的组件的每一其它图内。另外,根据本发明的各种实施例,图的组件的任何描述应被解释为任选实施例,其可除了关于任一其它图中的对应的相似命名的组件描述的实施例外再实施,与所述实施例一起实施,或代替所述实施例加以实施。
一般来说,本发明的实施例涉及用于对虚拟机提供服务的系统、装置和方法。更具体地说,系统、装置和方法可对虚拟机提供备份和恢复服务。
在本发明的一个或多个实施例中,系统可生成可易于识别的依赖于彼此的备份的连续性链。通过生成可易于识别的连续性链,可使用较少计算资源,例如处理器循环、存储器空间、存储装置-输出(IO)等来识别连续性链中的断裂。
在本发明的一个或多个实施例中,系统可自动移除不是连续性链的成员的存储备份。此类备份可表示存储无用数据的存储空间。如下文将论述,由于电力故障、低计算资源可用性或其它因素,备份的生成可能失败。在此类状况下,存储为备份的数据在功能上是无用的,例如不能够用以执行恢复。因此,本发明的一个或多个实施例可通过增加此类装置的自由存储空间来改进计算装置的操作。
在本发明的一个或多个实施例中,系统还远程存储在生产主机上的不是连续性链的成员的存储备份。与备份存储装置中不可用于恢复目的的备份一样,生产主机中的类似备份也是不可用的。
以此方式,本发明的一个或多个实施例可解决在分布中计算装置故障的问题,否则所述故障将损害分布式装置执行其功能的能力。如下文将更详细地论述,实施例可解决除分布式系统中计算装置故障之外的多个额外问题。
图1示出根据本发明的一个或多个实施例的实例系统。所述系统可包含托管暴露于客户端(140)的虚拟机的生产主机(130)。所述系统可进一步包含对生产主机提供服务的远程备份代理(110)。所述服务可包含在备份存储装置(120)中的数据存储装置和使用存储在备份存储装置(120)中的数据进行的虚拟机的恢复。图1的系统的每个组件可经由有线和无线连接的任何组合可操作地连接。下文论述所述系统的每个组件。
客户端(140)可以是计算装置。计算装置可以是例如手机、平板计算机、笔记本电脑、台式计算机、服务器或云资源。计算装置可包含一个或多个处理器、存储器(例如,随机存取存储器)和永久性存储装置(例如,磁盘驱动器、固态驱动器等)。永久性存储装置可存储计算机指令,例如计算机代码,所述指令在由计算装置的处理器执行时使计算装置执行本申请中所描述的功能。在不脱离本发明的情况下,客户端(140)可以是其它类型的计算装置。关于计算装置的额外细节,参见图9。
客户端(140)可与由生产主机(130)托管的虚拟机交互。举例来说,虚拟机可托管数据库、电子邮件服务器或任何其它类型的应用程序。客户端(140)可利用由这些或其它应用程序提供的服务。在另一实例中,客户端(140)可直接操作虚拟机,例如虚拟化环境。在此情形中,客户端(140)可用作用于访问虚拟机的终端。
在本发明的一个或多个实施例中,生产主机(130)是计算装置。计算装置可以是例如手机、平板计算机、笔记本电脑、台式计算机、服务器、分布式计算系统或云资源。计算装置可包含一个或多个处理器、存储器(例如,随机存取存储器)和永久性存储装置(例如,磁盘驱动器、固态驱动器等)。永久性存储装置可存储计算机指令,例如计算机代码,所述指令在由计算装置的处理器执行时使计算装置执行本申请中所描述的功能。在不脱离本发明的情况下,生产主机(130)可以是其它类型的计算装置。关于计算装置的额外细节,参见图9。
在本发明的一个或多个实施例中,生产主机(130)是分布式计算装置。如本文中所使用,分布式计算装置是指由利用一个或多个单独和/或分开的计算装置的计算资源的逻辑装置提供的功能性。举例来说,在本发明的一个或多个实施例中,生产主机(130)可以是分布式装置,其包含跨数个单独和/或分开的计算装置分布的组件。在此情形中,在不脱离本发明的情况下,生产主机(130)的功能性可由多个不同计算装置执行。
在本发明的一个或多个实施例中,生产主机(130)托管虚拟机。在不脱离本发明的情况下,生产主机(130)可托管任何数目的虚拟机。生产主机(130)还可托管代理或其它执行组件,用于编排托管虚拟机的操作。关于生产主机(130)的额外细节,参见图2。
在本发明的一个或多个实施例中,远程备份代理(110)是计算装置。计算装置可以是例如手机、平板计算机、笔记本电脑、台式计算机、服务器、分布式计算系统或云资源。计算装置可包含一个或多个处理器、存储器(例如,随机存取存储器)和永久性存储装置(例如,磁盘驱动器、固态驱动器等)。永久性存储装置可存储计算机指令,例如计算机代码,所述指令在由计算装置的处理器执行时使计算装置执行本申请中所描述的远程备份代理(110)的功能以及图6A到7中所说明的方法的所有或其部分。在不脱离本发明的情况下,远程备份代理(110)可以是其它类型的计算装置。关于计算装置的额外细节,参见图9。
在本发明的一个或多个实施例中,远程备份代理(110)是分布式计算装置。如本文中所使用,分布式计算装置是指由利用一个或多个单独和/或分开的计算装置的计算资源的逻辑装置提供的功能性。举例来说,在本发明的一个或多个实施例中,远程备份代理(110)可以是分布式装置,其包含跨数个单独和/或分开的计算装置分布的组件。在此情形中,在不脱离本发明的情况下,远程备份代理(110)的功能性可由多个不同计算装置执行。
在本发明的一个或多个实施例中,远程备份代理(110)对虚拟机提供服务。服务可包含存储虚拟机数据,生成虚拟机的备份,和/或执行虚拟机的恢复。
在本发明的一个或多个实施例中,备份存储装置(120)是计算装置。计算装置可以是例如手机、平板计算机、笔记本电脑、台式计算机、服务器、分布式计算系统或云资源。计算装置可包含一个或多个处理器、存储器(例如,随机存取存储器)和永久性存储装置(例如,磁盘驱动器、固态驱动器等)。永久性存储装置可存储计算机指令,例如计算机代码,所述指令在由计算装置的处理器执行时使计算装置提供贯穿本申请所描述的备份存储装置(120)的功能性以及图6A到7中所说明的方法的所有或部分。关于计算装置的额外细节,参见图9。
在本发明的一个或多个实施例中,备份存储装置(120)是分布式计算装置。如本文中所使用,分布式计算装置是指由利用一个或多个单独和/或分开的计算装置的计算资源的逻辑装置提供的功能性。举例来说,在本发明的一个或多个实施例中,备份存储装置(120)可以是分布式装置,其包含跨数个单独和/或分开的计算装置分布的组件。在此情形中,在不脱离本发明的情况下,备份存储装置(120)的功能性可由多个不同计算装置执行。
在本发明的一个或多个实施例中,备份存储装置(120)存储来自生产主机(130)的数据。数据可以是例如虚拟机的备份。在本发明的一个或多个实施例中,虚拟机的备份是反映虚拟机在预定时间点处的状态或状态在时间段内的改变的数据结构。举例来说,虚拟机的备份可以是虚拟机的图像、虚拟机的差异磁盘、在虚拟机上执行的应用程序的日志,或其它类型的数据结构。虚拟机的图像可包含在时间点处的所有虚拟机数据。差异磁盘可以是在时间段内对虚拟机数据作出的改变。日志可以是在时间段内对应用程序数据作出的改变。在不脱离本发明的情况下,虚拟机的备份可以是其它类型的数据结构,其可用于将虚拟机恢复到先前状态。
具有变化类型的多个备份可用于将虚拟机恢复到先前状态。举例来说,虚拟机图像可用于在生成图像时将虚拟机恢复到虚拟机的状态。在另一实例中,紧接在与图像相关联的时间点后的时间段内的虚拟机图像和差异磁盘可用于将虚拟机恢复到所述时间点后的时间段结束时的虚拟机的状态。
在此情形中,虚拟机图像和差异磁盘可形成连续性链。在本发明的一个或多个实施例中,连续性链是数个备份,其各自与不同时间段相关联,所述时间段形成连续沿袭,例如与备份相关联的时间段涵盖时间线的连续部分。举例来说,第一备份可与5月12日相关联且第二备份可与5月13日到5月17日相关联。因此,第一备份和第二备份的组合涵盖5月12日到5月17日的时段。备份可用于将虚拟机恢复到5月12日与5月17日之间的任何时间点。在不脱离本发明的情况下,备份存储装置(120)可存储额外数据或与虚拟机的备份不同的数据。
在本发明的一个或多个实施例中,备份存储装置(120)可执行垃圾收集处理以回收存储空间。存储空间可以是本地的,例如在备份存储装置上,或远程的,例如在生产主机上。举例来说,在一些状况下,虚拟机的备份可存储在备份存储装置中和/或不能够用以恢复虚拟机的生产主机中。举例来说,图1的系统的部分可能发生故障、负担过重,或可能无法完成虚拟机的备份,从而导致存储不可用于恢复目的的备份。在此情形中,无用备份消耗存储空间,而不向系统提供实用程序。
在本发明的一个或多个实施例中,备份存储装置(120)可识别无用备份且将其移除,即,回收存储空间。备份存储装置(120)可通过分析备份的连续性链,即备份是否链接到其它备份,来识别无用备份。连续性链可包含指示备份是否链接到其它备份的特性。特性可以是例如备份的命名规则、与备份相关联的元数据、预先确定的备份的位序列,或指示的另一数据结构。在使用命名规则的情形中,命名规则可包含识别另一备份的预定数目的字符。当呈现前述预定数目的字符时,可以识别备份与另一备份之间的联系。联系的存在可用于推断备份是连续性链的部分。
在本发明的一个或多个实施例中,备份存储装置(120)询问优先级链中的多个备份,以识别备份是否是连续性链的成员。举例来说,在一些情形中,第一备份可有可能链接到第二备份,但第二备份不链接到第三备份。在此情形中,第一备份和第二备份可实际上不是连续性链的部分。备份存储装置(120)可询问连续性链的成员的所有或部分,以识别备份是否是有用连续性链的成员。换句话说,两个备份之间仅仅存在联系可能不指示两个备份是连续性链的成员。
在本发明的一个或多个实施例中,通过确定备份是否链接到其它备份,即连续性链的成员,来询问备份。可通过例如确定备份的任何部分是否指示与其它备份相关联或在询问时备份是否故意不是连续性链的成员,例如链中将随着时间推移而进一步发展的第一备份,来实现询问。
在本发明的一个或多个实施例中,备份存储装置(120)重复数据删除后的存储装置。重复数据删除后的存储装置可试图增大其可仅通过存储唯一数据的副本而存储的数据量。当将数据存储在重复数据删除后的存储装置中时,可首先检查数据以确定其是否是重复已经存储在备份存储装置中的数据。仅数据的唯一部分可存储在备份存储装置中。将数据存储在重复数据删除后的存储装置中和访问重复数据删除后的存储装置中的数据可比将数据存储在非重复数据删除后的存储装置中明显耗费更多的计算资源。关于备份存储装置的额外细节,参见图3到4。
如上文所论述,备份存储装置可存储从生产主机(130)获得的数据。图2示出根据本发明的一个或多个实施例的实例生产主机(200)的图式。
在本发明的一个或多个实施例中,实例生产主机(200)托管虚拟机(210)。在不脱离本发明的情况下,实例生产主机(200)可托管任何数目的虚拟机(210A、210N)。
在本发明的一个或多个实施例中,虚拟机(210)使用实例生产主机(200)的计算资源执行。举例来说,可为虚拟机(210)中的每一个分配实例生产主机(200)的处理资源、存储器资源和/或存储资源的部分。
在本发明的一个或多个实施例中,可存储过去时间点处虚拟机(210)中的每一个的图像,即,将其本地存储在托管相应虚拟机的生产主机上。在过去的时间点之后,可存储差异磁盘,其存储根据虚拟机(210)中的每一个的图像作出的改变中的每一个。前述图像和差异磁盘可本地存储或存储在备份存储装置中。
在本发明的一个或多个实施例中,可产生与由虚拟机(210)托管的应用程序相关联的日志。日志可反映应用程序数据的改变。日志可与虚拟机图像和/或差异磁盘组合使用以将虚拟机恢复到预先确定的状态和/或将应用程序恢复到预先确定的状态。
在本发明的一个或多个实施例中,生成虚拟机的备份包含存储虚拟机的图像的副本、差异磁盘和/或由备份存储装置中的虚拟机托管的一个或多个应用程序的日志。因此,当执行虚拟机的恢复时,差异磁盘和/或日志可与虚拟机图像合并以获得由差异磁盘和/或日志反映的在时间段之后的时间点处的虚拟机和/或应用程序的表示。
在本发明的一个或多个实施例中,虚拟机的副本、差异磁盘和/或一个或多个应用程序的日志在存储在备份存储装置中之前可暂时地本地存储为备份过程的部分。此时图1的系统的所有或部分的故障会导致副本不完整和/或无法链接到连续性链中的其它备份。因此,此类备份可能不可用于恢复目的且无需消耗生产主机上的存储空间。本发明的实施例可通过提供识别和移除呈备份形式的不可用的数据的方法来改进生产主机的操作,且更一般地说分布式计算系统的操作,由此提高生产主机的存储空间的使用效率。
在本发明的一个或多个实施例中,实例生产主机(200)包含管理虚拟机(210)的执行的管理程序(220)。管理程序(220)可启动和/或终止虚拟机(210)中的任一个。
在本发明的一个或多个实施例中,管理程序(220)是包含电路的硬件装置。管理程序(220)可以是例如数字信号处理器、现场可编程门阵列或专用集成电路。在不脱离本发明的情况下,管理程序(220)可以是其它类型的硬件装置。
在本发明的一个或多个实施例中,管理程序(220)被实施为计算代码,其存储在永久性存储装置上,在由处理器执行时执行管理程序(220)的功能性。处理器可以是包含电路的硬件处理器,例如中央处理单元或微控制器。在不脱离本发明的情况下,处理器可以是用于处理数字信息的其它类型的硬件装置。
实例生产主机(200)可包含生产代理(230),其管理将例如图像、差异磁盘和日志等虚拟机数据存储在备份存储装置中。生产代理(230)可向管理程序(220)发布命令以当试图存储虚拟机数据时控制虚拟机的操作。举例来说,对于虚拟机、应用程序或在实例生产主机(200)上执行的其它实体,生产代理(230)可启动生成备份包的过程,所述备份包即反映实体的状态且能够使实体恢复到状态的数据。类似地,生产代理(230)可启动对虚拟机、应用程序或其它实体的恢复。
在本发明的一个或多个实施例中,生产代理(230)是硬化实体,即,不可由远离生产代理(230)正在其上执行的生产主机的实体修改。生产代理(230)可具有可由远程实体调用的设定有限数目的预定义功能。在本发明的一个或多个实施例中,生产代理(230)不可通过经由远程终端或其它配置实用程序修改设定或相关联的配置文件来配置。
在本发明的一个或多个实施例中,生产代理(230)是包含电路的硬件装置。生产代理(230)可以是例如数字信号处理器、现场可编程门阵列或专用集成电路。在不脱离本发明的情况下,生产代理(230)可以是其它类型的硬件装置。
在本发明的一个或多个实施例中,生产代理(230)被实施为计算代码,其存储在永久性存储装置上,在由处理器执行时执行生产代理(230)的功能性。处理器可以是包含电路的硬件处理器,例如中央处理单元或微控制器。在不脱离本发明的情况下,处理器可以是用于处理数字信息的其它类型的硬件装置。
当时生成备份或执行虚拟机的恢复,远程备份代理可将数据存储在备份存储装置中或访问备份存储装置中的数据。图3示出根据本发明的一个或多个实施例的实例备份存储装置(300)的图式。
在本发明的一个或多个实施例中,实例备份存储装置(300)存储来自远程备份代理或其它实体的数据。举例来说,远程备份代理可将数据发送到实例备份存储装置(300),以用于存储。在一些状况下,实例备份存储装置(300)可存储从生产主机获得的数据。在此情形中,远程备份代理可编排过程,即指示生产主机将数据存储在实例备份存储装置(300)中。数据可以是例如虚拟机的备份。
在本发明的一个或多个实施例中,实例备份存储装置(300)向远程备份代理或其它实体提供先前存储的数据。举例来说,远程备份代理可启动虚拟机的恢复。远程备份代理可将指令发送到实例备份存储装置(300)或计算装置,其中将执行虚拟机的恢复以相应地提供或获得实例备份存储装置(300)中的数据。获得的数据可用于执行恢复。
在本发明的一个或多个实施例中,实例备份存储装置(300)对存储的备份执行垃圾收集。执行垃圾收集可包含执行日期分析以识别存储备份的部分,对存储备份的部分执行连续性分析以识别失效备份,并删除识别的失效备份。
在本发明的一个或多个实施例中,实例备份存储装置(300)还可,或在替代方案中从生产主机移除类似存储备份。如关于图2所描述,不可用的备份还可存在于生产主机上。实例备份存储装置(300)可执行类似分析,所述类似分析延伸到也存储在生产主机上的备份,并移除不可用于恢复目的的任何备份。
为了提供前述功能性,实例备份存储装置(300)可包含存储管理器(310)、垃圾收集器(315)和永久性存储装置(320),其存储供存储管理器(310)和垃圾收集器(315)使用的数据结构。
在本发明的一个或多个实施例中,存储管理器(310)管理将数据存储在永久性存储装置(320)中且从永久性存储装置取回数据。在本发明的一个或多个实施例中,在存储之前可对存储在永久性存储装置(320)中的数据进行重复数据删除。在此情形中,存储管理器(310)可比较将存储的数据与已存储的数据,且仅存储将存储的数据的唯一部分。唯一部分可以是将存储的数据的部分,其并非重复已存储在永久性存储装置(320)中的数据。举例来说,在将文本文档的第一草稿存储在永久性存储装置(320)中之后,可对第一草稿作出微小改变。当接着再次将第一草稿存储在永久性存储装置(320)中时,存储管理器(310)可仅存储第一草稿的改变的部分。由此,当相比于将数据存储在永久性存储装置(320)中而不执行数据的重复数据删除,可在永久性存储装置(320)中存储更多数据。重复数据删除消耗巨大计算资源,包含处理循环、存储器循环和/或存储装置输入-输出。
在本发明的一个或多个实施例中,存储管理器(310)在将备份适当地存储在永久性存储装置(320)中之后将存储的备份添加到现有连续性链。举例来说,存储管理器(310)可将命名规则施加到存储备份,添加关于存储备份的元数据,或以其它方式指定存储备份是否链接到另一备份。包含虚拟机的图像的备份可不链接到先前备份,且因此可被看作是锚。锚备份可以是不链接到先前备份的连续性链的成员,即反映虚拟机的先前状态的备份。因此,连续性链可包含锚备份和链接到锚备份的任何数目的其它备份。
为了提供前述功能性,存储管理器(310)可执行图7中所说明的方法的所有或部分。
在本发明的一个或多个实施例中,存储管理器(310)是包含电路的硬件装置。存储管理器(310)可以是例如数字信号处理器、现场可编程门阵列或专用集成电路。在不脱离本发明的情况下,存储管理器(310)可以是其它类型的硬件装置。
在本发明的一个或多个实施例中,存储管理器(310)被实施为计算代码,其存储在永久性存储装置上,在由处理器执行时执行存储管理器(310)的功能性。处理器可以是包含电路的硬件处理器,例如中央处理单元或微控制器。在不脱离本发明的情况下,处理器可以是用于处理数字信息的其它类型的硬件装置。
在本发明的一个或多个实施例中,垃圾收集器(315)识别无用备份并删除识别的无用备份。为了识别无用备份,垃圾收集器(315)可对存储在备份存储装置中的备份执行日期分析以识别可能失效备份。可对可能失效备份执行连续性分析以识别实际上失效备份,即不可用以执行虚拟机的恢复。可接着删除实际上失效备份。
提供前述功能性,垃圾收集器(315)可执行图6A到6C中所说明的方法的所有或部分。
在本发明的一个或多个实施例中,垃圾收集器(315)是包含电路的硬件装置。垃圾收集器(315)可以是例如数字信号处理器、现场可编程门阵列或专用集成电路。在不脱离本发明的情况下,垃圾收集器(315)可以是其它类型的硬件装置。
在本发明的一个或多个实施例中,垃圾收集器(315)被实施为计算代码,其存储在永久性存储装置上,在由处理器执行时执行垃圾收集器(315)的功能性。处理器可以是包含电路的硬件处理器,例如中央处理单元或微控制器。在不脱离本发明的情况下,处理器可以是用于处理数字信息的其它类型的硬件装置。
在本发明的一个或多个实施例中,永久性存储装置(320)是存储数据结构的存储装置。永久性存储装置(320)可以是物理或虚拟装置。举例来说,永久性存储装置(320)可包含固态驱动器、固态驱动器、磁带机和其它组件以提供数据存储功能性。替代地,永久性存储装置(320)可以是利用其它组件的物理计算资源的虚拟装置,以提供数据存储功能性。当相比于其它方法,通过这样做,可减少用于执行垃圾收集的备份存储装置上的计算负载。因此,本发明的实施例可通过释放处理器循环、存储器循环、存储装置的输入/输出和/或否则将使用的装置间带宽来改进计算装置的操作。类似地,本发明的实施例可释放否则将被消耗的存储空间,且由此提供与传统计算装置相比具有更多存储空间的改进的计算装置。
在本发明的一个或多个实施例中,永久性存储装置(320)存储重复数据删除后的数据存储装置(320A)。重复数据删除后的数据存储装置(320A)可以是数据结构,其包含必需重新生成先前存储的数据结构即先前存储的备份的数据。为了重新生成先前存储的数据结构,可组合存储在重复数据删除后的数据存储装置(320A)中的多条不同唯一数据。
如关于存储管理器(310)所论述,重复数据删除后的存储装置可仅存储唯一数据的副本。在此情形中,唯一数据的每个副本可表示先前存储在重复数据删除后的数据存储装置(320A)中的多个数据结构的部分。因此,存储在重复数据删除后的数据存储装置(320A)中的唯一一条数据的副本可用于重新生成多条先前存储的数据,例如多个先前存储的备份。
在不脱离本发明的情况下,重复数据删除后的数据存储装置(320A)可以任何格式存储仅有的数条数据。另外,当永久性存储装置(320)被说明为仅包含重复数据删除后的数据存储装置(320A)时,在不脱离本发明的情况下,永久性存储装置(320)可包含其它数据。
如上文所论述,重复数据删除后的数据存储装置(320A)可存储备份。图4示出根据本发明的一个或多个实施例的实例重复数据删除后的数据存储装置(400)的图式。图4中的图式是存储在实例重复数据删除后的数据存储装置(400)中的数据的说明图且不表示重复数据删除后的数据的实际上存储的段。
在本发明的一个或多个实施例中,实例重复数据删除后的数据存储装置(400)包含多个条目(401、405)。条目可存储备份(例如,401C)和关于存储备份的数据。关于备份的数据可包含备份标识符(401A),例如文件名,以及存储备份的年龄(401B)。年龄(401B)可用于识别备份(401C)已存储多长时间和/或备份(401C)的创建日期。备份标识符(401A)可以是供系统用以识别备份(401C)的标识符。
在本发明的一个或多个实施例中,除提供备份(401C)的标识之外,备份标识符(401A)还反映备份(401C)是否是连续性链的部分。换句话说,备份标识符(401A)的字符中的一些可使其能够确定备份(401C)是否链接到另一备份。举例来说,备份标识符(401A)的字符中的一些可包含另一备份的标识符。通过这样做,本发明的实施例可提供确定备份(例如,401C)是否是连续性链的部分的高效方法。
为了进一步阐明备份,图5示出根据本发明的一个或多个实施例的实例备份(500)的图式。实例备份(500)可包含备份标识符(502)、使用寿命(504)、依赖关系标识符(506)、虚拟机标识符(508)和虚拟机数据(501)。
备份标识符(502)可与备份标识符(401A,图4)相同。换句话说,实例备份(500)可包含备份标识符(401A,图4)的副本,实例备份(500)可包含备份标识符(401A,图4)的唯一副本,或实例备份(500)可不包含备份标识符(401A,图4)的副本。
使用寿命(504)可指示实例备份(500)的年龄。年龄可以是自实例备份(500)存储在备份存储装置中起的持续时间。年龄可以是自实例备份(500)生成起的持续时间。年龄可指示实例备份(500)存储在备份存储装置中的时间。年龄可指示实例备份(500)生成的时间。使用寿命(504)可包含任何类型的信息,其使得能够确定虚拟机数据(510)的年龄,例如虚拟机数据(510)已存储多长时间的指示。
依赖关系标识符(506)可包含使得能够识别第二备份的信息,实例备份(500)依赖于所述第二备份。依赖关系标识符(506)可以是例如第二备份的标识符。在不脱离本发明的情况下,依赖关系标识符(506)可以是使得能够识别第二备份的其它类型的信息。
虚拟机标识符(508)可使得能够识别与虚拟机数据(510)相关联的虚拟机。关联可以是虚拟机数据(510)是由虚拟机标识符(508)识别的虚拟机的备份。虚拟机标识符(508)可以是例如统一资源标识符,其唯一地将虚拟机与所有其它虚拟机区别开。在不脱离本发明的情况下,虚拟机标识符(508)可以是其它类型的标识符。
虚拟机数据(510)可以是由虚拟机标识符(508)指定的虚拟机的备份。虚拟机数据(501)可以是例如虚拟机的图像、虚拟机的差异磁盘、在虚拟机上执行的应用程序的日志,或可用于将虚拟机或其的部分恢复到先前状态的其它类型的数据结构。
虽然图4到5的数据结构已说明为单独数据结构,但在不脱离本发明的情况下,前述数据结构可与其它数据组合。另外,虽然前述数据结构说明为存储在实例备份存储装置(300)上,但在不脱离本发明的情况下,数据结构可存储在其它装置的永久性存储装置上。
另外,虽然图4到5中所说明的数据结构示出为条目列表,但在不脱离本发明的情况下,数据结构可以其它格式存储,可分成多个数据结构,和/或数据结构的部分可跨多个计算装置分布。
如上文所论述,除其它功能之外,图1的系统的组件还可执行生成和存储备份以及对存储备份执行垃圾收集的方法。图6A到7示出根据本发明的一个或多个实施例的可由图1的系统的组件执行的方法。
图6A示出根据本发明的一个或多个实施例的方法的流程图。根据本发明的一个或多个实施例,图6A中所描绘的方法可用于从备份存储装置移除失效备份。图6A中所示出的方法可由例如备份存储装置(例如,120,图1)执行。在不脱离本发明的情况下,图1中说明的系统的其它组件可执行图6A的方法。
在步骤600中,识别备份生成会话的结束。
在本发明的一个或多个实施例中,通过从已完成备份生成会话的备份代理接收通知来识别备份生成会话的结束。备份生成会话可以是备份代理正在编排备份存储装置中的备份的生成和存储的时间段。
在不脱离本发明的情况下,可经由其它方法识别备份生成会话的结束。举例来说,备份存储装置可监视远程备份代理(例如,110,图1)的备份生成活动。当备份生成活动结束时,可识别备份生成会话的结束。
在步骤602中,执行日期分析以识别可能失效备份集。
在本发明的一个或多个实施例中,识别的可能失效备份集包含比其它备份更可能失效的备份存储装置的备份的部分。换句话说,可能失效备份包含备份存储装置的备份子集。可能失效备份还可包含存储在生产主机上的备份,或替代地,仅包含存储在生产主机上的备份。
在本发明的一个或多个实施例中,所述可能失效备份集包含存储在备份存储装置中的小于预先确定的百分比的备份。预先确定的百分比可以是50%。在本发明的一个或多个实施例中,预先确定的百分比是10%。
在本发明的一个或多个实施例中,执行数据分析是低计算资源消耗活动。换句话说,可在对备份系统的操作产生极小影响的情况下执行分析。
在本发明的一个或多个实施例中,经由图6B中所说明的方法执行日期分析。在不脱离本发明的情况下,可经由其它方法执行日期分析以识别所述可能失效备份集。
在步骤604中,执行对识别的可能失效备份集中的每个备份的连续性链分析以识别失效备份集。
在本发明的一个或多个实施例中,识别的失效备份集包含不可用于虚拟机恢复目的的备份存储装置的备份的部分。
在本发明的一个或多个实施例中,所述失效备份集还包含存储在生产主机上的备份,例如不作为先前执行的备份生成过程的部分移除的备份的副本。
在本发明的一个或多个实施例中,所述失效备份集仅包含存储在生产主机上的备份,例如不作为先前执行的备份生成过程的部分移除的备份。
在本发明的一个或多个实施例中,相比于执行步骤602的日期分析,执行连续性链分析是更高的计算资源消耗活动。换句话说,相比于日期分析,执行连续性链分析可对备份存储装置的性能产生更多的负面影响。通过执行日期分析,在连续性链分析之前,当相比于对备份存储装置的备份的所有仅执行连续性链分析,本发明的实施例通过释放备份存储装置的计算资源来提供改进的计算装置。
在本发明的一个或多个实施例中,经由图6C中所说明的方法执行连续性链分析。在不脱离本发明的情况下,可经由其它方法执行连续性链分析以识别所述失效备份集。
在步骤606中,删除由所述失效备份集指定的每个备份。通过删除失效备份,本发明的一个或多个实施例可提供改进的计算装置,例如当相比于不删除失效备份的计算装置,具有更高可用存储容量的备份存储装置。因此,本发明的实施例通过提供高存储容量或更有效地使用现有存储容量来改进计算装置的操作。还可通过移除备份改进计算装置的其它计算资源,例如改进的处理器循环可用性、改进的存储装置输入-输出可用性等。如关于图3所提及,备份可存储在重复数据删除后的存储装置中,所述重复数据删除后的存储装置因此具有计算资源开销(例如,i,用于检查以识别数据是否是唯一的所消耗的处理器循环/存储器空间),其随着重复数据删除后的存储装置的侧增加而增加因此,移除不可用于恢复目的的备份还可减少计算开销。
所述方法可在步骤606后结束。
图6B示出根据本发明的一个或多个实施例的方法的流程图。根据本发明的一个或多个实施例,图6B中所描绘的方法可用于执行日期分析以识别可能失效备份集。图6B中所示出的方法可由例如备份存储装置(例如,120,图1)执行。在不脱离本发明的情况下,图1中说明的系统的其它组件可执行图6B的方法。
在步骤610中,识别阈值年龄。
在本发明的一个或多个实施例中,预先确定阈值年龄。预先确定的年龄可以是例如1个月。可在不脱离本发明的情况下使用其它预先确定的年龄。
在本发明的一个或多个实施例中,可基于对备份存储装置中的备份的年龄的统计特征化来识别阈值年龄。在本发明的一个或多个实施例中,年龄的统计特征化是平均年龄。在本发明的一个或多个实施例中,年龄的统计特征化是年龄的模式。在本发明的一个或多个实施例中,年龄的统计特征化是平均年龄加上年龄的一个到三个标准差。
在本发明的一个或多个实施例中,阈值年龄是存储在备份存储装置中的备份年龄的90%,例如包含最旧备份的前10%的年龄。可在不脱离本发明的情况下使用其它百分位排序。
在步骤612中,将备份中的每个备份的年龄与阈值年龄相比,以识别各自具有大于阈值年龄的年龄的备份子集。备份可以是本地备份,例如存储在备份存储装置中,和/或远程备份,例如存储在生产主机中。
在步骤614中,将所述备份子集添加到所述可能失效备份集。
所述方法可在步骤614后结束。
图6C示出根据本发明的一个或多个实施例的方法的流程图。根据本发明的一个或多个实施例,图6C中所描绘的方法可用于执行连续性链分析,以识别失效备份集。图6C中所示出的方法可由例如备份存储装置(例如,120,图1)执行。在不脱离本发明的情况下,图1中说明的系统的其它组件可执行图6C的方法。
在步骤620之前,认为所述可能失效备份集中的所有备份都是未经检查的。
在步骤620中,选择所述可能失效备份集中的未经检查的备份。在不脱离本发明的情况下,可使用任何方法选择未经检查的备份。
在步骤622中,确定选定的未经检查的备份是否连接到另一备份或是独立的。
在本发明的一个或多个实施例中,通过确定选定的未经检查的备份是否包含备份的标识符来检查选定的未经检查的备份。另一备份的标识符可以备份的名义包含在备份的标识符中,关于备份的元数据中,或在与备份相关联的另一位置处。另一备份的标识符的存在指示备份链接到另一备份。链接的备份被视为连接的。
如果备份不包含另一备份的标识符,那么确定备份的类型。如果备份的类型是不可连接的,例如不可依赖于另一备份的虚拟机图像,那么未经检查的备份被视为是独立的。如果备份的类型是连接的,那么未经检查的备份被视为既不是连接的也不是独立的。
如果选定的未经检查的备份不是连接的或独立的,那么方法进行到步骤624。如果选定的未经检查的备份是连接的或独立的,那么方法进行到步骤628。
在本发明的一个或多个实施例中,当未经检查的备份被视为连接到另一备份时,还可如上文在步骤624中所描述,分析另一备份。可重复此过程,直到(i)识别未连接和依赖的备份或(ii)识别独立的备份为止。这样做可以确保定期完全询问包含较早成员的备份的连续性链,以获取成员的失效期。此类连续性链可具有包含失效成员的更高的可能性。
对连续性链中的较新的成员执行类似分析,例如不是所述可能失效备份集中的成员但依赖于选定的未经检查的备份的备份。这样做可以前瞻性地识别连续性链的可能失效的较新的成员。通过前瞻性地识别连续性链的较新的失效成员,本发明的一个或多个实施例可进一步改进计算装置的可用存储容量,而不询问所有备份且因此节省计算资源。
在步骤624中,将选定的未经检查的备份添加到所述失效备份集。
在步骤626中,确定是否已经检查所述可能失效备份集中的所有备份。如果已经检查所述可能失效备份集中的所有备份,那么方法可结束。如果尚未检查所述可能失效备份集中的所有备份,那么方法进行到步骤628。
在步骤628中,所述可能失效备份集中的选定的未经检查的备份标记为已检查。
虽然步骤628指示标记了选定的未经检查的备份,在不脱离本发明的情况下,可使用组织所述可能失效备份集中的已检查和未经检查的备份的其它方法。举例来说,所述可能失效备份集可以是任意排序的且可仅重复步骤620到628的循环,直到所述可能失效备份集中的所有备份已经检查为止。
图7示出根据本发明的一个或多个实施例的方法的流程图。根据本发明的一个或多个实施例,图7中所描绘的方法可用于将虚拟机的备份存储在备份存储装置中。图7中所示出的方法可由例如远程备份代理(例如,110,图1)执行。在不脱离本发明的情况下,图1中说明的系统的其它组件可执行图7的方法。
在步骤700中,启动虚拟机的备份生成。
可通过向生产主机的生产代理发送请求开始备份生成的消息来启动备份生成。
在步骤702中,虚拟机数据存储在备份存储装置中。
在本发明的一个或多个实施例中,虚拟机数据是虚拟机的备份,或其部分。备份可以是例如虚拟机图像、差异磁盘、日志备份或可用以独立地或与其它备份组合将虚拟机或其部分恢复到先前状态的另一数据结构。
在步骤704中,识别与虚拟机相关联的备份连续性链中最近存储的备份。
举例来说,如图5中所见,存储在备份存储装置中的每个备份可与虚拟机相关联。每个备份可进一步包含指示备份的年龄的使用寿命。可过滤或以其它方式分析备份存储装置中的备份的这些特性,以识别连续性链中最近存储的备份。在本发明的一个或多个实施例中,可过滤备份以识别与虚拟机相关联的子集。子集中的最新备份可识别为连续性链中最近存储的备份。
在步骤706中,存储的虚拟机数据与最近存储的备份连接以延伸连续性链。
在本发明的一个或多个实施例中,在步骤702之后执行步骤706。通过这样做仅将成功存储的虚拟机连接到最近存储的备份。
在本发明的一个或多个实施例中,通过添加最近存储的备份的标识符来连接存储的虚拟机数据。标识符可添加到与存储的虚拟机数据相关联的名称、元数据或其它数据结构,例如存储的备份。
所述方法可在步骤706后结束。
图7中所描绘的方法可通过提供用于识别备份故障的容错方法来改进计算装置的操作。由于虚拟机数据在成功存储虚拟机数据之前未连接到其它备份,因此存储虚拟机数据的过程中的意外故障不会导致对连续性链的添加。这样做会产生能够使用错误连接的虚拟机数据执行恢复的错误印象。因此,本发明的一个或多个实施例还通过使分布式系统能够检测连续性链中的故障的存在来改进分布式系统的操作。这样做使系统能够校正故障数据并释放计算资源,例如存储空间。
为了进一步阐明本发明的实施例的方面,图8A到8D提供非限制性实例。
实例
考虑如图8A中所说明的重复数据删除后的数据存储装置(800)正在存储虚拟机的备份的情形。在第2天,重复数据删除后的数据存储装置(800)包含条目A(801)和条目B(802),其各自对应于分别在第1天和第2天生成的备份。可在第2天存储条目B(802)之后对重复数据删除后的数据存储装置(800)执行垃圾收集,其中阈值年龄为5天。
在第3天,存储第三条目,条目C(803),包含用于虚拟机的对应备份(803C),如图8B中所说明。然而,在备份(803C)的生成和存储期间,由于在备份生成期间托管虚拟机的系统的故障,过程无法完成。备份存储装置的故障导致条目C(803)不包含备份标识符(803A)的部分,所述备份标识符包含条目B(802)的标识符。此故障表示连续性链的断裂。
在第4天到第8天执行后续备份,直到条目C(803)的年龄满足图8C中所示出的5天阈值为止。由于条目C(803)的年龄,基于日期分析将条目添加到可能失效备份集。接着对条目C(803)进行两次连续性分析,以识别其既不连接到另一备份也不是独立的。接着删除条目C(803),如图8D中所说明。
虽然图8D中未说明,但随后还可删除较新的成员,例如条目H(808),这是由于其对现在删除的条目C的依赖性。可对较旧的成员,例如条目A(801)和条目B(802)进行连续性分析,但由于其适当的依赖性而未将其删除。
实例的结束
如上所论述,本发明的实施例可使用计算装置实施。图9示出根据本发明的一个或多个实施例的计算装置的图式。计算装置(900)可包含一个或多个计算机处理器(902)、非永久性存储装置(904)(例如易失性存储器,例如随机存取存储器(RAM)、高速缓冲存储器)永久性存储装置(906)(例如,硬盘、例如光盘(CD)驱动器或数字通用光盘(DVD)驱动器等光盘驱动器、快闪存储器等)、通信接口(912)(例如蓝牙接口、红外接口、网络接口、光接口等)、输入装置(910)、输出装置(908)和许多其它元件(未示出)和功能性。以下描述这些组件中的每一个。
在本发明的一个实施例中计算机处理器(902)可以是用于处理指令的集成电路。举例来说,计算机处理器可为处理器的一个或多个核心或微核心。计算装置(900)还可包含一个或多个输入装置(910),例如,触摸屏、键盘、鼠标、麦克风、触控板、电子笔或任何其它类型的输入装置。另外,通信接口(912)可包含集成电路,其用于将计算装置(900)连接到网络(未示出)(例如,局域网(LAN)、例如因特网等广域网(WAN)、移动网络或任何其它类型的网络)和/或连接到另一装置,例如另一计算装置。
在本发明的一个实施例中,计算装置(900)可包含一个或多个输出装置(908),例如屏幕(例如,液晶显示器(LCD)、等离子显示器、触摸屏、阴极射线管(CRT)监视器、投影仪或其它显示装置)、打印机、外部存储器或任何其它输出装置。输出装置中的一个或多个可与输入装置相同或不同。输入和输出装置可本地或远程连接到计算机处理器(902)、非永久性存储装置(904)和永久性存储装置(906)。存在许多不同类型的计算装置,且前述输入和输出装置可采取其它形式。
可使用由数据管理装置的一个或多个处理器执行的指令实施本发明的一个或多个实施例。另外,此类指令可对应于存储于一个或多个非暂时性计算机可读介质上的计算机可读指令。
本发明的一个或多个实施例可通过增大可用存储空间来改进计算装置。本发明的实施例可通过移除无用备份来提供增大的可用存储空间。在本发明的一个或多个实施例中,移除无用备份的方法提供两个步骤构架,其导致(i)比其它备份更有可能失效的备份的子集使用低计算资源使用方法以及(ii)使用更高计算资源使用方法识别备份的子集的实际上失效的成员。两个步骤构架提供对失效备份的高准确度识别,而不对系统强加巨大的计算资源负载。
上文所论述的问题应理解为由本文中所公开的本发明的实施例所解决的问题的实例,且本发明不应限于解决相同/类似问题。本发明大体上适用于解决超出本文中所论述的那些问题的一系列问题。
虽然上文已关于有限数目个实施例描述本发明,但具有本发明权益的本领域的技术人员将了解,可设计不脱离如本文中所公开的本发明的范围的其它实施例。因此,本发明的范围应只受到随附的权利要求书限制。
Claims (18)
1.一种用于存储虚拟机的备份的存储装置,其包括:
永久性存储装置,其存储所述备份;以及
垃圾收集器,其编程成:
识别备份生成会话的结束;
响应于识别所述备份生成会话的结束而:
执行日期分析,以识别所述备份的可能失效备份集,其中每个备份具有大于阈值年龄的相应年龄;
执行对所述可能失效备份集中的每个备份的连续性链分析,以识别失效备份集,其中每个备份没有链接到其他备份,
其中执行对所述可能失效备份集中的每个备份的所述连续性链分析以识别所述失效备份集包括:
选择所述可能失效备份集中的第一备份;
读取所述备份的第一备份的第一文件名;
提取所述第一文件名的第一部分;
执行所述第一文件名的所提取第一部分与所述备份的相应文件名的第一匹配;
基于所述第一匹配作出不将所选定的第一备份链接到所述备份中的任一个的第一确定;及
在从所述失效备份集中排除所选定的第一备份之后:
将所选定的第一备份包含在所述失效备份集中;及
将所述备份中的所述第一备份包含在所述失效备份集中;且
删除所述失效备份集中的每个备份。
2.根据权利要求1所述的存储装置,其中所述可能失效备份包含所述备份中的多个备份。
3.根据权利要求2所述的存储装置,其中所述阈值年龄是基于所述备份的平均年龄。
4.根据权利要求1所述的存储装置,其中执行对所述可能失效备份集中的每个备份的所述连续性链分析以识别所述失效备份集进一步包括:
选择所述可能失效备份集中的第二备份以得到所选定的第二备份;
读取所选定的第二备份的第二文件名;
提取所述第二文件名的第二部分;
执行所述第二文件名的所提取的第二部分与所述备份的相应文件名的第二匹配;
基于所述第二匹配作出将所选定的第二备份链接到所述备份中的第二备份的第二确定;且
从所述失效备份集中排除所选定的第二备份。
5.根据权利要求1所述的存储装置,其中所述备份中的所述第一备份是所述可能失效备份集的成员。
6.根据权利要求1所述的存储装置,其中执行对所述可能失效备份集中的每个备份的所述连续性链分析以识别所述失效备份集进一步包括:
选择所述可能失效备份集中的第二备份以得到所选定的第二备份;且
读取所选定的第二备份的依赖关系标识符,
其中所述依赖关系标识符是所述备份中的第三备份的标识符。
7.根据权利要求6所述的存储装置,其中所选定的第二备份是基于所述虚拟机中的一个虚拟机的图像。
8.根据权利要求7所述的存储装置,其中所述第二备份是基于所述虚拟机中的所述一个虚拟机的差异磁盘。
9.根据权利要求7所述的存储装置,其中所选定的第一备份具有第一年龄,所述第二备份具有第二年龄,且所述第二年龄小于所述第一年龄。
10.根据权利要求7所述的存储装置,其中所述虚拟机中的所述一个虚拟机仅使用所选定的第一备份能够恢复到与所选定的第一备份相关联的第一时间点的点。
11.根据权利要求10所述的存储装置,其中所述虚拟机中的所述一个虚拟机仅使用所述第二备份不能够恢复到与所述第二备份相关联的第二时间点。
12.根据权利要求11所述的存储装置,其中所述虚拟机中的所述一个虚拟机使用所选定的第一备份和所述第二备份两者能够恢复到与所述第二备份相关联的所述第二时间点。
13.一种用于存储虚拟机的备份的方法,其包括:
识别备份生成会话的结束;
响应于对所述结束的所述识别而:
执行日期分析,以识别所述备份的可能失效备份集,其中每个备份具有大于阈值年龄的相应年龄;
执行对所述可能失效备份集中的每个备份的连续性链分析,以识别失效备份集,其中每个备份没有链接到其他备份,
其中执行对所述可能失效备份集中的每个备份的所述连续性链分析以识别所述失效备份集包括:
选择所述可能失效备份集中的第一备份;
读取所述备份的第一备份的第一文件名;
提取所述第一文件名的第一部分;
执行所述第一文件名的所提取第一部分与所述备份的相应文件名的第一匹配;
基于所述第一匹配作出不将所选定的第一备份链接到所述备份中的任一个的第一确定;及
在从所述失效备份集中排除所选定的第一备份之后:
将所选定的第一备份包含在所述失效备份集中;及
将所述备份中的所述第一备份包含在所述失效备份集中;且
删除所述失效备份集中的每个备份。
14.根据权利要求13所述的方法,其中所述可能失效备份包含所述备份中的多个备份。
15.根据权利要求14所述的方法,其中所述阈值年龄是基于所述备份的平均年龄。
16.一种非暂时性计算机可读介质,其包括计算机可读程序代码,所述代码当由计算机处理器执行时使所述计算机处理器能够执行用于存储虚拟机的备份的方法,所述方法包括:
识别备份生成会话的结束;
响应于对所述结束的所述识别而:
执行日期分析,以识别所述备份的可能失效备份集;
执行对所述可能失效备份集中的每个备份的连续性链分析,以识别失效备份集,其中每个备份没有链接到其他备份,
其中执行对所述可能失效备份集中的每个备份的所述连续性链分析以识别所述失效备份集包括:
选择所述可能失效备份集中的第一备份;
读取所述备份的第一备份的第一文件名;
提取所述第一文件名的第一部分;
执行所述第一文件名的所提取第一部分与所述备份的相应文件名的第一匹配;
基于所述第一匹配作出不将所选定的第一备份链接到所述备份中的任一个的第一确定;及
在从所述失效备份集中排除所选定的第一备份之后:
将所选定的第一备份包含在所述失效备份集中;及
将所述备份中的所述第一备份包含在所述失效备份集中;且
删除所述失效备份集中的每个备份。
17.根据权利要求16所述的非暂时性计算机可读介质,其中所述可能失效备份包含所述备份中的多个备份,其中所述多个备份的每个备份具有大于阈值年龄的相应年龄。
18.根据权利要求17所述的非暂时性计算机可读介质,其中所述阈值年龄是基于所述备份的平均年龄。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/022,622 US10942649B2 (en) | 2018-06-28 | 2018-06-28 | System and method for backup storage garbage collection |
US16/022,622 | 2018-06-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110658989A CN110658989A (zh) | 2020-01-07 |
CN110658989B true CN110658989B (zh) | 2023-08-11 |
Family
ID=67070593
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910565938.0A Active CN110658989B (zh) | 2018-06-28 | 2019-06-27 | 用于备份存储垃圾收集的系统和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10942649B2 (zh) |
EP (1) | EP3591529B1 (zh) |
CN (1) | CN110658989B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7788456B1 (en) * | 2006-02-16 | 2010-08-31 | Network Appliance, Inc. | Use of data images to allow release of unneeded data storage |
US9235606B1 (en) * | 2012-12-21 | 2016-01-12 | Emc Corporation | Simplified database/log backup and restore |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6647399B2 (en) | 1999-11-29 | 2003-11-11 | International Business Machines Corporation | Method, system, program, and data structures for naming full backup versions of files and related deltas of the full backup versions |
US7328366B2 (en) * | 2003-06-06 | 2008-02-05 | Cascade Basic Research Corp. | Method and system for reciprocal data backup |
US7536424B2 (en) * | 2004-05-02 | 2009-05-19 | Yoram Barzilai | System and methods for efficiently managing incremental data backup revisions |
US7930265B2 (en) * | 2007-01-08 | 2011-04-19 | International Business Machines Corporation | Method for threshold migration based on fuzzy logic triggers |
US7953945B2 (en) * | 2008-03-27 | 2011-05-31 | International Business Machines Corporation | System and method for providing a backup/restore interface for third party HSM clients |
US9229818B2 (en) * | 2011-07-20 | 2016-01-05 | Microsoft Technology Licensing, Llc | Adaptive retention for backup data |
US9104331B2 (en) | 2012-09-28 | 2015-08-11 | Emc Corporation | System and method for incremental virtual machine backup using storage system functionality |
US9977704B1 (en) | 2014-09-26 | 2018-05-22 | EMC IP Holding Company LLC | Automated backup and replication of virtual machine data centers |
US20160117226A1 (en) * | 2014-10-22 | 2016-04-28 | Netapp, Inc. | Data recovery technique for recovering data from an object store |
US9715346B2 (en) | 2014-11-04 | 2017-07-25 | Rubrik, Inc. | Cluster-based network file server |
US10176182B2 (en) * | 2015-08-31 | 2019-01-08 | International Business Machines Corporation | File deletion in storage devices based on the deletion priority rules |
US10248336B1 (en) * | 2016-09-30 | 2019-04-02 | Tintri By Ddn, Inc. | Efficient deletion of shared snapshots |
-
2018
- 2018-06-28 US US16/022,622 patent/US10942649B2/en active Active
-
2019
- 2019-06-25 EP EP19182218.8A patent/EP3591529B1/en active Active
- 2019-06-27 CN CN201910565938.0A patent/CN110658989B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7788456B1 (en) * | 2006-02-16 | 2010-08-31 | Network Appliance, Inc. | Use of data images to allow release of unneeded data storage |
US9235606B1 (en) * | 2012-12-21 | 2016-01-12 | Emc Corporation | Simplified database/log backup and restore |
Also Published As
Publication number | Publication date |
---|---|
EP3591529A1 (en) | 2020-01-08 |
US10942649B2 (en) | 2021-03-09 |
EP3591529B1 (en) | 2021-08-04 |
US20200004428A1 (en) | 2020-01-02 |
CN110658989A (zh) | 2020-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10261853B1 (en) | Dynamic replication error retry and recovery | |
US11397648B2 (en) | Virtual machine recovery method and virtual machine management device | |
US8132043B2 (en) | Multistage system recovery framework | |
US9645892B1 (en) | Recording file events in change logs while incrementally backing up file systems | |
US9377964B2 (en) | Systems and methods for improving snapshot performance | |
US10204019B1 (en) | Systems and methods for instantiation of virtual machines from backups | |
US10887158B2 (en) | Alert dependency checking | |
US20170344433A1 (en) | Apparatus and method for data migration | |
CN112114999A (zh) | 一种数据备份方法、数据恢复方法、装置及电子设备 | |
CN107506266B (zh) | 一种数据恢复方法及系统 | |
US10979281B2 (en) | Adaptive alert monitoring | |
CN105573859A (zh) | 一种数据库的数据恢复方法和设备 | |
US11099963B2 (en) | Alert dependency discovery | |
US11093290B1 (en) | Backup server resource-aware discovery of client application resources | |
CN110658989B (zh) | 用于备份存储垃圾收集的系统和方法 | |
CN114328007B (zh) | 一种容器备份还原方法、装置及其介质 | |
US20190050455A1 (en) | Adaptive page rendering for a data management system | |
US11436073B2 (en) | Fault indications for storage system commands | |
CN112148532A (zh) | 硬盘数据的批量恢复方法、装置、存储介质及电子设备 | |
US10698790B1 (en) | Proactive debugging | |
US11977459B2 (en) | Techniques for accelerated data recovery | |
US20240103975A1 (en) | Dynamic resource scaling for large-scale backups | |
US11475159B2 (en) | System and method for efficient user-level based deletions of backup data | |
CN116578446B (zh) | 虚拟机备份方法、装置、系统、电子设备及存储介质 | |
US20240160534A1 (en) | Snappable recovery chain over generic managed volume |
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 |