IP Library Granted Patent US 11,003,391
Granted Patent B2
US 11,003,391 · App. 16/586,311 · Granted May 11, 2021

Data-transfer-based RAID data update 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)
Assignee: Dell Products L.P.
G06F3/0659G06F3/0604G06F3/0689G06F11/1076
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,003,391
App. No.
16/586,311
Granted
May 11, 2021
Kind
B2
Abstract

A data-transfer-based RAID data update system includes a RAID storage controller device coupled to a host system and RAID storage devices. The RAID storage controller device receives a command that is associated with a data update on at least one of the RAID storage devices from the host system. The RAID storage controller device then determines, from a plurality of RAID data update techniques that are available to execute the command and perform the data update on the at least one of the RAID storage devices, a first RAID data update technique that is included in the plurality of RAID data update techniques and that requires the lowest number of data transfers to execute the command and perform the data update. The RAID storage controller device then causes the command to be performed using the first RAID data update technique to provide the data update.

Claims (67)

1. A data-transfer-based Redundant Array of Inexpensive Disks (RAID) data update system, comprising:

a host system;

a plurality of Redundant Array Of Inexpensive Disks (RAID) storage device that are each coupled to the host system; and

a RAID storage controller device that is coupled to the host system and the plurality of RAID storage devices, wherein the RAID storage controller device is configured to:

receive, from the host system, a command that is associated with a data update on at least one of the plurality of RAID storage devices;

determine a first RAID data update technique from a plurality of RAID data update techniques that are available to execute the command and perform the data update on the at least one of the plurality of RAID storage devices based on:

a number of the at least one of the plurality of RAID storage devices that are to receive the data update identified in the command; and

the first RAID data update technique requiring fewer data transfers to execute the command and perform the data update on the at least one of the plurality of RAID storage devices relative to the number of data transfers required by others of the plurality of RAID data update techniques to execute the command and perform the data update on the at least one of the plurality of RAID storage devices; and

cause the command to be performed using the first RAID data update technique to provide the data update on the at least one of the plurality of RAID storage devices.

2. The system of claim 1 , wherein the determining the first RAID data update technique requires fewer data transfers to execute the command and perform the data update on the at least one of the plurality of RAID storage devices includes:

identifying that the command is a full stripe write command that provides for respective data updates on each of the plurality of RAID storage devices and, in response, determining the first RAID data update technique that provides for the data updates on each of the plurality of RAID storage devices by the RAID storage controller device.

3. The system of claim 1 , wherein the determining the first RAID data update technique requires fewer data transfers to execute the command and perform the data update on the at least one of the plurality of RAID storage devices includes:

identifying that the command is a partial stripe write command that provides for respective data updates on a subset of the plurality of RAID storage devices; and

determining that a number of the subset of the plurality of RAID storage devices that will have their respective data updated based on the command is less than or equal to a total number of the plurality of the RAID storage devices and, in response, determining the first RAID data update technique that provides for the respective data updates on each of the subset of the plurality of RAID storage devices with the assistance of the subset of the plurality of RAID storage devices.

4. The system of claim 1 , wherein the determining the first RAID data update technique requires fewer data transfers to execute the command and perform the data update on the at least one of the plurality of RAID storage devices includes:

identifying that the command is a partial stripe write command that provides for respective data updates on a subset of the plurality of RAID storage devices; and

determining that a number of the subset of the plurality of RAID storage devices that will have their respective data updated based on the command is greater than a total number of the plurality of the RAID storage devices and, in response, determining the first RAID data update technique that provides for the respective data updates on each of the subset of the plurality of RAID storage devices by the RAID storage controller device.

5. The system of claim 4 , wherein the first RAID data update technique that provides for the respective data updates on each of the subset of the plurality of RAID storage devices by the RAID storage controller device includes the RAID storage controller device performing operations including:

retrieving current primary data from at least one of the plurality of RAID storage devices that is not experiencing a primary data update based on the command;

