CN110413369B - 用于虚拟化环境中的备份的系统和方法 - Google Patents
用于虚拟化环境中的备份的系统和方法 Download PDFInfo
- Publication number
- CN110413369B CN110413369B CN201910332300.2A CN201910332300A CN110413369B CN 110413369 B CN110413369 B CN 110413369B CN 201910332300 A CN201910332300 A CN 201910332300A CN 110413369 B CN110413369 B CN 110413369B
- Authority
- CN
- China
- Prior art keywords
- backup
- workflow
- production
- virtual machine
- agent
- 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
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000004519 manufacturing process Methods 0.000 claims abstract description 153
- 230000002085 persistent effect Effects 0.000 claims abstract description 53
- 238000013500 data storage Methods 0.000 claims abstract description 12
- 230000000977 initiatory effect Effects 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 13
- 239000003795 chemical substances by application Substances 0.000 description 87
- 238000010586 diagram Methods 0.000 description 28
- 230000006870 function Effects 0.000 description 21
- 230000008569 process Effects 0.000 description 9
- 239000007787 solid Substances 0.000 description 8
- 238000004458 analytical method Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000001149 cognitive effect Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
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/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- 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/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
- 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
-
- 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/1461—Backup scheduling policy
-
- 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
- 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
- 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/45587—Isolation or security of 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/45595—Network integration; Enabling network access in virtual machine instances
-
- 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)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及用于虚拟化环境中的备份的系统和方法,并提供了一种向虚拟机提供数据存储服务的远程备份代理,其包括持久性存储装置和处理器。持久性存储装置存储针对虚拟机的工作流。处理器使用由生产主机承载的生产代理基于工作流来执行虚拟机的第一远程备份,该生产主机也承载虚拟机;获得工作流更新;基于该工作流更新来对工作流进行更新,以获得更新的工作流;以及使用生产主机基于更新的工作流来执行虚拟机的第二远程备份,而不修改生产代理。
Description
技术领域
本公开涉及数据的存储和备份。
背景技术
计算设备产生,使用并存储数据。数据例如可以是与数据相关联的图像、文档、网页或元数据。数据可存储在持久性存储装置上。存储的数据可从持久性存储装置删除。
可通过将存储在计算设备上的数据的备份存储在第二个计算设备上来备份该数据。第二个计算设备可在地理上与上述计算设备分离。
发明内容
在一个方面中,本发明的一个或多个实施例的向虚拟机提供数据存储服务的远程备份代理包括持久性存储装置和处理器。所述持久性存储装置存储虚拟机的工作流。所述处理器使用由生产主机承载的生产代理(该生产主机也承载虚拟机)基于工作流执行虚拟机的第一远程备份;获得工作流更新;基于该工作流更新对工作流进行更新,以获得更新的工作流;并使用生产主机基于更新的工作流执行虚拟机的第二远程备份,而无需修改生产代理。
在一个方面中,本发明的一个或多个实施例的向虚拟机提供数据存储服务的方法包括:远程备份代理使用由生产主机承载的生产代理(该生产主机也承载虚拟机)基于工作流执行虚拟机的第一远程备份;远程备份代理获得工作流更新;远程备份代理基于该工作流更新对工作流进行更新,以获得更新的工作流;并且远程备份代理使用生产主机基于更新的工作流执行虚拟机的第二远程备份,而无需修改生产代理。
在一个方面中,本发明的一个或多个实施例的非暂时性计算机可读介质包括计算机可读程序代码,该计算机可读程序代码在由计算机处理器执行时使计算机处理器能够执行用于向虚拟机提供数据存储服务的方法,该方法包括:远程备份代理使用由生产主机承载的生产代理(该生产主机也承载虚拟机)基于工作流执行虚拟机的第一远程备份;远程备份代理获得工作流更新;远程备份代理基于该工作流更新对工作流进行更新,以获得更新的工作流;并且远程备份代理使用生产主机基于更新的工作流执行虚拟机的第二远程备份,而无需修改生产代理。
附图说明
下面将参照附图说明本发明的某些实施例。但是,附图仅通过示例的方式示出了本发明的某些方面或实施方式,并不意味着限制权利要求的范围。
图1示出了本发明的一个或多个实施例的系统的示意图;
图2示出了本发明的一个或多个实施例的示例性生产主机的示意图;
图3示出了本发明的一个或多个实施例的示例性备份代理的示意图;
图4示出了本发明的一个或多个实施例的示例性备份存储装置的示意图;
图5A示出了本发明的一个或多个实施例的示例性拓扑图的示意图;
图5B示出了本发明的一个或多个实施例的示例性资源图的示意图;
图5C示出了本发明的一个或多个实施例的示例性不良主机图的示意图;
图6示出了本发明的一个或多个实施例的向虚拟机提供备份服务的方法的流程图;
图7示出了本发明的一个或多个实施例的执行虚拟机还原的方法的流程图;
图8A示出了本发明的一个或多个实施例的在备份代理与虚拟机之间执行会话的方法的流程图;
图8B示出了本发明的一个或多个实施例的进行容量分析的方法的流程图;
图9示出了本发明的一个或多个实施例的计算设备的示意图。
具体实施方式
下面将参照附图说明本发明的具体实施例。在以下说明中,阐述了许多细节作为本发明的示例。本领域技术人员应理解,无需这些具体细节即可实践本发明的一个或多个实施例,并且在不脱离本发明的范围的情况下可做出各种变化或修改。在本文中省略了本领域普通技术人员已知的某些细节,以避免使说明变得模糊。
在以下的附图说明中,在本发明的多个实施例中参照一个附图说明的任何部件可以等同于参照任何其他附图说明的一个或多个以相似方式命名的部件。为了简洁起见,不会参照每个附图重复说明这些部件。因此,每个附图的部件的每个实施例通过引用结合在此,并假定其可选地存在于具有一个或多个以相似方式命名的部件的每个其他附图中。此外,根据本发明的多个实施例,对附图的部件的任何说明应理解为可选的实施例,这种可选的实施例可以是除了相对于任何其他附图中的以相似方式命名的相应部件说明的实施例之外的实施例,与这些实施例结合实施,或者代替这些实施例。
本发明的实施例总体涉及一种用于执行虚拟机的备份和还原的系统、装置和方法。更具体地说,所述系统、装置和方法可提高虚拟机备份生成的一致性,因而提高将来能够还原虚拟机的可能性。
在本发明的一个或多个实施例中,所述系统提供一种用于控制虚拟机备份的生成而无需修改生产主机的集中机制。具体而言,本发明的实施例可提供使用一组共同策略来协调备份生成的远程备份代理。通过使用一组共同策略,能够一致地生成虚拟机的备份,这能提高虚拟机还原所需的任何备份可用于执行还原的可能性。通过这种方式,本发明的实施例可通过提高数据冗余机制成功生成数据结构的副本的可能性来提高网络环境中的数据安全性。通过解决网络环境中的数据安全性问题,本发明的实施例可改进利用计算环境的分布特性来存储数据的联网计算设备的领域。在不脱离本发明的情况下,本发明的实施例还可解决其他问题。
图1示出了本发明的一个或多个实施例的计算系统。该系统可包括承载显露给客户端(140)的虚拟机的生产主机(130)。该系统还可包括向生产主机提供服务的远程备份代理(110)。所述服务可包括在备份存储装置(120)中存储数据、以及使用非生产主机(100)还原虚拟机。图1的系统的每个组件可通过有线和/或无线连接的任何组合可操作地连接。每个系统组件将在下文中说明。
客户端(140)可以是计算设备。所述计算设备例如可以是移动电话、平板计算机、便携式计算机、台式计算机、服务器、或云资源。计算设备可包括一个或多个处理器、存储器(例如随机存取存储器)和持久性存储装置(例如磁盘驱动器、固态驱动器等)。持久性存储装置可存储计算机指令,例如计算机代码,该计算机指令在由计算设备的处理器执行时使计算设备执行本申请中说明的功能。在不脱离本发明的情况下,客户端(140)可以是其他类型的计算设备。欲了解计算设备的更多细节,请参考图9。
客户端(140)可与由生产主机(130)承载的虚拟机(未示出)交互。例如,虚拟机可承载数据库、电子邮件服务器、或任何其他类型的应用。客户端(140)可利用由前述应用或其他应用提供的服务。在另一个示例中,客户端(140)可直接操作虚拟机,例如向虚拟化环境中的虚拟机发送命令。在这种情况下,客户端(140)可作为用于访问虚拟机的终端来操作。
在本发明的一个或多个实施例中,生产主机(130)是计算设备。所述计算设备例如可以是移动电话、平板计算机、便携式计算机、台式计算机、服务器、分布式计算系统或云资源。云资源可以是协作地承载基于云的应用的一个或多个计算设备。计算设备可包括一个或多个处理器、存储器(例如随机存取存储器)和持久性存储装置(例如磁盘驱动器、固态驱动器等)。持久性存储装置可存储计算机指令,例如计算机代码,该计算机指令在由计算设备的处理器执行时使计算设备执行本申请中说明的功能。在不脱离本发明的情况下,生产主机(130)也可以是其他类型的计算设备。欲了解计算设备的更多细节,请参考图9。
在本发明的一个或多个实施例中,生产主机(130)是分布式计算设备。在本文中所用的分布式计算设备指由利用一个或多个独立和/或不同的计算设备的计算资源的逻辑设备提供的功能。例如,在本发明的一个或多个实施例中,生产主机(130)可以是包括分布在多个独立和/或不同的计算设备上的组件的分布式设备。在这种情况中,在不脱离本发明的情况下,生产主机(130)的功能可由多个不同的计算设备执行。
在本发明的一个或多个实施例中,生产主机(130)承载虚拟机。在不脱离本发明的情况下,生产主机(130)可承载任何数量的虚拟机。生产主机(130)还可承载代理或其他执行组件,以协调承载的虚拟机的操作。欲了解生产主机(130)的更多细节,请参考图2。
在本发明的一个或多个实施例中,非生产主机(100)是计算设备。所述计算设备例如可以是移动电话、平板计算机、便携式计算机、台式计算机、服务器、分布式计算系统或云资源。计算设备可包括一个或多个处理器、存储器(例如随机存取存储器)和持久性存储装置(例如磁盘驱动器、固态驱动器等)。持久性存储装置可存储计算机指令,例如计算机代码,该计算机指令在由计算设备的处理器执行时使计算设备执行本申请中说明的功能。在不脱离本发明的情况下,非生产主机(100)也可以是其他类型的计算设备。欲了解计算设备的更多细节,请参考图9。
在本发明的一个或多个实施例中,非生产主机(100)是分布式计算设备。在本文中所用的分布式计算设备指由利用一个或多个独立和/或不同的计算设备的计算资源的逻辑设备提供的功能。例如,在本发明的一个或多个实施例中,非生产主机(100)可以是包括分布在多个独立和/或不同的计算设备上的组件的分布式设备。在这种情况中,在不脱离本发明的情况下,非生产主机(100)的功能可由多个不同的计算设备执行。
在本发明的一个或多个实施例中,非生产主机(100)承载对客户端和/或其他实体隐藏的虚拟机或其他组件。隐藏的虚拟机可以是对其他设备不可见的。在不脱离本发明的情况下,非生产主机(100)可承载任何数量的隐藏虚拟机。非生产主机(100)还可承载代理或其他执行组件,以协调承载的虚拟机的操作。
在本发明的一个或多个实施例中,虚拟机在非生产主机(100)上还原,并在还原之后被传送至生产主机(130)。在本发明的一个或多个实施例中,非生产主机(100)具有高计算资源可用性。非生产主机(100)可具有高计算资源可用性,因为由非生产主机(100)承载的虚拟机是隐藏的。换句话说,客户端(140)或其他实体不与由非生产主机(100)承载的虚拟机交互,因为承载的虚拟机是隐藏的。
在本发明的一个或多个实施例中,远程备份代理(110)是计算设备。所述计算设备例如可以是移动电话、平板计算机、便携式计算机、台式计算机、服务器、分布式计算系统或云资源。计算设备可包括一个或多个处理器、存储器(例如随机存取存储器)和持久性存储装置(例如磁盘驱动器、固态驱动器等)。持久性存储装置可存储计算机指令,例如计算机代码,该计算机指令在由计算设备的处理器执行时使计算设备执行本申请中说明的功能。在不脱离本发明的情况下,远程备份代理(110)可以是其他类型的计算设备。欲了解计算设备的更多细节,请参考图9。
在本发明的一个或多个实施例中,远程备份代理(110)是分布式计算设备。在本文中所用的分布式计算设备指由利用一个或多个独立和/或不同的计算设备的计算资源的逻辑设备提供的功能。例如,在本发明的一个或多个实施例中,远程备份代理(110)可以是包括分布在多个独立和/或不同的计算设备上的组件的分布式设备。在这种情况中,在不脱离本发明的情况下,远程备份代理(110)的功能可由多个不同的计算设备执行。
在本发明的一个或多个实施例中,远程备份代理(110)向虚拟机提供服务。所述服务可包括存储虚拟机数据、生成虚拟机或其部分的备份、和/或执行虚拟机还原。为了提供上述服务,远程备份代理(110)可执行图6-8B中所示的方法。在执行上述方法时,远程备份代理(110)可使用图5A-5C中所示的数据结构。欲了解远程备份代理(110)的更多细节,请参考图3。
在本发明的一个或多个实施例中,备份存储装置(120)是计算设备。所述计算设备例如可以是移动电话、平板计算机、便携式计算机、台式计算机、服务器、分布式计算系统或云资源。计算设备可包括一个或多个处理器、存储器(例如随机存取存储器)和持久性存储装置(例如磁盘驱动器、固态驱动器等)。持久性存储装置可包括硬盘驱动器、固态驱动器、磁带驱动器和/或其他存储设备。持久性存储装置可存储计算机指令,例如计算机代码,该计算机指令在由计算设备的处理器执行时使计算设备执行本申请中说明的功能。在不脱离本发明的情况下,备份存储装置(120)可以是其他类型的计算设备。欲了解计算设备的更多细节,请参考图9。
在本发明的一个或多个实施例中,备份存储装置(120)是分布式计算设备。在本文中所用的分布式计算设备指由利用一个或多个独立和/或不同的计算设备的计算资源的逻辑设备提供的功能。例如,在本发明的一个或多个实施例中,备份存储装置(120)可以是包括分布在多个独立和/或不同的计算设备上的组件的分布式设备。在这种情况中,在不脱离本发明的情况下,备份存储装置(120)的功能可由多个不同的计算设备执行。
在本发明的一个或多个实施例中,备份存储装置(120)存储来自生产主机(130)的数据。该数据例如可以是在生产主机(130)上执行的虚拟机的映像、来自虚拟机的应用数据、或任何其他类型的数据。存储在备份存储装置(120)中的数据可使得在生产主机(130)上执行的虚拟机能被还原。换句话说,存储在备份存储装置(120)中的数据可反映在生产主机(130)上执行的虚拟机或其他应用的过去状态。在不脱离本发明的情况下,备份存储装置(120)可存储其他或不同的数据。
在本发明的一个或多个实施例中,不同的备份存储装置(120)具有不同的性能特征。例如,某些备份存储装置可能是高性能的,此时可快速向备份存储装置存储数据或从备份存储装置检索数据。相反,某些备份存储装置可能是低性能的,此时向备份存储装置存储数据或从备份存储装置检索数据的速度较慢。将数据存储在低性能备份存储装置而不是高性能存储装置中可能成本较低。
在本发明的一个或多个实施例中,使用多个备份存储装置存储相同数据的多个副本。例如,在本发明的一些实施例中,可能需要高度冗余。在这种情况下,可将多个数据副本存储在多个备份存储装置中,以提高确保所存储的数据在将来可检索的可能性。
在本发明的一个或多个实施例中,一部分备份存储装置(120)是去重存储装置。去重存储装置尝试通过仅存储唯一数据的副本来增加可存储的数据量。当在去重存储装置中存储数据时,可首先检查数据以确定其是否与已存储在备份存储装置中的数据重复。只有数据的唯一部分才会被存储在备份存储装置中。在去重存储装置中存储和访问数据可能比在非去重存储装置中存储数据要花费更多计算资源。
如上所述,备份存储装置可存储从生产主机(130)获得的数据。
图2示出了本发明的一个或多个实施例的示例性生产主机(200)的示意图。
在本发明的一个或多个实施例中,示例性生产主机(200)承载虚拟机(210)。在不脱离本发明的情况下,示例性生产主机(200)可承载任何数量的虚拟机(210A、210N)。
在本发明的一个或多个实施例中,虚拟机(210)使用示例性生产主机(200)的计算资源来执行。例如,可为每个虚拟机(210)分配示例性生产主机(200)的一部分处理资源、存储器资源和/或存储装置资源。
在本发明的一个或多个实施例中,可存储过去时间点的每个虚拟机(210)的映像。在该过去时间点之后,可存储差分盘,该差分盘存储在每个虚拟机(210)的映像的基础上产生的每个变化。上述映像和差分盘可本地存储,或者可存储在备份存储装置中。在本发明的一个或多个实施例中,生成虚拟机的备份包括将虚拟机的映像的副本和任何差分盘存储在备份存储装置中。因此,在执行虚拟机还原时,差分盘可与虚拟机映像合并,以获得在由每个差分盘反映的时段之后的时间点的虚拟机表征内容。
示例性生产主机(200)可包括管理虚拟机(210)的执行的超管理器(220)。超管理器(220)可实例化和/或终止任何虚拟机(210)。
在本发明的一个或多个实施例中,超管理器(220)是包括电路的硬件设备。超管理器(220)例如可以是数字信号处理器、现场可编程门阵列、或应用专用集成电路。在不脱离本发明的情况下,超管理器(220)可以是其他类型的硬件设备。
在本发明的一个或多个实施例中,超管理器(220)实现为存储在持久性存储装置上的计算代码,该计算代码在由处理器执行时执行超管理器(220)的功能。所述处理器可以是包括电路的硬件处理器,例如中央处理单元或微控制器。在不脱离本发明的情况下,所述处理器可以是用于处理数字信息的其他类型的硬件设备。
示例性生产主机(200)可包括管理备份存储装置中的虚拟机数据的存储的生产代理(230)。在尝试存储虚拟机数据时,生产代理(230)可向超管理器(220)发出命令,以控制虚拟机的操作。例如,生产代理(230)可针对虚拟机、应用或在示例性生产主机(200)上执行的其他实体发起生成备份包(即,反映实体状态的数据)的过程,并使所述实体能够还原到该状态。类似地,生产代理(230)可发起还原虚拟机、应用或其他实体或者迁移还原的虚拟机、应用或其他实体的过程。
在本发明的一个或多个实施例中,生产代理(230)是硬化的实体,即,不能由位于生产代理(230)正在其上执行的生产主机的远程位置的实体修改。生产代理(230)可具有可由远程实体调用的一组有限数量的预定功能。在本发明的一个或多个实施例中,不能通过修改设置或相关配置文件来配置生产代理(230)。
在本发明的一个或多个实施例中,生产代理(230)是包括电路的硬件设备。生产代理(230)例如可以是数字信号处理器、现场可编程门阵列、或应用专用集成电路。在不脱离本发明的情况下,生产代理(230)可以是其他类型的硬件设备。
在本发明的一个或多个实施例中,生产代理(230)实现为存储在持久性存储装置上的计算代码,该计算代码在由处理器执行时执行生产代理(230)的功能。所述处理器可以是包括电路的硬件处理器,例如中央处理单元或微控制器。在不脱离本发明的情况下,所述处理器可以是用于处理数字信息的其他类型的硬件设备。
来自生产主机的数据可由远程备份代理存储。图3示出了本发明的一个或多个实施例的远程备份代理(300)的示意图。
在本发明的一个或多个实施例中,示例性远程备份代理(300)管理在备份存储装置中存储数据以及使用存储在备份存储装置中的数据还原虚拟机、应用或其他实体的过程。为了提供上述功能,示例性远程备份代理(300)可包括备份与恢复管理器(310)、以及存储由备份与恢复管理器(310)使用的数据结构的持久性存储装置(320)。
在本发明的一个或多个实施例中,备份与恢复管理器(310)向虚拟机提供备份和还原服务。为了提供备份服务,备份与恢复管理器(310)可从虚拟机获得数据并将该数据存储在备份存储装置中。为了提供恢复服务,备份与恢复管理器(310)可从备份存储装置获得数据并执行虚拟机、应用或其他实体的还原。在本发明的一个或多个实施例中,执行还原会使实体返回到某个先前状态。为了提供上述功能,备份与恢复管理器(310)可执行图6-8B中所示的所有方法或一部分方法。备份与恢复管理器(310)可使用持久性存储装置(320)中的数据结构。
在本发明的一个或多个实施例中,备份与恢复管理器(310)是包括电路的硬件设备。备份与恢复管理器(310)例如可以是数字信号处理器、现场可编程门阵列、或应用专用集成电路。在不脱离本发明的情况下,备份与恢复管理器(310)可以是其他类型的硬件设备。
在本发明的一个或多个实施例中,备份与恢复管理器(310)实现为存储在持久性存储装置上的计算代码,该计算代码在由处理器执行时执行备份与恢复管理器(310)的功能。所述处理器可以是包括电路的硬件处理器,例如中央处理单元或微控制器。在不脱离本发明的情况下,所述处理器可以是用于处理数字信息的其他类型的硬件设备。
在本发明的一个或多个实施例中,持久性存储装置(320)是存储数据结构的存储装置。持久性存储装置(320)可以是物理或虚拟设备。例如,持久性存储装置(320)可包括用于提供数据存储功能的固态驱动器、固态驱动器、磁带驱动器和其他组件。或者,持久性存储装置(320)可以是利用其他组件的物理计算资源提供数据存储功能的虚拟设备。
在本发明的一个或多个实施例中,持久性存储装置(320)存储拓扑图(320A)、资源图(320B)、不良主机图(320C)和备份/还原策略(320D)。在不脱离本发明的情况下,持久性存储装置(320)可存储附加的数据。
拓扑图(320A)可以是图1的实体的物理和虚拟拓扑的表征。例如,拓扑图可包括每个计算设备和/或每个计算设备的连接的硬件和/或软件配置文件。拓扑图(320A)可由示例性远程备份代理(300)更新。
资源图(320B)可表明图1的系统的生产主机、非生产主机、远程备份代理和备份存储装置的计算资源。例如,资源图(320B)可表明每个上述实体的可用处理资源、存储器资源、存储装置资源和通信资源。资源图(320B)可由示例性远程备份代理(300)更新。
不良主机图(320C)可表明处于部分错误状态的生产主机。例如,随着时间的推移,生产主机的组件可能会发生故障。所述组件可以是硬件或软件,例如超管理器、备份代理等。不良主机图(320C)可表明因相应生产主机的硬件或软件组件的部分故障而处于部分错误状态的每个生产主机的标识符。不良主机图(320C)可由示例性远程备份代理(300)更新。例如,当备份与恢复管理器(310)因生产主机的部分错误状态而不能执行备份或恢复时,示例性远程备份代理(300)可更新不良主机图(320C)。
备份/还原策略(320D)可表明由图1的系统的组件承载的虚拟机的备份和/或还原工作流。备份/还原策略(320D)可表明执行备份或还原的频率、存储位置、还原位置、以及其他方面。备份/还原策略(320D)可在某个粒度级别上(例如每个虚拟机的工作流)或宏观级别上(例如多个虚拟机的工作流)制定。
虽然持久性存储装置(320)的数据结构被示为单独的数据结构,但是在不脱离本发明的情况下,上述数据结构可彼此组合和/或与其他数据组合。另外,虽然上述数据结构被示为存储在示例性远程备份代理(300)上,但是在不脱离本发明的情况下,该数据结构也可存储在其他设备的持久性存储装置上。例如,多个远程备份代理可使用存储在远程备份代理之一或另一个实体上的任何上述数据结构的单个实例。
在生成备份或执行虚拟机还原时,远程备份代理可存储或访问备份存储装置中的数据。图4示出了本发明的一个或多个实施例的示例性备份存储装置(400)的示意图。
在本发明的一个或多个实施例中,示例性备份存储装置(400)存储来自远程备份代理或其他实体的数据。例如,远程备份代理可将数据发送到示例性备份存储装置(400)以进行存储。在某些情况下,示例性备份存储装置(400)可存储从生产主机获得的数据。在这种情况下,远程备份代理可协调该过程,即,指示生产主机将数据存储在示例性备份存储装置中(400)。
在本发明的一个或多个实施例中,示例性备份存储装置(400)向远程备份代理或其他实体提供先前存储的数据。例如,远程备份代理可发起虚拟机还原。远程备份代理可向将执行虚拟机还原的示例性备份存储装置(400)或计算设备发送指令,以分别在示例性备份存储装置(400)中提供或获得数据。获得的数据可用于执行还原。
为了提供上述功能,示例性备份存储装置(400)可包括存储管理器(410)和存储由存储管理器(410)使用的数据结构的持久性存储装置(420)。
在本发明的一个或多个实施例中,存储管理器(410)管理在持久性存储装置(420)中存储数据和从持久性存储装置(420)检索数据的操作。在本发明的一个或多个实施例中,数据在存储在持久性存储装置(420)中之前可经过去重处理。在这种情况下,存储管理器(410)可将待存储数据与已存储数据进行比较,并且仅存储待存储数据的唯一部分。该唯一部分可以是待存储数据的与已存储在持久性存储装置(420)中的数据不重复的部分。例如,在将文本文档的初稿存储在持久性存储装置(420)中之后,可对初稿进行轻微更改。当初稿随后被重新存储在持久性存储装置(420)中时,存储管理器(410)可仅存储初稿的已变部分。因此,与在持久性存储装置(420)中存储数据时不进行数据去重的情况相比,可在持久性存储装置(420)中存储更多数据。但是,去重操作会占用大量计算资源,包括处理周期、内存周期和/或存储输入-输出。
在本发明的一个或多个实施例中,存储管理器(410)是包括电路的硬件设备。存储管理器(410)例如可以是数字信号处理器、现场可编程门阵列、或应用专用集成电路。在不脱离本发明的情况下,存储管理器(410)可以是其他类型的硬件设备。
在本发明的一个或多个实施例中,存储管理器(410)实现为存储在持久性存储装置上的计算代码,该计算代码在由处理器执行时执行存储管理器(410)的功能。所述处理器可以是包括电路的硬件处理器,例如中央处理单元或微控制器。在不脱离本发明的情况下,所述处理器可以是用于处理数字信息的其他类型的硬件设备。
在本发明的一个或多个实施例中,持久性存储装置(420)是存储数据结构的存储装置。持久性存储装置(420)可以是物理或虚拟设备。例如,持久性存储装置(420)可包括用于提供数据存储功能的固态驱动器、固态驱动器、磁带驱动器和其他组件。或者,持久性存储装置(420)可以是利用其他组件的物理计算资源提供数据存储功能的虚拟设备。
在本发明的一个或多个实施例中,持久性存储装置(420)是去重数据存储装置(420A)。去重数据存储装置(420A)可以是包含重新生成先前存储的数据结构所需的数据的数据结构。为了重新生成先前存储的数据结构,可组合存储在去重数据存储装置(420A)中的多条不同的唯一数据。
如相对于存储管理器(410)所述,去重存储可仅存储唯一数据的副本。在这种情况下,唯一数据的每个副本可代表先前存储在去重数据存储装置(420A)中的多个数据结构的一部分。因此,存储在去重数据存储装置(420A)中的一条唯一数据的副本可用于重新生成多条先前存储的数据。
在不脱离本发明的情况下,去重数据存储装置(420A)可按任何格式存储唯一数据。另外,虽然持久性存储装置(420)被示为仅包含去重数据存储装置(420A),但是在不脱离本发明的情况下,持久性存储装置(420)也可包含其他数据。
如上所述,图1的系统的各种组件使用的数据结构可存储在持久性存储装置中。图5A-5C示出了可由图1的系统的组件使用的数据结构。
图5A示出了本发明的一个或多个实施例的示例性拓扑图(500)的示意图。示例性拓扑图(500)可表明生产主机、非生产主机、远程备份代理和/或备份存储装置的功能。所述功能可包括计算资源,例如计算周期、存储器周期、存储带宽和/或通信带宽。所述功能可包括待执行的功能,即,分布式系统的功能。
示例性拓扑图(500)还可表明每个前述组件的连接。例如,连接图可表明每个组件之间的带宽。
在本发明的一个或多个实施例中,示例性拓扑图(500)包括任何数量的条目(501、505)。每个条目可包括表明图1的组件的标识符的主机标识符(例如501A)。每个条目还可包括与由主机ID(501A)标识的图1的系统的组件相关联的功能(例如501B)(即,描述)。
图5B示出了本发明的一个或多个实施例的示例性资源图(510)的示意图。示例性资源图(510)可表明图1的系统的每个组件或一部分组件的计算资源。
在本发明的一个或多个实施例中,示例性资源图(510)包括任何数量的条目(511、515)。每个条目可包括表明图1的组件的标识符的主机标识符(例如511A)。每个条目还可包括计算资源总容量(例如511B),所述计算资源总容量表明可由主机ID(511A)标识的图1的系统的组件使用的计算资源的总量。每个条目还可包括可用计算资源容量(例如511B),所述可用计算资源容量表明由主机ID(511A)标识的图1的系统的组件的可用计算资源量。换句话说,可用计算资源容量(511C)可表明当前未使用的计算资源,而计算资源总容量(511B)可表明正在使用和未使用的计算资源的总和。
图5C示出了本发明的一个或多个实施例的示例性不良主机图(520)的示意图。示例性不良主机图(520)可表明处于阻止使用主机还原虚拟机的状态的图1的系统的主机。例如,主机可能具有阻止主机执行虚拟机还原的硬件错误或软件错误。在一种情况下,生产主机的生产代理(例如图2中的230)可能崩溃,因而阻止远程备份代理发起还原或备份。示例性不良主机图(520)可表明处于这种状态的每个上述主机。
在本发明的一个或多个实施例中,示例性不良主机图(520)包括任何数量的条目(521、525)。每个条目可包括表明图1的组件的标识符的主机标识符(例如521A)。每个条目还可包括状态(例如521B),该状态表明由主机ID(521A)标识的主机是否处于阻止其执行备份或还原的状态。
虽然图5A-5C中所示的数据结构被示为条目列表,但是在不脱离本发明的情况下,该数据结构也可按其他格式存储,可划分为多个数据结构,和/或该数据结构的一部分可分布在多个计算设备上。
如上所述,除了其他功能之外,图1的系统的组件可执行生成备份和执行虚拟机还原的方法。图6-8B示出了本发明的一个或多个实施例的可由图1的系统的组件执行的方法。
图6示出了本发明的一个或多个实施例的方法的流程图。根据本发明的一个或多个实施例,图6中所示的方法可用于向存储网关池分配客户端。图6中所示的方法例如可由远程备份代理(图1中的110)执行。在不脱离本发明的情况下,图1中所示的系统的其他组件也可执行图6的方法。
在步骤600中,使用由生产主机承载的生产代理(该生产主机也承载虚拟机)基于工作流执行虚拟机的第一远程备份。
在本发明的一个或多个实施例中,执行虚拟机的第一远程备份包括:远程备份代理发起备份,生成反映自上次生成虚拟机的备份以来对虚拟机的更改的备份包,并将生成的备份存储在备份存储装置中。远程备份代理可通过向存在于承载一部分虚拟机的主机上的生产代理发送消息来发起备份。
所述备份包可以是多个包,每个包包含来自单个虚拟机的数据。多个包中的每一个可按单独或整体的方式发送到备份存储装置。多个包中的不同包可发送到不同的备份存储装置。任何数量的备份包的副本可发送到并存储在任何数量的备份存储装置中。
在本发明的一个或多个实施例中,可部分地通过从远程备份代理向生产代理发送命令来执行第一远程备份。该命令可指示生产代理执行若干预定功能之一。这些功能可以是生成虚拟机的备份。
在本发明的一个或多个实施例中,可通过如下方式执行第一远程备份:基于工作流识别一部分虚拟机;识别第一部分生产主机,其中每个主机承载所述虚拟机部分之中的一个虚拟机;向所述生产主机部分中的每个生产主机发送备份发起请求;在发送备份发起请求之后,从所述第一部分生产主机中的每个生产主机获得第一备份数据;并将获得的第一备份数据存储在备份存储装置中。该工作流可由备份/还原策略表明。
在步骤602中,获得工作流更新。
在本发明的一个或多个实施例中,所述工作流更新表明对执行备份的过程或执行虚拟机还原的过程的更改。所述工作流更新例如可表明对备份的生成频率的更改、对虚拟机还原位置的更改、或者对备份存储位置的更改。在不脱离本发明的情况下,所述工作流更新可表明生成备份或执行还原的过程的其他部分。
在步骤604中,基于工作流更新对工作流进行更新,以获得更新的工作流。
在本发明的一个或多个实施例中,通过修改表明执行虚拟机备份或还原要采取的动作的备份/还原策略(例如320D)来更新工作流。可修改备份/还原策略以符合由工作流更新表明的工作流。
在本发明的一个或多个实施例中,基于工作流更新对多个备份/还原策略进行更新。换句话说,工作流更新可用于修改多个备份/还原策略。通过这种方式,可类似地更新确定多个虚拟机的工作流的多个策略。因此,本发明的实施例可确保任何数量的虚拟机的工作流保持一致(即,相同的工作流)。相反,执行工作流更新的现有方法可能需要在生产和非生产主机的范围内单独更新多个实体。因此,与现有实施方式相反,本发明的实施例可提供用于执行虚拟机备份或还原的一致工作流。
在步骤606中,使用生产主机基于更新的工作流执行虚拟机的第二远程备份,而无需修改生产代理。
在本发明的一个或多个实施例中,更新的工作流表明与更新之前的工作流表明的工作流不同的工作流。不同之处例如可能在于进行更新的频率、生成的备份的存储位置、备份的冗余、执行备份的实体、或者生成工作流的任何其他方面。
在本发明的一个或多个实施例中,在执行虚拟机的第二远程备份之后,对所述虚拟机之中的一个虚拟机执行还原。可使用更新的工作流来进行还原。可基于与更新之前的工作流不同的工作流来进行还原。
该方法可在步骤606之后结束。
如上所述,远程备份代理可执行备份和还原。图7示出了本发明的一个或多个实施例的方法的流程图。根据本发明的一个或多个实施例,图7中所示的方法可用于进行还原。图7中所示的方法例如可由远程备份代理(图1中的110)执行。在不脱离本发明的情况下,图1中所示的系统的其他组件也可执行图7的方法。
在步骤700中,获得还原由生产主机承载的虚拟机的请求。
在本发明的一个或多个实施例中,所述请求是从生产主机获得的。例如,生产代理可识别虚拟机处于故障过程中,并发送执行虚拟机还原的请求。在不脱离本发明的情况下,其他实体也可监视虚拟机并发起还原。
在步骤702中,响应于该请求识别不承载虚拟机的高计算资源可用性主机。
在本发明的一个或多个实施例中,所述高计算资源可用性主机是非生产主机。
在本发明的一个或多个实施例中,所述高计算资源可用性主机是具有足够资源来执行还原的生产主机。如果生产主机具有预定数量的可用计算资源,那么它可能具有足够的资源。所述预定数量可以是当前正在使用的待还原虚拟机的数量或在待还原虚拟机发生故障之前正在使用的虚拟机的数量。
在步骤704中,在虚拟机运行的同时,在所识别的高计算资源可用性主机中执行虚拟机还原。
在本发明的一个或多个实施例中,执行还原包括:将虚拟机的映像传送到所识别的高计算资源可用性主机,将虚拟机的差分磁传送到所识别的高计算资源可用性主机,以及执行虚拟机映像与差分盘的合并。
在本发明的一个或多个实施例中,执行合并包括修改虚拟机映像以反映包含在差分盘中的变化。在合并后,虚拟机的合并映像可反映在生成差分盘时(即,在虚拟机的变化最后一次存储在差分盘中时)虚拟机的状态。
在步骤706中,迁移还原的虚拟机。
可将还原的虚拟机迁移到生产主机。生产主机可能是承载现有虚拟机副本的主机。可通过将虚拟机的合并映像传送到生产主机来迁移还原的虚拟机。
在步骤708中,隐藏该虚拟机。
可通过暂停或终止该虚拟机(即,现有虚拟机)的执行来隐藏虚拟机。
在步骤710中,显露还原的虚拟机。
在本发明的一个或多个实施例中,通过引发还原的虚拟机的执行来显露还原的虚拟机。
在本发明的一个或多个实施例中,可将与隐藏的虚拟机交互的客户端重定向到还原的虚拟机。换句话说,为了产生无缝的客户端体验,可将客户端与现在隐藏的虚拟机的交互导向还原的虚拟机。可将来自隐藏的虚拟机的配置或其他设置传送到还原的虚拟机,以使还原的虚拟机准备好与先前和隐藏的虚拟机交互的客户端进行交互。
该方法可在步骤710之后结束。
在本发明的一个或多个实施例中,通过终止虚拟机来隐藏虚拟机。
在本发明的一个或多个实施例中,所述高计算资源可用性主机不承载任何显露的虚拟机。
在本发明的一个或多个实施例中,虚拟机的还原包括将虚拟机的备份从备份存储装置传输到高计算资源可用性主机。
在本发明的一个或多个实施例中,虚拟机的备份包括与过去的第一时段相关联的数据。换句话说,所述备份可包含与预定时段相关联的虚拟机映像以及与其他有限时段相关联的一个或多个差分盘。
在本发明的一个或多个实施例中,执行虚拟机还原还包括将虚拟机的部分备份从备份存储装置传输到高计算资源可用性主机。所述部分备份可以是来自差分盘的数据。换句话说,部分备份可反映差异数据。在本发明的一个或多个实施例中,每个部分备份是在生成虚拟机的映像之后生成的。
在本发明的一个或多个实施例中,执行虚拟机还原包括在高计算资源可用性主机上合并完整备份和部分备份以获得最新备份。所述还原还可包括使用最新备份来实例化还原的虚拟机。所述实例化可能导致还原的虚拟机开始执行。还原的虚拟机可由生产代理在已向其迁移了还原的虚拟机的生产主机上实例化。
在本发明的一个或多个实施例中,显露还原的虚拟机包括向第二主机的生产代理发送执行发起消息。该执行发起消息可表明将还原的虚拟机置于执行状态。
在本发明的一个或多个实施例中,向主机迁移还原的虚拟机包括向在其上还原了虚拟机的高计算资源可用性主机发送数据传送消息。该数据传送消息可表明将还原的虚拟机传送到第二主机。
如上所述,远程备份代理可管理生成备份和还原的过程,这两种操作都可能是极耗计算资源的操作。图8A示出了本发明的一个或多个实施例的方法的流程图。根据本发明的一个或多个实施例,图8A中所示的方法可用于为支持请求提供服务。图8A中所示的方法例如可由远程备份代理(图1中的110)执行。在不脱离本发明的情况下,图1中所示的系统的其他组件也可执行图8A的方法。
在步骤800中,获得针对虚拟机的支持请求。
在本发明的一个或多个实施例中,所述支持请求指定了虚拟机的标识。
在本发明的一个或多个实施例中,所述支持请求是备份生成。
在本发明的一个或多个实施例中,所述支持请求是虚拟机还原。
在步骤802中,进行容量分析。
在本发明的一个或多个实施例中,所述容量分析确定备份存储装置和/或远程备份代理可用的容量。所述容量例如可以是与执行备份或还原相关联的并发执行的支持会话的总数。
在本发明的一个或多个实施例中,通过图8B中所示的方法进行容量分析。在不脱离本发明的情况下,也可通过其他方法进行容量分析。
在步骤804中,确定是否有可用容量。
在本发明的一个或多个实施例中,是否有可用容量是基于容量分析确定的。换句话说,所述容量分析可表明是否可执行用于进行备份或还原的附加会话而不降低备份或还原生成服务的质量。
若有足够的容量可用,则该方法可进行到步骤806。若没有足够的容量可用,则该方法可进行到步骤808。
在步骤806中,发起与支持请求相关联的会话。
在本发明的一个或多个实施例中,所述会话是备份生成会话。该备份生成会话可生成步骤800的虚拟机的备份或其一部分。
该方法可在步骤806之后结束。
现在重新论述步骤804,该方法可在步骤804之后进行到步骤808。在步骤808中,预测将来容量。
在本发明的一个或多个实施例中,所述将来容量是将来进行备份或还原的容量。可按某个粒度级别指定将来容量,例如,在将来的预定时段内可执行的附加并发会话的数量。
在本发明的一个或多个实施例中,通过分析备份/还原策略来预测将来容量,以确定在未来的每个预定时段内将执行的并发备份和/或还原的数量,识别在将来的每个预定时段内可以使用的可用计算资源量,并基于每个预定时段内的并发备份和/或还原的数量以及可用计算资源量来预测将来容量。在本发明的一个或多个实施例中,预测的将来容量可表明将来时段内某个粒度级别的可用容量,例如接下来的24小时内每15分钟的可用容量。
在步骤810中,确定是否有将来容量。
在本发明的一个或多个实施例中,通过将支持请求所需的容量(例如任何数量的备份或还原的并发会话的数量)与预测的将来容量进行比较来确定是否有将来容量。若所需的容量超过预测的将来容量,则可确定在将来的任何时间点有将来容量。
若有足够的容量可用,则该方法可进行到步骤814。若没有足够的容量可用,则该方法可进行到步骤812。
在步骤812中,拒绝支持请求。
该方法可在步骤812之后结束。
现在重新论述步骤810,该方法可在步骤810之后进行到步骤814。在步骤814中,调度与支持请求相关联的会话。
在本发明的一个或多个实施例中,针对有足够容量的某个将来时段调度所述会话。换句话说,步骤808的预测的将来容量可用于确定调度与支持请求相关联的会话的将来时段。
在本发明的一个或多个实施例中,调度的会话是虚拟机备份会话(例如步骤800)。换句话说,在支持请求是备份生成请求时,调度的会话可以是备份会话。
在本发明的一个或多个实施例中,调度的会话是虚拟机还原会话(例如步骤800)。换句话说,在支持请求是虚拟机还原请求时,调度的会话可以是备份会话。
该方法可在步骤814之后结束。
图8B示出了本发明的一个或多个实施例的方法的流程图。根据本发明的一个或多个实施例,图8B中所示的方法可用于为支持请求提供服务。图8B中所示的方法例如可由远程备份代理(图1中的110)执行。在不脱离本发明的情况下,图1中所示的系统的其他组件也可执行图8B的方法。
在步骤820中,识别由支持请求指定的服务请求时间。
在本发明的一个或多个实施例中,所述服务请求时间是由支持请求指定的。
在步骤822中,将所识别的服务请求时间与备份存储装置的计算资源进行比较。
在本发明的一个或多个实施例中,所述比较基于备份存储装置与承载产生服务请求时间的虚拟机的生产主机之间的带宽。可将在所识别的服务请求时间时的备份存储装置的可用带宽与完成该支持请求所需的估算带宽进行比较。基于该比较,可识别在该服务请求时间时的多个可支持的并发会话。
在本发明的一个或多个实施例中,所述比较基于在所识别的服务请求时的备份存储装置的计算周期的可用性。可将可用的计算周期与完成该支持请求所需的估算计算周期数进行比较。基于该比较,可识别在该服务请求时间时的多个可支持的并发会话。
在本发明的一个或多个实施例中,所述比较基于在所识别的服务请求时的备份存储装置的存储器的可用性。可将可用的计算周期与完成该支持请求所需的估算存储器周期数进行比较。基于该比较,可识别在该服务请求时间时的多个可支持的并发会话。
在本发明的一个或多个实施例中,所述比较基于在所识别的服务请求时的备份存储装置的存储输入-输出周期的可用性。可将可用的输入-输出周期与完成该支持请求所需的估算输入-输出周期数进行比较。基于该比较,可识别在该服务请求时间时的多个可支持的并发会话。
该方法可在步骤822之后结束。
如上所述,可使用计算设备来实现本发明的实施例。图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)减轻系统管理员等用户的认知负担,以及iii)因一致地生成虚拟机备份而提高了还原虚拟机的可能性。
虽然本发明在上文中是参照有限数量的实施例说明的,但是受益于本公开的本领域技术人员能理解,能够设计出不脱离本文中所公开的本发明的范围的其他实施例。因此,本发明的范围仅由所附权利要求限定。
Claims (17)
1.一种向虚拟机提供数据存储服务的远程备份代理,包括:
持久性存储装置,所述持久性存储装置包括针对所述虚拟机的工作流;和
处理器,所述处理器被编程为:
使用由生产主机承载的生产代理基于所述工作流来执行所述虚拟机的第一远程备份,所述生产主机也承载所述虚拟机,其中使用所述生产代理基于所述工作流来执行所述虚拟机的所述第一远程备份包括:
基于所述工作流来识别第一部分虚拟机;
识别第一部分生产主机,其中每个生产主机承载所述第一部分虚拟机中的一个虚拟机;
向所述第一部分生产主机中的每个生产主机发送备份发起请求;
在发送所述备份发起请求之后,从所述第一部分生产主机中的每个生产主机获得第一备份数据;和
将所获得的第一备份数据存储在备份存储装置中;
获得工作流更新;
基于所述工作流更新来对所述工作流进行更新,以获得更新的工作流;和
使用所述生产主机基于所更新的工作流来执行所述虚拟机的第二远程备份,而不修改所述生产代理。
2.根据权利要求1所述的远程备份代理,其中所述远程备份代理是与所述生产主机分离的。
3.根据权利要求1所述的远程备份代理,其中所述备份发起请求指定所述第一部分虚拟机中的相应虚拟机的相应数据部分。
4.根据权利要求1所述的远程备份代理,其中每个相应备份发起请求指定针对所述第一部分虚拟机的处理顺序。
5.根据权利要求1所述的远程备份代理,其中基于所更新的工作流来执行所述虚拟机的所述第二远程备份包括:
基于所更新的工作流来识别第二部分虚拟机。
6.根据权利要求5所述的远程备份代理,其中所述第一部分虚拟机和所述第二部分虚拟机具有不同的成员。
7.根据权利要求5所述的远程备份代理,其中基于所更新的工作流来执行所述虚拟机的所述第二远程备份还包括:
识别第二部分生产主机,其中每个生产主机承载所述第二部分虚拟机中的一个虚拟机。
8.根据权利要求7所述的远程备份代理,其中所述第一部分生产主机和所述第二部分生产主机具有相同的成员。
9.根据权利要求7所述的远程备份代理,其中所述第一部分生产主机和所述第二部分生产主机具有不同的成员。
10.根据权利要求7所述的远程备份代理,其中基于所更新的工作流来执行所述虚拟机的所述第二远程备份还包括:
在向所述第二部分生产主机中的每个生产主机发送第二备份发起请求之后,从所述第二部分生产主机中的每个生产主机获得第二备份数据。
11.根据权利要求10所述的远程备份代理,其中基于所更新的工作流来执行所述虚拟机的所述第二远程备份还包括:
将获得的第二备份数据存储在所述备份存储装置中。
12.根据权利要求1所述的远程备份代理,其中基于所述工作流更新来对所述工作流进行更新以获得更新的工作流包括:
修改所述工作流,而不修改所述生产代理。
13.根据权利要求1所述的远程备份代理,其中所述生产主机中的每个生产主机仅承载所述生产代理中的单个生产代理。
14.一种向虚拟机提供数据存储服务的方法,包括:
通过远程备份代理,使用由生产主机承载的生产代理基于工作流来执行所述虚拟机的第一远程备份,所述生产主机也承载所述虚拟机,其中使用所述生产代理基于所述工作流来执行所述虚拟机的所述第一远程备份包括:
基于所述工作流来识别第一部分虚拟机;
识别第一部分生产主机,其中每个生产主机承载所述第一部分虚拟机中的一个虚拟机;
向所述第一部分生产主机中的每个生产主机发送备份发起请求;
在发送所述备份发起请求之后,从所述第一部分生产主机中的每个生产主机获得第一备份数据;和
将所获得的第一备份数据存储在备份存储装置中;
通过远程备份代理,获得工作流更新;
通过远程备份代理,基于所述工作流更新对所述工作流进行更新,以获得更新的工作流;和
通过远程备份代理,使用所述生产主机基于所更新的工作流来执行所述虚拟机的第二远程备份,而不修改所述生产代理。
15.根据权利要求14所述的方法,其中所述备份发起请求指定所述第一部分虚拟机中的相应虚拟机的相应数据部分。
16.一种非暂时性计算机可读介质,包括计算机可读程序代码,所述计算机可读程序代码在由计算机处理器执行时使得所述计算机处理器能够执行用于向虚拟机提供数据存储服务的方法,所述方法包括:
通过远程备份代理,使用由生产主机承载的生产代理基于工作流来执行所述虚拟机的第一远程备份,所述生产主机也承载所述虚拟机,其中使用所述生产代理基于所述工作流来执行所述虚拟机的所述第一远程备份包括:
基于所述工作流来识别第一部分虚拟机;
识别第一部分生产主机,其中每个生产主机承载所述第一部分虚拟机中的一个虚拟机;
向所述第一部分生产主机中的每个生产主机发送备份发起请求;
在发送所述备份发起请求之后,从所述第一部分生产主机中的每个生产主机获得第一备份数据;和
将所获得的第一备份数据存储在备份存储装置中;
通过远程备份代理,获得工作流更新;
通过远程备份代理,基于所述工作流更新来对所述工作流进行更新,以获得更新的工作流;和
通过远程备份代理,使用所述生产主机基于所更新的工作流来执行所述虚拟机的第二远程备份,而不修改所述生产代理。
17.根据权利要求16所述的非暂时性计算机可读介质,其中所述备份发起请求指定所述第一部分虚拟机中的相应虚拟机的相应数据部分。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/964,099 | 2018-04-27 | ||
US15/964,099 US10572349B2 (en) | 2018-04-27 | 2018-04-27 | System and method for backup in a virtualized environment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110413369A CN110413369A (zh) | 2019-11-05 |
CN110413369B true CN110413369B (zh) | 2023-11-07 |
Family
ID=66217840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910332300.2A Active CN110413369B (zh) | 2018-04-27 | 2019-04-24 | 用于虚拟化环境中的备份的系统和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10572349B2 (zh) |
EP (1) | EP3584705A1 (zh) |
CN (1) | CN110413369B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10754739B2 (en) * | 2018-10-26 | 2020-08-25 | EMC IP Holding Company LLC | System and method for predictive backup in a distributed environment |
US11775393B2 (en) | 2021-06-11 | 2023-10-03 | EMC IP Holding Company LLC | Method and system for mapping data protection services to data cluster components |
US11740807B2 (en) | 2021-10-05 | 2023-08-29 | EMC IP Holding Company LLC | Method and system for mapping data protection policies to data clusters |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001006368A1 (en) * | 1999-07-15 | 2001-01-25 | Commvault Systems, Inc. | Modular backup and retrieval system |
CN104662522A (zh) * | 2012-09-28 | 2015-05-27 | Emc公司 | 使用存储系统功能性的全虚拟机备份的系统和方法 |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8417678B2 (en) | 2002-07-30 | 2013-04-09 | Storediq, Inc. | System, method and apparatus for enterprise policy management |
CA2520498C (en) | 2003-04-03 | 2012-09-25 | Commvault Systems, Inc. | System and method for dynamically performing storage operations in a computer network |
WO2006053084A2 (en) | 2004-11-05 | 2006-05-18 | Commvault Systems, Inc. | Method and system of pooling storage devices |
US9342364B2 (en) * | 2008-04-09 | 2016-05-17 | International Business Machines Corporation | Workflow managed composite applications |
US9191437B2 (en) | 2009-12-09 | 2015-11-17 | International Business Machines Corporation | Optimizing data storage among a plurality of data storage repositories |
US8918439B2 (en) | 2010-06-17 | 2014-12-23 | International Business Machines Corporation | Data lifecycle management within a cloud computing environment |
WO2012000059A1 (en) | 2010-07-02 | 2012-01-05 | Metacdn Pty Ltd | Systems and methods for storing digital content |
US9037712B2 (en) | 2010-09-08 | 2015-05-19 | Citrix Systems, Inc. | Systems and methods for self-loading balancing access gateways |
WO2012147123A1 (en) | 2011-04-26 | 2012-11-01 | Hitachi, Ltd. | Storage apparatus and control method therefor |
US8554918B1 (en) | 2011-06-08 | 2013-10-08 | Emc Corporation | Data migration with load balancing and optimization |
WO2012176307A1 (ja) | 2011-06-23 | 2012-12-27 | 株式会社日立製作所 | ストレージ管理システム及びストレージ管理方法 |
US10089148B1 (en) | 2011-06-30 | 2018-10-02 | EMC IP Holding Company LLC | Method and apparatus for policy-based replication |
US9465697B2 (en) * | 2011-09-21 | 2016-10-11 | Netapp, Inc. | Provision of backup functionalities in cloud computing systems |
WO2013093994A1 (ja) | 2011-12-19 | 2013-06-27 | 富士通株式会社 | ストレージシステム、データリバランシングプログラム及びデータリバランシング方法 |
US9740435B2 (en) | 2012-02-27 | 2017-08-22 | Fujifilm North America Corporation | Methods for managing content stored in cloud-based storages |
US8832234B1 (en) | 2012-03-29 | 2014-09-09 | Amazon Technologies, Inc. | Distributed data storage controller |
US9513823B2 (en) | 2012-04-30 | 2016-12-06 | Hewlett Packard Enterprise Development Lp | Data migration |
US9021203B2 (en) | 2012-05-07 | 2015-04-28 | International Business Machines Corporation | Enhancing tiering storage performance |
US9098525B1 (en) | 2012-06-14 | 2015-08-04 | Emc Corporation | Concurrent access to data on shared storage through multiple access points |
US9460099B2 (en) | 2012-11-13 | 2016-10-04 | Amazon Technologies, Inc. | Dynamic selection of storage tiers |
US9953075B1 (en) | 2012-12-27 | 2018-04-24 | EMC IP Holding Company LLC | Data classification system for hybrid clouds |
US9451013B1 (en) | 2013-01-02 | 2016-09-20 | Amazon Technologies, Inc. | Providing instance availability information |
US20140281301A1 (en) | 2013-03-15 | 2014-09-18 | Silicon Graphics International Corp. | Elastic hierarchical data storage backend |
US9292226B2 (en) | 2013-06-24 | 2016-03-22 | Steven Andrew Moyer | Adaptive data management using volume types |
US9280678B2 (en) | 2013-12-02 | 2016-03-08 | Fortinet, Inc. | Secure cloud storage distribution and aggregation |
US10061628B2 (en) | 2014-03-13 | 2018-08-28 | Open Text Sa Ulc | System and method for data access and replication in a distributed environment utilizing data derived from data access within the distributed environment |
US10282100B2 (en) | 2014-08-19 | 2019-05-07 | Samsung Electronics Co., Ltd. | Data management scheme in virtualized hyperscale environments |
US9521089B2 (en) | 2014-08-30 | 2016-12-13 | International Business Machines Corporation | Multi-layer QoS management in a distributed computing environment |
US9977704B1 (en) | 2014-09-26 | 2018-05-22 | EMC IP Holding Company LLC | Automated backup and replication of virtual machine data centers |
US10078556B2 (en) | 2015-08-31 | 2018-09-18 | Paypal, Inc. | Data replication between databases with heterogenious data platforms |
US10659532B2 (en) | 2015-09-26 | 2020-05-19 | Intel Corporation | Technologies for reducing latency variation of stored data object requests |
US20170168729A1 (en) | 2015-12-11 | 2017-06-15 | Netapp, Inc. | Methods and systems for managing resources of a networked storage environment |
US10180912B1 (en) | 2015-12-17 | 2019-01-15 | Amazon Technologies, Inc. | Techniques and systems for data segregation in redundancy coded data storage systems |
US10282104B2 (en) | 2016-06-01 | 2019-05-07 | International Business Machines Corporation | Dynamic optimization of raid read operations |
US10678579B2 (en) | 2017-03-17 | 2020-06-09 | Vmware, Inc. | Policy based cross-cloud migration |
-
2018
- 2018-04-27 US US15/964,099 patent/US10572349B2/en active Active
-
2019
- 2019-04-16 EP EP19169657.4A patent/EP3584705A1/en active Pending
- 2019-04-24 CN CN201910332300.2A patent/CN110413369B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001006368A1 (en) * | 1999-07-15 | 2001-01-25 | Commvault Systems, Inc. | Modular backup and retrieval system |
CN104662522A (zh) * | 2012-09-28 | 2015-05-27 | Emc公司 | 使用存储系统功能性的全虚拟机备份的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110413369A (zh) | 2019-11-05 |
EP3584705A1 (en) | 2019-12-25 |
US10572349B2 (en) | 2020-02-25 |
US20190332496A1 (en) | 2019-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10831399B2 (en) | Method and system for enabling agentless backup and restore operations on a container orchestration platform | |
US10572350B1 (en) | System and method for improved application consistency in a distributed environment | |
US10503428B2 (en) | System and method for concurrent multipoint backup | |
CN110413369B (zh) | 用于虚拟化环境中的备份的系统和方法 | |
US11330078B1 (en) | Method and system for managing updates of a data manager | |
US10698719B2 (en) | System and method for virtual machine restoration | |
US20200019469A1 (en) | System and method for orchestrated backup in a virtualized environment | |
US11288133B2 (en) | System and method for resilient data protection | |
CN111949442A (zh) | 用于可扩展备份服务的系统和方法 | |
US11907075B2 (en) | Method and system for continuous mapping of protection policies to data cluster components | |
US20220398168A1 (en) | Auto scale backup orchestration for network attached storage workloads | |
EP3647953B1 (en) | System and method for data backup in mixed disk environment | |
CN110955558B (zh) | 用于向高可用性应用程序提供备份服务的系统和方法 | |
CN110688195B (zh) | Hyper-v vm的即时恢复和即时访问和使用数据域boostfs在vm内部运行的应用程序 | |
US10776036B2 (en) | System and method for efficient restore | |
US11763017B2 (en) | Method and system for proactive data protection of virtual machines | |
US10922008B2 (en) | System and method for backup of virtual machines organized using logical layers | |
US12026065B1 (en) | System and method for a distribution of backup operations for network attached storage assets | |
US11770310B2 (en) | Method and system for performing data protection services using a subsystem level feedback mechanism | |
US10936443B2 (en) | System and method for tag based backup infrastructure | |
US20230214269A1 (en) | Method and system for performing computational offloads for composed information handling systems | |
US20200241965A1 (en) | Fast storage disaster solution |
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 |