IP Library Granted Patent US 10,228,962
Granted Patent B2
US 10,228,962 · App. 15/365,756 · Granted Mar 12, 2019

Live synchronization and management of virtual machines across computing and virtualization platforms and using live synchronization to support disaster recovery

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,228,962
App. No.
15/365,756
Granted
Mar 12, 2019
Kind
B2
Abstract

An illustrative “Live Synchronization” feature in a data storage management system can reduce the downtime that arises in failover situations. The illustrative Live Sync embodiment uses backup data to create and maintain a ready (or “warm”) virtualized computing platform comprising one or more virtual machines (“VMs”) that are configured and ready to be activated and take over data processing from another data processing platform operating in the production environment. The “warm” computing platform awaits activation as a failover solution for the production system(s) and can be co-located at the production data center, or configured at a remote or disaster recovery site, which in some embodiments is configured “in the cloud.” Both local and remote illustrative embodiments are discussed herein. An “incremental forever” approach can be combined with deduplication and synthetic full backups to speed up data transfer and update the disaster recovery sites.

Claims (77)

1. A method comprising:

backing up a first virtual machine into a first full backup copy of the first virtual machine stored to a first secondary storage device,

wherein the first virtual machine executes over a first hypervisor operating on a first virtual machine server,

wherein the first virtual machine accesses data that is stored in a first primary storage device that is communicatively coupled with the first virtual machine server, and

wherein the first full backup copy comprises, in a hypervisor-independent format, one or more configuration parameters of the first virtual machine converted into the hypervisor-independent format by a first data agent associated with the first virtual machine server;

configuring a second virtual machine, based on the one or more configuration parameters obtained from the first full backup copy,

wherein the second virtual machine is configured over a second hypervisor operating on a second virtual machine server which is distinct from the first virtual machine server, and

wherein a second data agent that is associated with the second virtual machine server obtains the one or more configuration parameters from the first full backup copy of the first virtual machine and: (a) determines whether the first hypervisor is of the same type as the second hypervisor, (b) converts the one or more configuration parameters from the hypervisor-independent format into a format suitable for the second hypervisor, and (c) instructs the second virtual machine server to configure the second virtual machine according to the converted one or more configuration parameters;

restoring the first full backup copy to the second virtual machine, which is in communication with a second primary storage device storing restored data in native format accessible to the second virtual machine;

synchronizing the second virtual machine to the first virtual machine, comprising:

periodically backing up the first virtual machine to successive incremental backup copies comprising changes relative to a preceding backup copy of the first virtual machine, and

restoring each successive incremental backup copy to the second virtual machine, thereby making the second virtual machine ready to operate instead of the first virtual machine, based on a most recent incremental backup copy of the first virtual machine restored to the second virtual machine; and

wherein the backing up operations are performed at least in part by the first data agent and the restoring operations are performed at least in part by the second data agent.

2. The method of claim 1 wherein the first hypervisor is of a first type and the second hypervisor is of a different type; and

wherein the second data agent enables the synchronizing to work across different types of hypervisors.

3. The method of claim 1 further comprising:

in response to detecting that the first virtual machine has failed, activating the second virtual machine by the second data agent; and

taking over by the second virtual machine instead of the first virtual machine, based on the most recent incremental backup copy of the first virtual machine restored to the second virtual machine.

4. The method of claim 1 wherein the backing up operations are performed by the first data agent and a first media agent associated with the first secondary storage device; and

wherein the restoring operations are performed by the second data agent and a second media agent associated with a second secondary storage device.

5. The method of claim 1 wherein the backing up operations are performed by the first data agent and a first media agent associated with the first secondary storage device;

wherein the restoring operations are performed by the second data agent and a second media agent associated with a second secondary storage device; and

when the second media agent detects that restoring a first incremental backup copy has failed more than a threshold number of times, the second media agent, in conjunction with the second data agent, (a) restores a second incremental backup copy, which is older than the first incremental backup copy, to the second virtual machine, and (b) blocks any further restore operations to the second virtual machine.

6. The method of claim 1

further comprising:

detecting, by the second data agent that a failure has occurred at the first virtual machine server; and