performing an XOR operation on the current primary data and updated primary data for at least one of the plurality of RAID storage devices to produce updated parity data; and

writing the updated parity data to a RAID parity data storage device that is included in the plurality of RAID storage devices.

6. The system of claim 1 , wherein the plurality of RAID storage devices are provided by Non-Volatile Memory express (NVMe) storage devices.

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

a processing system; 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 Redundant Array Of Inexpensive Disks (RAID) storage controller engine that is configured to:

receive, from a host system, a command that is associated with a data update on at least one of a plurality of RAID storage devices;

determine a first RAID data update technique from a plurality of RAID data update techniques that are available to execute the command and perform the data update on the at least one of the plurality of RAID storage devices based on:

a number of the at least one of the plurality of RAID storage devices that are to receive the data update identified in the command; and

the first RAID data update technique requiring fewer data transfers to execute the command and perform the data update on the at least one of the plurality of RAID storage devices relative to the number of data transfers required by others of the plurality of RAID data update techniques require to execute the command and perform the data update on the at least one of the plurality of RAID storage devices; and

cause the command to be performed using the first RAID data update technique to provide the data update on the at least one of the plurality of RAID storage devices.

8. The IHS of claim 7 , wherein the determining the first RAID data update technique requires fewer data transfers to execute the command and perform the data update on the at least one of the plurality of RAID storage devices includes:

identifying that the command is a full stripe write command that provides for respective data updates on each of the plurality of RAID storage devices and, in response, determining the first RAID data update technique that provides for the data updates on each of the plurality of RAID storage devices by the RAID storage controller engine.

9. The IHS of claim 7 , wherein the determining the first RAID data update technique requires fewer data transfers to execute the command and perform the data update on the at least one of the plurality of RAID storage devices includes:

identifying that the command is a partial stripe write command that provides for respective data updates on a subset of the plurality of RAID storage devices; and

determining that a number of the subset of the plurality of RAID storage devices that will have their respective data updated based on the command is less than or equal to a total number of the plurality of the RAID storage devices and, in response, determining the first RAID data update technique that provides for the respective data updates on each of the subset of the plurality of RAID storage devices with the assistance of the subset of the plurality of RAID storage devices.

10. The IHS of claim 7 , wherein the determining the first RAID data update technique requires fewer data transfers to execute the command and perform the data update on the at least one of the plurality of RAID storage devices includes:

identifying that the command is a partial stripe write command that provides for respective data updates on a subset of the plurality of RAID storage devices; and

determining that a number of the subset of the plurality of RAID storage devices that will have their respective data updated based on the command is greater than a total number of the plurality of the RAID storage devices and, in response, determining the first RAID data update technique that provides for the respective data updates on each of the subset of the plurality of RAID storage devices by the RAID storage controller engine.

11. The IHS of claim 10 , wherein the first RAID data update technique that provides for the respective data updates on each of the subset of the plurality of RAID storage devices by the RAID storage controller engine includes the RAID storage controller engine performing operations including:

retrieving current primary data from at least one of the plurality of RAID storage devices that is not experiencing a primary data update based on the command;

performing an XOR operation on the current primary data and updated primary data for at least one of the plurality of RAID storage devices to produce updated parity data; and

writing the updated parity data to a RAID parity data storage device that is included in the plurality of RAID storage devices.

12. The IHS of claim 7 , wherein the plurality of RAID storage devices are provided by Non-Volatile Memory express (NVMe) storage devices.

13. The IHS of claim 7 , wherein the RAID storage controller engine is configured to:

transmit, to the host system in response to causing the command to be performed using the first RAID data update technique to provide the data update on the at least one of the plurality of RAID storage devices, a completion message.

14. A method for providing data-transfer-based Redundant Array of Independent Disk (RAID) data updates, comprising:

receiving, by a Redundant Array of Independent Disk (RAID) storage controller device from a host system, a command that is associated with a data update on at least one of a plurality of RAID storage devices;

