IP Library Granted Patent US 11,403,182
Granted Patent B2
US 11,403,182 · App. 16/553,336 · Granted Aug 2, 2022

Method and system for any-point in time recovery within traditional storage system via a continuous data protection interceptor

Inventors: Dharmesh M. Patel (Round Rock, TX); Rizwan Ali (Cedar Park, TX); Ravikanth Chaganti (Bangalore, IN)
Assignee: DELL PRODUCTS L.P.
G06F11/1453G06F3/065G06F3/067G06F3/0619G06F3/0641G06F11/1435
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,403,182
App. No.
16/553,336
Filed
Aug 28, 2019
Granted
Aug 2, 2022
Kind
B2
Art Unit
2183
USPC
711/162
Abstract

A method for managing data includes obtaining, by a first storage controller, a write request associated with an object from a host, applying an erasure coding procedure to data associated with the write request to obtain a plurality of data chunks and at least one parity chunk, wherein object comprises the data, deduplicating the plurality of data chunks to obtain a plurality of deduplicated data chunks, generating storage metadata associated with the plurality of data chunks and the at least one parity chunk, generating an object entry associated with the plurality of data chunks, storing, across a first plurality of persistent storage devices, the plurality of deduplicated data chunks and the at least one parity chunk, and storing, via a continuous data protection interceptor executing on the first storage controller, in at least one of a second plurality of persistent storage devices the object entry.

Claims (94)

1. A method for managing data, the method comprising:

obtaining, by a first storage controller, a write request associated with an object from a host;

applying an erasure coding procedure to data associated with the write request to obtain a plurality of data chunks and at least one parity chunk, wherein the object comprises the data;

deduplicating the plurality of data chunks to obtain a plurality of deduplicated data chunks;

generating storage metadata associated with the plurality of data chunks and the at least one parity chunk,

wherein the storage metadata comprises a metadata slice entry,

wherein the metadata slice entry comprises chunk metadata of the metadata slice entry,

wherein the chunk metadata of the metadata slice entry specifies storage locations of the plurality of data chunks and the at least one parity chunk;

generating an object entry associated with a second plurality of data chunks,

wherein the object entry specifies at least an object identifier (ID) associated with the object, a timestamp, and chunk metadata of the object entry,

wherein the chunk metadata of the object entry comprises at least one chunk identifier for at least one of the second plurality of data chunks,

wherein the at least one chunk identifier uniquely identifies the at least one of the second plurality of data chunks,

wherein the plurality of data chunks is at least a portion of the second plurality of data chunks, and

wherein the second plurality of data chunks corresponds to a point in time associated with the timestamp;

storing, across a first plurality of persistent storage devices, the plurality of deduplicated data chunks and the at least one parity chunk; and

storing, via the first storage controller, in at least one of a second plurality of persistent storage devices the object entry.

2. The method of claim 1 , further comprising:

sending a copy of the storage metadata and a copy of the object entry to a second storage controller; and

sending a copy of the storage metadata and a copy of the object entry to at least one of the second plurality of persistent storage devices.

3. The method of claim 1 , further comprising:

obtaining an object replay request;

identifying an object associated with the object replay request;

obtaining at least one object entry associated with the object from at least one of the second plurality of persistent storage devices;

identifying the second plurality of data chunks associated with the object using at least a portion of the object replay request and the at least one object entry; and

performing an object regeneration using the second plurality of data chunks.

4. The method of claim 3 , wherein the object replay request specifies a time stamp and an object identifier (ID) that identifies the object.

5. The method of claim 3 , wherein performing the object regeneration using the second plurality of data chunks comprises:

identifying a location of at least one of the second plurality of data chunks using the storage metadata;

obtaining the at least one of the second plurality of data chunks from the location, wherein the location is in one of the first plurality of persistent storage devices.

6. The method of claim 1 , wherein the first plurality of persistent storage devices and the second plurality of persistent storage devices are operatively connected to the first storage controller and the second storage controller.

7. A non-transitory computer readable medium comprising computer readable program code, which when executed by a computer processor enables the computer processor to perform a method for managing data, the method comprising:

obtaining, by a first storage controller, a write request associated with an object from a host;

applying an erasure coding procedure to data associated with the write request to obtain a plurality of data chunks and at least one parity chunk, wherein the object comprises the data;

deduplicating the plurality of data chunks to obtain a plurality of deduplicated data chunks;

generating storage metadata associated with the plurality of data chunks and the at least one parity chunk,

wherein the storage metadata comprises a metadata slice entry,

wherein the metadata slice entry comprises chunk metadata of the metadata slice entry,

wherein the chunk metadata of the metadata slice entry specifies storage locations of the plurality of data chunks and the at least one parity chunk;

generating an object entry associated with a second plurality of data chunks,

wherein the object entry specifies at least an object identifier (ID) associated with the object, a timestamp, and chunk metadata of the object entry,

wherein the chunk metadata of the object entry comprises at least one chunk identifier for at least one of the second plurality of data chunks,

