IP Library Granted Patent US 8,762,642
Granted Patent B2
US 8,762,642 · App. 12/695,250 · Granted Jun 24, 2014

System and method for secure and reliable multi-cloud data replication

Inventors: John W. Bates (Mendon, MA); Mark Aldred (Franklin, MA)
Assignee: Twinstrata Inc
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,762,642
App. No.
12/695,250
Filed
Jan 28, 2010
Granted
Jun 24, 2014
Kind
B2
Art Unit
2182
USPC
711/135
Abstract

A multi-cloud data replication method includes providing a data replication cluster comprising at least a first host node and at least a first online storage cloud. The first host node is connected to the first online storage cloud via a network and comprises a server, a cloud array application and a local cache. The local cache comprises a buffer and a first storage volume comprising data cached in one or more buffer blocks of the local cache's buffer. Next, requesting authorization to perform cache flush of the cached first storage volume data to the first online storage cloud. Upon receiving approval of the authorization, encrypting the cached first storage volume data in each of the one or more buffer blocks with a data private key. Next, assigning metadata comprising at lest a unique identifier to each of the one or more buffer blocks and then encrypting the metadata with a metadata private key. Next, transmitting the one or more buffer blocks with the encrypted first storage volume data to the first online cloud storage. Next, creating a sequence of updates of the metadata, encrypting the sequence with the metadata private key and then transmitting the sequence of metadata updates to the first online storage cloud.

Claims (67)

1. A method for replicating data to one or more online storage clouds comprising:

providing a data replication cluster comprising at least a first host node and at least a first online storage cloud, wherein said first host node is connected to said first online storage cloud via a network and comprises a server, a cloud array application and a local cache and wherein said local cache comprises a buffer and a first storage volume and wherein said first storage volume comprises data cached in one or more buffer blocks of said local cache's buffer;

entering a first request by a user to “write” data in said first storage volume;

receiving said first request by said server;

identifying said first storage volume's internal structure and initiating processing of said first request;

verifying first authorization of user to “write” data in said first storage volume, and upon approval said first authorization, passing said first request to said local cache;

verifying second authorization of said user to “write” data in a specific region of said first storage volume by said local cache;

upon approval of said second authorization, determining if a specific extent exists in said local cache's buffer for receiving said “write” data;

upon confirmation that said specific extent exists in said local cache's buffer, storing said “write” data in said extent, wherein said extent comprises said one or more buffer blocks of said local cache's buffer;

requesting authorization to perform cache flush of the cached first storage volume data to said first online storage cloud, by said cloud array application;

upon receiving approval of said authorization, encrypting said cached first storage volume data in each of said one or more buffer blocks with a data private key, by said cloud array application;

assigning metadata comprising at least a unique identifier to each of said one or more buffer blocks, by said cloud array application;

encrypting said metadata with a metadata private key, by said cloud array application;

transmitting said one or more buffer blocks with the encrypted first storage volume data to said first online cloud storage, by said cloud array application;

creating a sequence of updates of said metadata, encrypting said sequence with said metadata private key, by said cloud array application; and

transmitting said sequence of metadata updates to said first online storage cloud, by said cloud array application.

2. The method of claim 1 further comprising compressing said cached first storage volume data in each of said one or more buffer blocks.

3. The method of claim 1 wherein said metadata further comprise one of a volume index, a region index, page index, maximum number of pages in a region, number of valid pages in a region, size of a page, file name of a page or a logical time stamp.

4. The method of claim 1 further comprising upon receiving approval of said authorization creating a copy of each of said one or more buffer blocks comprising said cached first storage volume data.

5. The method of claim 1 wherein said one or more buffer blocks with the encrypted first storage volume data are transmitted to said first online cloud storage according to a RAID-1 replication algorithm.

6. The method of claim 1 wherein said sequence of metadata is transmitted to said first online cloud storage according to a RAID-1 replication algorithm.

7. The method of claim 1 , further comprising analyzing said one or more buffer blocks to determine if data were previously written in said buffer blocks and upon determination that data were previously written in said buffer blocks, backfilling said previously written data by reading said previously written data from said online storage cloud.

8. The method of claim 1 , further comprising upon confirmation that said specific extent does not exist in said local cache, allocating a new extent for receiving said “write” data.

9. The method of claim 1 , further comprising upon confirmation that said specific extent does not exist in said local cache, freeing an existing extent for receiving said “write” data.

10. The method of claim 1 , wherein said identifying and verifying are performed by said cloud array application.

11. The method of claim 1 wherein said first host node further comprises a local storage device and said method further comprises flushing said one or more buffer blocks with said cached first storage volume data to said local storage device.

