IP Library Granted Patent US 11,157,363
Granted Patent B2
US 11,157,363 · App. 16/829,124 · Granted Oct 26, 2021

Distributed raid storage-device-assisted data rebuild system

Inventors: Gary Benedict Kotzur (Austin, TX); William Emmett Lynn (Round Rock, TX); Kevin Thomas Marks (Georgetown, TX); Chandrashekar Nelogal (Round Rock, TX); James Peter Giannoules (Round Rock, TX); Austin Patrick Bolen (Austin, TX)
Assignee: Dell Products L.P.
G06F11/1076G06F3/0619G06F3/0644G06F3/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,157,363
App. No.
16/829,124
Granted
Oct 26, 2021
Kind
B2
Abstract

A distributed RAID storage-device-assisted data rebuild system includes a first RAID data storage device, provided in response to data unavailability, that retrieves respective first data for a first data stripe from each of the other RAID data storage devices, performs an XOR operation on the respective first data to generate first rebuilt data for the first data stripe, and stores the first rebuilt data as part of the first data stripe. A second RAID data storage device retrieves respective second data for a second data stripe from third RAID data storage devices, performs an XOR operation on the respective second data and third data for the second data stripe stored on the second RAID data storage device to generate second rebuilt data for the second data stripe, and provides the second rebuilt data for storage on the first RAID data storage device as part of the second data stripe.

Claims (51)

1. A distributed Redundant Array of Independent Disks (RAID) storage-device-assisted data rebuild system, comprising:

a Redundant Array of Independent Disks (RAID) storage system that stores a plurality of data stripes on a plurality of RAID data storage device, wherein the RAID data storage system includes:

a first RAID data storage device that has been provided in the RAID data storage system in response to unavailability of data in the plurality of data stripes, wherein the first RAID data storage device is configured, for a first data stripe included in the plurality of data stripes stored on the RAID data storage system, to:

retrieve respective first data for the first data stripe from each of the other RAID data storage devices included in the plurality of RAID data storage device;

perform an XOR operation on the respective first data for the first data stripe to generate first rebuilt data for the first data stripe; and

store the first rebuilt data in the first RAID data storage device as part of the first data stripe, and

wherein a second RAID data storage device included in the plurality of RAID data storage devices is configured, for a second data stripe included in the plurality of data stripes, to:

retrieve respective second data for the second data stripe from each of a plurality of third RAID data storage devices that are included in the plurality of RAID data storage devices;

perform an XOR operation on the respective second data for the second data stripe and third data for the second data stripe that is stored on the second RAID data storage device to generate second rebuilt data for the second data stripe; and

provide the second rebuilt data for storage on the first RAID data storage device as part of the second data stripe.

2. The system of claim 1 , wherein the second rebuilt data for the second data stripe is parity data for the second data stripe.

3. The system of claim 1 , wherein the second rebuilt data for the second data stripe is primary data for the second data stripe.

4. The system of claim 1 , wherein the retrieving the respective second data for the second data stripe from each of the plurality of third RAID data storage devices includes

transmitting a respective instruction to each of the plurality of third RAID data storage devices to provide their respective second data in a respective buffer subsystem in that third RAID data storage device; and

reading the respective second data for the second data stripe from the respective buffer subsystem in each of the plurality of third RAID data storage devices.

5. The system of claim 1 , wherein the retrieving the respective second data for the second data stripe from each of the plurality of third RAID data storage devices includes

transmitting a respective instruction to each of the plurality of third RAID data storage devices to write their respective second data in a buffer subsystem in the second RAID data storage device; and

receiving the respective second data for the second data stripe in the buffer subsystem in the second RAID data storage device.

6. The system of claim 1 , wherein the second RAID data storage device is configured, for a third data stripe included in the plurality of data stripes, to:

retrieve respective fourth data for the third data stripe from each of the plurality of third RAID data storage devices;

perform an XOR operation on the respective fourth data for third data stripe and fifth data for the third data stripe that is stored on the second RAID data storage device to generate third rebuilt data for the third data stripe; and

provide the third rebuilt data for storage on the first RAID data storage device as part of the third data stripe.

7. An Information Handling System (IHS), comprising:

a storage subsystem;

a processing system that is coupled to the storage subsystem; and

a memory system that is coupled to the processing system and that includes instructions that, when executed by the processing system, cause the processing system to provide a distributed Redundant Array of Independent Disks (RAID) storage-device-assisted data rebuild engine that is configured to:

