IP Library Granted Patent US 8,135,930
Granted Patent B1
US 8,135,930 · App. 12/502,035 · Granted Mar 13, 2012

Replication systems and methods for a virtual computing environment

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 8,135,930
App. No.
12/502,035
Granted
Mar 13, 2012
Kind
B1
Abstract

Hybrid replication systems and methods for a virtual computing environment utilize snapshot rotation and differential replication. During snapshot rotation, data modifications intended for a source virtual machine disk (VMDK) are captured by a primary snapshot. Once a particular criterion is satisfied, the data modifications are redirected to a secondary snapshot while the primary snapshot is committed to both source and target VMDKs. The secondary snapshot is then promoted to primary, and a new secondary snapshot is created with writes redirected thereto. If the VMDKs become out-of-sync, disclosed systems can automatically perform a differential scan of the source data and send only the required changes to the target server. Once the two data sets are synchronized, snapshot replication can begin at the previously configured intervals. Certain systems further provide for planned failover copy operations and/or account for migration of a virtual machine during the copying of multiple VMDKs.

Claims (57)

1. A method for replicating virtual machine data, the method comprising:

creating a first snapshot of one or more source virtual machine disks on a source storage device, wherein the one or more source virtual machine disks comprises a plurality of source data blocks;

detecting an out-of-sync condition between the one or more source virtual machine disks and one or more replicated virtual machine disks, the one or more replicated virtual machine disks comprising a plurality of target data blocks corresponding to the plurality of source data blocks;

following said detecting, generating a target signature for each of the plurality of target data blocks of the one or more replicated virtual machine disks, wherein each target signature is indicative of data content of a particular target data block;

storing each target signature in a target signature file;

for each of the plurality of source data blocks,

generating a source signature indicative of data content of a particular source data block,

comparing the source signature of the particular source data block with the target signature of the corresponding target data block, and

updating the one or more replicated virtual machine disks with a copy of the particular source data block when the source signature does not match the target signature;

creating a second snapshot of the one or more source virtual machine disks; and

committing the first snapshot to both the one or more source virtual machine disks and the one or more replicated virtual machine disks.

2. The method of claim 1 , wherein said detecting the out-of-sync condition comprises at least one of:

detecting that the first snapshot was deleted;

detecting that the first snapshot was partially committed to either of the one or more source or replicated virtual machine disks; and

detecting that a target virtual machine associated with the one or more replicated virtual machine disks was powered on.

3. The method of claim 1 , wherein said generating the source and target signatures comprises performing a cryptographic hash function on, respectively, the source and target data blocks.

4. The method of claim 3 , wherein the source and target signatures comprise MD4 signatures.

5. The method of claim 1 , following said committing the first snapshot, repeating alternating acts of creating a new snapshot of the one or more source virtual machine disks and committing a previously existing snapshot to both the one or more source and replicated virtual machine disks until a second out-of-sync condition between the one or more source virtual machine disks and the one or more replicated virtual machine disks is detected.

6. The method of claim 1 , wherein the source and target data blocks comprise 256 KB blocks.

7. The method of claim 1 , wherein the one or more source virtual machine disks comprises first and second virtual machine disks, the method additionally comprising requesting a location of the second virtual machine disk prior to creating the first snapshot of the second virtual machine disk.

8. The method of claim 7 , additionally comprising requesting a location of the first virtual machine disk prior to creating the first snapshot of the first virtual machine disk.

9. The method of claim 1 , additionally comprising storing in an undo file overwritten target data blocks of the one or more replicated virtual machine disks resulting from said act of updating.

10. A method for replicating virtual machine data, the method comprising:

copying data from a source virtual machine disk to a target virtual machine disk by repeatedly alternating acts of (i) creating a new snapshot of the source virtual machine disk and (ii) committing a previously existing snapshot of the source virtual machine disk to both the source and target virtual machine disks until an out-of-sync condition is detected between the source and target virtual machine disks, the new snapshot capturing data modifications intended to be made to the source virtual machine disk during said committing;

