Performing backup operations using a copy

文档序号:1327711 发布日期:2020-07-14 浏览:2次 中文

阅读说明:本技术 使用副本来执行备份操作 (Performing backup operations using a copy ) 是由 S·斯里达兰 于 2018-11-28 设计创作,主要内容包括:本文公开了使用副本来执行备份操作的方法、系统和过程。创建虚拟机的副本作为复制操作的一部分。副本包括与虚拟机相关联的数据以及与在虚拟机上执行的应用程序相关联的元数据。备份操作使用元数据来根据副本生成备份映像。(Methods, systems, and processes for performing backup operations using a replica are disclosed herein. A copy of the virtual machine is created as part of the copy operation. The copy includes data associated with the virtual machine and metadata associated with an application executing on the virtual machine. The backup operation uses the metadata to generate a backup image from the copy.)

1. A computer-implemented method, comprising:

creating a copy of the virtual machine, wherein

Creating the copy as part of a copy operation, and

the copy comprises

Data associated with the virtual machine, an

Metadata associated with one or more applications executing on the virtual machine; and

performing a backup operation, wherein

Performing the backup operation includes using the metadata to generate a backup image from the copy.

2. The computer-implemented method of claim 1, wherein

The metadata includes information for granular restoration of the virtual machine,

generating the metadata by quiescing the one or more applications, and

the metadata is stored on the one or more virtual disks.

3. The computer-implemented method of claim 1, wherein

Generating the backup image further comprises

Generating a snapshot identifying a reference point in time to create the backup image of the data prior to performing the backup operation,

retrieving said metadata from said copy, an

Generating a full backup image or an incremental backup image based on the reference point in time.

4. The computer-implemented method of claim 2, wherein

The metadata includes data locations of one or more blocks of the data, and

the data location is used by a backup server to restore the virtual machine from the backup image.

5. The computer-implemented method of claim 1, wherein

The backup operation is performed by a backup proxy mechanism,

instantiating the backup agent on a cloud computing device as part of performing the backup operation, and

the backup proxy is another virtual machine, a container, or a serverless module.

6. The computer-implemented method of claim 1, wherein

The quiescing of the one or more applications is performed by a replication agent executing on the virtual machine,

the metadata is generated by a backup agent executing on the virtual machine, and

the replication operation is performed by the replication agent.

7. The computer-implemented method of claim 3, wherein:

generating the backup image further comprises

Generating the snapshot of the data at the reference point in time,

the backup image is generated in a backup format,

the snapshot is mounted and the storage device is connected with the snapshot,

retrieving granular metadata for the one or more applications from the metadata in the copy, an

Sending the granular metadata to the backup server.

8. A non-transitory computer readable storage medium comprising program instructions executable to:

creating a copy of the virtual machine, wherein

Creating the copy as part of a copy operation, and

the copy comprises

Data associated with the virtual machine, an

Metadata associated with one or more applications executing on the virtual machine; and

performing a backup operation, wherein

Performing the backup operation includes using the metadata to generate a backup image from the copy.

9. The non-transitory computer-readable storage medium of claim 8, wherein

The metadata includes information for granular restoration of the virtual machine,

generating the metadata by quiescing the one or more applications, and

the metadata is stored on the one or more virtual disks.

10. The non-transitory computer-readable storage medium of claim 8, wherein

Generating the backup image further comprises

Generating a snapshot identifying a reference point in time to create the backup image of the data prior to performing the backup operation,

retrieving said metadata from said copy, an

Generating a full backup image or an incremental backup image based on the reference point in time.

11. The non-transitory computer readable storage medium of claim 9, wherein

The metadata includes data locations of one or more blocks of the data, and

restoring, by the backup server, the virtual machine from the backup image using the data location.

12. The non-transitory computer-readable storage medium of claim 8, wherein

The backup operation is performed by a backup proxy mechanism,

instantiating the backup agent on a cloud computing device as part of performing the backup operation, and

the backup proxy is another virtual machine, a container, or a serverless module.

13. The non-transitory computer-readable storage medium of claim 8, wherein

The quiescing of the one or more applications is performed by a replication agent executing on the virtual machine,

the metadata is generated by a backup agent executing on the virtual machine, and

the replication operation is performed by the replication agent.

14. The non-transitory computer-readable storage medium of claim 10, wherein

Generating the backup image further comprises

Generating the snapshot of the data at the reference point in time,

the backup image is generated in a backup format,

the snapshot is mounted and the storage device is connected with the snapshot,

retrieving granular metadata for the one or more applications from the metadata in the copy, an

Sending the granular metadata to the backup server.

15. A system, comprising:

one or more processors; and

a memory coupled to the one or more processors, wherein the memory stores program instructions executable by the one or more processors to:

creating a copy of the virtual machine, wherein

Creating the copy as part of a copy operation, and

the copy comprises

Data associated with the virtual machine, an

Metadata associated with one or more applications executing on the virtual machine; and

performing a backup operation, wherein

Performing the backup operation includes using the metadata to generate a backup image from the copy.

16. The system of claim 15, wherein

The metadata includes information for granular restoration of the virtual machine,

generating the metadata by quiescing the one or more applications, and

the metadata is stored on the one or more virtual disks.

17. The system of claim 15, wherein

Generating the backup image further comprises

Generating a snapshot identifying a reference point in time to create the backup image of the data prior to performing the backup operation,

