IP Library Granted Patent US 11,334,292
Granted Patent B2
US 11,334,292 · App. 16/839,428 · Granted May 17, 2022

Autonomous RAID data storage 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.
G06F3/0659G06F3/0604G06F3/0629G06F3/0653G06F3/0689G06F9/30029G06F11/1084
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,334,292
App. No.
16/839,428
Granted
May 17, 2022
Kind
B2
Abstract

An autonomous RAID data storage system includes a RAID storage controller device that communicates with RAID data storage devices in order to configure them to perform direct command operations with each other. A first RAID data storage device receives a multi-step command from the RAID storage controller device and performs a first subset of operations associated with the multi-step command, while also performing direct command operations with a second RAID data storage device in order to cause it to perform a second subset of operations associated with the multi-step command, When the first RAID data storage device completes the first subset of operations and receives a first completion communication from the second RAID data storage device that indicates that the second subset of operations are completed, it sends a second completion communication to the RAID storage controller device that indicates that the multi-step command is completed.

Claims (116)

1. An autonomous Redundant Array of Independent Disks (RAID) data storage system, comprising:

a Redundant Array of Independent Disks (RAID) storage controller device that is configured to:

communicate with a plurality of RAID data storage devices in order to configure each of the plurality of RAID data storage devices to perform direct command operations with each other; and

generate and transmit a multi-step command; and

a first RAID data storage device that is included in the plurality of RAID data storage devices and that is configured to:

receive the multi-step command from the RAID storage controller device;

perform a first subset of operations associated with the multi-step command;

perform direct command operations with a second RAID data storage device that is included in the plurality of RAID data storage devices in order to cause the second RAID data storage device to perform a second subset of operations associated with the multi-step command;

receive a first completion communication from the second RAID data storage device that indicates that the second subset of operations associated with the multi-step command are completed; and

transmit, in response to completing the first subset of operations associated with the multi-step command and receiving the first completion communication, a second completion communication to the RAID storage controller device that indicates that the multi-step command is completed.

2. The system of claim 1 , wherein the first RAID data storage device is configured to:

generate at least one journal entry in the first RAID data storage device in response to beginning the first subset of operations; and

remove the at least one journal entry in the first RAID data storage device in response to completing the first subset of operations.

3. The system of claim 1 , wherein the first RAID data storage device is configured to:

generate at least one journal entry in the first RAID data storage device in response to performing the first direct command operations; and

remove the at least one journal entry in the first RAID data storage device in response to receiving the first completion communication.

4. The system of claim 1 , wherein the multi-step command is a process write multi-step command, and wherein:

the first subset of operations include the first RAID data storage device:

retrieving updated primary data;

performing an XOR operation on the updated primary data and current primary data stored in the first RAID data storage device to generate interim parity data; and

updating the current primary data with the updated primary data; and

the second subset of operations include the second RAID data storage device:

retrieving the interim parity data from the first RAID data storage device;

performing an XOR operation on the interim parity data and current parity data stored in the second RAID data storage device to generate updated parity data; and

updating the current parity data with the updated parity data.

5. The system of claim 1 , wherein the multi-step command is a degraded read multi-step command, and wherein:

the second subset of operations include the second RAID data storage device:

transmitting first current primary data to the first RAID data storage device; and

the first subset of operations include the first RAID data storage device:

receiving the first current primary data from the second RAID data storage device:

performing an XOR operation on the first current primary data and current parity data stored in the first RAID data storage device to generate second current primary data; and

transmitting the second current primary data to a host system.

6. The system of claim 1 , wherein the multi-step command is a degraded write multi-step command, and wherein:

the second subset of operations include the second RAID data storage device:

transmitting first current primary data to the first RAID data storage device; and

the first subset of operations include the first RAID data storage device:

retrieving updated primary data;

receiving the first current primary data from the second RAID data storage device:

performing an XOR operation on the updated primary data, the first current primary data, and current parity data stored in the first RAID data storage device to generate updated parity data; and

updating the current parity data with the updated parity data.

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 Independent Disks (RAID) data storage engine that is configured to:

receive a multi-step command from a RAID storage controller device;

perform a first subset of operations associated with the multi-step command;

perform direct command operations with a RAID data storage device in order to cause the RAID data storage device to perform a second subset of operations associated with the multi-step command;

receive a first completion communication from the RAID data storage device that indicates that the second subset of operations associated with the multi-step command are completed; and

transmit, in response to completing the first subset of operations associated with the multi-step command and receiving the first completion communication, a second completion communication to the RAID storage controller device that indicates that the multi-step command is completed.

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