determining, by the RAID storage controller device, a first RAID data update technique from a plurality of RAID data update techniques that are available to execute the command and perform the data update on the at least one of the plurality of RAID storage devices based on:

a number of the at least one of the plurality of RAID storage devices that are to receive the data update identified in the command; and

the first RAID data update technique requiring fewer data transfers to execute the command and perform the data update on the at least one of the plurality of RAID storage devices relative to the number of data transfers required by others of the plurality of RAID data update techniques require to execute the command and perform the data update on the at least one of the plurality of RAID storage devices; and

causing, by the RAID storage controller device, the command to be performed using the first RAID data update technique to provide the data update on the at least one of the plurality of RAID storage devices.

15. The method of claim 14 , wherein the determining the first RAID data update technique requires fewer data transfers to execute the command and perform the data update on the at least one of the plurality of RAID storage devices includes:

identifying that the command is a partial stripe write command that provides for respective data updates on a subset of the plurality of RAID storage devices; and

determining that a number of the subset of the plurality of RAID storage devices that will have their respective data updated based on the command is less than or equal to a total number of the plurality of the RAID storage devices and, in response, determining the first RAID data update technique that provides for the respective data updates on each of the subset of the plurality of RAID storage devices with the assistance of the subset of the plurality of RAID storage devices.

16. The method of claim 14 , wherein the determining the first RAID data update technique requires fewer data transfers to execute the command and perform the data update on the at least one of the plurality of RAID storage devices includes:

identifying that the command is a partial stripe write command that provides for respective data updates on a subset of the plurality of RAID storage devices; and

determining that a number of the subset of the plurality of RAID storage devices that will have their respective data updated based on the command is less than or equal to a total number of the plurality of the RAID storage devices and, in response, determining the first RAID data update technique that provides for the respective data updates on each of the subset of the plurality of RAID storage devices with the assistance of the subset of the plurality of RAID storage devices.

17. The method of claim 14 , wherein the determining the first RAID data update technique requires fewer data transfers to execute the command and perform the data update on the at least one of the plurality of RAID storage devices includes:

identifying that the command is a partial stripe write command that provides for respective data updates on a subset of the plurality of RAID storage devices; and

determining that a number of the subset of the plurality of RAID storage devices that will have their respective data updated based on the command is greater than a total number of the plurality of the RAID storage devices and, in response, determining the first RAID data update technique that provides for the respective data updates on each of the subset of the plurality of RAID storage devices by the RAID storage controller engine.

18. The method of claim 17 , wherein the first RAID data update technique that provides for the respective data updates on each of the subset of the plurality of RAID storage devices by the RAID storage controller engine further comprises:

retrieving, by the RAID storage controller device, current primary data from at least one of the plurality of RAID storage devices that is not experiencing a primary data update based on the command;

performing, by the RAID storage controller device, an XOR operation on the current primary data and updated primary data for at least one of the plurality of RAID storage devices to produce updated parity data; and

writing, by the RAID storage controller device, the updated parity data to a RAID parity data storage device that is included in the plurality of RAID storage devices.

19. The method of claim 14 , wherein the plurality of RAID storage devices are provided by Non-Volatile Memory express (NVMe) storage devices.

20. The method of claim 14 , further comprising:

transmitting, by the RAID storage controller device to the host system in response to causing the command to be performed using the first RAID data update technique to provide the data update on the at least one of the plurality of RAID storage devices, a completion message.

Assignments (9)
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 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 Oct 10, 2019
From: KOTZUR, GARY BENEDICT; LYNN, WILLIAM EMMETT; MARKS, KEVIN THOMAS; NELOGAL, CHANDRASHEKAR; GIANNOULES, JAMES PETER
To: DELL PRODUCTS L.P.
Reel/Frame 050679/0689 →
Continuity (1)
Related Publication 20210096766A1 · Apr 1, 2021