in response to the detecting, causing, by the second data agent, the second virtual machine to be activated and to take over instead of the first virtual machine, based on the most recent incremental backup copy of the first virtual machine restored to the second virtual machine.

7. The method of claim 6 further comprising:

reverse synchronizing a backup copy of the second virtual machine to the first virtual machine, wherein the backup copy of the second virtual machine comprises changes generated by the second virtual machine when operating instead of the first virtual machine; and

after the reverse synchronizing, taking over by the first virtual machine instead of the second virtual machine, based on the backup copy of the second virtual machine restored to the first virtual machine.

8. The method of claim 1 further comprising:

transmitting the first full backup copy to a secondary storage computing device, which stores the first full backup copy to a second secondary storage device; and

wherein the synchronizing of the second virtual machine further comprises:

transmitting each successive incremental backup copy to the secondary storage computing device, which stores each incremental backup copy to the second secondary storage device.

9. The method of claim 1 wherein the second virtual machine server provides a cloud-based computing platform for the second virtual machine.

10. A method comprising:

backing up a first virtual machine into a first full backup copy of the first virtual machine stored to a first secondary storage device,

wherein the first virtual machine executes over a first hypervisor operating on a first virtual machine server,

wherein the first virtual machine accesses data that is stored in a first primary storage device that is communicatively coupled with the first virtual machine server, and

wherein the first full backup copy comprises, in a hypervisor-independent format, one or more configuration parameters of the first virtual machine converted into the hypervisor-independent format by a first data agent associated with the first virtual machine server;

transmitting the first full backup copy to a secondary storage computing device, which stores the first full backup copy to a second secondary storage device;

configuring a second virtual machine, based on the one or more configuration parameters obtained from the first full backup copy,

wherein the second virtual machine is configured over a second hypervisor operating on a second virtual machine server which is distinct from the first virtual machine server, and

wherein a second data agent that is associated with the second virtual machine server obtains the one or more configuration parameters from the first full backup copy of the first virtual machine and: (a) determines whether the first hypervisor is of the same type as the second hypervisor, (b) converts the one or more configuration parameters from the hypervisor-independent format into a format suitable for the second hypervisor, and (c) instructs the second virtual machine server to configure the second virtual machine according to the converted one or more configuration parameters;

restoring the first full backup copy to the second virtual machine, which is in communication with a second primary storage device storing restored data in native format accessible to the second virtual machine;

synchronizing the second virtual machine to the first virtual machine, comprising:

periodically backing up the first virtual machine to successive incremental backup copies comprising changes relative to a preceding backup copy of the first virtual machine,

consolidating one or more of the successive incremental backup copies into a consolidated copy, and

restoring the consolidated copy to the second virtual machine, thereby making the second virtual machine ready to operate instead of the first virtual machine, based on a most recent incremental backup copy of the first virtual machine in the consolidated copy which is restored to the second virtual machine; and

wherein the backing up of the first virtual machine are performed at least in part by the first data agent and the restoring operations are performed at least in part by the second data agent.

11. A system for generating virtual machines from backups of source computing platforms and maintaining the generated virtual machines synchronized with respective source computing platforms and ongoing backups thereof in preparation for failover from the source computing platforms, the system comprising:

a first virtual machine executing over a first hypervisor on a source computing platform, the first virtual machine executing a first set of applications and the source computing platform also comprising a first data agent;

a primary storage device comprising data accessed by the first set of applications, the primary storage device communicatively coupled with the first virtual machine;

a secondary storage device for storing backup copies;

a destination computing platform (a) hosting a second virtual machine executing over a second hypervisor and (b) comprising a second data agent;

wherein the first data agent is configured to:

perform an initial full backup of the first virtual machine including the data that is accessed by the first set of applications, to the secondary storage device, wherein the initial full backup generates a first full backup copy that additionally comprises, in a hypervisor-independent format, one or more configuration parameters of the source computing platform obtained by the first data agent and converted by the first data agent into the hypervisor-independent format;

after the initial full backup, create subsequent incremental backup copies that comprise only changed data relative to an immediately preceding backup;