retrieving said metadata from said copy, an

Generating a full backup image or an incremental backup image based on the reference point in time.

18. The system of claim 16, wherein

The metadata includes data locations of one or more blocks of the data, and

restoring, by the backup server, the virtual machine from the backup image using the data location.

19. The system of claim 15, wherein

The backup operation is performed by a backup proxy mechanism,

instantiating the backup proxy on a cloud computing device as part of performing the backup operation,

the backup proxy is another virtual machine, container or serverless module,

the quiescing of the one or more applications is performed by a replication agent executing on the virtual machine,

the metadata is generated by a backup agent executing on the virtual machine, and

the replication operation is performed by the replication agent.

20. The system of claim 17, wherein generating the backup image further comprises

Generating the snapshot of the data at the reference point in time,

the backup image is generated in a backup format,

the snapshot is mounted and the storage device is connected with the snapshot,

retrieving granular metadata for the one or more applications from the metadata in the copy, an

Sending the granular metadata to the backup server.

Technical Field

The present disclosure relates to performing backup operations. In particular, the present disclosure relates to performing backup operations using a copy.

Background

To prevent data loss, data may be backed up. The data backup operation generates a backup image. A backup image includes a backup copy of application data or the contents of a given storage entity, such as a file system or disk drive. Such backup images may be stored and/or maintained in cloud-based remote storage in the form of cloud backups for later retrieval and restoration, e.g., in the event of a hardware failure or the like.

Data replication involves making duplicate copies of data and improving reliability, fault tolerance, and/or accessibility. The purpose of data replication is to prevent data loss if a failure or disaster occurs at a location. If such a failure or disaster does occur that destroys or destroys the data replica in one location, the data replica at the secondary site may be accessed. For these and other purposes, replicated data may also be stored and/or maintained in a cloud-based remote storage device, for example, in the form of a replica.

Backup solutions and replication solutions each have their advantages and disadvantages, and are therefore often implemented (and packaged) together, for example, in cloud backup and cloud-based Disaster Recovery (DR) services (e.g., as a backup target and DRaaS (disaster recovery as a service)). For example, backup involves making a secondary replica of data that can be restored for use if the primary replica is lost or unavailable. Backup images include point-in-time replicas of the original data that are typically acquired on a recurring basis (e.g., daily, monthly, yearly, etc.). Replication, on the other hand, is synchronous or asynchronous, and the transfer of data to a remote replica is achieved immediately or with a short time delay, respectively. In modern computing environments, both backup and replication require large amounts of data to be transmitted over a network (e.g., to cloud backup and DR service providers).

Furthermore, replication is ineffective as a backup method because data corruption or user file deletion can be immediately or very quickly replicated to the secondary replica. Additionally, because replication maintains only a unique replica of data at the cloud location, the replicated replica does not include historical versions of the data (e.g., from previous weeks, months, etc.). In contrast, because the backup replica is a point-in-time replica of data, full and incremental backup images can be created, providing significant storage benefits.

Therefore, it is not surprising that modern enterprises and organizations implement both backup solutions and replication solutions to, for example, protect and guarantee the same data. Unfortunately, such modern enterprises and organizations incur a significant amount of separate cost associated with network bandwidth — for cloud backup and separately for cloud-based DR services. For example, the same data from the local storage transfer device to the cloud-based storage device as part of the backup operation must be re-transferred from the local storage device to the cloud-based storage device as part of the copy operation. This retransmission of data is not only redundant and prevents the adoption of clouds, but also results in expensive and wasteful network bandwidth utilization.

Disclosure of Invention

Methods, systems, and processes for performing backup operations using a replica are disclosed herein. One such method involves creating a copy of the virtual machine as part of a copy operation. In this example, the copy includes data associated with the virtual machine and metadata associated with an application executing on the virtual machine. The method then performs a backup operation by generating a backup image from the copy using the metadata.

In one embodiment, the metadata includes information for granular restoration of the virtual machine, is generated by quiescing the application, and is stored on the virtual disk. In another embodiment, generating the backup image includes generating a snapshot that identifies a reference point in time to create the backup image of the data prior to performing the backup operation, retrieving metadata from the copy, and generating a full or incremental backup image based on the reference point in time.

In some embodiments, the metadata includes data locations of the data blocks, and the data locations are used by the backup server to restore the virtual machine from the backup image. In other embodiments, the backup operation is performed by a backup agent instantiated on the cloud computing device as part of performing the backup operation, the backup agent is another virtual machine, a container, or a serverless module, the quiescing of the application is performed by a replication agent executing on the virtual machine, the metadata is generated by the backup agent executing on the virtual machine, and the replication operation is performed by the replication agent.

In some embodiments, generating the backup image includes generating a snapshot of the data at the reference point in time, generating the backup image in a backup format, mounting the snapshot, retrieving granular metadata for one or more applications from the metadata in the copy, and sending the granular metadata to the backup server.

The foregoing is a summary and thus contains, by necessity, simplifications, generalizations, and omissions of detail; consequently, those skilled in the art will appreciate that the summary is illustrative only and is not intended to be in any way limiting. Other aspects, features and advantages of the present disclosure will become apparent in the non-limiting detailed description set forth below as defined solely by the claims.

Drawings

The present disclosure may be better understood, and its numerous objects, features, and advantages made apparent to those skilled in the art by referencing the accompanying drawings.

