IP Library Granted Patent US 11,592,994
Granted Patent B2
US 11,592,994 · App. 17/083,933 · Granted Feb 28, 2023

Providing preferential treatment to metadata over user data

Inventors: Shuyu Lee (Acton, MA); Steven A. Morley (Mendon, MA); Vamsi K. Vankamamidi (Hopkinton, MA)
Assignee: EMC IP Holding Company LLC
G06F3/0619G06F3/065G06F3/0689
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,592,994
App. No.
17/083,933
Granted
Feb 28, 2023
Kind
B2
Abstract

A technique provides preferential treatment to metadata over user data when protecting data in a mapped-RAID system. The technique involves generating metadata based on user data, storing the metadata in mirrored storage of the mapped-RAID system (e.g., 2-way mirrored storage), and storing the user data in non-mirrored storage of the mapped-RAID system (e.g., writing user data with parity in accordance with RAID 6). The mapped-RAID system provides reliability preference toward maintaining the metadata over maintaining the user data while the metadata and the user data are stored within the mapped-RAID system. Accordingly, the technique is able to concurrently provide high reliability and high storage efficiency.

Claims (103)

1. A method of protecting data in a mapped-RAID (Redundant Array of Independent Disks) system, the method comprising:

generating metadata based on user data;

storing the metadata in mirrored storage of the mapped-RAID system;

storing the user data in non-mirrored storage of the mapped-RAID system, the mapped-RAID system providing reliability preference toward maintaining the metadata over maintaining the user data while the metadata and the user data are stored within the mapped-RAID system;

wherein the mapped-RAID system includes storage segments provided by a plurality of storage devices;

wherein storing the metadata in the mirrored storage of the mapped-RAID system includes:

writing multiple copies of the metadata into the storage segments of the mapped-RAID system; and

wherein storing the user data in the non-mirrored storage of the mapped-RAID system includes:

writing the user data with parity into the storage segments of the mapped-RAID system; and

wherein the method further comprises:

monitoring a respective uncorrectable bit error rate (UBER) for each storage device of the plurality of storage devices,

relocating metadata stored in a particular storage device when the respective UBER for the particular storage device satisfies a first set of relocation criteria that includes a first predefined UBER threshold, and

relocating user data stored in the particular storage device when the respective UBER for the particular storage device satisfies a second set of relocation criteria that includes a second predefined UBER threshold that is higher than the first predefined UBER threshold.

2. A method as in claim 1 wherein writing the multiple copies of the metadata into the storage segments includes:

writing a first copy of the metadata into a first set of storage segments and a second copy of the metadata into a second set of storage segments, the first set of storage segments and the second set of storage segments forming 2-way mirrored storage; and

wherein writing the user data with parity into the storage segments includes:

generating parity data from the user data, and

writing the user data and the parity data as a set of stripes into a third set of storage segments, the third set of storage segments providing, as the non-mirrored storage, N+X redundancy that supports full reconstruction of the user data in response to a storage device failure in which N+X is the total number of storage devices that store each stripe, N is the number of storage devices that store user data of each stripe, X is the number of storage devices that store parity data of each stripe, and X is at least 1.

3. A method as in claim 2 wherein writing the user data and the parity data as the set of stripes into the third set of storage segments includes:

storing the user data and the parity data within the third set of storage segments in accordance with RAID 6 where X equals 2.

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

in response to a storage device failure, rebuilding the metadata ahead of rebuilding the user data.

5. A method as in claim 4 wherein rebuilding the metadata ahead of rebuilding the user data includes:

rebuilding all metadata that was lost due to the storage device failure to fully restore the multiple copies of the metadata within the storage segments of the mapped-RAID system, and

after rebuilding all metadata that was lost due to the storage device failure is complete, rebuilding user data with parity that was lost due to the storage device failure to fully restore the user data with parity within the storage segments of the mapped-RAID system.

6. A method as in claim 1 , further comprising:

setting a priority for performing host input/output (I/O) operations that access the user data to a first priority level,

