IP Library Granted Patent US 11,436,086
Granted Patent B2
US 11,436,086 · App. 17/308,390 · Granted Sep 6, 2022

Raid storage-device-assisted deferred parity 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); Austin Patrick Bolen (Austin, TX)
Assignee: Dell Products L.P.
G06F11/1076G06F13/28
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,436,086
App. No.
17/308,390
Granted
Sep 6, 2022
Kind
B2
Abstract

A RAID storage-device-assisted deferred parity data update system includes a RAID primary data drive that retrieves second primary data via a DMA operation from host system, and XOR's it with first primary data to produce first interim parity data, which causes a RAID storage controller device to provide an inconsistent parity stripe journal entry in the host system. The RAID primary data drive then retrieves third primary data via a DMA operation from the host system, XORs it with the second primary data and the first interim parity data to produce second interim parity data. A RAID parity data drive retrieves the second interim parity data via a DMA operation, and XORs it with first parity data to produce second parity data that it uses to overwrite the first parity data, which causes the RAID storage controller device to remove the inconsistent parity stripe journal entry from the host system.

Claims (48)

1. A deferred parity update system, comprising:

a host system;

a Redundant Array of Independent Disk (RAID) primary storage device that is coupled to the host system;

a RAID parity storage device that is coupled to the host system; and

a RAID storage controller device that is coupled to the host system, the RAID primary storage device, and the RAID parity storage device, wherein the RAID storage controller device is configured to:

receive, from the host system, a first write command and, in response, generate at least one first RAID primary data storage device command that is configured to cause the RAID primary data storage device to retrieve second primary data from the host system, produce first interim parity data using first primary data stored on the first RAID primary data storage device and the second primary data, and provide a first RAID primary data storage device command completion message to the RAID storage controller device;

create, in response to receiving the first RAID primary data storage device command completion message, a journal entry that indicates an inconsistent parity stripe;

receive, from the host system, a second write command and, in response, generate at least one second RAID primary data storage device command that is configured to cause the RAID primary data storage device to retrieve third primary data from the host system, and produce second interim parity data using second primary data, the third primary data, and the first interim parity data;

determine that a parity data update requirement has been satisfied and, in response, generate at least one RAID parity data storage device command that is configured to cause the RAID parity data storage device to retrieve the second interim parity data from the RAID primary data storage device, produce second parity data using first parity data stored on the RAID parity data storage device and the second interim parity data, update the first parity data with second parity data, and provide a RAID parity data storage device command completion message to the RAID storage controller device; and

remove, in response to receiving the RAID parity data storage device command completion message, the journal entry that indicates the inconsistent parity stripe.

2. The system of claim 1 , wherein the at least one first RAID primary data storage device command is configured to cause the RAID primary data storage device to update the first primary data with the second primary data, and wherein the at least one second RAID primary data storage device command is configured to cause the RAID primary data storage device to update the second primary data with the third primary data.

3. The system of claim 1 , wherein the at least one first RAID primary data storage device command is configured to cause the RAID primary data storage device to store the first interim parity data in a Controller Memory Buffer (CMB) included in the RAID primary data storage device, and wherein the at least one second RAID primary data storage device command is configured to cause the RAID primary data storage device to store the second interim parity data in the CMB included in the RAID primary data storage device.

4. The system of claim 1 , wherein the journal entry that indicates the inconsistent parity stripe is created in an NVDIMM device that is controlled by the host system.

5. The system of claim 1 , wherein the at least one RAID parity data storage device command is configured to cause the RAID parity data storage device to retrieve the second interim parity data from the RAID primary data storage device using a Direct Memory Access (DMA) operation.

6. The system of claim 1 , wherein the RAID storage controller device is configured to:

provide, in response to a providing the journal entry that indicates the inconsistent parity stripe, a first write command completion message to host system.

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

a processing system; and

a memory system that includes instructions that, when executed by the processing system, cause the processing system to provide a Redundant Array of Independent Disk (RAID) storage controller that is configured to:

receive, from a host system, a first write command and, in response, generate at least one first RAID primary data storage device command that is configured to cause a RAID primary data storage device to retrieve second primary data from the host system, produce first interim parity data using first primary data stored on the first RAID primary data storage device and the second primary data, and provide a first RAID primary data storage device command completion message to the RAID storage controller device;

create, in response to receiving the first RAID primary data storage device command completion message, a journal entry that indicates an inconsistent parity stripe;

receive, from the host system, a second write command and, in response, generate at least one second RAID primary data storage device command that is configured to cause the RAID primary data storage device to retrieve third primary data from the host system, and produce second interim parity data using second primary data, the third primary data, and the first interim parity data;

determine that a parity data update requirement has been satisfied and, in response, generate at least one RAID parity data storage device command that is configured to cause a RAID parity data storage device to retrieve the second interim parity data from the RAID primary data storage device, produce second parity data using first parity data stored on the RAID parity data storage device and the second interim parity data, update the first parity data with second parity data, and provide a RAID parity data storage device command completion message to the RAID storage controller device; and

