IP Library › Granted Patent US 10,120,925
Granted Patent B1
US 10,120,925 · App. 14/870,147 · Granted Nov 6, 2018

Data synchronization

Inventors: Assaf Natanzon (Tel Aviv, IL); Yair Cohen (Pardes Hana, IL)
Assignee: EMC IP Holding Company LLC
G06F17/30575G06F9/45558H04L67/1095G06F2009/45583
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,120,925
App. No.
14/870,147
Filed
Sep 30, 2015
Granted
Nov 6, 2018
Kind
B1
Art Unit
2167
USPC
707/620
Abstract

A computer implemented method for reading signatures corresponding to a portion of data on a virtual machine disk on a production site, wherein reading the signature includes mapping the virtual machine disk offset into a physical storage offset, and reading the signature from the physical storage; sending the signature of the portion of data to a replication site; obtaining a mapping from a virtual disk to a physical disk at the replica site; issuing a command to write a portion of data corresponding to the signature to a the physical storage based on the mapping of the replica of the virtual machine disk on the replication site; determining if the command was successful; and based on a determination that the command was not successful, marking the locations corresponding to the signature for synchronization in a synchronization structure.

Claims (41)

1. A computer implemented method comprising:

reading a signature corresponding to a portion of data on a virtual machine disk (VMDK) on a production site, wherein reading the signature includes obtaining a first mapping between a first block offset on the virtual machine disk on the production site and a second block offset on a first de-duplicated physical storage on the production site, and reading, based on the first mapping, the signature from the first de-duplicated physical storage on the production site:

sending the signature to a replication site;

obtaining a second mapping between a third block offset on a virtual machine disk on the replication site and a fourth block offset on a second de-duplicated physical disk storage on the replication site;

issuing a command to write the portion of data corresponding to the signature to the second de-duplicated physical storage on the replication site based on the second mapping;

determining, based at least in part on a result of the command, that a first set of blocks on the first de-duplicated physical storage on the production site and a second set of blocks on the second de-duplicated physical storage on the replication site, the first set of blocks and the second set of blocks corresponding to the signature, require synchronization; and

marking, in a synchronization structure, a first set of one or more locations on the first de-duplicated physical storage on the production site and a second set of one or more locations on the second de-duplicated physical storage on the replication site, the first set of one or more locations corresponding to the first set of blocks and the second set of one or more locations corresponding to the second set of blocks, the first set of blocks and the second set of blocks corresponding to the signature that require synchronization.

2. The method of claim 1 , wherein a splitter intercepts IOs for the virtual machine disk on the production site, and marks each location corresponding to the IOs arriving to the virtual machine disk on the production site as dirty in the synchronization structure.

3. The method of claim 1 , wherein a first snapshot of a first LU containing a first file system containing the virtual machine disk on the production site is created on the production site and a second snapshot of a second LU containing a second file system containing the virtual machine disk on the replication site is created on the replication site.

4. The method of claim 3 , wherein the first snapshot is attached to a first replication appliance at the production site and the second snapshot is attached to a second replication appliance at the replication site.

5. The method of claim 4 , wherein block hashes are read at the production site from the first LU using de-duplicated storage APIs.

6. The method of claim 5 , wherein the block hashes from the production site are used with an offset of the second VMDK by a write by Hash command.

7. The method of claim 6 , wherein the offset of the second LU used by the write by Hash command is based on the second mapping between the VMDK and the physical LU on the replication site.

8. The method of claim 7 , wherein if the write by Hash command fails, then each location associated with the failed write by Hash command is added to the synchronization structure for synchronization at a later point in time.

9. A computer program product comprising:

a non-transitory computer readable medium encoded with computer executable program code, wherein the code enables execution across one or more processors of:

reading a signature corresponding to a portion of data on a virtual machine disk (VMDK) on a production site, wherein reading the signature includes obtaining a first mapping between a first block offset on the virtual machine disk on the production site and a second block offset on a first de-duplicated physical storage on the production site, and reading, based on the first mapping, the signature from the first de-duplicated physical storage on the production site;

sending the signature to a replication site;

obtaining a second mapping between a third block offset on a virtual machine disk on the replication site and a fourth block offset on a second de-duplicated physical disk storage on the replication site;

issuing a command to write the portion of data corresponding to the signature to the second de-duplicated physical storage on the replication site based on the second mapping;