setting a priority for providing a set of storage services to a second priority level that is lower than the first priority level, and

setting a priority for rebuilding the metadata in response to a storage device failure to a third priority level that is higher than the second priority level.

7. A method as in claim 6 , further comprising:

setting a priority for rebuilding the user data in response to the storage device failure to a fourth priority level, the fourth priority level being based on the current load amount for the host I/O operations.

8. A method as in claim 1 wherein the plurality of storage devices is configured into a user data fault domain having a first number of storage devices and a metadata fault domain having a second number of storage devices that is less than the first number of storage devices; and

wherein writing the multiple copies of the metadata into the storage segments of the mapped-RAID system includes:

storing the multiple copies of the metadata only within the metadata fault domain; and

wherein writing the user data with parity into the storage segments of the mapped-RAID system includes:

storing the user data and parity only within the user data fault domain.

9. A method as in claim 8 , further comprising:

during a setup time period which is prior to storing the metadata and prior to storing the user data, configuring the plurality of storage devices into the user data fault domain having the first number of storage devices and the metadata fault domain having the second number of storage devices, the second number of storage devices being one fourth of the first number of storage devices.

10. A method as in claim 1 wherein each storage device has a prescribed wear level; and

wherein the method further comprises:

during a setup time period prior to storing the metadata and prior storing the metadata, (i) setting the first predefined UBER threshold to be A % of the prescribed wear level of the particular storage device as one of the first set of relocation criteria, and (ii) setting the second predefined UBER threshold to be B % of the prescribed wear level of the particular storage device as one of the second set of relocation criteria, where A is lower than B.

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

generate metadata based on user data,

store the metadata in mirrored storage of a mapped-RAID (Redundant Array of Independent Disks) system, and

store the user data in non-mirrored storage of the mapped-RAID system, the mapped-RAID system providing reliability preference toward maintaining the metadata over maintaining the user data while the metadata and the user data are stored within the mapped-RAID system;

wherein the mapped-RAID system includes storage segments provided by a plurality of storage devices;

wherein storing the metadata in the mirrored storage of the mapped-RAID system includes:

writing multiple copies of the metadata into the storage segments of the mapped-RAID system; and

wherein storing the user data in the non-mirrored storage of the mapped-RAID system includes:

writing the user data with parity into the storage segments of the mapped-RAID system; and

wherein the control circuitry is further constructed and arranged to:

monitor a respective uncorrectable bit error rate (UBER) for each storage device of the plurality of storage devices,

relocate metadata stored in a particular storage device when the respective UBER for the particular storage device satisfies a first set of relocation criteria that includes a first predefined UBER threshold, and

relocate user data stored in the particular storage device when the respective UBER for the particular storage device satisfies a second set of relocation criteria that includes a second predefined UBER threshold that is higher than the first predefined UBER threshold.

12. A computer program product having a non-transitory computer readable medium which stores a set of instructions to protect data in a mapped-RAID (Redundant Array of Independent Disks) system; the set of instructions, when carried out by computerized circuitry, causing the computerized circuitry to perform a method of:

generating metadata based on user data;

storing the metadata in mirrored storage of the mapped-RAID system; and

storing the user data in non-mirrored storage of the mapped-RAID system;

wherein the mapped-RAID system includes storage segments provided by a plurality of storage devices;

wherein storing the metadata in the mirrored storage of the mapped-RAID system includes:

writing multiple copies of the metadata into the storage segments of the mapped-RAID system; and

wherein storing the user data in the non-mirrored storage of the mapped-RAID system includes:

writing the user data with parity into the storage segments of the mapped-RAID system; and

wherein the method further comprises:

monitoring a respective uncorrectable bit error rate (UBER) for each storage device of the plurality of storage devices,

relocating metadata stored in a particular storage device when the respective UBER for the particular storage device satisfies a first set of relocation criteria that includes a first predefined UBER threshold, and

relocating user data stored in the particular storage device when the respective UBER for the particular storage device satisfies a second set of relocation criteria that includes a second predefined UBER threshold that is higher than the first predefined UBER threshold.