creating a second snapshot of the source virtual machine disk;

comparing a source signature for each of a plurality of source data blocks of the source virtual machine disk with a target signature of a corresponding target data block of the target virtual machine disk;

updating the target virtual machine disk with a copy of each source data block whose source signature does not match the target signature of the corresponding target data block;

creating a third snapshot of the source virtual machine disk; and

committing the second snapshot to both the source and target virtual machine disks, wherein the second snapshot captures data modifications intended to be made to the source virtual machine disk during said comparing and updating.

11. The method of claim 10 , further comprising generating the source signature for each of the plurality of source data blocks.

12. The method of claim 11 , wherein said comparing comprises comparing the source signature of each source data block immediately following said generating of the source signature of the source data block.

13. The method of claim 12 , further comprising generating the target signatures of the target data blocks and storing the target signatures in a signature file prior to said comparing.

14. A system for replicating virtual machine data, the system comprising:

a source system comprising,

a source virtual machine executing on a source host server,

a source datastore in communication with the source virtual machine, and

a source virtual machine disk stored on the source datastore and comprising data of the source virtual machine as a plurality of first data blocks;

a target system comprising,

a target datastore, and

a target virtual machine disk stored on the target datastore and comprising data of a target virtual machine as a plurality of second data blocks; and

a replication module in network communication with the source system and the target system to replicate data from the source virtual machine disk to the target virtual machine disk, wherein the replication module is further programmed to,

repeat acts of instructing a creation of a new snapshot of the source virtual machine disk and instructing a commit of a previously existing snapshot to both the source and target virtual machine disks until an out-of-sync condition is detected between the source and target virtual machine disks, and

following detecting of the out-of-sync condition,

compare first signatures for each of the plurality of first data blocks with second signatures of corresponding ones of the plurality of second data blocks to identify unmatched data blocks between the source and target virtual machine disks, and

update the target virtual machine disk with a copy of each first data block that does not match the corresponding second data block.

15. The system of claim 14 , wherein the replication module comprises a differential module configured to generate the first and second signatures of each of, respectively, the plurality of first and second data blocks.

16. The system of claim 15 , wherein the replication module is further configured to load the differential module onto the source host server via binary injection.

17. The system of claim 14 , wherein the first and second signatures comprise hash values.

18. The system of claim 14 , wherein the replication module further comprises a query module programmed to identify a location of the source virtual machine prior to replicating the data of the source virtual machine disk.

19. The system of claim 14 , wherein the new snapshots and the preexisting snapshots comprise hypervisor snapshots.

20. A system for replicating virtual machine data, the system comprising:

means for creating a first snapshot of one or more source virtual machine disks on a source storage device, wherein the one or more source virtual machine disks comprises a plurality of source data blocks;

means for detecting an out-of-sync condition between the one or more source virtual machine disks and one or more replicated virtual machine disks, the one or more replicated virtual machine disks comprising a plurality of target data blocks corresponding to the plurality of source data blocks;

means for generating a target signature for each of the plurality of target data blocks of the one or more replicated virtual machine disks, wherein each target signature is indicative of data content of the corresponding target data block, wherein said generating means is further configured to generate a source signature for each of the plurality of source data blocks;

means for comparing the source signature of each source data block with the target signature of the corresponding target data block;

means for updating the one or more replicated virtual machine disks with a copy of the source data block when the source signature of the source data block does not match the target signature of the corresponding target data block; and

means for committing the first snapshot to both the one or more source and replicated virtual machine disks.