determining, based at least in part on a result of the command, that a first set of blocks on the first de-duplicated physical storage on the production site and a second set of blocks on the second de-duplicated physical storage on the replication site, the first set of blocks and the second set of blocks corresponding to the signature, require synchronization; and

marking, in a synchronization structure, a first set of one or more locations on the first de-duplicated physical storage on the production site and a second set of one or more locations on the second de-duplicated physical storage on the replication site, the first set of one or more locations corresponding to the first set of blocks and the second set of one or more locations corresponding to the second set of blocks, the first set of blocks and the second set of blocks corresponding to the signature that require synchronization.

10. The computer program product of claim 9 , wherein a splitter intercepts IOs for the virtual machine disk on the production site, and marks each location corresponding to the IOs arriving to the virtual machine disk on the production site as dirty in the synchronization structure.

11. The computer program product of claim 9 , wherein a first snapshot of a first LU containing a first file system containing the virtual machine disk on the production site is created on the production site and a second snapshot of a second LU containing a second file system containing the virtual machine disk on the replication site is created on the replication site, and where the first snapshot is attached to a first replication appliance at the production site and the second snapshot is attached to a second replication appliance at the replication site.

12. The computer program product of claim 11 , wherein block hashes are read at the production site from the first LU using de-duplicated storage APIs.

13. The computer program product of claim 12 , wherein the block hashes from the production site are used with an offset of the second VMDK by a write by Hash command.

14. The computer program product of claim 13 , wherein the offset of the second LU used by the write by Hash command is based on the second mapping between the VMDK and the physical LU on the replication site.

15. The computer program product of claim 14 , wherein if the write by Hash command fails, then each location associated with the failed write by Hash command is added to the synchronization structure for synchronization at a later point in time.

16. A system comprising:

a production site;

a replication site; and

computer-executable logic operating in memory, wherein the computer-executable program logic is configured to enable execution across one or more processors of:

reading a signature corresponding to a portion of data on a virtual machine disk (VMDK) on a production site, wherein reading the signature includes obtaining a first mapping between a first block offset on the virtual machine disk on the production site and a second block offset on a first de-duplicated physical storage on the production site, and reading, based on the first mapping, the signature from the first de-duplicated physical storage on the production site;

sending the signature to a replication site;

obtaining a second mapping between a third block offset on a virtual machine disk on the replication site and a fourth block offset on a second de-duplicated physical disk storage on the replication site;

issuing a command to write the portion of data corresponding to the signature to the second de-duplicated physical storage on the replication site based on the second mapping;

determining, based at least in part on a result of the command, that a first set of blocks on the first de-duplicated physical storage on the production site and a second set of blocks on the second de-duplicated physical storage on the replication site, the first set of blocks and the second set of blocks corresponding to the signature, require synchronization; and

marking, in a synchronization structure, a first set of one or more locations on the first de-duplicated physical storage on the production site and a second set of one or more locations on the second de-duplicated physical storage on the replication site, the first set of one or more locations corresponding to the first set of blocks and the second set of one or more locations corresponding to the second set of blocks, the first set of blocks and the second set of blocks corresponding to the signature that require synchronization.

17. The system of claim 16 , wherein a splitter intercepts IOs for the virtual machine disk on the production site, and marks each location corresponding to the IOs arriving to the virtual machine disk on the production site as dirty in the synchronization structure.

18. The system of claim 16 , wherein a first snapshot of a first LU containing a first file system containing the virtual machine disk on the production site is created on the production site and a second snapshot of a second LU containing a second file system containing the virtual machine disk on the replication site is created on the replica site, and where the first snapshot is attached to a first replication appliance at the production site and the second snapshot is attached to a second replication appliance at the replication site.

19. The system of claim 18 , wherein block hashes are read at the production site from the first LU using de-duplicated storage APIs, and wherein the block hashes from the production site are used with an offset of the second VMDK by a write by Hash command, and wherein the offset of the second LU used by the write by Hash command is based on the second mapping between the VMDK and the physical LU on the replication site, and wherein if the write by Hash command fails, then each location associated with the failed write by Hash command is added to the synchronization structure for synchronization at a later point in time.

Assignments (10)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: NATANZON, ASSAF; COHEN, YAIR
To: EMC CORPORATION
Reel/Frame 036993/0579 →
Cited By (2)
US 12,299,311 US 12,393,441