communicate with the RAID storage controller device in order to configure the direct command operations with the RAID data storage device.

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

generate at least one journal entry in response to beginning the first subset of operations; and

remove the at least one journal entry in response to completing the first subset of operations.

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

generate at least one journal entry in response to performing the first direct command operations; and

remove the at least one journal entry in response to receiving the first completion communication.

11. The IHS of claim 7 , wherein the multi-step command is a process write multi-step command, and wherein:

the first subset of operations include the RAID data storage engine:

retrieving updated primary data;

performing an XOR operation on the updated primary data and current primary data to generate interim parity data; and

updating the current primary data with the updated primary data; and

the second subset of operations include the RAID data storage device:

retrieving the interim parity data;

performing an XOR operation on the interim parity data and current parity data stored in the RAID data storage device to generate updated parity data; and

updating the current parity data with the updated parity data.

12. The IHS of claim 7 , wherein the multi-step command is a degraded read multi-step command, and wherein:

the second subset of operations include the RAID data storage device:

transmitting first current primary data; and

the first subset of operations include the RAID data storage engine:

receiving the first current primary data from the RAID data storage device:

performing an XOR operation on the first current primary data and current parity data to generate second current primary data; and

transmitting the second current primary data to a host system.

13. The IHS of claim 7 , wherein the multi-step command is a degraded write multi-step command, and wherein:

the second subset of operations include the RAID data storage device:

transmitting first current primary data; and

the first subset of operations include the RAID data storage engine:

retrieving updated primary data;

receiving the first current primary data from the RAID data storage device:

performing an XOR operation on the updated primary data, the first current primary data, and current parity data to generate updated parity data; and

updating the current parity data with the updated parity data.

14. A method for performing autonomous Redundant Array of Independent Disks (RAID) data storage operations, comprising:

receiving, by a first Redundant Array of Independent Disks (RAID) data storage device, a multi-step command from a RAID storage controller device;

performing, by the first RAID data storage device, a first subset of operations associated with the multi-step command;

performing, by the first RAID data storage device, direct command operations with a second RAID data storage device in order to cause the second RAID data storage device to perform a second subset of operations associated with the multi-step command;

receiving, by the first RAID data storage device, a first completion communication from the second RAID data storage device that indicates that the second subset of operations associated with the multi-step command are completed; and

transmitting, by the first RAID data storage device in response to completing the first subset of operations associated with the multi-step command and receiving the first completion communication, a second completion communication to the RAID storage controller device that indicates that the multi-step command is completed.

15. The method of claim 14 , further comprising:

communicating, by the first RAID data storage device, with the RAID storage controller device in order to configure the direct command operations with the second RAID data storage device.

16. The method of claim 14 , further comprising:

generating, by the first RAID data storage device, at least one journal entry in the first RAID data storage device in response to beginning the first subset of operations; and

removing, by the first RAID data storage device, the at least one journal entry in the first RAID data storage device in response to completing the first subset of operations.

17. The method of claim 14 , further comprising:

generating, by the first RAID data storage device, at least one journal entry in the first RAID data storage device in response to performing the first direct command operations; and

removing, by the first RAID data storage device, the at least one journal entry in the first RAID data storage device in response to receiving the first completion communication.

18. The method of claim 14 , wherein the multi-step command is a degraded read multi-step command, and wherein:

the second subset of operations include the second RAID data storage device:

transmitting first current primary data; and

the first subset of operations include the first RAID data storage engine:

receiving the first current primary data from the second RAID data storage device;

performing an XOR operation on the first current primary data and current parity data stored in the first RAID data storage device to generate second current primary data; and

transmitting the second current primary data to a host system.

19. The method of claim 14 , wherein the multi-step command is a degraded read multi-step command, and wherein:

the second subset of operations include the second RAID data storage device:

transmitting first current primary data; and

the first subset of operations include the first RAID data storage engine:

receiving the first current primary data from the second RAID data storage device:

performing an XOR operation on the first current primary data and current parity data stored in the first RAID data storage device to generate second current primary data; and

transmitting the second current primary data to a host system.

20. The method of claim 14 , wherein the multi-step command is a degraded write multi-step command, and wherein:

the second subset of operations include the second RAID data storage device:

transmitting first current primary data; and

the first subset of operations include the first RAID data storage engine:

retrieving updated primary data;

receiving the first current primary data from the RAID data storage device:

performing an XOR operation on the updated primary data, the first current primary data, and current parity data stored on the first RAID data storage device to generate updated parity data; and

updating the current parity data with the updated parity data.

Assignments (9)
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 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
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052852/0022 →
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 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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 3, 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 052305/0681 →