CN105144113B - 从快照恢复应用 - Google Patents

从快照恢复应用 Download PDF

Info

Publication number
CN105144113B
CN105144113B CN201480015128.3A CN201480015128A CN105144113B CN 105144113 B CN105144113 B CN 105144113B CN 201480015128 A CN201480015128 A CN 201480015128A CN 105144113 B CN105144113 B CN 105144113B
Authority
CN
China
Prior art keywords
action
application specific
application
recovery
specific data
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
CN201480015128.3A
Other languages
English (en)
Other versions
CN105144113A (zh
Inventor
A·达阿马托
V·R·尚卡尔
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing 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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN105144113A publication Critical patent/CN105144113A/zh
Application granted granted Critical
Publication of CN105144113B publication Critical patent/CN105144113B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory 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/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/825Indexing scheme relating to error detection, to error correction, and to monitoring the problem or solution involving locking
    • 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

Abstract

对与应用相对应的应用专用数据的针对性恢复,而无需执行对整个卷的恢复。通过开始从先前快照复制应用专用数据容器的内容的先前状态到该应用可访问的操作卷中的应用专用数据容器来发起该恢复。然而,在仍从快照复制应用专用数据容器的内容到应用专用数据容器的同时,仍准许该应用执行对应用专用数据容器的读操作和写操作。因此,即使对应用专用数据容器的内容的恢复仍在后台继续,该应用专用数据容器在应用看来仍是完全可访问。

Description

从快照恢复应用
背景
计算机和计算系统已经影响了现代生活的近乎每一个方面。计算机通常涉及工作、休闲、医疗保健、运输、娱乐、家政管理等。计算机功能通常是计算系统执行软件代码的结果。计算机使用卷来存储软件代码,并且还存储数据。
偶尔地,卷可能受到毁坏,或卷本身可能被损坏。在任一情况下,卷被呈现为不可用。为了对这样的故障事件作准备,计算系统可致使周期性地拍摄卷的快照。如果故障事件发生,则该卷如若受损坏则可被替换掉,并且恢复模块可通过将卷从最新近的有效快照复制回来来促成对卷的恢复。由此,尽管有卷的故障,卷还可被返回到先前状态,从而允许计算机功能返回。
概述
根据本文描述的至少一个实施例,描述了对与应用相对应的应用专用数据的针对性恢复。作为一示例,应用可以是虚拟机,而应用专用数据可以是与该虚拟机相对应的虚拟硬盘驱动器。执行对应用专用数据的恢复,而无需执行对整个卷的恢复。
通过开始从先前快照复制应用专用数据容器的内容的先前状态到该应用可访问的操作卷中的应用专用数据容器来发起该恢复。然而,在仍从快照复制应用专用数据容器中的内容到应用专用数据容器同时,仍准许该应用执行对应用专用数据容器的读和写操作。因此,即使对应用专用数据容器的内容的恢复仍在后台继续,该应用专用数据容器在应用看来仍是完全可访问。
本概述不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
附图简述
为了描述能够获得上述和其它优点和特征的方式,各实施例的更具体的描述将通过参考各附图来呈现。可以理解,这些附图只描绘了示例实施例,并且因此不被认为是对其范围的限制,将通过使用附图并利用附加特征和细节来描述和解释各实施例,在附图中:
图1抽象地示出了其中可采用本文描述的一些实施例的计算系统;
图2根据本文中描述的原理示意性地示出了其中可发生对应用的针对性恢复而无需恢复整个系统的示例系统;
图3示出了用于恢复与应用相对应的应用专用数据的方法的流程图;
图4示出了用于在恢复操作仍在进行的同时执行读操作的方法的流程图;以及
图5示出了用于在恢复操作仍在进行的同时执行写操作的方法的流程图。
详细描述
根据本文中描述的各实施例,描述了针对性地恢复与应用相对应的应用专用数据,而无需执行对整个卷的恢复。通过开始从先前快照复制应用专用数据容器的内容的先前状态到该应用可访问的操作卷中的应用专用数据容器来发起该恢复。然而,通过使用以下进一步描述的原理,当仍从快照复制应用专用数据容器的内容到应用专用数据容器的同时,仍准许该应用对应用专用数据容器的执行读操作和写操作。因此,即使对应用专用数据容器的内容的恢复仍在后台继续,该应用专用数据容器在应用看来仍是完全可访问。
将参考图1来描述对计算系统的一些介绍性讨论。随后将按以上参考图2-5提供的次序来描述针对性恢复。
计算系统现在越来越多地采取多种多样的形式。例如,计算系统可以是手持式设备、电器、膝上型计算机、台式计算机、大型机、分布式计算系统或甚至常规上不被认为是计算系统的设备。在本说明书以及权利要求书中,术语“计算系统”被广义地定义为包括任何设备或系统(或其组合),该设备或系统包含至少一个物理有形的处理器以及其上能具有可由处理器执行的计算机可执行指令的物理有形的存储器。存储器可以采取任何形式,并可以取决于计算系统的性质和形式。计算系统可以分布在网络环境中,并可包括多个组分计算系统。
如图1所示,在其最基本的配置中,计算系统100包括至少一个处理单元102和计算机可读介质104。计算机可读介质104在概念上可被认为包括物理系统存储器,其可以是易失性的、非易失性的或这两者的某种组合。计算机可读介质104在概念上还包括非易失性大容量存储。如果计算系统是分布式的,则处理、存储器和/或存储能力也可以是分布式的。
如本文中所使用的,术语“可执行模块”或“可执行组件”可以指可以在计算系统上执行的软件对象、例程或方法。此处所描述的不同组件、模块、引擎以及服务可以实现为在计算系统上执行的对象或进程(例如,作为分开的线程)。在其中实施类型安全性并且其中各进程被分配了它们自己的不同存储器对象的受管环境中执行的情况下,这样的可执行模块可以是受管代码。在可执行模块用本机代码(如C或C++)编写的情况下,这样的可执行模块还可以是非受管代码。
在随后的描述中,参考由一个或多个计算系统执行的动作描述了各实施例。如果这样的动作是以软件实现的,则执行动作的相关联计算系统的一个或多个处理器响应于已经执行了计算机可执行指令来引导计算系统的操作。例如,这样的计算机可执行指令可以在形成计算机程序产品的一个或多个计算机可读介质上实现。这样的操作的示例涉及对数据的操纵。计算机可执行指令(以及被操纵的数据)可被存储在计算系统100的存储器104中。计算系统100还可包含允许计算系统100例如通过网络110与其他处理器通信的通信信道108。
本文中描述的各实施例可包括或利用专用或通用计算机,该专用或通用计算机包括诸如例如一个或多个处理器和系统存储器等计算机硬件,如以下更详细讨论的。本文中描述的各实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。承载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种显著不同的计算机可读介质:计算机存储介质和传输介质。
计算机存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备,或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他有形存储介质。
“网络”被定义为使得电子数据能够在计算机系统和/或模块和/或其它电子设备之间传输的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可以包括可以用来携带所需要的以计算机可执行的指令或数据结构的形式存在的程序代码装置并可以被通用或专用计算机访问的网络和/或数据链路。上述的组合应当也被包括在计算机可读介质的范围内。
此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码资料可从传输介质自动传输到计算机存储介质(或反之亦然)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可被缓存在网络接口控制器(例如,_NIC)内的RAM中,然后最终被传输到计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质。因而,应当理解,计算机存储介质可被包括在还利用(或甚至主要利用)传输介质的计算机系统组件中。
计算机可执行指令例如包括,当在处理器处执行时使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。更具体而言,上述特征和动作是作为实现权利要求的示例形式而公开的。
本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。本发明也可在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实施。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备二者中。
图2根据本文中描述的原理示意性地示出了其中可发生对应用的针对性恢复而无需恢复整个系统的示例系统200。系统200包括多个应用201可访问的操作卷210,以使得可将这些应用201可以读操作卷210以及写操作卷210。例如,应用201被示为包括四个应用201A、201B、201C和201D,但省略号201E表示本文中描述的原理根本不限于操作特定数目的应用的系统。系统200可操作单个应用201A或全都共享操作卷210的成千上万个应用。“卷”是被文件系统识别为包括连续的逻辑或物理地址的单个名字空间。
操作卷210存储应用专用数据容器211A,但是如省略号211B所表示的,操作卷210可存储除应用专用数据容器以外的庞大数量的数据。应用专用数据容器211A与应用201A相关联,如线212所表示的。应用专用数据容器211A例如可以是应用专用文件。
在一个示例中,诸应用201可各自是虚拟机。在那种情况下,应用201A可以是虚拟机,并且应用专用数据容器211A可以是与应用201A相关联的虚拟硬件驱动器。在那种情况下,系统200可以是托管多个虚拟机的主机计算系统的一部分。主机计算系统可具有多个卷,尽管在图2中仅示出了一个卷210。
本文中描述的原理准许方便地恢复应用专用数据容器,而无需恢复其中存储该应用专用数据容器的整个卷。例如,在图2中,可恢复应用专用数据容器211A,而无需恢复整个卷210。这是有帮助的,因为有时应用专用数据容器211A可能受毁坏或不可信,而卷210本身作为整体保持未受毁坏。此外,对整个卷的恢复与对该卷的仅一部分的恢复相比可花费长的多的时间。
显著地,系统200进一步操作使得在对应用专用数据容器211A的恢复正在后台进行的同时,应用201A可继续在应用专用数据容器211A上操作。因此,尽管该恢复实际上在长的多的时间段内在后台发生,但从应用201A的角度上来看,该恢复发生得很快,并且或许在不可察觉的时间量内发生。
为了促成该针对性且快速的恢复,系统200包括多个可执行模块,该多个可执行模块包括管理模块221、快照模块222和恢复模块223。以下将进一步描述这些模块中的每一者。
模块221到223可各自由计算系统(诸如计算系统100)响应于该计算系统的处理器(例如,(诸)处理器102)执行计算机可读存储介质(包括计算机程序产品)上存储的一个或多个计算机可执行指令而被发起和/或操作。虽然特定动作被描述为与模块221和223相关联,但这样的动作无需由所描述的特定模块来执行。
为了对恢复的可能需要作准备,快照模块222至少拍摄应用专用数据容器211A的快照,但可能拍摄卷210的更大片段的快照,或甚至可能拍摄整个卷210总体的快照。这些快照可以是周期性的和/或是响应于特定事件的。在任何情况下,图2示出了一示例,其中快照模块已拍摄了应用专用数据容器211A的三个快照231A、231B和231C,并且已如多头箭头241所表示地将这些快照231A、231B和231C提供在快照卷230中。在该示例中,快照231A是最老的快照,快照231B是所拍摄的第二快照,而快照231C是应用专用数据容器211A的最新近的快照。
管理模块221确定应用专用数据容器是否以及何时将经受从快照卷230内的快照恢复。作为响应,恢复模块223执行应用专用数据容器211A从快照卷230中的快照231C的恢复,以如箭头242所表示的重新填充应用专用数据容器221A的内容。尽管在该恢复被发起时应用专用数据容器211A可能临时对应用201A不可用,但紧接在该恢复被发起之后,管理模块221可准许应用201A对应用专用数据容器211A执行读操作和写操作。
图3示出了用于恢复与应用相对应的应用专用数据的方法300的流程图。由于方法300可在图2的系统200内执行,因此现将参考图2来描述方法300。
方法300在确定应用的特定应用专用数据容器将经受从快照恢复之际被发起(动作301)。例如,参考图2,管理模块221确定应用201A的应用专用容器211A将经受从快照231C恢复。
作为响应,该方法通过例如关闭应用专用数据容器来临时使得该应用专用数据容器不可用于该应用(动作302)。例如,在图2中,管理组件221可关闭应用专用数据容器211A。应用专用数据容器211A将保持被关闭达与恢复操作的总长度相比简短的时间。此外,应用专用数据容器211A被关闭而无需关闭操作卷210,由此使得在应用专用数据容器211A被关闭时,操作卷210可用于至少一个其他应用(例如,应用210B)。
随后发起恢复操作(动作303)。例如,在图2的情况下,恢复模块223通过开始如箭头242所表示的那样从先前快照231C复制应用专用数据容器201A的内容的先前状态来发起恢复。恢复模块223将继续进行到一次从先前快照231C复制应用专用数据容器201A的一个区域。在恢复一区域之前,恢复模块223将对该区域采用范围锁。
一旦恢复操作被发起,应用专用数据容器就被打开(动作305),由此只要在包含从其读出或向其写入的存储器位置的区域上不存在由恢复模块保持的范围锁,就准许该应用对应用专用数据容器执行读操作和写。即使恢复操作继续(动作304)并且事实上可能仅在片刻前开始,应用专用数据容器也被打开。由此,参考图2,恢复模块223在后台继续该恢复(如由箭头242所表示的),同时管理模块221继续允许应用201A对应用专用容器211A执行读操作和写操作。
当恢复仍在进行中(动作304)时,管理模块221操作以按使来自应用201A的读请求和写请求与如本文中所描述的恢复一致履行的方式对这些读请求和写请求作出响应。
例如,在检测应用201A发出了对来自应用专用数据容器的内容的地址区域的读请求(在决策框311中为“是”)之际,管理模块221使得该恢复针对那个地址区域临时暂停(动作312),从而使得如果恢复接近那个地理区域或甚至到达该地址区域,则该恢复暂停。执行该读操作(动作313),并且此后继续对那个地址区域的恢复,从而使得如果该恢复将接近或到达该区域,则恢复将不会暂停(动作314)。作为示例,该读操作可按参考图4所示出和描述的方式来执行。每当应用201A向应用专用数据容器211A发起读请求时都可执行动作312到314。
在检测到应用201A发出了对应用专用数据容器的地址区域的写请求(在决策框321中为“是”)之际,管理模块221再次使得该恢复针对那个地址区域临时暂停(动作322),从而使得如果恢复接近那个地理区域或甚至到达该地址区域,则该恢复暂停。执行该写操作(动作323),并且此后继续该恢复,从而使得如果该恢复将接近或到达该区域,则该恢复将不会暂停(动作324)。作为示例,该写操作可按参考图5所示出和描述的方式来执行。每当应用201A向应用专用数据容器211A发出读请求时,都可执行动作312到314。
图4示出了用于在恢复操作仍在进行的同时对读请求作出响应的方法400。方法400可被执行以执行图3中的动作313的读操作。由此,方法400可在图3的动作312之后被发起。
方法400确定与读请求相对应的地址区域是否已经被还原到操作卷中的应用专用数据容器中(决策框401)。这可由恢复模块223咨询恢复过程状态251来完成。例如,如果恢复模块223顺序地从快照231C复制该内容,则恢复过程状态251可表示高水印(high watermark),从而表示最高地址已被恢复到应用专用数据容器中。此外,这可由恢复模块223咨询表示自该恢复开始以来该应用专用数据容器的地址区域已经被写入的已写入指示252来完成。例如,可能已响应于方法500的执行或响应于以下进一步描述的图4中的动作406而向该地址区域进行了写入,即使尚未通过经由动作304执行的正常恢复而到达该地址区域。
如果读请求的地址区域已经被还原到应用专用数据容器(决策框401中为“是”),则从操作卷中的应用专用数据容器读该地址区域的内容(动作402),并由此响应于该读请求而使该地址区域的内容对应用201A可用(动作403)。如果读请求的地址区域尚未被还原到应用专用数据容器(决策框401中为“否”),则改为从快照的相应部分读该内容(动作404),并将该内容提供给应用(动作403),同时还可任选地将读取的内容提供给应用专用数据容器(动作405)。此外,可任选地更新已写入指示(406)以反映自恢复开始以来已发生了对应用专用数据容器的该地址区域的写入。一旦该读操作完成,方法400返回到图3的动作314,在动作314,该恢复操作继续。对于在恢复过程期间接收到的每一读请求,可重复方法400数次。一旦恢复过程完成(动作306),读操作可如常继续,而无需来自管理模块221的干预。
图5示出了用于在恢复操作仍在进行的同时对写请求作出响应的方法500。方法500可被执行以执行图3中的动作323的写操作。由此,方法500可在图3中的动作322之后被发起。
方法500通过将与写请求相关联的内容写入到操作卷中的应用专用数据容器的地址区域中来执行写操作(动作501)。方法500还确定与该写请求相对应的地址区域是否已经被还原到操作卷中的应用专用数据容器(决策框502)。这可由恢复模块223咨询恢复过程状态251来完成。此外,这可由恢复模块223咨询表示自该恢复开始以来该应用专用数据容器的地址区域已经被写入的已写入指示252来完成。例如,可能已响应于方法500的先前性能或响应于图4中的动作406而向该地址区域进行了写入,即使尚未通过经由动作304执行的正常恢复而到达该地址区域。
如果写请求的地址区域已经被还原到应用专用数据容器(决策框502中为“是”),则使写操作完成,由此返回到图3中的动作324以继续还原操作。如果写请求的地址区域尚未被还原到应用专用数据容器(决策框502中为“否”),则更新已写入指示符252以反映自该恢复操作开始以来已向该地址区域进行了写入(动作503)。此后,再次由此返回图3中的动作324以继续该还原操作。对于在恢复过程期间接收到的每一写请求,可重复方法500数次。一旦恢复过程完成(动作306),写操作可如常继续,而无需来自管理模块221的干预。
从恢复模块的角度来看,恢复模块223确定应用的特定应用专用数据容器将经受从快照的恢复。例如,恢复模块223可能已经响应于管理模块221执行图3中的动作301而从管理模块221接收到恢复的指令。作为响应,恢复模块发起恢复。
恢复模块通过一次一部分地将内容从快照复制到应用专用数据容器来继续该恢复,这与图3中的动作304相似。恢复模块不对响应于动作312、314、322和324而暂停和继续恢复的指令作出响应,而以其他方式简单地推进恢复。尽管这样的临时暂停,该恢复操作仍将被称为在继续,如动作304所示。
除了该恢复以外,恢复模块还跟踪与对操作卷中的应用专用容器作出的写请求相对应的至少一个地址区域。例如,这可使用图2中的已写入指示符252来完成。在一次一部分地从快照复制时,恢复模块跳过对如指示符252内所指示的已经被写入的任何地址进行复制。这防止该恢复盖写通过允许应用201A在恢复期间继续处理而创建的较新的数据。
现将先从读/写操作的角度并随后从恢复的角度来描述可如何促成冲突避免的示例实现。
当应用发出读或写请求时,系统对由该读或写请求寻址的区域采用范围锁。如果该恢复在同一范围上工作,则该读/写操作将被挂起以在稍后继续。第二,该恢复的高水印(恢复过程状态251的示例)被评估,同时脏地图(dirty map)(已写入指示符252的示例)也被评估,以确定合适的动作,如以上所描述的。例如,对于读操作,确定要从数据容器读出(动作402)还是要从快照读出(动作403)。对于写操作,确定是否需要更新脏地图以反映某写入(动作503)。随后执行合适的I/O操作,并且随后释放针对该区域的范围锁。如果针对该区域的恢复被挂起,则继续针对该区域的恢复。
冲突避免从恢复角度来看一次一个地址范围地发生。对于要被恢复的每一区域,恢复过程对要被恢复的区域采用范围锁。如果读/写操作已经具有那个区域上的范围锁,则对该区域的恢复被挂起以在稍后在读/写完成时被继续。一旦恢复能够获得那个区域上的范围锁,则基于脏地图来执行恢复。例如,恢复将跳过从快照对所有被标记为已经被写入到该脏地图中的那些地址进行复制。一旦恢复了该区域,该恢复过程就释放该范围锁。这允许任何被挂起的读/写请求在那个范围上完成。
因此,本文中描述的原理提供用于对应用专用数据容器进行针对性恢复而无需对整个卷进行恢复,并且同时允许该应用继续在处于被恢复过程中的应用专用数据容器上操作的有效和高效的机制。
本发明可具体化为其它具体形式而不背离其精神或本质特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。因此,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变都被权利要求书的范围所涵盖。

Claims (10)

1.一种用于恢复与应用相对应的应用专用数据的方法,所述方法包括:
确定应用的特定应用专用数据容器将经受从快照的恢复的动作;
响应于所述确定动作,通过开始从快照复制所述应用专用数据容器的内容的先前版本到所述应用可访问的操作卷中的所述应用专用数据容器来发起从先前快照对所述内容的先前状态的恢复的动作,其中针对被恢复的所述应用专用数据容器的区域采用范围锁;以及
在仍从所述快照复制所述应用专用数据容器的所述内容到所述应用专用数据容器的同时,仍准许所述应用执行对所述应用专用数据容器的读操作和写操作的动作,其中如果针对要被恢复的区域采用了范围锁,并且所述区域包括从其读出或向其写入的存储器位置,则相应的读和写操作被挂起以供稍后继续。
2.根据权利要求1所述的方法,其特征在于,进一步包括:
在准许所述应用对所述应用专用容器执行读操作和写操作的动作之后,但在所述恢复完成之前,检测所述应用发出了对来自所述应用专用数据容器的内容的地址区域的读请求的动作。
3.根据权利要求2所述的方法,其特征在于,进一步包括:
在检测所述应用发出了对来自所述应用专用数据容器的内容的地址区域的读请求的动作之后,暂停所述恢复的动作;
执行所述读操作的动作;以及
在执行所述读操作的动作之后,继续所述恢复的动作。
4.根据权利要求2所述的方法,其特征在于,进一步包括响应于所述读请求进行以下:
确定与所述读请求相对应的地址区域已经被还原到所述操作卷中的所述应用专用数据容器的动作;以及
响应于确定与所述读请求相对应的所述地址区域已经被还原的动作,从所述操作卷中的所述应用专用数据容器读所述地址区域的内容的动作。
5.根据权利要求2所述的方法,其特征在于,进一步包括响应于所述读请求进行以下:
确定与所述读请求相对应的地址区域尚未被还原到所述操作卷中的所述应用专用数据容器的动作;
响应于确定与所述读请求相对应的所述地址区域尚未被还原的动作,从所述快照读所述内容的动作;以及
将所述读内容提供给所述应用的动作。
6.根据权利要求1所述的方法,其特征在于,进一步包括:
在准许所述应用对所述应用专用容器执行读操作和写操作的动作之后,但在所述恢复完成之前,检测所述应用发出了对所述应用专用数据容器的地址区域的写请求的动作。
7.根据权利要求6所述的方法,其特征在于,进一步包括:
在检测所述应用发出了对所述应用专用数据容器的地址区域的写请求的动作之后,暂停所述恢复的动作;
执行所述写操作的动作;以及
在执行所述写操作的动作之后,继续所述恢复的动作。
8.根据权利要求1所述的方法,其特征在于,进一步包括在确定应用的所述应用专用数据容器将经受从快照的恢复的动作之后但在发起恢复的动作之前,进行以下:
关闭所述应用专用数据容器以使得所述应用不可访问所述应用专用数据容器的动作。
9.根据权利要求1所述的方法,其特征在于,所述应用包括虚拟机。
10.一种其中可发生对应用的针对性恢复而无需恢复整个系统的系统,所述系统包括:
多个应用可访问的操作卷,所述操作卷包括与所述多个应用中的特定应用相对应的应用专用数据容器;
快照模块,所述快照模块被配置成拍摄至少所述应用专用容器的快照;
管理模块,所述管理模块被配置成确定应用专用数据容器将经受从所述快照模块所拍摄的快照的恢复;以及
恢复模块,所述恢复模块被配置成在由所述管理模块确定时执行对所述应用专用数据容器的恢复,其中针对被恢复的所述应用专用数据容器的区域采用范围锁,
其中所述管理模块准许所述应用在所述恢复模块正在执行恢复的同时对所述应用专用数据容器执行读操作和写操作,其中如果针对要被恢复的区域采用了范围锁,并且所述区域包括从其读出或向其写入的存储器位置,则相应的读和写操作被挂起以供稍后继续。
CN201480015128.3A 2013-03-14 2014-03-11 从快照恢复应用 Active CN105144113B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/829,204 US9430333B2 (en) 2013-03-14 2013-03-14 Recovery of application from snapshot
US13/829,204 2013-03-14
PCT/US2014/023072 WO2014159334A1 (en) 2013-03-14 2014-03-11 Recovery of application from snapshot

Publications (2)

Publication Number Publication Date
CN105144113A CN105144113A (zh) 2015-12-09
CN105144113B true CN105144113B (zh) 2018-02-16

Family

ID=50513440

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480015128.3A Active CN105144113B (zh) 2013-03-14 2014-03-11 从快照恢复应用

Country Status (7)

Country Link
US (1) US9430333B2 (zh)
EP (1) EP2972874B1 (zh)
JP (1) JP6431521B2 (zh)
CN (1) CN105144113B (zh)
BR (1) BR112015019280B1 (zh)
RU (1) RU2665307C2 (zh)
WO (1) WO2014159334A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8601473B1 (en) 2011-08-10 2013-12-03 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
US11243707B2 (en) 2014-03-12 2022-02-08 Nutanix, Inc. Method and system for implementing virtual machine images
US9424140B1 (en) * 2014-08-20 2016-08-23 Amazon Technologies, Inc. Providing data volume recovery access in a distributed data store to multiple recovery agents
EP3251006A4 (en) * 2015-01-30 2018-08-29 Hewlett-Packard Development Company, L.P. Backup image restore
US10613947B2 (en) * 2016-06-09 2020-04-07 Nutanix, Inc. Saving and restoring storage devices using application-consistent snapshots
CN110704249A (zh) * 2016-12-30 2020-01-17 成都华为技术有限公司 一种保证应用一致性的方法、装置及系统
US10409988B2 (en) 2017-01-20 2019-09-10 Hewlett Packard Enterprise Development Lp Escalated remediation
US10331528B2 (en) 2017-03-02 2019-06-25 Hewlett Packard Enterprise Development Lp Recovery services for computing systems
US10824522B2 (en) 2017-11-27 2020-11-03 Nutanix, Inc. Method, apparatus, and computer program product for generating consistent snapshots without quiescing applications
US10929249B2 (en) 2018-06-29 2021-02-23 International Business Machines Corporation Optimized data corruption source and timeline analysis
US10929248B2 (en) 2018-06-29 2021-02-23 International Business Machines Corporation Data corruption source and timeline analysis
US11182363B2 (en) 2018-06-29 2021-11-23 International Business Machines Corporation Data validation in copy repositories
US10795780B2 (en) 2018-06-29 2020-10-06 International Business Machines Corporation Data breach source and timeline analysis
CN109298973A (zh) * 2018-09-28 2019-02-01 联想(北京)有限公司 一种信息恢复方法和电子设备
US11016854B2 (en) 2018-11-28 2021-05-25 International Business Machines Corporation Efficient container based application recovery
US20220188194A1 (en) * 2020-12-10 2022-06-16 Coupang Corp. Cloud-based database backup and recovery

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101258472A (zh) * 2005-09-06 2008-09-03 多特希尔系统公司 快照恢复方法和设备
US7702868B1 (en) * 2005-07-13 2010-04-20 Symantec Corporation Restoring data with reduced suspension-of-access periods
US7822758B1 (en) * 2005-04-22 2010-10-26 Network Appliance, Inc. Method and apparatus for restoring a data set

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5544347A (en) 1990-09-24 1996-08-06 Emc Corporation Data storage system controlled remote data mirroring with respectively maintained data indices
US5313626A (en) * 1991-12-17 1994-05-17 Jones Craig S Disk drive array with efficient background rebuilding
US5822584A (en) * 1995-10-13 1998-10-13 Compaq Computer Corporation User selectable priority for disk array background operations
US6185699B1 (en) * 1998-01-05 2001-02-06 International Business Machines Corporation Method and apparatus providing system availability during DBMS restart recovery
US6397351B1 (en) * 1998-09-28 2002-05-28 International Business Machines Corporation Method and apparatus for rapid data restoration including on-demand output of sorted logged changes
US6834386B1 (en) * 1999-07-16 2004-12-21 Microsoft Corporation Method and system for regulating background tasks using performance measurements
WO2001025920A1 (en) * 1999-10-05 2001-04-12 Ejasent, Inc. Virtual resource id mapping
US6434681B1 (en) 1999-12-02 2002-08-13 Emc Corporation Snapshot copy facility for a data storage system permitting continued host read/write access
US6647514B1 (en) * 2000-03-23 2003-11-11 Hewlett-Packard Development Company, L.P. Host I/O performance and availability of a storage array during rebuild by prioritizing I/O request
US6957362B2 (en) 2002-08-06 2005-10-18 Emc Corporation Instantaneous restoration of a production copy from a snapshot copy in a data storage system
US7139931B2 (en) * 2002-08-19 2006-11-21 Aristos Logic Corporation Method of controlling the system performance and reliability impact of hard disk drive rebuild
JP4311532B2 (ja) * 2003-03-12 2009-08-12 株式会社日立製作所 記憶システム及び同システムにおけるスナップショット管理方法
US7234077B2 (en) * 2003-06-24 2007-06-19 International Business Machines Corporation Rapid restoration of file system usage in very large file systems
US7529782B2 (en) * 2003-11-13 2009-05-05 Commvault Systems, Inc. System and method for performing a snapshot and for restoring data
US7461100B2 (en) 2004-05-27 2008-12-02 International Business Machines Corporation Method for fast reverse restore
US7409510B2 (en) 2004-05-27 2008-08-05 International Business Machines Corporation Instant virtual copy to a primary mirroring portion of data
RU2406118C2 (ru) * 2004-09-22 2010-12-10 Майкрософт Корпорейшн Способ и система для синтетического резервного копирования и восстановления данных
US8959299B2 (en) * 2004-11-15 2015-02-17 Commvault Systems, Inc. Using a snapshot as a data source
US7475282B2 (en) * 2004-12-28 2009-01-06 Acronis Inc. System and method for rapid restoration of server from back up
US20060161808A1 (en) 2005-01-18 2006-07-20 Burkey Todd R Method, apparatus and program storage device for providing intelligent copying for faster virtual disk mirroring
EP1907935B1 (en) * 2005-06-24 2011-01-26 Syncsort Incorporated System and method for virtualizing backup images
US7788521B1 (en) * 2005-07-20 2010-08-31 Bakbone Software, Inc. Method and system for virtual on-demand recovery for real-time, continuous data protection
JP4809040B2 (ja) * 2005-11-08 2011-11-02 株式会社日立製作所 ストレージ装置及びスナップショットのリストア方法
US7774565B2 (en) * 2005-12-21 2010-08-10 Emc Israel Development Center, Ltd. Methods and apparatus for point in time data access and recovery
US7467268B2 (en) * 2006-04-14 2008-12-16 Hewlett-Packard Development Company, L.P. Concurrent data restore and background copy operations in storage networks
US7650533B1 (en) * 2006-04-20 2010-01-19 Netapp, Inc. Method and system for performing a restoration in a continuous data protection system
US8607009B2 (en) * 2006-07-13 2013-12-10 Microsoft Corporation Concurrent virtual machine snapshots and restore
US9043391B2 (en) * 2007-02-15 2015-05-26 Citrix Systems, Inc. Capturing and restoring session state of a machine without using memory images
US8341459B2 (en) * 2007-08-01 2012-12-25 Brocade Communications Systems, Inc. Data migration without interrupting host access and with data lock for write access requests such that held write access requests do not expire
US9501368B2 (en) * 2008-09-30 2016-11-22 Veritas Technologies Llc Backing up and restoring selected versioned objects from a monolithic database backup
JP5409159B2 (ja) * 2009-07-23 2014-02-05 キヤノン株式会社 情報処理装置、情報処理装置の制御方法及びプログラム
US9015129B2 (en) * 2010-02-09 2015-04-21 Veeam Software Ag Cross-platform object level restoration from image level backups
US8566640B2 (en) 2010-07-19 2013-10-22 Veeam Software Ag Systems, methods, and computer program products for instant recovery of image level backups
US9971656B2 (en) 2010-12-13 2018-05-15 International Business Machines Corporation Instant data restoration
US8819328B2 (en) * 2010-12-30 2014-08-26 Sandisk Technologies Inc. Controller and method for performing background operations
US8909602B2 (en) * 2011-02-03 2014-12-09 Vmware, Inc. Programmatic snapshot and revert of virtualized data center inventory
US9411687B2 (en) * 2011-06-03 2016-08-09 Apple Inc. Methods and apparatus for interface in multi-phase restore
US8726083B1 (en) * 2011-07-29 2014-05-13 Emc Corporation Synchronized taking of snapshot memory images of virtual machines and storage snapshots
US8898385B2 (en) * 2011-09-09 2014-11-25 Lsi Corporation Methods and structure for load balancing of background tasks between storage controllers in a clustered storage environment
CN102331949B (zh) * 2011-10-12 2014-11-05 华为技术有限公司 一种虚拟机内存快照生成和恢复方法、装置及系统
US20150212894A1 (en) * 2014-01-24 2015-07-30 Commvault Systems, Inc. Restoring application data from a single snapshot for multiple applications

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7822758B1 (en) * 2005-04-22 2010-10-26 Network Appliance, Inc. Method and apparatus for restoring a data set
US7702868B1 (en) * 2005-07-13 2010-04-20 Symantec Corporation Restoring data with reduced suspension-of-access periods
CN101258472A (zh) * 2005-09-06 2008-09-03 多特希尔系统公司 快照恢复方法和设备

Also Published As

Publication number Publication date
JP6431521B2 (ja) 2018-11-28
EP2972874B1 (en) 2018-01-03
US20140281709A1 (en) 2014-09-18
CN105144113A (zh) 2015-12-09
WO2014159334A1 (en) 2014-10-02
EP2972874A1 (en) 2016-01-20
JP2016513845A (ja) 2016-05-16
RU2665307C2 (ru) 2018-08-28
RU2015138967A (ru) 2017-03-16
BR112015019280B1 (pt) 2022-05-10
BR112015019280A2 (pt) 2017-07-18
US9430333B2 (en) 2016-08-30

Similar Documents

Publication Publication Date Title
CN105144113B (zh) 从快照恢复应用
CN106407040B (zh) 一种远程数据复制方法及系统
CN105706061B (zh) 使用非易失性存储器的崩溃恢复
US8332838B2 (en) Systems and methods for updating device software
JP6186374B2 (ja) 仮想化されたプラットフォームへ安全に移行するためのシステム及び方法
CN105117308B (zh) 一种数据处理方法、装置和系统
CN104769544B (zh) 多卷即时虚拟拷贝冻结
US10831665B2 (en) Preservation of modified cache data in local non-volatile storage following a failover
US9262344B2 (en) Local locking in a bi-directional synchronous mirroring environment
US8954398B1 (en) Systems and methods for managing deduplication reference data
KR20170092537A (ko) 다수의 스토리지 디바이스에 걸친 원자 기입 동작의 수행
CN109791515A (zh) 用于安全恢复主机系统代码的系统和方法
US11861390B1 (en) Transparent disk caching for virtual machines
CN103984642A (zh) 冗余辅助储存器缓存的重建
US9311242B1 (en) Systems and methods for enabling write-back-cache aware snapshot creation
CN109558213A (zh) 管理OpenStack平台的虚拟机快照的方法和装置
CN108733321A (zh) 无用数据收集-自动数据放置
CN106547477B (zh) 用于在线地减少缓存设备的方法和装置
JP2010277194A (ja) 記憶装置、データ処理方法およびデータ処理プログラム
US20170068603A1 (en) Information processing method and information processing apparatus
CN104951244B (zh) 用于存取数据的方法和设备
US9367457B1 (en) Systems and methods for enabling write-back caching and replication at different abstraction layers
CN107111532A (zh) 计算不确定性情况下的恢复和容错
CN114201109A (zh) 跟踪存储卷在数据传递期间的变化
JP2010176201A (ja) フラッシュメモリのデータ消失防止装置及びフラッシュメモリのデータ消失防止方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant