IP Library Granted Patent US 10,852,989
Granted Patent B1
US 10,852,989 · App. 16/553,322 · Granted Dec 1, 2020

Method and system for offloading a continuous health-check and reconstruction of data in a data cluster

Inventors: Dharmesh M. Patel (Round Rock, TX); Rizwan Ali (Cedar Park, TX); Ravikanth Chaganti (Bangalore, IN)
Assignee: Dell Products L.P.
G06F3/0653G06F3/0614G06F3/0641G06F3/0652G06F3/0659G06F3/0683
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,852,989
App. No.
16/553,322
Filed
Aug 28, 2019
Granted
Dec 1, 2020
Kind
B1
Examiner
YU, JAE UN
Art Unit
2135
USPC
711/154
Abstract

A method for managing data includes obtaining, by a storage controller, data from a host, applying an erasure coding procedure to the data to obtain a plurality of data chunks and at least one parity chunk, 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, storing, across a plurality of persistent storage devices, the plurality of deduplicated data chunks and the at least one parity chunk, wherein the plurality of persistent storage devices is operatively connected to the storage controller and a second storage controller, storing the storage metadata in the storage controller, and sending a copy of the storage metadata to the second storage controller.

Claims (84)

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

obtaining, by a storage controller, data from a host;

applying an erasure coding procedure to the data to obtain a plurality of data chunks and at least one parity chunk;

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;

storing, across a plurality of persistent storage devices, the plurality of deduplicated data chunks and the at least one parity chunk, wherein the plurality of persistent storage devices is operatively connected to the storage controller and a second storage controller;

storing the storage metadata in the storage controller; and

sending a copy of the storage metadata to the second storage controller.

2. The method of claim 1 , further comprising:

identifying, by the storage controller, a state of the second storage controller;

making a first determination that the second controller is not in a functioning state;

initiating, in response to the first determination, a health-check on at least one chunk in a first persistent storage device assigned to the second storage controller, wherein the first persistent storage device is one of the plurality of persistent storage devices.

3. The method of claim 2 , wherein initiating the health-check on the at least one chunk comprises:

obtaining a first chunk from the first persistent storage device;

generating a first chunk identifier using the first chunk;

making a second determination that the first chunk identifier does not match a second chunk identifier stored in the storage metadata; and

in response to the second determination:

obtaining a plurality of chunks associated with the first chunk;

regenerating the first chunk using the plurality of chunks to generate a new first chunk;

storing the new first chunk in a second persistent storage device of the plurality of persistent storage devices;

updating the storage metadata based on storage of the new first chunk.

4. The method of claim 3 , wherein the second persistent storage device is assigned to the first storage controller.

5. The method of claim 3 , wherein updating the storage metadata comprises:

updating the second chunk identifier with a third chunk identifier of the new first chunk; and

updating a storage location of the first chunk with a storage location of the new first chunk.

6. The method of claim 1 , wherein the storage metadata is stored in memory of the first storage controller.

7. The method of claim 1 , wherein a first subset of the plurality of persistent storage devices is assigned to the first storage controller for health-checking and wherein a second subset of the plurality of persistent storage devices is assigned to the second storage controller for health-checking.

8. The method of claim 7 , wherein a first portion of the deduplicated data chunks are stored in the first subset and a second portion of the deduplicated data chunks are stored in the second subset.

9. 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 storage controller, data from a host;

applying an erasure coding procedure to the data to obtain a plurality of data chunks and at least one parity chunk;

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;

storing, across a plurality of persistent storage devices, the plurality of deduplicated data chunks and the at least one parity chunk, wherein the plurality of persistent storage devices is operatively connected to the storage controller and a second storage controller;

storing the storage metadata in the storage controller; and

sending a copy of the storage metadata to the second storage controller.

10. The non-transitory computer readable medium of claim 9 , the method further comprising:

identifying, by the storage controller, a state of the second storage controller;

making a first determination that the second controller is not in a functioning state;