FIG. 1 is a block diagram 100 of a backup and replication computing system according to one embodiment of the present disclosure.

FIG. 2 is a block diagram 200 of a backup and replication computing environment, according to one embodiment of the present disclosure.

FIG. 3 is a block diagram 300 of a backup and replication computing environment, according to one embodiment of the present disclosure.

FIG. 4 is a flowchart 400 of a process for generating a backup image from a copy, according to one embodiment of the present disclosure.

Fig. 5A is a flow diagram 500A of a process for storing metadata for replication according to one embodiment of the present disclosure.

Fig. 5B is a flow diagram 500B of a process for copying metadata according to one embodiment of the present disclosure.

FIG. 6 is a flow diagram 600 of a process for storing metadata for a restore operation according to one embodiment of the present disclosure.

FIG. 7A is a flow diagram 700A of a process for tracking changed data as part of a replication according to one embodiment of the present disclosure.

FIG. 7B is a flowchart 700B of a process for generating a full or incremental backup from a copy according to one embodiment of the present disclosure.

Fig. 8 is a block diagram of a computing system 800 according to one embodiment of the present disclosure.

Fig. 9 is a block diagram of a networked system 900 according to one embodiment of the present disclosure.

While the disclosure is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and the detailed description. It should be understood that the drawings and detailed description thereto are not intended to limit the disclosure to the particular form disclosed. On the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the disclosure as defined by the appended claims.

Detailed Description

Introduction to

Data backup and data replication are not mutually exclusive and are therefore typically implemented together by modern enterprises and organizations to protect and provide the same data. For example, cloud-based service providers often provide cloud-based backups (e.g., for data restoration, data security, etc.) and cloud-based replication services (e.g., disaster recovery as a service (DRaaS), etc.).

The backup operation produces a point-in-time replica of data, which includes a replica of an Operating System (OS) and data associated with the computing device and/or virtual machine, including system state and application configuration. Backups are typically saved as a single file (e.g., on a cloud storage device) called a backup image, and the backup process uses snapshots to ensure that even deleted files and empty disk blocks are backed up. Thus, the backup operation generates backup metadata that is collected and stored as part of the backup image during the backup process to identify the state of the system and corresponding application at a point in time (e.g., for granular restore purposes). Such backup metadata may be used to create future incremental backup images and thereby provide significant network and storage savings, as well as the ability to restore a computing device from a backup image by reassembling data from the computing device of one or more previous backup images.

In another aspect, the copy operation produces an identical copy of data associated with the computing device and/or virtual machine. Such identical replicas are stored as replicas (e.g., on cloud storage). Because the replication process produces only a single identical replica of the data (e.g., synchronous or asynchronous, which may be copied back in its entirety in the event of a disaster), the replication process does not (and does not need to) replicate metadata associated with the replicated data (e.g., information about historical versions of the data, block and/or file location information, block-level information for granular restore, one or more data locations, etc.). Thus, the copy does not contain information that enables creation of backup images and/or allows granular restoration of data from such backup images.

Unfortunately, and as previously mentioned, in modern computing environments, both backup operations and copy operations involve the transfer of large amounts of data over a network. Because enterprises implement both backup solutions and replication solutions to protect and guarantee the same data, these enterprises incur significant and disparate costs associated with network bandwidth — for cloud backup and separately for cloud-based DR services. For example, the same data from the local storage transfer device to the cloud-based storage device as part of the backup operation must be re-transferred from the local storage device to the cloud-based storage device as part of the copy operation. This retransmission of data is not only redundant and prevents the adoption of clouds, but also results in expensive and wasteful network bandwidth utilization.

Methods, systems, and processes are disclosed herein for generating a full or incremental backup image using a copy (e.g., copied data) while requiring only a single transfer of the data as part of the copy operation.

Exemplary backup and replication computing Environment

FIG. 1 is a block diagram 100 of a backup and replication computing system, according to one embodiment. As shown in fig. 1, the exemplary integrated backup and replication computing environment includes at least virtual machine 105(1) - (N) communicatively coupled with (corresponding) virtual disk 120(1) - (N). It should be noted that the exemplary integrated backup and replication computing environment may include physical computing devices and physical storage disks in addition to virtual machines and virtual disks.

Virtual machine 105(1) implements at least backup agent 110(1) and replica agent 115 (1). Backup agent 110(1) generates metadata associated with the backup operation, and replica agent 110(1) quiesces one or more applications executing on virtual machine 105(1) (e.g., instructs the applications to flush their in-memory data to virtual disk 120 (1)). Virtual disk 120(1) stores data 125(1) and metadata 130(1) (e.g., backup metadata generated by backup agent 110 (1)). Virtual machine 105(1) - (N) (including virtual disk 120(1) - (N)) is part of computing system 190(1) - (N) and is communicatively coupled to backup server 135.

Backup server 135 performs backup operations, copy operations, and/or restore operations and implements at least backup manager 140, copy manager 145, and directory 150. Backup manager 140 manages backup operations to cloud computing device 155 (e.g., in conjunction with backup proxy mechanism 165), replication manager 145 manages replication operations performed to cloud computing device 155 (e.g., by replication agent 115(1) - (N)), and directory 150 is stored and used by backup server 135 to perform restore operations (e.g., granular restore).