12. The method of claim 1 , further comprising acknowledging processing of said first request.

13. The method of claim 1 further comprising acknowledging completion of data replication to said first online storage cloud.

14. The method of claim 1 wherein said first online storage cloud comprises a cloud storage device and said method further comprises storing said first storage volume data in said cloud storage device.

15. The method of claim 1 , wherein said first request is entered via a block based interface.

16. A method for replicating data to one or more online storage clouds comprising:

providing a data replication cluster comprising at least a first host node and at least a first online storage cloud, wherein said first host node is connected to said first online storage cloud via a network and comprises a server, a cloud array application and a local cache and wherein said local cache comprises a buffer and a first storage volume comprising data cached in one or more buffer blocks of said local cache's buffer;

entering a first request by a user to “write” data in said first storage volume;

receiving said first request by said server;

identifying said first storage volume's internal structure and initiating processing of said first request;

verifying first authorization of said user to “write” data in said first storage volume, and upon approval of said first authorization, passing said first request to said local cache;

verifying second authorization of said user to “write” data in a specific region of said first storage volume by said local cache;

upon approval of said second authorization, determining if a specific extent exists in said local cache's buffer for receiving said “write” data;

upon confirmation that said specific extent exists in said local cache's buffer, storing said “write” data in said extent, wherein said extent comprises one or more buffer blocks of said local cache's buffer;

requesting third authorization to perform cache flush of the cached first storage volume data to said first online storage cloud;

upon receiving said third authorization, creating a copy of each of said buffer blocks with said cached first storage volume data, compressing said cached first storage volume data in each of said buffer blocks and encrypting said cached first storage volume data in each of said buffer blocks with a data private key;

assigning metadata comprising at least a unique identifier and a logical time stamp to each of said buffer blocks;

encrypting said metadata with a metadata private key;

transmitting said encrypted buffer blocks to said first online cloud storage;

creating a sequence of updates of said metadata, encrypting said sequence with said metadata private key; and

transmitting said sequence of metadata updates to said first online storage cloud.

17. A system for replicating data to one or more online storage clouds comprising:

a data replication cluster comprising at least a first host node and at least a first online storage cloud, wherein said first host node is connected to said first online storage cloud via a network and comprises a server, a cloud array application and a local cache and wherein said local cache comprises a buffer and a first storage volume comprising data cached in one or more buffer blocks of said local cache's buffer;

means for entering a first request by a user to “write” data in said first storage volume;

means for receiving said first request by said server;

means for identifying said first storage volume's internal structure;

means for initiating processing of said first request;

means for verifying first authorization of said user to “write” data in said first storage volume, and upon approval of said first authorization, passing said first request to said local cache;

means for verifying second authorization of said user to “write” data in a specific region of said first storage volume by said local cache;

means for determining if a specific extent exists in local cache's buffer for receiving said “write” data;

means for storing “write” in extent;

wherein said cloud array application is configure to request authorization to perform cache flush of the cached first storage volume data to said first online storage cloud;

wherein said cloud array application is configure to encrypt said cached first storage volume data in each of said one or more buffer blocks with a data private key;

wherein said cloud array application is configure to assign metadata comprising at least a unique identifier to each of said one or more buffer blocks;

wherein said cloud array application is configure to encrypt said metadata with a metadata private key;

wherein said cloud array application is configure to transmit said one or more buffer blocks with the encrypted first storage volume data to said first online cloud storage;

wherein said cloud array application is configure to create a sequence of updates of said metadata;

wherein said cloud array application is configure to encrypt said sequence with said metadata private key; and

wherein said cloud array application is configure to transmit said sequence of metadata updates to said first online storage cloud.

18. The system of claim 17 , wherein said means for entering a first request by a user to “write” data in said first storage volume comprise a block based interface.

19. The system of claim 17 further comprising means for analyzing said one or more buffer blocks to determine if data were previously written in said buffer blocks and means for backfilling said previously written data by reading said previously written data from said online storage cloud.

20. The system of claim 17 wherein said host node further comprises a local storage device and said system further comprises means for flushing said one or more buffer blocks with said cached first storage volume data to said local storage device.

Assignments (11)
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 Jul 29, 2014
From: TWINSTRATA, INC.
To: EMC CORPORATION
Reel/Frame 033412/0797 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 3, 2014
From: BATES, JOHN W.; ALDRED, MARK
To: TWINSTRATA, INC
Reel/Frame 033277/0347 →
Continuity (2)
Provisional Application 61148437 · Jan 30, 2009
Related Publication 20100199042A1 · Aug 5, 2010