initiating, in response to the first determination, a health-check on at least one chunk in a first persistent storage device assigned to the second storage controller, wherein the first persistent storage device is one of the plurality of persistent storage devices.

11. The non-transitory computer readable medium of claim 10 , wherein initiating the health-check on the at least one chunk comprises:

obtaining a first chunk from the first persistent storage device;

generating a first chunk identifier using the first chunk;

making a second determination that the first chunk identifier does not match a second chunk identifier stored in the storage metadata; and

in response to the second determination:

obtaining a plurality of chunks associated with the first chunk;

regenerating the first chunk using the plurality of chunks to generate a new first chunk;

storing the new first chunk in a second persistent storage device of the plurality of persistent storage devices;

updating the storage metadata based on storage of the new first chunk.

12. The non-transitory computer readable medium of claim 11 , wherein the second persistent storage device is assigned to the first storage controller.

13. The non-transitory computer readable medium of claim 11 , wherein updating the storage metadata comprises:

updating the second chunk identifier with a third chunk identifier of the new first chunk; and

updating a storage location of the first chunk with a storage location of the new first chunk.

14. The non-transitory computer readable medium of claim 9 , wherein the storage metadata is stored in memory of the first storage controller.

15. The non-transitory computer readable medium of claim 9 , wherein a first subset of the plurality of persistent storage devices is assigned to the first storage controller for health-checking and wherein a second subset of the plurality of persistent storage devices is assigned to the second storage controller for health-checking.

16. The non-transitory computer readable medium of claim 15 , wherein a first portion of the deduplicated data chunks are stored in the first subset and a second portion of the deduplicated data chunks are stored in the second subset.

17. A data cluster, comprising:

a first storage controller;

a second storage controller; and

a plurality of persistent storage devices,

wherein the first storage controller is programmed to:

obtain data from a host;

apply an erasure coding procedure to the data to obtain a plurality of data chunks and at least one parity chunk;

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;

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

store the storage metadata in the first storage controller; and

send a copy of the storage metadata to the second storage controller.

18. The data cluster of claim 17 , wherein the storage controller is further programmed to:

identify a state of the second storage controller;

make a first determination that the second controller is not in a functioning state;

initiate, in response to the first determination, a health-check on at least one chunk in a first persistent storage device assigned to the second storage controller, wherein the first persistent storage device is one of the plurality of persistent storage devices.

19. The data cluster of claim 18 , wherein initiate the health-check on the at least one chunk comprises:

obtaining a first chunk from the first persistent storage device;

generating a first chunk identifier using the first chunk;

making a second determination that the first chunk identifier does not match a second chunk identifier stored in the storage metadata; and

in response to the second determination:

obtaining a plurality of chunks associated with the first chunk;

regenerating the first chunk using the plurality of chunks to generate a new first chunk;

storing the new first chunk in a second persistent storage device of the plurality of persistent storage devices;

updating the storage metadata based on storage of the new first chunk.

20. The data cluster of claim 17 ,

wherein a first subset of the plurality of persistent storage devices is assigned to the first storage controller for health-checking and wherein a second subset of the plurality of persistent storage devices is assigned to the second storage controller for health-checking, and

wherein a first portion of the deduplicated data chunks are stored in the first subset and a second portion of the deduplicated data chunks are stored in the second subset.

Assignments (10)
CORRECTIVE ASSIGNMENT TO CORRECT THE APPLICATION NUMBER 16553332 PREVIOUSLY RECORDED ON REEL 051113 FRAME 0428. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded May 8, 2023
From: PATEL, DHARMESH; ALI, RIZWAN; CHAGANTI, RAVIKANTH
To: DELL PRODUCTS L.P.
Reel/Frame 063572/0555 →
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 (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 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 26, 2019
From: PATEL, DHARMESH M.; ALI, RIZWAN; CHAGANTI, RAVIKANTH
To: DELL PRODUCTS L.P.
Reel/Frame 051113/0428 →
Cited By (6)
US 12,386,542 US 12,413,243 US 12,430,056 US 12,474,852 US 12,498,869 US 12,687,967