IP Library Granted Patent US 10,977,136
Granted Patent B2
US 10,977,136 · App. 16/553,348 · Granted Apr 13, 2021

Method and system for offloading a continuous health-check and reconstruction of data using compute acceleration devices on persistent storage devices

Inventors: Dharmesh M. Patel (Round Rock, TX); Rizwan Ali (Cedar Park, TX); Ravikanth Chaganti (Bangalore, IN)
Assignee: Dell Products L.P.
G06F11/1469G06F2201/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 10,977,136
App. No.
16/553,348
Filed
Aug 28, 2019
Granted
Apr 13, 2021
Kind
B2
Examiner
KO, CHAE M
Art Unit
2114
USPC
714/6.21
Abstract

A method for managing data includes identifying, by a compute acceleration device (CAD) of a persistent storage device, a first chunk, stored in the persistent storage device, to be health-checked using storage metadata, generating a first chunk identifier using the first chunk, making a determination that the first chunk identifier does not match a second chunk identifier stored in the storage metadata, and in response to the determination: obtaining a plurality of chunks associated with the first chunk from a plurality of persistent storage devices of a storage system, wherein the storage system comprises the persistent storage device and the plurality of persistent storage devices, regenerating the first chunk using the plurality of chunks to generate a new first chunk, storing the new first chunk in the persistent storage device, and updating the storage metadata based on storage of the new first chunk.

Claims (73)

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

identifying, by a compute acceleration device (CAD) of a persistent storage device, a first chunk, stored in the persistent storage device, to be health-checked using storage metadata;

generating a first chunk identifier using the first chunk;

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

in response to the determination:

obtaining a plurality of chunks associated with the first chunk from a plurality of persistent storage devices of a storage system, wherein the storage system comprises the persistent storage device and the plurality of persistent storage devices;

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

storing the new first chunk in the persistent storage device; and

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

2. The method of claim 1 , further comprising:

obtaining a persistent storage device failure notification of a second persistent storage device from a storage controller, wherein the storage system does not comprise the storage controller;

identifying, using the storage metadata, a second chunk associated with the second persistent storage device;

obtaining a second plurality of chunks associated with the second chunk from a second plurality of persistent storage devices;

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

storing the new second chunk in the persistent storage device; and

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

3. The method of claim 2 , wherein the persistent storage device failure notification is obtained from a storage controller, and wherein the persistent storage device failure notification specifies the second persistent storage device.

4. The method of claim 3 , wherein the persistent storage device failure notification further specifies the second chunk.

5. The method of claim 1 , wherein obtaining the plurality of chunks associated with the first chunk from the plurality of persistent storage devices comprises:

sending a request to a CAD of each persistent storage device of the plurality of persistent storage devices; and

obtaining a chunk from each CAD of each persistent storage device of the plurality of persistent storage devices after sending the request.

6. The method of claim 1 , wherein the storage metadata is stored in the CAD.

7. The method of claim 1 , wherein the storage system further comprises a plurality of data nodes, wherein each data node comprises a portion of the plurality of persistent storage devices.

8. 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:

identifying, by a compute acceleration device (CAD) of a persistent storage device, a first chunk, stored in the persistent storage device, to be health-checked using storage metadata;

generating a first chunk identifier using the first chunk;

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

in response to the determination:

obtaining a plurality of chunks associated with the first chunk from a plurality of persistent storage devices of a storage system, wherein the storage system comprises the persistent storage device and the plurality of persistent storage devices;

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

storing the new first chunk in the persistent storage device; and

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

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

obtaining a persistent storage device failure notification of a second persistent storage device from a storage controller, wherein the storage system does not comprise the storage controller;

identifying, using the storage metadata, a second chunk associated with the second persistent storage device;

obtaining a second plurality of chunks associated with the second chunk from a second plurality of persistent storage devices;

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

storing the new second chunk in the persistent storage device; and

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

10. The non-transitory computer readable medium of claim 9 , wherein the persistent storage device failure notification is obtained from a storage controller, and wherein the persistent storage device failure notification specifies the second persistent storage device.

11. The non-transitory computer readable medium of claim 10 , wherein the persistent storage device failure notification further specifies the second chunk.

12. The non-transitory computer readable medium of claim 8 , wherein obtaining the plurality of chunks associated with the first chunk from the plurality of persistent storage devices comprises:

sending a request to a CAD of each persistent storage device of the plurality of persistent storage devices; and

obtaining a chunk from each CAD of each persistent storage device of the plurality of persistent storage devices after sending the request.

13. The non-transitory computer readable medium of claim 8 , wherein the storage metadata is stored in the CAD.

14. The non-transitory computer readable medium of claim 8 , wherein the storage system further comprises a plurality of data nodes, wherein each data node comprises a portion of the plurality of persistent storage devices.

15. A data cluster, comprising:

a storage controller;

a persistent storage device;

a plurality of persistent storage devices; and

a compute acceleration device (CAD) operating on the persistent storage device,

wherein the first storage controller is programmed to:

identify, by the CAD, a first chunk, stored in the persistent storage device, to be health-checked using storage metadata;

generate a first chunk identifier using the first chunk;

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

in response to the determination:

obtain a plurality of chunks associated with the first chunk from the plurality of persistent storage devices of a storage system, wherein the storage system comprises the persistent storage device and the plurality of persistent storage devices;

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

store the new first chunk in the persistent storage device; and

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

16. The data cluster of claim 15 , wherein the CAD is further programmed to:

obtain a persistent storage device failure notification of a second persistent storage device from a storage controller, wherein the storage system does not comprise the storage controller;

identify, using the storage metadata, a second chunk associated with the second persistent storage device;

obtain a second plurality of chunks associated with the second chunk from a second plurality of persistent storage devices;

regenerate the second chunk using the second plurality of chunks to generate a new second chunk;

store the new second chunk in the persistent storage device; and

update the storage metadata based on the storage of the new second chunk.

17. The data cluster of claim 16 , wherein the persistent storage device failure notification is obtained from a storage controller, and wherein the persistent storage device failure notification specifies the second persistent storage device.

18. The data cluster of claim 17 , wherein the persistent storage device failure notification further specifies the second chunk.

19. The data cluster of claim 17 , wherein obtaining the plurality of chunks associated with the first chunk from the plurality of persistent storage devices comprises:

sending a request to a CAD of each persistent storage device of the plurality of persistent storage devices; and

obtaining a chunk from each CAD of each persistent storage device of the plurality of persistent storage devices after sending the request.

20. The data cluster of claim 15 , wherein the storage system further comprises a plurality of data nodes, wherein each data node comprises a portion of the plurality of persistent storage devices.

Assignments (9)
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 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 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.; CHAGANTI, RAVIKANTH; ALI, RIZWAN
To: DELL PRODUCTS L.P.
Reel/Frame 051113/0435 →
Continuity (1)
Related Publication 20210064481A1 · Mar 4, 2021
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