As shown in fig. 1, cloud computing device 155 is communicatively coupled to backup server 135 via network 185 and implements at least Disaster Recovery (DR) coordinator 160 (which provides one or more DRaaS services) and backup agency 165 (which is instantiated to perform backup operations). Cloud computing device 155 is communicatively coupled to cloud storage device 170 and, along with cloud storage device 170, is part of cloud computing system 195(1) - (N). The cloud storage 170 stores the copy 175(1) - (N) and the backup image 180(1) - (N).

The backup server 135, the physical computing devices that are part of the computing system 190(1) - (N), and/or the cloud computing device 155 can be any of a variety of different computing devices, including servers, personal computing devices, laptops, cell phones, and the like. The network 185 can be any type of network and/or interconnection (e.g., the internet, a Wide Area Network (WAN), etc.). Cloud storage 170 and/or physical storage associated with computing systems 190(1) - (N) may include one or more of a variety of different storage devices, including hard disks, optical disks, digital versatile disks, Solid State Drive (SSD) storage such as flash memory, etc., or one or more logical storage devices such as volumes implemented on one or more such physical storage devices.

In one embodiment, the replication agent 115(1) implemented by virtual machine 105(1) creates a copy of virtual machine 105(1) as part of the replication operation. In this example, the copy (e.g., copy 175(1)) includes data (e.g., data 125(1)) associated with virtual machine 105(1) and metadata (e.g., metadata 130(1)) associated with the application executing on virtual machine 105 (1). Backup proxy 165 then uses the metadata to generate a backup image (e.g., backup image 180(1)) from the copy.

In some embodiments, metadata 130(1) includes information (e.g., one or more data locations, etc.) for granular reduction of virtual machine 105 (1). The replication agent 115(1) generates and/or collects metadata 130(1) by quiescing one or more applications executing on the virtual machine 105(1) (e.g., by instructing the one or more applications to flush their in-memory data to the virtual disk 120(1) — thus, storing the metadata 130(1) on the virtual disk 120 (1)). In this example, metadata 130(1) includes the location of the data blocks, and backup server 135 uses the data locations to restore virtual machine 105(1) according to backup image 180(1), if needed.

In other embodiments, generating the backup image comprises: generating a snapshot identifying a reference point in time to create a backup image of data 125(1) prior to performing a backup operation, retrieving metadata 130(1) from copy 175(1), and generating a full or incremental backup image based on the reference point in time. In this example, the backup operation (e.g., generating a backup image) is performed by a backup agent 165 instantiated by the backup manager 140 as another virtual machine, a container, or a serverless module on the cloud computing device 155.

In certain embodiments, generating the backup image 180(1) - (N) includes: generating a snapshot of data (e.g., data 125(1) - (N) of virtual machine 105(1) - (N)) at a reference point in time, generating a backup image 180(1) in backup format, mounting the snapshot, retrieving metadata 130(1) of the application from copy 175(1) (e.g., granular metadata captured by replication agent 115(1) and replicated to cloud storage 170 by replication manager 145 and DR coordinator 160), and sending the granular metadata to backup server 135 (e.g., to serve as directory 150 for granular restore).

As previously described, copy 175(1) contains the replicated data of virtual machine 105(1) and is stored in cloud storage 170 in the same format as data 125(1) stored on virtual disk 120 (1). Thus, copy 175(1) is a mirror replica of data 125(1) (e.g., there is a 1:1 correspondence between copy 175(1) and the data blocks of data 125(1)) and is thus available for failover operations to be performed on cloud computing device 155. For example, a cloud virtual machine may be created and/or instantiated from copy 175 (1).

On the other hand, and as also previously described, it is possible to generate a backup in a different format than the original data (e.g., as a result of incremental backup, deduplication, etc.). Thus, at least by itself, the backup image does not maintain a 1:1 correspondence between the data blocks of backup image 180(1) and data 125 (1). In addition, the backup image may be generated in a format different from the original format of data 125 (1). For example, data 125(1) may be a single virtual machine disk image, whereas backup image 180(1) may include several one megabyte blocks.

Example of generating backups on a schedule via a DRaaS System

FIG. 2 is a block diagram 200 of a backup and replication computing environment, according to one embodiment. As shown in fig. 2, cloud 205 (e.g., cloud computing system 195(1) - (N)) includes at least backup agency 165, copies 175(1) and 175(2), and DR coordinator 160. DR coordinator 160 continuously copies the virtual machine disk images of virtual machines 105(1) and 105(2) to cloud 205 (e.g., creates a corresponding virtual machine disk image in cloud 205 and continuously copies it to keep the virtual machine disk image synchronized with virtual disk 120 (1)).

Backup server 135 monitors and manages quiesces and application-Granular Restore (GRT) metadata aggregation (e.g., metadata and associated information of an email database, such as email, location, files, etc.) performed by local backup and replica agents. When a local replication agent (e.g., replication agent 115(1) - (N)) performs replication, the replication consistency checkpoint is part of the GRT metadata capture process. For example, when backup agent 110(1) communicates a need for a backup operation to replica agent 115(1), replica agent 115(1) quiesces application 210(1) and sets a flag, or similar type of indicator that indicates a consistent point in time for the backup operation to continue if and when backup agent 165 performs the backup operation in cloud 205. It should be noted that replication agent 115(1) - (N) and backup agent 110(1) - (N) may be implemented on the guest virtual machine and by the host hypervisor.