retrieve, from each of a plurality of first RAID data storage devices that are included in a RAID data storage system that stores a plurality of data stripes, respective first data for first data stripe, wherein the retrieving the respective first data for the first data stripe from each of the plurality of first RAID data storage devices includes:

transmitting a respective instruction to each of the plurality of first RAID data storage devices to provide their respective first data in a respective buffer subsystem in that first RAID data storage device; and

reading the respective first data for the first data stripe from the respective buffer subsystem in each of the plurality of first RAID data storage devices;

perform an XOR operation on the respective first data for the first data stripe and second data for the first data stripe that is stored on the storage subsystem to generate first rebuilt data for the first data stripe; and

provide, to a second RAID data storage device that has been provided in the RAID data storage system in response to unavailability of data in the plurality of data stripes, the first rebuilt data for storage as part of the first data stripe.

8. The IHS of claim 7 , wherein the first rebuilt data for the first data stripe is parity data for the first data stripe.

9. The IHS of claim 7 , wherein the first rebuilt data for the first data stripe is primary data for the first data stripe.

10. The IHS of claim 7 , wherein the distributed RAID storage-device-assisted data rebuild engine that is configured to:

retrieve, from each of the plurality of first RAID data storage devices, respective second data for second data stripe;

perform an XOR operation on the respective second data for the second data stripe and third data for the second data stripe that is stored on the storage subsystem to generate second rebuilt data for the second data stripe; and

provide, to the second RAID data storage device, the second rebuilt data for storage as part of the second data stripe.

11. The IHS of claim 7 , wherein the processing system, the memory system, and the storage subsystem are included in a Non-Volatile Memory express (NVMe) storage device.

12. A method for performing distributed Redundant Array of Independent Disks (RAID) storage-device-assisted data rebuilds, comprising:

retrieving, by a first RAID data storage device that is included in a RAID data storage system that stores a plurality of data stripes from each of a plurality of second RAID data storage devices that are included in the RAID data storage system, respective first data for first data stripe, wherein the retrieving the respective first data for the first data stripe from each of the plurality of second RAID data storage devices includes

transmitting, by the first RAID data storage device, a respective instruction to each of the plurality of second RAID data storage devices to write their respective first data in a buffer subsystem in the first RAID data storage device; and

receiving, by the first RAID data storage device, the respective first data for the first data stripe in the buffer subsystem in the first RAID data storage device;

performing, by the first RAID data storage device, an XOR operation on the respective first data for the first data stripe and second data for the first data stripe that is stored on the first RAID data storage device to generate first rebuilt data for the first data stripe; and

providing, by the first RAID data storage device to a third RAID data storage device that has been provided in the RAID data storage system in response to unavailability of data in the plurality of data stripes, the first rebuilt data for storage as part of the first data stripe.

13. The method of claim 12 , wherein the first rebuilt data for the first data stripe is parity data for the first data stripe.

14. The method of claim 12 , wherein the first rebuilt data for the first data stripe is primary data for the first data stripe.

15. The method of claim 12 , further comprising:

retrieving, by the first RAID data storage device from each of the plurality of second RAID data storage devices, respective second data for second data stripe;

performing, by the first RAID data storage device, an XOR operation on the respective second data for the second data stripe and third data for the second data stripe that is stored on the first RAID data storage device to generate second rebuilt data for the second data stripe; and

provide, by the first RAID data storage device to the second RAID data storage device, the second rebuilt data for storage as part of the second data stripe.

16. The method of claim 12 , wherein the first RAID data storage device is provided by a Non-Volatile Memory express (NVMe) storage device.

Assignments (11)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0081) 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
Reel/Frame 060436/0441 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0917) 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
Reel/Frame 060436/0509 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052852/0022) 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
Reel/Frame 060436/0582 →
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 AT REEL 052771 FRAME 0906 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0298 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0081 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0917 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052852/0022 →
SECURITY AGREEMENT Recorded May 28, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052771/0906 →
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 Mar 25, 2020
From: KOTZUR, GARY BENEDICT; LYNN, WILLIAM EMMETT; MARKS, KEVIN THOMAS; NELOGAL, CHANDRASHEKAR; GIANNOULES, JAMES PETER; BOLEN, AUSTIN PATRICK
To: DELL PRODUCTS L.P.
Reel/Frame 052220/0206 →