IP Library Granted Patent US 10,095,585
Granted Patent B1
US 10,095,585 · App. 15/194,671 · Granted Oct 9, 2018

Rebuilding data on flash memory in response to a storage device failure regardless of the type of storage device that fails

Inventor: Ronald D. Proulx (Boxborough, MA)
Assignee: EMC IP Holding Company LLC
G06F11/1428G06F3/065G06F3/0619G06F3/0659G06F3/0685G06F2201/805
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,095,585
App. No.
15/194,671
Granted
Oct 9, 2018
Kind
B1
Abstract

A technique rebuilds data from a group of hard disk drives (HDDs). The technique is performed in data storage equipment and involves storing data on a group of HDDs. The group of HDDs is constructed and arranged to maintain data availability following a HDD failure. The technique further involves, after storing the data on the group of HDDs, detecting a failure of a particular HDD of the group of HDDs. The technique further involves, after detecting the failure of the particular HDD, rebuilding a particular portion of data onto a solid state drive (SSD) based on other portions of the data residing on remaining HDDs of the group of HDDs other than the particular HDD, the particular portion of the data having resided on the particular HDD that failed.

Claims (85)

1. In data storage equipment, a method of rebuilding data from a group of hard disk drives (HDDs), the method comprising:

storing data on a group of HDDs of a first storage tier, the group of HDDs being constructed and arranged to maintain data availability following a HDD failure;

after storing the data on the group of HDDs, detecting a failure of a particular HDD of the group of HDDs; and

after detecting the failure of the particular HDD, rebuilding a particular portion of data onto a solid state drive (SSD) of a second storage tier that is faster than the first storage tier based on other portions of the data residing on remaining HDDs of the group of HDDs other than the particular HDD, the particular portion of the data having resided on the particular HDD that failed;

wherein rebuilding the particular portion of data onto the SSD based on other portions of the data residing on remaining HDDs of the group of HDDs other than the particular HDD includes:

reading a first portion of the data from a first HDD of the group of HDDs, the first portion of the data being different from the particular portion of the data, and the first HDD being different from the particular HDD,

reading a second portion of the data from a second HDD of the group of HDDs, the second portion of the data being different from the particular portion of the data, and the second HDD being different from the particular HDD,

performing a reconstruction operation that reconstructs the particular portion of data from the first portion of the data and the second portion of the data, and

writing the particular portion of the data to the SSD.

2. A method as in claim 1 wherein the data storage equipment forms at least part of a data storage system which includes a spare HDD and a spare SSD; and

wherein writing includes writing the particular portion of data to the spare SSD prior to writing any of the particular portion of data onto the spare HDD.

3. A method as in claim 2 wherein the data storage equipment is constructed and arranged to manage host data on behalf of a set of host computers;

wherein the method further comprises:

promoting frequently accessed host data from the first storage tier having the group of HDDs to the second storage tier having the SSD, and

demoting infrequently accessed host data from the second storage tier to the first storage tier, the frequently access host data being more frequently accessed than the infrequently accessed host data.

4. A method as in claim 3 , further comprising:

copying the particular portion of data from the spare SSD to the spare HDD, and

after the particular portion of data is copied from the spare SSD to the spare HDD, returning the spare SSD to an unused and available state.

5. A method as in claim 4 wherein copying the particular portion of data from the spare SSD to the spare HDD includes:

prior to writing any data to the spare HDD, detecting a rebuild completion event in which the particular portion of data becomes fully restored on the spare SSD, and

in response to the rebuild completion event, writing the particular portion of data from the spare SSD to the spare HDD.

6. A method as in claim 2 wherein the data storage system includes multiple available SSDs; and

wherein rebuilding the particular portion of data onto the SSD further includes:

prior to writing the particular portion of data to the spare SSD, selecting a candidate SSD from the multiple available SSDs,

confirming that the candidate SSD has a storage capacity that is greater than or equal to a storage capacity of the particular HDD that failed, and

initiating a rebuild process to rebuild the particular portion of data upon confirming that the storage capacity of the candidate SSD is greater than or equal to the storage capacity of the particular HDD that failed.

7. A method as in claim 2 wherein the data storage system includes multiple available SSDs, each available SSD having a storage capacity which is less than a storage capacity of the particular HDD that failed; and

wherein rebuilding the particular portion of data onto the SSD further includes:

prior to writing the particular portion of data to the spare SSD, configuring the multiple available SSDs into a logical combination of SSDs, the logical combination of SSDs providing a storage capacity that is greater than or equal to the storage capacity of the particular HDD that failed and operating as the spare SSD, and

initiating a rebuild process to rebuild the particular portion of data upon configuring the multiple available SSDs into the logical combination of SSDs.

8. A method as in claim 4 wherein copying the particular portion of data from the spare SSD to the spare HDD includes:

writing at least some of the particular portion of data from the spare SSD to the HDD while the particular portion of data is being rebuilt onto the spare SSD.

9. A method as in claim 4 wherein the data storage equipment includes storage processing circuitry which is constructed and arranged to process input/output (I/O) requests from the host computers; and

wherein the method further comprises:

processing a set of I/O requests from the host computers while the particular portion of data is being rebuilt onto the spare SSD.

10. A method as in claim 4 wherein the data storage equipment includes storage processing circuitry which is constructed and arranged to process input/output (I/O) requests from the host computers; and

wherein the method further comprises:

providing data elements from the spare SSD to the set of host computers in response to a set of I/O requests from the host computers.

11. A method as in claim 10 wherein providing data elements from the spare SSD to the set of host computers includes:

in response to an I/O request from a host computer, reading a data element from the spare SSD and sending the data element to the host computer while the particular portion of data is being rebuilt onto the spare SSD.