wherein the at least one chunk identifier uniquely identifies the at least one of the second plurality of data chunks,

wherein the plurality of data chunks is at least a portion of the second plurality of data chunks, and

wherein the second plurality of data chunks corresponds to a point in time associated with the timestamp;

storing, across a first plurality of persistent storage devices, the plurality of deduplicated data chunks and the at least one parity chunk; and

storing, via the first storage controller, in at least one of a second plurality of persistent storage devices the object entry.

8. The non-transitory computer readable medium of claim 7 , further comprising:

sending a copy of the storage metadata and a copy of the object entry to a second storage controller; and

sending a copy of the storage metadata and a copy of the object entry to at least one of the second plurality of persistent storage devices.

9. The non-transitory computer readable medium of claim 7 , further comprising:

obtaining an object replay request;

identifying an object associated with the object replay request;

obtaining at least one object entry associated with the object from at least one of the second plurality of persistent storage devices;

identifying the second plurality of data chunks associated with the object using at least a portion of the object replay request and the at least one object entry; and

performing an object regeneration using the second plurality of data chunks.

10. The non-transitory computer readable medium of claim 9 , wherein the object replay request specifies a time stamp and an object identifier (ID) that identifies the object.

11. The non-transitory computer readable medium of claim 9 , wherein performing the object regeneration using the second plurality of data chunks comprises:

identifying a location of at least one of the second plurality of data chunks using the storage metadata;

obtaining the at least one of the second plurality of data chunks from the location, wherein the location is in one of the first plurality of persistent storage devices.

12. The non-transitory computer readable medium of claim 7 , wherein the first plurality of persistent storage devices and the second plurality of persistent storage devices are operatively connected to the first storage controller and the second storage controller.

13. A data cluster, comprising:

a first storage controller;

a second storage controller;

a first plurality of persistent storage devices; and

a second plurality of persistent storage devices,

wherein the first storage controller is programmed to:

obtain a write request associated with an object from a host;

apply an erasure coding procedure to data associated with the write request to obtain a plurality of data chunks and at least one parity chunk, wherein the object comprises the data;

deduplicate the plurality of data chunks to obtain a plurality of deduplicated data chunks;

generate storage metadata associated with the plurality of data chunks and the at least one parity chunk,

wherein the storage metadata comprises a metadata slice entry,

wherein the metadata slice entry comprises chunk metadata of the metadata slice entry,

wherein the chunk metadata of the metadata slice entry specifies storage locations of the plurality of data chunks and the at least one parity chunk;

generate an object entry associated with a second plurality of data chunks,

wherein the object entry specifies at least an object identifier (ID) associated with the object, a timestamp, and chunk metadata of the object entry,

wherein the chunk metadata of the object entry comprises at least one chunk identifier for at least one of the second plurality of data chunks,

wherein the at least one chunk identifier uniquely identifies the at least one of the second plurality of data chunks,

wherein the plurality of data chunks is at least a portion of the second plurality of data chunks, and

wherein the second plurality of data chunks corresponds to a point in time associated with the timestamp;

store, across the first plurality of persistent storage devices, the plurality of deduplicated data chunks and the at least one parity chunk; and

store the object entry in at least one of the second plurality of persistent storage devices.

14. The data cluster of claim 13 , wherein the first storage controller is further programmed to:

send a copy of the storage metadata and a copy of the object entry to the second storage controller; and

send a copy of the storage metadata and a copy of the object entry to at least one of the second plurality of persistent storage devices.

15. The data cluster of claim 13 , wherein the first storage controller is further programmed to:

obtain an object replay request;

identify an object associated with the object replay request;

obtain at least one object entry associated with the object from at least one of the second plurality of persistent storage devices;

identify the second plurality of data chunks associated with the object using at least a portion of the object replay request and the at least one object entry; and

perform an object regeneration using the second plurality of data chunks.

16. The data cluster of claim 15 , wherein performing the object regeneration using the second plurality of data chunks comprises:

identifying a location of at least one of the second plurality of data chunks using the storage metadata;

obtaining the at least one of the second plurality of data chunks from the location, wherein the location is in one of the first plurality of persistent storage devices.

17. The data cluster of claim 15 , wherein the object replay request specifies a time stamp and an object identifier (ID) that identifies the object.

Assignments (9)
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 (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 (051302/0528) 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; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.); SECUREWORKS CORP.
Reel/Frame 060438/0593 →
RELEASE OF SECURITY INTEREST AT REEL 051449 FRAME 0728 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
Reel/Frame 058002/0010 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 7, 2020
From: PATEL, DHARMESH M.; ALI, RIZWAN; CHAGANTI, RAVIKANTH
To: DELL PRODUCTS L.P.
Reel/Frame 051442/0608 →
SECURITY AGREEMENT Recorded Dec 31, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 051449/0728 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Dec 16, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 051302/0528 →
Continuity (1)
Related Publication 20210064477A1 · Mar 4, 2021