remove, in response to receiving the RAID parity data storage device command completion message, the journal entry that indicates the inconsistent parity stripe.

8. The IHS of claim 7 , wherein the at least one first RAID primary data storage device command is configured to cause the RAID primary data storage device to update the first primary data with the second primary data, and wherein the at least one second RAID primary data storage device command is configured to cause the RAID primary data storage device to update the second primary data with the third primary data.

9. The IHS of claim 7 , wherein the at least one first RAID primary data storage device command is configured to cause the RAID primary data storage device to store the first interim parity data in a Controller Memory Buffer (CMB) included in the RAID primary data storage device, and wherein the at least one second RAID primary data storage device command is configured to cause the RAID primary data storage device to store the second interim parity data in the CMB included in the RAID primary data storage device.

10. The IHS of claim 7 , wherein the journal entry that indicates the inconsistent parity stripe is provided in an NVDIMM device that is controlled by the host system.

11. The IHS of claim 7 , wherein the at least one RAID parity data storage device command is configured to cause the RAID parity data storage device to retrieve the second interim parity data from the RAID primary data storage device using a Direct Memory Access (DMA) operation.

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

provide, in response to providing the journal entry that indicates the inconsistent parity stripe, a first write command completion message to host system.

13. The IHS of claim 7 , wherein the determining that the parity data update requirement has been satisfied includes at least one of:

determining that a time period has passed; or

determine that the RAID primary storage device has produced interim parity data a predetermined number of times.

14. A method for providing deferred parity data updates, comprising:

receiving, by a RAID storage controller device from a host system, a first write command and, in response, generating at least one first RAID primary data storage device command that is configured to cause a RAID primary data storage device to retrieve second primary data from the host system, produce first interim parity data using first primary data stored on the first RAID primary data storage device and the second primary data, and provide a first RAID primary data storage device command completion message to the RAID storage controller device;

creating, by the RAID storage controller device in response to receiving the first RAID primary data storage device command completion message, a journal entry that indicates an inconsistent parity stripe;

receiving, by the RAID storage controller device from the host system, a second write command and, in response, generating at least one second RAID primary data storage device command that is configured to cause the RAID primary data storage device to retrieve third primary data from the host system, and produce second interim parity data using second primary data, the third primary data, and the first interim parity data;

determining, by the RAID storage controller device, that a parity data update requirement has been satisfied and, in response, generating at least one RAID parity data storage device command that is configured to cause a RAID parity data storage device to retrieve the second interim parity data from the RAID primary data storage device, produce second parity data using first parity data stored on the RAID parity data storage device and the second interim parity data, update the first parity data with second parity data, and provide a RAID parity data storage device command completion message to the RAID storage controller device; and

removing, by the RAID storage controller device in response to receiving the RAID parity data storage device command completion message, the journal entry that indicates the inconsistent parity stripe.

15. The method of claim 14 , wherein the at least one first RAID primary data storage device command is configured to cause the RAID primary data storage device to update the first primary data with the second primary data, and wherein the at least one second RAID primary data storage device command is configured to cause the RAID primary data storage device to update the second primary data with the third primary data.

16. The method of claim 14 , wherein the at least one first RAID primary data storage device command is configured to cause the RAID primary data storage device to store the first interim parity data in a Controller Memory Buffer (CMB) included in the RAID primary data storage device, and wherein the at least one second RAID primary data storage device command is configured to cause the RAID primary data storage device to store the second interim parity data in the CMB included in the RAID primary data storage device.

17. The method of claim 14 , wherein the journal entry that indicates the inconsistent parity stripe is provided in an NVDIMM device that is controlled by the host system.

18. The method of claim 14 , wherein the at least one RAID parity data storage device command is configured to cause the RAID parity data storage device to retrieve the second interim parity data from the RAID primary data storage device using a Direct Memory Access (DMA) operation.

19. The method of claim 14 , further comprising:

providing, by the RAID storage controller device in response to providing the journal entry that indicates the inconsistent parity stripe, a first write command completion message to host system.

20. The method of claim 14 , wherein the determining that the parity data update requirement has been satisfied includes at least one of:

determining that a time period has passed; or

determine that the RAID primary storage device has produced interim parity data a predetermined number of times.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (058014/0560) Recorded Jun 10, 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 062022/0473 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057931/0392) Recorded Jun 10, 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 062022/0382 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057758/0286) Recorded Jun 10, 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 061654/0064 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 058014/0560 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 057758/0286 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 057931/0392 →
SECURITY AGREEMENT Recorded Oct 1, 2021
From: DELL PRODUCTS, L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 057682/0830 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 5, 2021
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 056148/0381 →
Continuity (2)
Continuation 16586451 · Sep 27, 2019
Related Publication 20210255924A1 · Aug 19, 2021