IP Library Granted Patent US 11,347,596
Granted Patent B2
US 11,347,596 · App. 16/724,803 · Granted May 31, 2022

Preliminary data protection using composite copies of data in a data storage system

Inventors: Mikhail Danilov (Saint Petersburg, RU); Konstantin Buinov (Prague, CZ)
Assignee: EMC IP HOLDING COMPANY LLC
G06F11/1451G06F3/065G06F3/067G06F3/0619G06F3/0638G06F3/0683G06F11/1448H03M13/154G06F2201/82
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 11,347,596
App. No.
16/724,803
Granted
May 31, 2022
Kind
B2
Abstract

The disclosed technology generally describes a preliminary (e.g., triple mirroring) data protection scheme that operates by writing data as redundant (e.g., three) composite copies made up of copies of data fragments to different nodes of a data storage system. The data fragments are distributed such that any two nodes can fail yet a complete set of data remains among the remaining data fragments. Later, erasure encoding creates redundant coding fragments that are written to the nodes of a data storage system in a distributed manner along with one copy of the data fragments, such that any two nodes can fail but the complete data can still be recovered. Redundant data fragments are then deleted.

Claims (48)

1. A system, comprising:

a processor, and

a memory that stores executable instructions that, when executed by the processor, facilitate performance of operations, the operations comprising:

writing a redundant number of composite chunk copies comprising data fragments of a data chunk of stored data, to respective nodes of a node cluster, in which no identical data fragments are written to a common node;

performing erasure coding on data of the stored data corresponding to the data chunk, to obtain coding fragments; and

writing the coding fragments to respective storage devices of the node cluster, wherein the redundant number of the composite chunk copies corresponds to a level of protection selected to be provided to the stored data, and wherein the writing the coding fragments to the node cluster comprises:

selecting the data fragments of one composite chunk copy as a main copy of the data fragments,

determining a group of nodes that comprise greater than or equal to a minimum number of data fragments of the main copy, and

storing respective ones of the coding fragments to respective nodes of the group of nodes.

2. The system of claim 1 , wherein the minimum number of data fragments determined based on the number of the composite chunk copies, and wherein the writing the coding fragments to the respective storage devices of the node cluster comprises distributing the coding fragments to avoid having two coding fragments written to a same node.

3. The system of claim 1 , wherein the operations further comprise deleting one less than the redundant number of composite chunk copies to leave a single composite chunk copy having the data fragments distributed among the nodes.

4. The system of claim 1 , wherein the level of protection corresponds to a level of data mirroring.

5. The system of claim 1 , wherein the minimum number of data fragments comprises a number of data fragments is fewer than the number of the composite chunk copies.

6. The system of claim 5 , wherein the minimum number of data fragments corresponds to a number of data fragments that is one fewer than the number of the composite chunk copies.

7. The system of claim 1 , wherein the operations further comprise processing the data chunk into a composite chunk comprising the data fragments.

8. The system of claim 1 , wherein the operations further comprise allocating blocks on the nodes for the data fragments, and wherein the writing the redundant number of composite chunk copies comprises, selecting, for a data fragment, the redundant number of blocks allocated on different nodes as selected blocks for the data fragment, and storing a copy of the data fragment to the selected blocks.

9. The system of claim 1 , wherein the operations further comprise persisting the data fragments and the coding fragments to non-volatile storage.

10. The system of claim 1 , wherein the redundant number of the composite chunk copies equals three, and wherein the minimum number of data fragments corresponds to two data fragments.

11. The system of claim 1 , wherein the node cluster comprises at least eight nodes.

12. A method, comprising:

obtaining, by a system comprising a processor, data corresponding to a data chunk;

writing a first number of composite chunk copies comprising the first number of copies of data fragments of the data to nodes of a node cluster, in which no identical data fragments are written to a common node;

performing erasure coding on the data to obtain coding fragments and data fragments; and

writing the coding fragments to the node cluster

wherein the first number of the composite chunk copies corresponds to a level of protection selected to be provided to the stored data, and wherein the writing the coding fragments to the node cluster comprises:

selecting the data fragments of one composite chunk copy as a main copy of the data fragments,

based on the first number, determining a group of nodes that comprise greater than or equal to a second number of data fragments of the main copy, and

storing respective ones of the coding fragments to respective nodes of the group of nodes.

13. The method of claim 12 , wherein the writing the coding fragments to the storage devices of the node cluster can comprise distributing the coding fragments to avoid having two coding fragments maintained on a same node.

14. The method of claim 12 , wherein the writing the first number of composite chunk copies comprises:

allocating blocks on the nodes for the copies of the data fragments,

selecting, for a selected data fragment, the first number of blocks allocated on different nodes as the first number of selected blocks for the data fragment, and

storing the first number of copies of the selected data fragment to the three selected blocks.

15. The method of claim 12 , wherein the second number corresponds to a minimum number of data fragments of the main copy.

16. The method of claim 12 , further comprising persisting one of the composite copies and the coding fragments to non-volatile storage.

17. The method of claim 12 , further comprising deleting all but a single composite chunk copy comprising the data fragments distributed among the nodes.

18. A non-transitory machine-readable medium, comprising executable instructions that, when executed by a processor, facilitate performance of operations, the operations comprising:

processing data corresponding to a data chunk into data fragments;

allocating, on nodes of a data storage system, a first number of storage blocks per data fragment corresponding to a degree of data mirroring to provide to data of the data storage system;

selecting, per data fragment, the second number of selected storage blocks corresponding to the first number, and writing the second number of copies of the data fragment to the selected storage blocks;

determining a main composite copy comprising a copy of the data fragments of the data chunk distributed across the nodes;

processing data corresponding to the data chunk into coding fragments;

determining a group of nodes for which the main composite copy does not have two data fragments maintained thereon; and

writing the coding fragments to the group of nodes, in which respective coding fragments are written to respective nodes of the group of nodes, wherein the writing the coding fragments to the node cluster comprises:

determining a group of nodes that comprise greater than or equal to a minimum number of data fragments of the copy of the data fragments, and

storing respective ones of the coding fragments to respective nodes of the group of nodes.

19. The non-transitory machine-readable medium of claim 18 , wherein the operations further comprise deleting a third number of composite chunk copies to leave a single composite chunk copy having the data fragments distributed among the nodes.

20. The non-transitory machine-readable medium of claim 18 , wherein the operations further comprise persisting the main composite copy and the coding fragments, to non-volatile storage.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
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 (052216/0758) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0680 →
RELEASE OF SECURITY INTEREST AF REEL 052243 FRAME 0773 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0152 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
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 26, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052243/0773 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Mar 24, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052216/0758 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 23, 2019
From: DANILOV, MIKHAIL; BUINOV, KONSTANTIN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 051354/0621 →