Assignments (31)
RELEASE OF SECURITY INTEREST Recorded Nov 19, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.
Reel/Frame 073606/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 18, 2025
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.
Reel/Frame 073613/0326 →
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0649 →
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0001 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059105/0479 →
FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 2, 2022
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.; ONE IDENTITY LLC; ONELOGIN, INC.; ONE IDENTITY SOFTWARE INTERNATIONAL DESIGNATED ACTIVITY COMPANY
To: GOLDMAN SACHS BANK USA
Reel/Frame 058945/0778 →
SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 2, 2022
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.; ONE IDENTITY LLC; ONELOGIN, INC.; ONE IDENTITY SOFTWARE INTERNATIONAL DESIGNATED ACTIVITY COMPANY
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 058952/0279 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059096/0683 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0347 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0486 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS RECORDED AT R/F 040581/0850 Recorded May 22, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 046211/0735 →
CHANGE OF NAME Recorded Dec 6, 2017
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 044800/0848 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 040587 FRAME: 0624. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 28, 2017
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 044811/0598 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Nov 10, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040587/0624 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Nov 9, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040581/0850 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040039/0642) Recorded Oct 31, 2016
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0016 →
RELEASE OF SECURITY INTEREST Recorded Oct 31, 2016
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0467 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040039/0642 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040030/0187 →
RELEASE OF SECURITY INTEREST Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040040/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040065/0618 →
RELEASE OF SECURITY INTEREST Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLANT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040065/0216 →
PATENT SECURITY AGREEMENT (ABL) Recorded Jan 2, 2014
From: DELL INC.; APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 031898/0001 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Jan 2, 2014
From: APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS FIRST LIEN COLLATERAL AGENT
Reel/Frame 031897/0348 →
PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Jan 2, 2014
From: DELL INC.; APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 031899/0261 →
CHANGE OF NAME Recorded Aug 20, 2013
From: QUEST SOFTWARE, INC.
To: DELL SOFTWARE INC.
Reel/Frame 031043/0281 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 12, 2013
From: VIZIONCORE, INC.
To: QUEST SOFTWARE, INC.
Reel/Frame 029968/0615 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Sep 28, 2012
From: WELLS FARGO CAPITAL FINANCE, LLC (FORMERLY KNOWN AS WELLS FARGO FOOTHILL, LLC)
To: QUEST SOFTWARE, INC.; AELITA SOFTWARE CORPORATION; SCRIPTLOGIC CORPORATION; VIZIONCORE, INC.; NETPRO COMPUTING, INC.
Reel/Frame 029050/0679 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CITIZENSHIP OF QUEST SOFTWARE, INC. FROM A CALIFORNIA CORPORATION TO A DELAWARE CORPORATION PREVIOUSLY RECORDED ON REEL 023182 FRAME 0884. ASSIGNOR(S) HEREBY CONFIRMS THE GRANT, ASSIGNMENT, TRANSFER, AND CONVEYANCE TO AGENT OF A CONTINUING SECURITY INTEREST IN THE ADDITIONAL PATENTS. Recorded Jun 30, 2010
From: QUEST SOFTWARE, INC.; AELITA SOFTWARE CORPORATION; SCRIPTLOGIC CORPORATION; VIZIONCORE, INC.; NETPRO COMPUTING, INC.
To: WELLS FARGO FOOTHILL, LLC, AS AGENT
Reel/Frame 024620/0350 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 25, 2009
From: AFONSO, DELANO XAVIER; FEATHERGILL, DAVID ALLEN; MATTOX, JASON; HERMAN, JEREMY CHRISTOPHER; BRYANT, THOMAS H., III
To: VIZIONCORE, INC.
Reel/Frame 023572/0351 →
AMENDMENT NUMBER THREE TO PATENT SECURITY AGREEMENT Recorded Sep 1, 2009
From: QUEST SOFTWARE, INC.; AELITA SOFTWARE CORPORATION; SCRIPTLOGIC CORPORATION; VIZIONCORE, INC.; NETPRO COMPUTING, INC.
To: WELLS FARGO FOOTHILL, LLC, AS AGENT
Reel/Frame 023182/0884 →