In one embodiment, to create a backup image on schedule by a DRaaS system (e.g., DR coordinator 160), a local backup agent (e.g., backup agent 110(1)) first interacts with a DRaaS replication agent (e.g., replication agent 115(1)) indicating that backup is required. Next, replica agent 115(1) performs a custom action for application quiescing and invoking backup agent 110 (1). For example, replica agent 115(1) requests and/or instructs application 210(1) to push in-memory data to virtual disk 120(1), and backup agent 110(1) registers a callback function with replica agent 115 (1).

As part of the custom action, backup agent 110(1) collects and stores high-level metadata (e.g., granular metadata, such as metadata for emails in a database, data locations for application data, block-level information, etc.) on virtual disk 120(1) (e.g., as metadata 130 (1)). Backup agent 110(1) also transmits backup method information (e.g., whether the backup is a full backup or an incremental backup) to replication manager 145. Next, the replication manager 145, in conjunction with the replication agent 115(1), synchronizes the captured metadata (e.g., granular metadata, GRT metadata, etc.) to the cloud 205. For example, after replication agent 115(1) completes the application quiesce, backup agent 110(1) captures the metadata information and stores the metadata information (e.g., in a file on virtual disk 120(1) and/or as metadata 130 (1)). As part of the copy operation, the captured and stored metadata is copied to cloud 205 (e.g., stored as part of copy 175 (1)).

FIG. 3 is a block diagram 300 of a backup and replication computing environment, according to one embodiment. After the granular metadata is synchronized with the cloud 205, the DR coordinator 160 invokes the backup proxy 165. Backup proxy 165 (which, as previously described, may be instantiated by backup manager 140 as a virtual machine, container, or serverless module in cloud 205) generates a snapshot of the data at this point in time (e.g., data 125(1) is copied to copy 175(1) by a copy consistency checkpoint) and generates a backup image in backup-friendly storage provided by cloud computing device 155 (e.g., if backup image 180 is generated as an incremental backup image, backup image 180 is generated in backup-friendly format from the copy consistency checkpoint) (e.g., write a block or list of blocks to block Blob, append a block to additional Blob, write a page to page Blob, etc.).

The backup broker 165 (which may be instantiated as needed in the cloud 205) then mounts the snapshot and aggregates, extracts, and/or collects the full item-level granular metadata from the files and applications using the information aggregated from the application quiesce (e.g., application information). For example, backup agency 165 aggregates the granular metadata of emails in the email database on the machine image (e.g., copy 175 (1)). This granular metadata is read by backup server 135 and stored in directory 150 (e.g., as a rich granular directory of backup images 180).

As previously described, backup agent 110(1) sends a message to replica agent 115(1) informing replica agent 115(1) that backup manager 140 has requested a full backup. The replication agent 115(1) uses this point in time as a basis to maintain and/or track changed data (e.g., deltas or logs) as part of the replication process. Further, depending on whether the backup proxy 165 creates a full backup image or an incremental backup image, the backup proxy 165 reads all data or only the changed data from the reference/base point in time to create the corresponding backup image.

Exemplary Process for generating backup images from copies

FIG. 4 is a flow diagram 400 of a process for generating a backup image from a copy and performing granular restore, according to one embodiment. The process begins at 405 with receiving a copy of a virtual machine (e.g., replication agent 115(1) implemented on virtual machine 105(1) sending data 125(1) and metadata 130(1) to cloud computing device 155). At 410, the process invokes a backup proxy (e.g., backup proxy 165, which may be instantiated by backup manager 140 as a virtual machine, container, serverless module, etc. in cloud 205 as needed). It should be noted that the backup proxy mechanism is invoked and the remaining steps of FIG. 4 are performed according to a backup schedule (e.g., when the backup proxy communicates with the replica agent regarding the need for a backup operation). At 415, the process takes a snapshot of the data (e.g., data 125(1) in copy 175(1)) and creates a backup image in backup format at 420 (e.g., backup agency 165 creates backup image 180 on backup storage 305, as shown in fig. 3). At 425, the process mounts the snapshot and, at 430, extracts granular metadata (e.g., from metadata 130(1)) in the replica (e.g., replica 175 (1)). At 435, the process sends the backup image and granular metadata to the backup server (e.g., sends the backup image 180 and GRT metadata to the backup server 135, as shown in fig. 3), and at 440, determines whether there is more replicated data. If there is more replicated data (and a backup operation has been requested, followed by a restore operation applicable to the newly replicated data), then the process loops to 405. Otherwise, the process ends.

FIG. 5A is a flow diagram 500A of a process for storing metadata for replication, according to one embodiment. The process begins at 505 with instructing (or requesting) a replication agent (e.g., replication agent 115(1)) to begin a backup operation configuration (e.g., a full backup has been requested and a replication consistency checkpoint is set). At 510, the process receives a call for a custom action from the replication agent after an application quiesce has been performed (e.g., by backup agent 110 (1)). The process ends at 515 with storing application information associated with one or more applications (e.g., GRT metadata with one or more data locations, etc.).

FIG. 5B is a flow diagram 500B of a process for copying metadata, according to one embodiment. The process begins at 520 with receiving backup operation instructions from a backup agent (e.g., backup method information from backup agent 110 (1)). At 525, the process performs an application quiesce (e.g., in-memory data refresh) and, at 530, invokes the backup agent's custom action (e.g., backup agent 110(1) registers a callback function with replication agent 115 (1)). At 535, the process receives metadata (e.g., high-level metadata about the application, its data location, etc. aggregated by the backup agent 110(1) by executing one or more queries). The process ends at 540 with copying the metadata along with the virtual machine data to cloud storage (e.g., to DR coordinator 160, cloud computing device 155, and/or cloud 205 as part of the copy).

