CN101385003B - 用于存储多种类型的信息的系统和方法 - Google Patents
用于存储多种类型的信息的系统和方法 Download PDFInfo
- Publication number
- CN101385003B CN101385003B CN2007800059959A CN200780005995A CN101385003B CN 101385003 B CN101385003 B CN 101385003B CN 2007800059959 A CN2007800059959 A CN 2007800059959A CN 200780005995 A CN200780005995 A CN 200780005995A CN 101385003 B CN101385003 B CN 101385003B
- Authority
- CN
- China
- Prior art keywords
- information
- virtual machine
- storage
- time point
- state
- 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.)
- Expired - Fee Related
Links
Images
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/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- 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
-
- 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/82—Solving problems relating to consistency
Abstract
一种用于存储多种类型的信息的方法,包括:存储代表在某个时间点持久性存储器实体的内容的信息;并存储代表该某个时间点虚拟机的状态的信息。一种计算机程序产品,包括包含计算机可读程序的计算机可读介质,其中计算机可读程序当在计算机上执行时,使得计算机:存储代表在某个时间点持久性存储器实体的内容的信息;并存储代表在该某个时间点虚拟机的状态的信息。
Description
技术领域
本发明涉及存储多种类型的信息的方法、系统和计算机程序产品。
背景技术
为了存储和恢复持久性存储单元的内容,开发了多种连续数据保护(CDP)方法和系统。Perry等人的美国专利申请公开No.2005/0066118和美国专利申请公开No.2005/0193272描述了用于连续数据保护的现有技术的设备和方法,上述申请的全部内容被包括在此以供参考。
虚拟机将操作系统与用于执行所述操作系统的计算机平台隔离开。运行在虚拟机内的操作系统可被不同的计算机平台执行。
单个计算机平台可以同时支持多个虚拟机。这种计算机平台通常被称为逻辑分区(logically partitioned)平台。每个操作系统或操作系统实例被分配以所述计算机平台的非重叠子集。
典型地,由管理器(hypervisor)控制这多个虚拟机。管理器可以管理和强制实施分区保护边界。例如,见Dawking等人的美国专利6839892,该专利被结合在此以供参考。
通过使用虚拟机检查点,可以存储(和恢复)虚拟机的状态。虚拟机的状态可被至少部分地临时存储在各种易失性存储器单元内,诸如计算机平台的内部寄存器。
由于CDP存储操作之间的时间间隙和虚拟机快照操作之间的时间间隙,计算机平台在某些时刻的整体状态是未知的或需要相对过多的恢复操作。
需要提供使信息能被高效恢复的设备、计算机程序产品和方法,并且这种需要正在增长。
发明内容
一种用于存储多种类型的信息的方法,所述方法包括:存储代表在某个时间点持久性存储器实体的内容的信息;并存储代表在那个时间点虚拟机的状态的信息。
有利地,所述方法包括防止持久性存储器实体在存储信息的阶段期间进行更新。
有利地,所述方法包括防止虚拟机的状态在存储信息的阶段期间发生改变。
有利地,所述方法包括监视虚拟机,并且响应于虚拟机状态冻结,启动存储代表持久性存储器实体的内容的信息的阶段。
有利地,所述方法包括响应于与这些存储中每一个相关联的存储周期,在存储代表持久性存储器实体的内容的信息与存储代表虚拟机的状态的信息之间进行同步。
有利地,所述方法包括将代表在某个时间点持久性存储器内容的信息与代表在那个时间点虚拟机的状态的信息相关联。
有利地,所述方法包括响应于所存储的代表在某个时间点持久性存储器实体的内容的信息和所存储的代表在那个时间点虚拟机的状态的信息,恢复持久性存储器实体的内容并恢复虚拟机的状态。
因此,本发明的优选实施例不是仅仅对虚拟机进行检查点操作和存储检查点映像,而是对虚拟机进行检查点操作并附加地对存储设备的状态进行检查点操作,以同步的方式存储这两者。这些虚拟机和存储快照的同步提供了存储设备和虚拟机这两者的相关组合视图。
附图说明
根据以下结合附图的详细描述,将更完整地理解和懂得本发明,其中:
图1示出了根据本发明一个实施例的处理系统和存储系统;
图2示出了根据本发明另一个实施例的处理系统和存储系统;
图3示出了根据本发明再一个实施例的处理系统和存储系统;
图4示出了根据本发明又一个实施例的处理系统和存储系统;
图5示出了根据本发明再一个实施例的处理系统和存储系统;
图6示出了根据本发明一个实施例的两个示例性数据结构;
图7示出了根据本发明一个实施例的存储和重构操作的示例性序列;
图8示出了根据本发明一个实施例的用于存储多种类型的信息的方法;
图9示出了根据本发明另一个实施例的用于存储多种类型的信息的方法;和
图10示出了根据本发明再一个实施例的用于存储多种类型的信息的方法。
具体实施方式
有利地,提供了一种系统。所述系统包括至少一个存储单元和控制器,所述控制器适合于控制对于代表持久性存储器实体在某个时间点的内容的信息的存储操作;和控制代表虚拟机在那个时间点的状态的信息的存储操作。控制器可以包括硬件、软件、固件或其组合。控制器例如可以包括一个或多个存储器控制器、一个或多个处理器、一个或多个虚拟机、一个或多个管理器,一个或多个检查点层(checkpointing layer)等。持久性存储器实体是用于存储相对长期的信息的计算机可用介质或计算机可读介质或者计算机可用介质或计算机可读介质的一部分。
有利地,对于代表持久性存储器实体的内容的信息的存储操作和对于代表虚拟机状态的信息的存储操作是相互独立的。可由不同的实体管理这些存储操作。有利地,控制器在这两个存储操作之间进行同步。
有利地,提供一种方法。所述方法包括存储代表持久性存储器实体在一个时间点的内容的信息,并且存储代表虚拟机在基本相同的时间点的状态的信息。
根据本发明一个实施例,所述方法包括存储代表一个或多个持久性存储器实体在一个或多个时间点的内容的信息,以及存储代表一个或多个虚拟机在基本相同的时间点的一个或多个状态的信息。
代表虚拟机状态(或持久性存储器实体的内容)的信息可以是状态(内容)本身,但这不是必需的,只要所述信息以及可选的附加信息可被用于重构在一个或多个时间点的虚拟机状态(持久性存储器实体的内容)即可。例如,还可以将代表虚拟机在某个时间点的状态的被存储信息与较早的信息进行比较,对代表虚拟机在某个时间点的状态的被存储信息进行解码、解压缩等,以便重构虚拟机在该时间点的状态。
根据本发明一个实施例,持久性存储器实体的内容表示多个虚拟机的状态。
根据本发明一个实施例,持久性存储器实体的内容包括与虚拟机的状态不同的信息。
第一存储操作也可被称为CDP存储操作或CDP快照,而第二存储操作也可被称为虚拟机检查点操作或虚拟机状态快照操作。
在CDP存储操作和虚拟机检查点操作之间进行关联的系统恢复极大地简化了系统的恢复。当这两个操作都基本上存储了系统的整个状态时,尤其如此。
在可存储的代表虚拟机状态或持久性存储器实体内容的信息的量和恢复虚拟机状态或持久性存储器实体内容的恢复操作的复杂度(或长度)之间通常存在折衷。可以做出各种折衷,而不脱离本发明的精神。
有利地,一个存储操作可以触发(或以其他方式影响)第二存储 操作。例如,当一个存储操作开始或结束时,可以启动另一个存储操作。
可以响应于预定的存储方案,执行每个存储操作。所述存储方案可以包括重复的存储操作、触发存储操作的事件、连续存储操作、伪随机存储操作等。存储时间点可由一个或多个应用、终端用户,由一个或多个虚拟机、由管理器或由它们的任意组合来确定。
根据本发明一个实施例,一个存储操作比另一个更耗费时间。因此,为了存储基本上相同时刻的快照,可以暂停系统的某些操作,直到较长的存储操作完成为止。
在某些情况下,一种类型的多个存储操作可以在另一种类型的单个存储操作被执行的同时被执行。有利地,将这多个存储操作中的一个或多个与第二存储操作相关联。
根据本发明一个实施例,各种存储操作在一个或多个数据结构中被列出(或以另一种方式被表示)。有利地,这些数据结构被存储在持久性存储器实体之外和至少存储虚拟机状态一部分的易失性存储器实体之外。有利地,生成这些数据结构的多个拷贝。
可由位于操作系统和管理器之间的中间软件层执行第二存储操作,但是这不是必需的。汉诺威Dartmouth学院计算机科学系的JonHowell在1998年8月6日的“Straightforward Java PersistenceThrough Checkpointing”中描述了这种中间软件层,此文被结合在此以供参考。
根据本发明一个实施例,对于代表持久性存储器实体的内容的信息的存储是内部一致的。例如,如果文件系统跨多个卷,则其快照在所有这些卷上应当是内部一致的。
根据本发明的各种实施例,代表多个虚拟机的状态的信息可以被存储在同一持久性存储器实体内。持久性存储器实体的内容、以及代表每个虚拟机的状态的信息可以存储。
图1示出了根据本发明一个实施例的处理系统10和存储系统100。
为了简化解释,图1示出了两个虚拟机以及两组硬件组件,这些硬件组件诸如是处理器、内部存储单元和I/O适配器。注意,相同类型的硬件组件的数目可以超过两个,并且可以同时运行的虚拟机的数目可以超过两个。有利地,虚拟机的数目与处理器的数目不同,但是这不是必需的。例如,单个处理器可以支持多个虚拟机。
还应注意,管理器是可选的,尤其是在支持单个虚拟机的系统内。
本领域的技术人员应当理解,本发明的实施例可以应用于各种处理系统(包括分布式处理系统)和各种存储系统,而不脱离本发明的精神。处理系统可以是主机计算机或服务器,但是这不是必需的。处理系统和存储系统可以彼此集成、彼此远程放置、彼此直接或间接连接等。
处理系统10包括硬件11、管理器31和两个分区。第一分区包括第一操作系统42、第一虚拟机44和第一应用组46。第二分区包括第二操作系统52、第二虚拟机54和第二应用组56。
硬件11包括第一处理器12、第一内部存储单元14、第一输入输出(I/O)适配器16、第二处理器22、第二内部存储单元24、第二输入输出(I/O)适配器26。通常,第一处理器12、第一内部存储单元14和第一I/O适配器16彼此协作,并且可以独立于第二处理器22、第二内部存储单元24和第二I/O适配器26而操作。
有利地,管理器31(也被称为分区管理固件)适合于控制第一和第二分区对各种硬件组件的使用。
例如,管理器可以使得第一操作系统42(相应地使得第一虚拟机44)能够在第二操作系统54使用第二处理器22、第二内部存储单元24、第二I/O适配器26的同时利用第一处理器12、第一内部存储单元14和第一I/O适配器16。
有利地,管理器31可以控制存储操作,或可以允许另一个实体(诸如一个虚拟机44和54)控制存储操作。可以通过在不同组件之间发送控制信号和/或命令来实现控制。
存储系统100可以存储代表持久性存储器实体在某个时间点的内 容的信息,并且存储代表虚拟机在那个时间点的状态的信息。
存储系统100包括控制对第一存储单元93的存储操作的第一存储器控制器91。第一存储单元93可被认为是持久性存储器实体。第一和第二虚拟机44和54均可利用第一存储单元93。
另外,存储系统100包括用于存储第一虚拟机44的快照、并且用于存储第二虚拟机54的快照的第三存储单元111。注意,可以提供不同的存储单元用于存储不同虚拟机的快照。在图2中进一步示出了后面这种选项。
存储系统100还可以包括被连接在第一存储器控制器91和第二存储单元103之间的第二存储器控制器101。第二存储器控制器101控制第二存储单元103的存储操作。第二存储单元102可以存储第一存储单元93的快照。
本领域的技术人员应当理解,存储系统100的每个组件可以包括多个硬件、固件和/或软件组件。例如,存储单元93、103和113中每一个存储单元可以包括一个或多个磁带、一个或多个盘等。
还应当注意,存储系统100可以具有集中式或分布式的体系结构。例如,一个或多个组件可以通过网络和/或经一个或多个中间组件而彼此连接。
应当注意,可以同时执行第一存储操作(对于代表持久性存储器实体的内容的信息的存储)和第二存储操作(对于代表虚拟机在某个时间点的状态的信息的存储),但是这不是必需的。这些存储操作的时序应该通过以下方式来选择,即,使得能够同时恢复虚拟机的状态和持久性存储器实体的内容。
例如,假设第一虚拟机44的状态和持久性存储器的内容在时间点T1和时间点T2之间未改变。相应地,可将代表持久性存储器实体在T1和T2之间任意时刻的内容的信息与代表虚拟机在T1和T2之间任意时刻的状态的信息相关联。因此,这两个存储阶段不必必须存储关于相同时间点的信息。
存储操作可由管理器31或其中一个虚拟机(44或45)启动或以 其他方式控制。这些存储操作还包括存储代表第一存储单元93的内容的信息。
根据本发明的另一个实施例,在存储代表虚拟机状态的信息的阶段期间,不允许改变该虚拟机状态。可防止虚拟机向某些寄存器、向内部存储单元之一、或甚至向第一存储单元93进行写操作。第一存储器控制器91可以监视该虚拟机的活动,并且当它确定虚拟机状态被冻结时,其可以启动第一存储单元93的内容的存储操作。
有利地,虚拟机的状态被(至少部分地)存储在易失性存储器(诸如但是不限于第一和第二内部存储单元14和24)中。根据本发明一个实施例,这两个存储操作存储存储系统100的状态的完整映像。因此,包括文件、寄存器、缓存器、主存储器和盘的各种存储单元的内容被存储。
通过存储多种类型的信息,处理系统10的恢复可以相对快速和简单。这可以消除对执行多个耗时的特定于应用的恢复的需要。
注意,虽然图1将持久性存储器实体示为包括第一存储单元93,但这不是必需的。例如,图4示出了处理系统100”’,其中持久性存储器实体是第一内部存储单元14内的文件(第一备份文件14(1))。处理系统100”’被连接到与图1的存储系统100类似、但是不包括第三存储单元111的存储系统100”。一般地,这个存储操作可以包括执行CDP快照、执行文件系统的时间点拷贝、执行支持虚拟机的块设备(block device backing a virtual machine)的LVM快照、执行存储控制器卷的FlashCopy,或创建正被VM(虚拟机)用作持久性存储器实体的任何东西的内部一致拷贝的任意其他实现。
注意,存储代表持久性存储器实体的内容的信息可以使用连续或差异(增量)存储技术。因此,在第一时间点,持久性存储器实体的内容可以被拷贝。在第二时间点,仅存储持久性存储器实体在第一时间点的内容和相同持久性存储器实体在第二时间点的内容之间的差异。注意,还可以在对于代表持久性存储器实体的内容的信息的存储期间应用差异存储技术。
根据本发明一个实施例,第一存储单元93的内容被非常频繁地或甚至被连续地存储在第二存储单元103。由第二存储器控制器101控制这些非常频繁(或甚至连续)的存储操作。注意,可以只要一定量的信息被发送到第一存储单元93,就启动存储操作。
典型地,较不频繁地执行存储第一虚拟机44(或第二虚拟机54)的状态的阶段。可以在预定的时间点或响应于某些事件以这两者的组合来发生这些存储操作。一旦发生这种存储操作,处理系统10或存储系统100就相关联。
可以在用户继续工作的同时,以增量的方式进行对于代表虚拟机状态的信息的存储。这可以涉及反复地拷贝在前一拷贝操作之后被改变了的一个或多个存储器页面,直到拷贝过程会聚(converge)为止。一旦拷贝过程会聚,则停止虚拟机,并且向存储系统100发送改变后的存储器页面。
当最后几个页面被写到盘上时,在某个外部存储器上也进行将VM快照与盘备份状态相关的记录。这个记录必须例如由管理器或控制分区在检查点系统之外进行。
图2示出了根据本发明另一个实施例的处理系统10’和存储系统100’。图3示出了根据本发明再一个实施例的处理系统10”和存储系统100。
处理系统10”不同于图1的处理系统10,不同之处在于处理系统10”不包括第二处理器22、第二内部存储单元24和第二I/O适配器26。
存储系统100’不同于图1的存储系统100,不同之处在于存储系统10’还包括第四存储单元113。第一虚拟机44的状态被存储在第三存储单元111处,而第二虚拟机54的状态被存储在第四存储单元113处。注意,这不是必需的。例如,第一虚拟机44的状态可被存储在第四存储单元113处,而第二虚拟机54的状态可被存储在第三存储单元111处。
图5示出了根据本发明另一个实施例的处理系统10和存储系统 100”’。
存储系统100”’不同于图1的存储系统100,不同之处在于存储系统100”’包括第三存储器控制器121、第四存储器控制器131、第五存储单元123和第六存储单元133。
第三存储器控制器121被连接到硬件11、第四存储器控制器131和第五存储单元123。第四存储器控制器131被进一步连接到第六存储单元133。
第三存储器控制器121控制对第五存储单元123的存储操作。第五存储单元123可被视为持久性存储器实体。其可以由第一和第二虚拟机44和54使用。
第四存储器控制器131控制第六存储单元133的存储操作。第六存储单元133可以存储第五存储单元123的快照。
有利地,该系统可以用共享的存储器来实现分布式检查点。该系统包括支持多个虚拟机的多个物理机器。所述多个虚拟机的状态被存储在一个共享的持久性存储器实体内。可对每个虚拟机的状态进行检查点操作,并且还可以存储所述共享的持久性存储器实体的内容。
本发明可以采用完全硬件实施例、完全软件实施例、或包含硬件和软件元件两者的实施例的形式。在一个优选实施例中,本发明以软件实现,包括但不限于固件、驻留软件、微代码等。
另外,本发明可以采用可从提供由计算机或任何指令执行系统使用或与计算机或任何指令执行系统相结合的程序代码的计算机可用介质或计算机可读介质访问的计算机程序产品的形式。出于本说明书的目的,计算机可用介质或计算机可读介质可以是能包含、存储、传送、传播或传输由指令执行系统、装置或设备使用、或与指令执行系统、装置或设备相结合的程序的任何装置。
介质可以是电子的、磁的、光学的、电磁的、红外的或半导体的系统(或装置或设备)或传播介质。计算机可读介质的例子包括半导体或固态存储器、磁带、可移动计算机盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的当前例子包括只读光盘 (CD-ROM)、读/写光盘(CD-R/W)和DVD。
适合于存储和/或执行程序代码的数据处理系统将包括至少一个直接地或通过系统总线而间接地耦接到存储器元件的处理器。存储器元件可以包括本地存储器、大容量存储器和高速缓冲存储器,其中本地存储器在程序代码的实际执行过程中被采用,高速缓冲存储器提供至少某些程序代码的临时存储,以减少在执行过程中必须从大容量存储器检索代码的次数。
输入/输出或I/O设备(包括但不限于键盘、显示器、点击设备等)可以直接地或通过中间I/O控制器耦接到该系统。
网络适配器也可以被耦接到所述系统,以使得数据处理系统能够通过中间的专用或公共网络耦接到其他数据处理系统或远程打印机或存储设备。调制解调器、电缆调制解调器和以太网卡仅是当前可用的网络适配器类型的其中几种。
图6示出了根据本发明一个实施例的两种示例数据结构200和250。图7示出了根据本发明一个实施例的存储和恢复操作的示例序列。根据存储和恢复事件的示例序列来说明数据结构200和250的内容。
根据本发明一个实施例,两种数据结构-诸如但不限于控制表200和250-被用于跟踪存储操作和恢复操作。这些存储和恢复操作可与持久性存储器实体的内容有关,但是这不是必需的。
存储和恢复操作的序列包括多个分支。每个分支在恢复请求被接受时终止。分支可以开始于序列的初始化阶段(例如在时间点T=0)、或当恢复请求被接受并被执行时。
第一控制表200包括三个列200(1)、200(2)和200(3)。每个表项包括关于单个存储操作的信息。第一列200(1)包括存储操作的逻辑块地址,第二列200(2)包括存储操作的时间,第三列200(3)包括存储操作的物理地址。存储字段的逻辑块地址和时间可被用作第一控制表200(1)的索引。
第二控制表250包括四个列250(1)-250(4)。第一列250(1) 包括恢复标识号,第二列250(2)包括分支的开始时间,第三列250(3)包括这些分支的结束时间,第四列250(4)包括恢复时间点。
控制表200和250适合于控制存储和恢复操作序列,其中在每个给定的时间点,一个分支活动。为了支持多个并发分支,应当修改这些表以使其包括分支标识信息。
图7示出了一个示例序列,包括对于持久性存储器实体在时刻10、30、40、60、90和110的内容的存储操作,以及对于相应地在时刻35和70对恢复持久性存储器实体的内容的请求(在时刻80和100收到的)。
虚线表示恢复操作。注意,在任意给定的时刻,仅有一个分支活动。
假设存储操作以逻辑块地址12为目标,并且与这些存储操作相关联的物理地址相应地为a、b、c、d、e和f。
第一控制表200的第一列200(1)指出所有存储操作针对逻辑块地址12。第一控制表200的第二列200(2)指出存储操作在时刻10、30、40、60、90和110发生。第一控制表200的第三列200(3)指出与这些存储操作相关联的物理地址是a、b、c、d、e和f。
第二控制表250的第一表项指出第一分支自时刻0开始并且在时刻80结束。当对于恢复持久性存储器实体的内容的第一请求被接受时,第一分支结束。
第二控制表250的第二表项指出第二分支自时刻80开始并且在时刻100结束。当对于恢复持久性存储器实体的内容的第二请求被接受时,第二分支结束。
第二控制表250的第三表项指出第三分支自时刻100开始并且未结束。
图8示出了根据本发明一个实施例的用于存储多种类型的信息的方法300。
方法300以确定存储方案的阶段320开始。所述存储方案可以包括方法300的各个阶段(诸如阶段330和340)的一次或多次重复。 这些重复可以产生存储信息,所述存储信息代表在多个时间点期间虚拟机的状态和持久性存储器实体的内容。
注意,阶段320可以包括响应于与这些存储中的每一个相关联的存储周期,为不同的存储操作进行定时。因此,存储方案可以便于在不同类型的存储操作之间进行同步。存储周期表示成功完成存储操作所需的时间,其中存储操作诸如是对于代表持久性存储器实体在某个时间点的内容的信息的存储操作,或对于代表虚拟机在那个时间点的状态的存储操作。例如,如果一个存储操作比另一个长得多,则可以在较长的存储操作开始之后启动较短的存储操作。
阶段320之后是多个阶段、诸如阶段330、340和370的一次或多次重复。
阶段330包括存储代表持久性存储器实体在某个时间点的内容的信息。有利地,持久性存储器实体可以是硬件组件、数据结构或两者的组合。
阶段330可以包括存储由多个虚拟机共享的持久性存储器实体的内容,以及存储代表每个虚拟机的状态的信息。
阶段330可以包括存储包含不同于虚拟机状态的信息的持久性存储器实体的内容。
阶段340包括存储代表虚拟机在某个时间点的状态的信息。
有利地,阶段330和320互相独立,并且方法300仅在这些存储阶段之间作出调整。
有利地,阶段320后还跟着防止持久性存储器实体在阶段330和340中至少一个期间更新的阶段350。
有利地,阶段320后还跟着防止在阶段330和340中至少一个期间虚拟机状态改变的更新的阶段360。
根据本发明的各种实施例,由虚拟机、管理器或数据存储实体启动阶段330和/或阶段340。
阶段330和340后面跟着(如图8所示)阶段370,或至少有阶段370并行地执行,其中阶段370将代表持久性存储器单元在某个时 间点的内容的信息与代表虚拟机在那个时间点的状态的信息相关联。响应于在阶段320中所定义的存储方案,阶段370后面跟着阶段330-360。
方法300还可以包括用于恢复虚拟机的状态和恢复持久性存储器实体的内容的阶段390。恢复可以在故障之后、响应于请求或响应于另一事件而发生。如果被存储的信息使得能够恢复多个时间点的状态,则恢复包括从多个可能的时间点中选择一个时间点。
图9示出了根据本发明另一个实施例的用于存储多种类型的信息的方法300’。
方法300’不同于图8的方法300,不同之处在于方法300’包括监视虚拟机的阶段335和响应于虚拟机状态冻结,存储代表持久性存储器实体的内容的信息的启动阶段330。阶段320后面跟着阶段335、340和360。阶段335后面跟着阶段330和350。注意,虚拟机状态冻结是虚拟机可进入和退出的受控的临时状态。
图10示出了根据本发明又一个实施例的用于存储多种类型的信息的方法300”。
方法300”不同于图8的方法300,不同之处在于方法300”存储多个虚拟机的状态,并且存储多个持久性存储器实体的内容。注意,可以调整方法300、300’和300”中每一个方法来在存储单个持久性存储器实体的内容的同时存储多个虚拟机的状态,或在存储多个持久性存储器实体的内容的同时存储一个虚拟机的状态。
方法300”包括提供多对虚拟机和相关联的持久性存储器实体的阶段315。
阶段315之后跟着阶段320”,阶段320”定义将使得能够在与每个对相关的存储操作之间进行同步的存储方案。本领域的技术人员可以想到对此处所描述的内容的改变、修改和其他实现,而不脱离所提出的本发明的精神和范围。
因此,不以前面说明性描述限定本发明,而是以下面的权利要求书的精神和范围限定本发明。
为了避免疑问,说明书和权利要求书中所使用的术语“包括”不应解释为“仅包含”的含义。
Claims (6)
1.一种用于存储多种类型的信息的方法,所述方法包括:
存储代表持久性存储器实体在某个时间点的内容的信息;和
存储代表虚拟机在所述某个时间点的状态的信息;
所述方法还包括:
防止在存储代表持久性存储器实体在某个时间点的内容的信息的阶段和存储代表虚拟机在所述某个时间点的状态的信息的阶段中的至少一个期间所述持久性存储器实体的更新;
防止在存储代表持久性存储器实体在某个时间点的内容的信息的阶段和存储代表虚拟机在所述某个时间点的状态的信息的阶段中的至少一个期间所述虚拟机的状态的改变;
将所述代表所述持久性存储器实体在所述某个时间点的内容的信息与所述代表所述虚拟机在所述某个时间点的状态的信息相关联;以及
响应于所存储的代表所述持久性存储器实体在所述某个时间点的内容的信息和所存储的代表所述虚拟机在所述某个时间点的状态的信息,恢复所述持久性存储器实体的内容并恢复所述虚拟机的状态。
2.根据权利要求1所述的方法,还包括:
监视虚拟机,并且
响应于虚拟机状态冻结,启动所述存储代表持久性存储器实体在某个时间点的内容的信息的阶段。
3.根据权利要求1所述的方法,还包括:
响应于与这些存储中每一个相关联的存储周期,在所述存储代表持久性存储器实体在某个时间点的内容的信息与所述存储代表虚拟机在所述某个时间点的状态的信息之间进行同步。
4.一种用于存储多种类型的信息的设备,所述设备包括:
用于存储代表持久性存储器实体在某个时间点的内容的信息的装置;和
用于存储代表虚拟机在所述某个时间点的状态的信息的装置;
所述设备还包括:
用于防止在存储代表持久性存储器实体在某个时间点的内容的信息的阶段和存储代表虚拟机在所述某个时间点的状态的信息的阶段中的至少一个期间所述持久性存储器实体的更新的装置;
用于防止在存储代表持久性存储器实体在某个时间点的内容的信息的阶段和存储代表虚拟机在所述某个时间点的状态的信息的阶段中的至少一个期间所述虚拟机的状态的改变的装置;
用于将所述代表所述持久性存储器实体在所述某个时间点的内容的信息与所述代表所述虚拟机在所述某个时间点的状态的信息相关联的装置;以及
用于响应于所存储的代表所述持久性存储器实体在所述某个时间点的内容的信息和所存储的代表所述虚拟机在所述某个时间点的状态的信息,恢复所述持久性存储器实体的内容并恢复所述虚拟机的状态的装置。
5.根据权利要求4所述的设备,还包括:
用于监视虚拟机的装置,以及
用于响应于虚拟机状态冻结,启动所述用于存储代表所述持久性存储器实体在某个时间点的内容的信息的装置的装置。
6.根据权利要求4所述的设备,还包括:
用于响应于与这些存储中每一个相关联的存储周期,在所述用于存储代表所述持久性存储器实体在某个时间点的内容的信息的装置和所述用于存储代表虚拟机在所述某个时间点的状态的信息的装置之间进行同步的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/392,530 US8001342B2 (en) | 2006-03-29 | 2006-03-29 | Method for storing and restoring persistent memory content and virtual machine state information |
US11/392,530 | 2006-03-29 | ||
PCT/EP2007/051898 WO2007110294A2 (en) | 2006-03-29 | 2007-02-28 | System, method and computer program product for storing multiple types of information |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101385003A CN101385003A (zh) | 2009-03-11 |
CN101385003B true CN101385003B (zh) | 2011-08-24 |
Family
ID=38421310
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800059959A Expired - Fee Related CN101385003B (zh) | 2006-03-29 | 2007-02-28 | 用于存储多种类型的信息的系统和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8001342B2 (zh) |
EP (1) | EP1999586B1 (zh) |
CN (1) | CN101385003B (zh) |
TW (1) | TW200821819A (zh) |
WO (1) | WO2007110294A2 (zh) |
Families Citing this family (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8321377B2 (en) * | 2006-04-17 | 2012-11-27 | Microsoft Corporation | Creating host-level application-consistent backups of virtual machines |
US8145947B1 (en) * | 2006-09-29 | 2012-03-27 | Emc Corporation | User customizable CVFS namespace |
DE102007056218A1 (de) * | 2007-11-22 | 2009-05-28 | Robert Bosch Gmbh | Verfahren zur Behandlung von transienten Fehlern in Echtzeitsystemen, insbesondere in Steuergeräten von Kraftfahrzeugen |
JP5268469B2 (ja) * | 2008-07-23 | 2013-08-21 | 株式会社東芝 | 高可用システム及び実行状態制御方法 |
US8307177B2 (en) | 2008-09-05 | 2012-11-06 | Commvault Systems, Inc. | Systems and methods for management of virtualization data |
CN101770410B (zh) * | 2009-01-07 | 2016-08-17 | 联想(北京)有限公司 | 基于客户操作系统的系统还原方法、虚拟机管理器及系统 |
US11449394B2 (en) | 2010-06-04 | 2022-09-20 | Commvault Systems, Inc. | Failover systems and methods for performing backup operations, including heterogeneous indexing and load balancing of backup and indexing resources |
US8782434B1 (en) | 2010-07-15 | 2014-07-15 | The Research Foundation For The State University Of New York | System and method for validating program execution at run-time |
US8726083B1 (en) * | 2011-07-29 | 2014-05-13 | Emc Corporation | Synchronized taking of snapshot memory images of virtual machines and storage snapshots |
US8688605B2 (en) | 2011-11-22 | 2014-04-01 | International Business Machines Corporation | Incremental context accumulating systems with information co-location for high performance and real-time decisioning systems |
US10140139B1 (en) * | 2012-06-19 | 2018-11-27 | Bromium, Inc. | Ensuring the privacy and integrity of a hypervisor |
CN103593256B (zh) * | 2012-08-15 | 2017-05-24 | 阿里巴巴集团控股有限公司 | 一种基于多层排重的虚机快照备份方法和系统 |
US9122873B2 (en) | 2012-09-14 | 2015-09-01 | The Research Foundation For The State University Of New York | Continuous run-time validation of program execution: a practical approach |
US9069782B2 (en) | 2012-10-01 | 2015-06-30 | The Research Foundation For The State University Of New York | System and method for security and privacy aware virtual machine checkpointing |
US9311121B2 (en) | 2012-12-21 | 2016-04-12 | Commvault Systems, Inc. | Archiving virtual machines in a data storage system |
US20140181044A1 (en) | 2012-12-21 | 2014-06-26 | Commvault Systems, Inc. | Systems and methods to identify uncharacterized and unprotected virtual machines |
US9195614B2 (en) | 2013-01-08 | 2015-11-24 | International Business Machines Corporation | Instantaneous save/restore of virtual machines with persistent memory |
US9703584B2 (en) | 2013-01-08 | 2017-07-11 | Commvault Systems, Inc. | Virtual server agent load balancing |
US20140201151A1 (en) | 2013-01-11 | 2014-07-17 | Commvault Systems, Inc. | Systems and methods to select files for restoration from block-level backup for virtual machines |
US9286110B2 (en) | 2013-01-14 | 2016-03-15 | Commvault Systems, Inc. | Seamless virtual machine recall in a data storage system |
US9092248B1 (en) * | 2013-08-21 | 2015-07-28 | Symantec Corporation | Systems and methods for restoring distributed applications within virtual data centers |
US9939981B2 (en) | 2013-09-12 | 2018-04-10 | Commvault Systems, Inc. | File manager integration with virtualization in an information management system with an enhanced storage manager, including user control and storage management of virtual machines |
US9563518B2 (en) | 2014-04-02 | 2017-02-07 | Commvault Systems, Inc. | Information management by a media agent in the absence of communications with a storage manager |
US20160019317A1 (en) | 2014-07-16 | 2016-01-21 | Commvault Systems, Inc. | Volume or virtual machine level backup and generating placeholders for virtual machine files |
US9710465B2 (en) | 2014-09-22 | 2017-07-18 | Commvault Systems, Inc. | Efficiently restoring execution of a backed up virtual machine based on coordination with virtual-machine-file-relocation operations |
US9436555B2 (en) * | 2014-09-22 | 2016-09-06 | Commvault Systems, Inc. | Efficient live-mount of a backed up virtual machine in a storage management system |
US9417968B2 (en) | 2014-09-22 | 2016-08-16 | Commvault Systems, Inc. | Efficiently restoring execution of a backed up virtual machine based on coordination with virtual-machine-file-relocation operations |
US10776209B2 (en) | 2014-11-10 | 2020-09-15 | Commvault Systems, Inc. | Cross-platform virtual machine backup and replication |
US9983936B2 (en) | 2014-11-20 | 2018-05-29 | Commvault Systems, Inc. | Virtual machine change block tracking |
US10606704B1 (en) * | 2014-12-31 | 2020-03-31 | Acronis International Gmbh | Creation of consistent copies of application data |
US10282224B2 (en) * | 2015-09-22 | 2019-05-07 | Qualcomm Incorporated | Dynamic register virtualization |
US10592350B2 (en) | 2016-03-09 | 2020-03-17 | Commvault Systems, Inc. | Virtual server cloud file system for virtual machine restore to cloud operations |
US10474548B2 (en) | 2016-09-30 | 2019-11-12 | Commvault Systems, Inc. | Heartbeat monitoring of virtual machines for initiating failover operations in a data storage management system, using ping monitoring of target virtual machines |
US10152251B2 (en) | 2016-10-25 | 2018-12-11 | Commvault Systems, Inc. | Targeted backup of virtual machine |
US10162528B2 (en) | 2016-10-25 | 2018-12-25 | Commvault Systems, Inc. | Targeted snapshot based on virtual machine location |
US10678758B2 (en) | 2016-11-21 | 2020-06-09 | Commvault Systems, Inc. | Cross-platform virtual machine data and memory backup and replication |
US10896100B2 (en) | 2017-03-24 | 2021-01-19 | Commvault Systems, Inc. | Buffered virtual machine replication |
US10387073B2 (en) | 2017-03-29 | 2019-08-20 | Commvault Systems, Inc. | External dynamic virtual machine synchronization |
CN107357628A (zh) * | 2017-06-05 | 2017-11-17 | 广西犇云科技有限公司 | 一种云服务器虚拟化管理系统 |
CN107357627A (zh) * | 2017-06-05 | 2017-11-17 | 广西犇云科技有限公司 | 一种云服务器自动运行系统 |
CN107256185A (zh) * | 2017-06-05 | 2017-10-17 | 广西犇云科技有限公司 | 一种云服务器磁盘修复系统 |
CN107357626A (zh) * | 2017-06-05 | 2017-11-17 | 广西犇云科技有限公司 | 一种云服务器虚拟化权限系统 |
CN107168655A (zh) * | 2017-06-05 | 2017-09-15 | 广西犇云科技有限公司 | 一种云服务器保密系统 |
US10877928B2 (en) | 2018-03-07 | 2020-12-29 | Commvault Systems, Inc. | Using utilities injected into cloud-based virtual machines for speeding up virtual machine backup operations |
US11200124B2 (en) | 2018-12-06 | 2021-12-14 | Commvault Systems, Inc. | Assigning backup resources based on failover of partnered data storage servers in a data storage management system |
US10768971B2 (en) | 2019-01-30 | 2020-09-08 | Commvault Systems, Inc. | Cross-hypervisor live mount of backed up virtual machine data |
US10996974B2 (en) | 2019-01-30 | 2021-05-04 | Commvault Systems, Inc. | Cross-hypervisor live mount of backed up virtual machine data, including management of cache storage for virtual machine data |
US11467753B2 (en) | 2020-02-14 | 2022-10-11 | Commvault Systems, Inc. | On-demand restore of virtual machine data |
US11442768B2 (en) | 2020-03-12 | 2022-09-13 | Commvault Systems, Inc. | Cross-hypervisor live recovery of virtual machines |
US11099956B1 (en) | 2020-03-26 | 2021-08-24 | Commvault Systems, Inc. | Snapshot-based disaster recovery orchestration of virtual machine failover and failback operations |
US11500669B2 (en) | 2020-05-15 | 2022-11-15 | Commvault Systems, Inc. | Live recovery of virtual machines in a public cloud computing environment |
US20210365411A1 (en) * | 2020-05-21 | 2021-11-25 | International Business Machines Corporation | Asynchronous host file system based data replication |
US11656951B2 (en) | 2020-10-28 | 2023-05-23 | Commvault Systems, Inc. | Data loss vulnerability detection |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2916420B2 (ja) * | 1996-09-04 | 1999-07-05 | 株式会社東芝 | チェックポイント処理加速装置およびデータ処理方法 |
GB2362246B (en) * | 1996-12-16 | 2002-02-20 | Fujitsu Ltd | Computer system with checkpoint facility |
US5971851A (en) * | 1996-12-27 | 1999-10-26 | Silicon Gaming, Inc. | Method and apparatus for managing faults and exceptions |
US6795966B1 (en) * | 1998-05-15 | 2004-09-21 | Vmware, Inc. | Mechanism for restoring, porting, replicating and checkpointing computer systems using state extraction |
US6760815B1 (en) * | 2000-06-02 | 2004-07-06 | Sun Microsystems, Inc. | Caching mechanism for a virtual heap |
US6718538B1 (en) * | 2000-08-31 | 2004-04-06 | Sun Microsystems, Inc. | Method and apparatus for hybrid checkpointing |
US20020174265A1 (en) * | 2001-03-28 | 2002-11-21 | Schmidt Brian K. | Method and apparatus for caching active computing environments |
US6839892B2 (en) * | 2001-07-12 | 2005-01-04 | International Business Machines Corporation | Operating system debugger extensions for hypervisor debugging |
US7093086B1 (en) * | 2002-03-28 | 2006-08-15 | Veritas Operating Corporation | Disaster recovery and backup using virtual machines |
US7213246B1 (en) * | 2002-03-28 | 2007-05-01 | Veritas Operating Corporation | Failing over a virtual machine |
US6757778B1 (en) * | 2002-05-07 | 2004-06-29 | Veritas Operating Corporation | Storage management system |
US20050160423A1 (en) * | 2002-12-16 | 2005-07-21 | Bantz David F. | Enabling a guest virtual machine in a windows environment for policy-based participation in grid computations |
US7904428B2 (en) * | 2003-09-23 | 2011-03-08 | Symantec Corporation | Methods and apparatus for recording write requests directed to a data store |
US7996645B2 (en) * | 2003-09-26 | 2011-08-09 | Hitachi Global Storage Technologies Netherlands B.V. | Log-structured file system for disk drives with shingled writing |
US7529897B1 (en) * | 2003-12-31 | 2009-05-05 | Vmware, Inc. | Generating and using checkpoints in a virtual computer system |
US7315965B2 (en) * | 2004-02-04 | 2008-01-01 | Network Appliance, Inc. | Method and system for storing data using a continuous data protection system |
US7373530B2 (en) * | 2005-03-16 | 2008-05-13 | Microsoft Corporation | Systems and methods for providing power-loss protection to sleeping computers systems |
US8370819B2 (en) * | 2005-03-25 | 2013-02-05 | Microsoft Corporation | Mechanism to store information describing a virtual machine in a virtual disk image |
US8856473B2 (en) * | 2005-07-01 | 2014-10-07 | Red Hat, Inc. | Computer system protection based on virtualization |
US7571347B2 (en) * | 2006-03-20 | 2009-08-04 | Sun Microsystems, Inc. | Method and apparatus for providing fault-tolerance in parallel-processing systems |
US7774391B1 (en) * | 2006-03-30 | 2010-08-10 | Vmware, Inc. | Method of universal file access for a heterogeneous computing environment |
-
2006
- 2006-03-29 US US11/392,530 patent/US8001342B2/en not_active Expired - Fee Related
-
2007
- 2007-02-28 EP EP07712386.7A patent/EP1999586B1/en active Active
- 2007-02-28 CN CN2007800059959A patent/CN101385003B/zh not_active Expired - Fee Related
- 2007-02-28 WO PCT/EP2007/051898 patent/WO2007110294A2/en active Application Filing
- 2007-03-07 TW TW096107862A patent/TW200821819A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
EP1999586A2 (en) | 2008-12-10 |
WO2007110294A2 (en) | 2007-10-04 |
CN101385003A (zh) | 2009-03-11 |
EP1999586B1 (en) | 2013-05-01 |
TW200821819A (en) | 2008-05-16 |
WO2007110294A3 (en) | 2007-11-15 |
US20070239804A1 (en) | 2007-10-11 |
US8001342B2 (en) | 2011-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101385003B (zh) | 用于存储多种类型的信息的系统和方法 | |
US7426618B2 (en) | Snapshot restore method and apparatus | |
US9569518B2 (en) | Efficiently storing and retrieving data and metadata | |
US8285679B2 (en) | Creating a buffer point-in-time copy relationship for a point-in-time copy function executed to create a point-in-time copy relationship | |
US8464010B2 (en) | Apparatus and method for data backup | |
CN103562878B (zh) | 在镜像虚拟机系统中的存储器检查点设置 | |
US7111137B2 (en) | Data storage systems and processes, such as one-way data mirror using write mirroring | |
US7831861B1 (en) | Techniques for efficient restoration of granular application data | |
US20050149683A1 (en) | Methods and systems for data backups | |
JP5669988B2 (ja) | 多重ターゲット・コピーの維持 | |
CN101344863A (zh) | 备份系统和方法 | |
JP2005250676A (ja) | ストレージシステム及びストレージシステムの制御方法 | |
US20110016093A1 (en) | Operating system restoration using remote backup system and local system restore function | |
CN102713856A (zh) | 具有选择性按需数据可用性的多阶段文件系统恢复 | |
US10235092B1 (en) | Independent parallel on demand recovery of data replicas in a storage system | |
CN101086717B (zh) | 存储瞬态信息的系统和方法 | |
US10228873B2 (en) | Swapping tape cartridges in tape libraries | |
US20050149548A1 (en) | One-way data mirror using copy-on-write | |
US20210072916A1 (en) | Storage performance enhancement | |
WO2020082008A1 (en) | Using non-volatile memory to improve the availability of an in-memory database | |
US7240131B1 (en) | Method and apparatus for improving the process of making independent data copies in a data processing system | |
Nakajima | Hitachi HiCommand® Protection Manager Software for Microsoft Exchange Server 2003 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110824 Termination date: 20190228 |