13. A computer program product as in claim 12 wherein writing the multiple copies of the metadata into the storage segments includes:

writing a first copy of the metadata into a first set of storage segments and a second copy of the metadata into a second set of storage segments, the first set of storage segments and the second set of storage segments forming 2-way mirrored storage; and

wherein writing the user data with parity into the storage segments includes:

generating parity data from the user data, and

writing the user data and the parity data as a set of stripes into a third set of storage segments, the third set of storage segments providing, as the non-mirrored storage, N+X redundancy that enables full reconstruction of the user data in response to a storage device failure in which N+X is the total number of storage devices that store each stripe, N is the number of storage devices that store user data of each stripe, X is the number of storage devices that store parity data of each stripe, and X is at least 1.

14. A computer program product as in claim 13 wherein the method further comprises:

in response to a storage device failure, rebuilding the metadata ahead of rebuilding the user data.

15. A computer program product as in claim 14 wherein the method further comprises:

setting a priority for performing host input/output (I/O) operations that access the user data to a first priority level, and

setting a priority for providing a set of storage services to a second priority level that is lower than the first priority level;

wherein rebuilding the metadata ahead of rebuilding the user data includes:

setting a priority for rebuilding the metadata in response to a storage device failure to a third priority level that is higher than the second priority level, and

setting a priority for rebuilding the user data in response to the storage device failure to a fourth priority level the fourth priority level being based on the current load amount for the host I/O operations.

16. A computer program product as in claim 15 wherein the plurality of storage devices is configured into a user data fault domain having a first number of storage devices and a metadata fault domain having a second number of storage devices that is less than the first number of storage devices; and

wherein writing the first copy of the metadata into the first set of storage segments and the second copy of the metadata into the second set of storage segments includes:

storing the first and second copies of the metadata only within the metadata fault domain; and

wherein writing the user data and the parity data as the set of stripes into the third set of storage segments includes:

storing the user data and the parity data only within the user data fault domain.

17. Data storage equipment as in claim 11 wherein writing the multiple copies of the metadata into the storage segments includes:

writing a first copy of the metadata into a first set of storage segments and a second copy of the metadata into a second set of storage segments, the first set of storage segments and the second set of storage segments forming 2-way mirrored storage; and

wherein writing the user data with parity into the storage segments includes:

generating parity data from the user data, and

writing the user data and the parity data as a set of stripes into a third set of storage segments, the third set of storage segments providing, as the non-mirrored storage, N+X redundancy that supports full reconstruction of the user data in response to a storage device failure in which N+X is the total number of storage devices that store each stripe, N is the number of storage devices that store user data of each stripe, X is the number of storage devices that store parity data of each stripe, and X is at least 1.

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

in response to a storage device failure, rebuild the metadata ahead of rebuilding the user data.

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

set a priority for performing host input/output (I/O) operations that access the user data to a first priority level,

set a priority for providing a set of storage services to a second priority level that is lower than the first priority level, and

set a priority for rebuilding the metadata in response to a storage device failure to a third priority level that is higher than the second priority level.

20. Data storage equipment as in claim 11 wherein the plurality of storage devices is configured into a user data fault domain having a first number of storage devices and a metadata fault domain having a second number of storage devices that is less than the first number of storage devices; and

wherein writing the multiple copies of the metadata into the storage segments of the mapped-RAID system includes:

storing the multiple copies of the metadata only within the metadata fault domain; and

wherein writing the user data with parity into the storage segments of the mapped-RAID system includes:

storing the user data and parity only within the user data fault domain.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0523) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0664 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0434) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0740 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0609) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0570 →
RELEASE OF SECURITY INTEREST AT REEL 054591 FRAME 0471 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0463 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2020
From: LEE, SHUYU; MORLEY, STEVEN A.; VANKAMAMIDI, VAMSI K.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 054774/0960 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0523 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 054475/0609 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0434 →
SECURITY AGREEMENT Recorded Nov 13, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 054591/0471 →