FIG. 6 is a flow diagram 600 of a process for storing metadata for a restore operation, according to one embodiment. The process begins at 605 with determining whether the replication synchronization is complete. If the replication synchronization (e.g., with metadata of the computing-friendly cloud storage) is not complete, the process waits at 610. However, if the copy synchronization is complete, then at 615 the process takes a snapshot of the copied data (e.g., the data in the copy) and, at 620, generates a backup image in a backup format. At 625, the process mounts the snapshot and, at 630, aggregates the project-level granular metadata of the file and the application from the replica. At 635, the process stores the granular metadata for future restore operations from the backup image. At 640, the process determines whether there is more replicated data (e.g., whether a new backup operation has been requested). If there is more replicated data, the process loops to 605. Otherwise, the process ends.

FIG. 7A is a flow diagram 700A of a process for tracking changed data as part of a replication, according to one embodiment. The process begins at 705 by receiving information from a backup agent indicating that a full backup has been requested. The process ends at 710 with tracking the changed data or log information from that (reference) point in time as part of a copy operation (e.g., a copy consistency checkpoint).

FIG. 7B is a flow diagram 700B of a process for generating a full or incremental backup from a copy, according to one embodiment. The process begins at 715 with a determination of whether the backup agent created a full backup or an incremental backup. If the backup proxy is creating a full backup, then at 720 the process reads all data from the reference point in time and ends at 725 with generating a full backup image. However, if the backup proxy is creating an incremental backup, then the process reads only the changed data from the reference point in time at 730 and ends at 735 with generating an incremental backup image.

In this manner, the methods, systems, and processes described herein enable cloud backups to be created from a DRaaS copy and provide support for the backups for rich granular metadata (e.g., for granular restore). These methods, systems, and processes eliminate the need to perform a separate backup from a local data center to cloud storage when deploying a DRaaS replication by building a full or incremental backup image and full granular metadata directly from the replicas stored in the cloud, and thereby provide significant benefits with respect to bandwidth usage and network costs.

Other embodiments

In one embodiment, application quiesce is performed even when it is not required to do so and/or even if there is applicability to granular reduction. For example, executing the application quiesces to make the backup consistent with the application. In another embodiment, application metadata or the like for granular reduction includes information such as: the location of the drives (e.g., C:, D: etc.), the volumes installed on the virtual and/or physical machines, the applications installed on the virtual and/or physical machines, and associated information (e.g., database version information, database name, etc.), and the files and folders containing the application data.

In some embodiments, the metadata needed to generate incremental backups from copies may be of at least two types. First, where the virtual machine has built-in data block change tracking capability, the metadata may include an identifier that captures the state of the virtual machine disk at the time of the snapshot taken for backup. Thus, when an incremental backup is generated from a copy, the potential change tracking mechanism may be queried to obtain a list of changed blocks between (the change tracking identifier of) the previous full or incremental backup up to the current change tracking identifier. Once the list of changed data blocks is obtained, an incremental backup may be created that includes those changed data blocks. Second, in the event that a potential change tracking mechanism is not present or available, the replication agent and/or replication system may track changed blocks between the previous snapshot and the current snapshot (because the replication system detects and only replicates changed blocks). When creating a backup from a copy, the backup proxy may then use this information to obtain a list of changed data blocks since a previous full or incremental backup and create an incremental backup that includes only those changed data blocks.

In other embodiments, a single backup image may not necessarily be a single file, and may include multiple objects created in cloud storage. In certain embodiments, the use of snapshots in the systems, methods, and processes described herein may be at least two-fold. First, the snapshot may be used to obtain a frozen view (e.g., in the event that data changes while the backup is in progress, resulting in an inconsistent backup). In this case, the snapshot provides a view of the data unchanged. Second, the application is quiesced first and a snapshot is then generated. This process results in application consistency and application-consistent backups because the quiesce causes the application to flush data in its memory, etc. to the disk so that the disk state becomes consistent with the application. In this example, a quiesce of the file system and/or application is performed to enable consistent backups (e.g., a file system consistent backup and an application consistent backup, respectively).

In one embodiment, the copy operation may involve copy metadata, which may not be the same information (e.g., granular metadata) required for the backup operation and the restore operation. In another embodiment, and in certain configurations and deployments, the backup agent and the replication agent may not be implemented in a virtual machine, but may be implemented in the hypervisor host or even in different virtual machines (e.g., virtual machine devices) on the hypervisor host. Also, the replication manager may be implemented on a different computing device than the backup server.

In some embodiments, the backup agent quiesces one or more applications, triggers snapshot creation, and generates metadata. The backup agent then communicates with the replication agent to cause the replication agent to mark this state with a consistency flag in the replication stream so that the replica will have that state (marked state) marked for the backup agency available for creating a backup from the replica (e.g., as opposed to using the most current state of the replica which may change often). In this example, both the virtual machine and the physical machine may be data sources.

In one embodiment, copying consistency checkpoints involves capturing and/or remembering the time to execute a consistent snapshot for use by backup operations. This enables the backup agent in the cloud to bring the copy back to that point in time when the backup image is created from the copy. Thus, the copy consistency flag is a point in time that the copy agent remembers, and/or tracks to be able to return to (e.g., provides a backup agent with a view of the data at that point in time).