12. A method as in claim 10 wherein providing data elements from the spare SSD to the set of host computers includes:

in response to an I/O request from a host computer, reading a data element from the spare SSD and sending the data element to the host computer while the particular portion of data is being copied from the spare SSD to the spare HDD.

13. A method as in claim 1 wherein performing the reconstruction operation includes:

performing a set of XOR operations that generate the particular portion of data from the first portion of the data and the second portion of the data.

14. Data storage equipment, comprising:

memory; and

control circuitry coupled to the memory, the memory storing instructions which, when carried out by the control circuitry, cause the control circuitry to:

store data on a group of hard disk drives (HDDs) of a first storage tier, the group of HDDs being constructed and arranged to maintain data availability following a HDD failure,

after storing the data on the group of HDDs, detect a failure of a particular HDD of the group of HDDs, and

after detecting the failure of the particular HDD, rebuild a particular portion of data onto a solid state drive (SSD) of a second storage tier that is faster than the first storage tier based on other portions of the data residing on remaining HDDs of the group of HDDs other than the particular HDD, the particular portion of the data having resided on the particular HDD that failed;

wherein the control circuitry, when rebuilding the particular portion of data onto the SSD based on other portions of the data residing on remaining HDDs of the group of HDDs other than the particular HDD, is constructed and arranged to:

read a first portion of the data from a first HDD of the group of HDDs, the first portion of the data being different from the particular portion of the data, and the first HDD being different from the particular HDD,

read a second portion of the data from a second HDD of the group of HDDs, the second portion of the data being different from the particular portion of the data, and the second HDD being different from the particular HDD,

perform a reconstruction operation that reconstructs the particular portion of data from the first portion of the data and the second portion of the data, and

write the particular portion of the data to the SSD.

15. Data storage equipment as in claim 14 wherein the data storage equipment is constructed and arranged to form at least part of a data storage system which includes a spare HDD and a spare SSD; and

wherein the control circuitry, when writing the particular portion of data, is constructed and arranged to write the particular portion of data to the spare SSD prior to writing any of the particular portion of data onto the spare HDD.

16. Data storage equipment as in claim 15 wherein the data storage system includes multiple available SSDs; and

wherein the control circuitry, when rebuilding the particular portion of data onto the SSD, is further constructed and arranged to:

prior to writing the particular portion of data, select a candidate SSD from the multiple available SSDs,

confirm that the candidate SSD has a storage capacity that is greater than or equal to a storage capacity of the HDD that failed, and

initiate a rebuild process to rebuild the particular portion of data upon confirming that the storage capacity of the candidate SSD is greater than or equal to the storage capacity of the HDD that failed.

17. Data storage equipment as in claim 16

wherein the data storage equipment further comprises a host interface which is constructed and arranged to communicate with a set of host computers, the host interface being coupled to the control circuitry; and

wherein the control circuitry is further constructed and arranged to:

manage host data on behalf of the set of host computers,

while managing host data on behalf of the set of host computers, promote frequently accessed host data from the first storage tier having the group of HDDs to the second storage tier having the SSD, and

while managing host data on behalf of the set of host computers, demote infrequently accessed host data from the second storage tier to the first storage tier, the frequently access host data being more frequently accessed than the infrequently accessed host data.

18. Data storage equipment as in claim 17 wherein the control circuitry is further constructed and arranged to:

copy the particular portion of data from the spare SSD to the spare HDD, and

after the particular portion of data is copied from the spare SSD to the spare HDD, return the spare SSD to an unused and available state.

19. Data storage equipment as in claim 18 wherein the control circuitry, when managing host data on behalf of the set of host computers, is constructed and arranged to:

in response to a first I/O request from the set of host computers, read a first data element from the spare SSD and send the first data element to the set of host computers while the particular portion of data is being rebuilt onto the spare SSD, and

in response to a second I/O request from the set of host computers, read a second data element from the spare SSD and send the second data element to the set of host computers while the particular portion of data is being copied from the spare SSD to the spare HDD.

20. Data storage equipment as in claim 14 wherein the control circuitry, when performing the reconstruction operation, is constructed and arranged to:

perform a set of XOR operations that generate the particular portion of data from the first portion of the data and the second portion of the data.

21. A computer program product having a non-transitory computer readable medium which stores a set of instructions to rebuild data from a group of hard disk drives (HDDs); the set of instructions, when carried out by computerized circuitry, causing the computerized circuitry to perform a method of:

storing data on a group of HDDs of a first storage tier, the group of HDDs being constructed and arranged to maintain data availability following a HDD failure;

after storing the data on the group of HDDs, detecting a failure of a particular HDD of the group of HDDs; and

after detecting the failure of the particular HDD, rebuilding a particular portion of data onto a solid state drive (SSD) of a second storage tier that is faster than the first storage tier based on other portions of the data residing on remaining HDDs of the group of HDDs, the particular portion of the data having resided on the particular HDD that failed;

wherein rebuilding the particular portion of data onto the SSD based on other portions of the data residing on remaining HDDs of the group of HDDs other than the particular HDD includes:

reading a first portion of the data from a first HDD of the group of HDDs, the first portion of the data being different from the particular portion of the data, and the first HDD being different from the particular HDD,

reading a second portion of the data from a second HDD of the group of HDDs, the second portion of the data being different from the particular portion of the data, and the second HDD being different from the particular HDD,

performing a reconstruction operation that reconstructs the particular portion of data from the first portion of the data and the second portion of the data, and

writing the particular portion of the data to the SSD.

Assignments (5)
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 →
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 Mar 3, 2017
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 041872/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 13, 2016
From: PROULX, RONALD D.
To: EMC CORPORATION
Reel/Frame 040009/0523 →
Cited By (2)
US 12,210,432 US 12,373,112