wherein the second data agent is configured to:

obtain the one or more configuration parameters from the first full backup copy of the first virtual machine;

determine whether the first hypervisor is of the same type as the second hypervisor;

convert the one or more configuration parameters from the hypervisor-independent format obtained from the first full backup copy into a format suitable for the second hypervisor,

generate the second virtual machine from the first full backup copy according to the converted one or more configuration parameters,

restore the first full backup copy to the second virtual machine, which is in communication with a second primary storage device storing restored data in native format accessible to the second virtual machine,

keep the second virtual machine synchronized to the source computing platform further by restoring the subsequent incremental backup copies to the native format accessible to the second virtual machine, and

when detecting that the first virtual machine has failed, activate the second virtual machine to begin executing instead of the first virtual machine, and

wherein a second set of applications corresponding to the first set of applications execute on the activated second virtual machine.

12. The system of claim 11 wherein the first data agent is configured to perform the backup operations in conjunction with a media agent associated with the secondary storage device.

13. The system of claim 11 wherein the second data agent is configured to perform the restore operations in conjunction with a media agent associated with the secondary storage device.

14. The system of claim 11 wherein the first data agent is configured to perform the backup operations in conjunction with a first media agent associated with the secondary storage device; and

wherein the second data agent is configured to perform the restore operations in conjunction with a second media agent that receives the first full backup copy and the subsequent incremental backup copies from the first media agent.

15. The system of claim 11 wherein the first data agent is configured to perform the backup operations in conjunction with a first media agent associated with the secondary storage device;

wherein the second data agent is configured to perform the restore operations in conjunction with a second media agent;

wherein the first media agent is further configured to periodically consolidate a plurality of the subsequent incremental backup copies into a consolidated copy that is transmitted to the second media agent; and

wherein the subsequent incremental backup copies are restored to the second virtual machine from the consolidated copy.

16. The system of claim 11 wherein the first hypervisor and the second hypervisor are of different types, thereby enabling synchronization between the first virtual machine and the second virtual machine across virtualization platforms.

17. The system of claim 11 wherein the destination computing platform is implemented as a cloud resource.

Assignments (4)
SUPPLEMENTAL CONFIRMATORY GRANT OF SECURITY INTEREST IN UNITED STATES PATENTS Recorded Apr 16, 2025
From: COMMVAULT SYSTEMS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 070864/0344 →
SECURITY INTEREST Recorded Dec 13, 2021
From: COMMVAULT SYSTEMS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 058496/0836 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 22, 2016
From: DORNEMANN, HENRY WALLACE; NAGRALE, AJAY VENKAT; PAWAR, RAHUL S.; VENKATESHA, ANANDA
To: COMMVAULT SYSTEMS, INC.
Reel/Frame 040756/0120 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2016
From: DORNEMANN, HENRY WALLACE; NAGRALE, AJAY VENKAT; PAWAR, RAHUL S.; VENKATESHA, ANANDA
To: COMMVAULT SYSTEMS, INC.
Reel/Frame 040472/0236 →
Cited By (53)
US 12,197,293 US 12,199,952 US 12,204,414 US 12,204,929 US 12,229,582 US 12,235,744 US 12,259,977 US 12,282,585 US 12,292,802 US 12,292,974 US 12,293,210 US 12,294,622 US 12,299,467 US 12,306,725 US 12,314,417 US 12,316,490 US 12,321,313 US 12,323,464 US 12,333,007 US 12,339,747 US 12,346,193 US 12,353,297 US 12,353,376 US 12,360,942 US 12,360,944 US 12,367,107 US 12,367,177 US 12,373,308 US 12,375,530 US 12,375,560 US 12,380,006 US 12,430,214 US 12,443,490 US 12,461,695 US 12,462,028 US 12,475,226 US 12,481,538 US 12,536,075 US 12,579,041 US 12,580,909 US 12,585,552 US 12,585,555 US 12,608,284 US 12,608,286 US 12,613,781 US 12,639,173 US 12,645,359 US 12,645,541 US 12,650,780 US 12,670,072 US 12,681,817 US 12,688,291 US 12,699,632