Exemplary computing Environment

Fig. 8 is a block diagram of a computing system 800 according to one embodiment of the present disclosure. Computing system 800 may include cloud computing device 155 and broadly represent any single-processor or multi-processor computing device or system capable of executing computer-readable instructions. Examples of computing system 800 include, but are not limited to, any one or more of the following various devices: workstations, personal computers, hand-held computers, client-side terminals, servers, distributed computing systems, handheld devices (e.g., personal digital assistants and mobile phones), network appliances, storage controllers (e.g., array controllers, tape drive controllers, or hard drive controllers), and the like. In its most basic configuration, computing system 800 may include at least one processor 855 and memory 860. By executing the software executing the backup proxy 165, the computing system 800 becomes a dedicated computing device configured to perform backup operations using a copy (e.g., a copy stored in a public cloud or the like).

Processor 855 generally represents any type or form of processing unit capable of processing data or interpreting and executing instructions. In certain embodiments, processor 855 may receive instructions from a software application or module. These instructions may cause processor 855 to perform the functions of one or more of the embodiments described and/or illustrated herein. For example, processor 855 may perform and/or be a means for performing all or some of the operations described herein. The processor 855 may also perform and/or be a means for performing any other operations, methods, or processes described and/or illustrated herein. Memory 860 generally represents any type or form of volatile or non-volatile storage device or medium capable of storing data and/or other computer-readable instructions. Examples include, but are not limited to, Random Access Memory (RAM), Read Only Memory (ROM), flash memory, or any other suitable memory device. Although not required, in some embodiments, computing system 800 may include both volatile and nonvolatile memory units. In one example, program instructions implementing the backup proxy agent 165 and the DR coordinator 160 (or alternatively, the backup agent 110 and the replica agent 115) may be loaded into memory 860.

In certain embodiments, computing system 800 may include one or more components or elements in addition to processor 855 and/or memory 860. For example, as shown in fig. 8, computing system 800 may include a memory controller 820, an input/output (I/O) controller 835, and a communications interface 845, each of which may be interconnected via a communications infrastructure 805. Communication infrastructure 805 generally represents any type or form of infrastructure capable of facilitating communication between one or more components of a computing device. Examples of communication infrastructure 805 include, but are not limited to, a communication bus (such as an Industry Standard Architecture (ISA), Peripheral Component Interconnect (PCI), PCI express (PCIe), or similar bus) and a network.

Memory controller 820 generally represents any type/form of device capable of processing memory or data or controlling communication between one or more components of computing system 800. In certain embodiments, memory controller 820 may control communication between processor 855, memory 860, and input/output controller 835 via communication infrastructure 805. In certain embodiments, memory controller 820 may perform one or more of the operations or features described and/or illustrated herein, alone or in combination with other elements, and/or may be a means for performing one or more of the operations or features described and/or illustrated herein, alone or in combination with other elements.

Input/output controller 835 generally represents any type or form of module capable of coordinating and/or controlling the input and output functions of a virtual machine and/or physical computing device. For example, in certain embodiments, input/output controller 835 may control or facilitate data transfer between one or more elements of computing system 800, such as processor 855, memory 860, communications interface 845, display adapter 815, input interface 825, and storage interface 840.

Communications interface 845 represents, in a broad sense, any type or form of communications device or adapter capable of facilitating communications between computing system 800 and one or more other devices. Communication interface 845 may facilitate communication between computing system 800 and a private or public network including additional computing systems. Examples of communications interface 845 include, but are not limited to, a wired network interface (such as a network interface card), a wireless network interface (such as a wireless network interface card), a modem, and any other suitable interface. Communication interface 845 can provide a direct connection to a remote server via a direct link to a network, such as the internet, and can also provide such a connection indirectly through, for example, a local area network such as an ethernet network, a personal area network, a telephone or cable network, a cellular telephone connection, a satellite data connection, or any other suitable connection.

Communications interface 845 may also represent a host adapter configured to facilitate communications between computing system 800 and one or more additional network or storage devices via an external bus or communications channel. Examples of host adapters include: small Computer System Interface (SCSI) host adapters, Universal Serial Bus (USB) host adapters, Institute of Electrical and Electronics Engineers (IEEE)1394 host adapters, Serial Advanced Technology Attachment (SATA), serial SCSI (sas), and external SATA (esata) host adapters, Advanced Technology Attachment (ATA) and parallel ATA (pata) host adapters, fibre channel interface adapters, ethernet adapters, and the like. Communication interface 845 may also allow computing system 800 to perform distributed or remote computing (e.g., by receiving/transmitting instructions from/to a remote device for execution).

As shown in fig. 8, computing system 800 may also include at least one display device 810 coupled to communication infrastructure 805 via a display adapter 815. Display device 810 generally represents any type or form of device capable of visually displaying information forwarded by display adapter 815 (e.g., in a GUI). Similarly, display adapter 815 generally represents any type or form of device configured to forward graphics, text, and other data from communication infrastructure 805 (or from a frame buffer, as known in the art) for display on display device 810. Computing system 800 may also include at least one input device 830 coupled to communication infrastructure 805 via an input interface 825. Input device 830 generally represents any type or form of input device capable of providing input, generated by a computer or human, to computing system 800. Examples of input device 830 include a keyboard, a pointing device, a voice recognition device, or any other input device.

Computing system 800 can also include storage 850 coupled to communication infrastructure 805 via storage interface 840. Storage device 850 generally represents any type or form of storage device or medium capable of storing data and/or other computer-readable instructions. For example, storage device 850 may include a magnetic disk drive (e.g., a so-called hard drive), a floppy disk drive, a magnetic tape drive, an optical disk drive, a flash memory drive, and so forth. Storage interface 840 generally represents any type or form of interface or device for transferring and/or transmitting data between storage device 850 and other components of computing system 800. Storage 850 may be configured to read from and/or write to removable storage units configured to store computer software, data, or other computer-readable information. Examples of suitable removable storage units include floppy disks, magnetic tape, optical disks, flash memory devices, etc. Storage device 850 may also include other similar structures or devices for allowing computer software, data, or other computer-readable instructions to be loaded into computing system 800. For example, storage device 850 may be configured to read and write software, data, or other computer-readable information. Storage 850 may also be part of computing system 800 or may be a separate device accessed through other interface systems.

Many other devices or subsystems may be connected to computing system 800. Conversely, the components and devices illustrated in fig. 8 need not all be present to practice the embodiments described and/or illustrated herein. The devices and subsystems referenced above may also be interconnected in different ways from that shown in fig. 8. Computing system 800 may also employ any number of software configurations, firmware configurations, and/or hardware configurations. For example, one or more of the embodiments disclosed herein may be encoded as a computer program (also referred to as computer software, software applications, computer-readable instructions, or computer control logic) on a computer-readable storage medium. Examples of computer-readable storage media include magnetic storage media (e.g., hard disk drives and floppy disks), optical storage media (e.g., CD-ROMs or DVD-ROMs), electronic storage media (e.g., solid state drives and flash memory media), and so forth. Such computer programs may also be transferred to computing system 800 for storage in memory or on a carrier medium via a network such as the internet.

The computer readable medium containing the computer program may be loaded into computing system 800 (e.g., virtual machine 105(1) - (N), backup server 135, or cloud computing device 155). All or a portion of the computer program stored on the computer readable medium may then be stored in the virtual disk 120(1) - (N) and/or the cloud storage 170. When executed by processor 855, a computer program loaded into computing system 800 may cause processor 855 to perform the functions of one or more of the embodiments described herein and/or may cause processor to be a means for performing the functions of one or more of the embodiments described herein. Alternatively, one or more of the embodiments described and/or illustrated herein may be implemented in firmware and/or hardware. For example, computing system 800 may be configured as an Application Specific Integrated Circuit (ASIC) adapted to implement one or more of the embodiments disclosed herein.

Exemplary networked Environment

Fig. 9 is a block diagram of a networked system showing how various computing devices may communicate via a network, according to one embodiment. In certain embodiments, a Network Attached Storage (NAS) device may be configured to communicate with virtual machine 105(1) - (N), backup server 135, and/or cloud computing device 155 using Network File System (NFS), Server Message Block (SMB), or Common Internet File System (CIFS). Network 185 generally represents any type or form of computer network or architecture capable of facilitating communication between virtual machines 105(1) - (N), backup server 135, and/or cloud computing device 155.

In certain embodiments, a communication interface, such as communication interface 845 in fig. 8, may be used to provide connectivity between virtual machine 105(1) - (N), backup server 135, and/or cloud computing device 155 and network 185. It should be noted that the embodiments described and/or illustrated herein are not limited to the internet or any particular network-based environment. In some embodiments, the network 185 may be a Storage Area Network (SAN). In other embodiments, backup agent 110 and/or replica agent 115 may be part of a virtual machine or may be separate. If separate, backup agent 110 and/or replica agent 115 implemented in (e.g., cloud backup system 905) and computing device backup agent 110 and/or replica agent 115 may be communicatively coupled via network 185.

In one embodiment, all or a portion of one or more of the disclosed embodiments may be encoded as a computer program and loaded onto and executed by virtual machine 105(1) - (N), one or more physical machines, backup server 135, and/or cloud computing device 155. All or a portion of one or more embodiments disclosed herein may also be encoded as a computer program, stored on storage system 910, and distributed over network 185.

In some examples, all or a portion of cloud backup system 905, cloud computing device 155, and/or cloud storage device 170 may represent portions of a cloud computing or network-based environment. Cloud computing environments may provide various services and applications via the internet. These cloud-based services (e.g., software as a service, platform as a service, infrastructure as a service, etc.) may be accessible through a web browser or other remote interface. The various functions described herein may be provided through a remote desktop environment or any other cloud-based computing environment.

Further, one or more of the components described herein may transform data, physical devices, and/or representations of physical devices from one form to another. For example, backup agent 110 and replication agent 115, or alternatively DR coordinator 160 and backup agent 165, may translate the behavior of virtual machine 105(1) - (N) and/or backup server 135 or cloud computing device 155, respectively, to perform backup operations using the copies stored in the public or private cloud.

Although the present disclosure has been described in connection with several embodiments, it is not intended to be limited to the specific form set forth herein. On the contrary, the present disclosure is intended to cover such alternatives, modifications, and equivalents as may be reasonably included within the scope of the present disclosure as defined by the appended claims.

24页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于GPU的着色器核心的在空闲周期期间的自测试

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!