IP Library Granted Patent US 11,023,321
Granted Patent B2
US 11,023,321 · App. 16/586,451 · Granted Jun 1, 2021

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,023,321
App. No.
16/586,451
Granted
Jun 1, 2021
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 (78)

1. A Redundant Array of Independent Disk (RAID) storage-device-assisted Read-Modify-Write (RMW) system, comprising:

a host system that includes a host memory subsystem and that controls a first storage subsystem;

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

a plurality of RAID storage devices that are each coupled to both the host system and the RAID storage controller device, wherein the plurality of RAID storage devices include:

a RAID primary data storage device that includes a second storage subsystem storing first primary data, a first buffer subsystem, and a second buffer subsystem, wherein the RAID primary data storage device is configured, in response to a first command received from the RAID storage controller device, to:

write, to the first buffer subsystem via a first Direct Memory Access (DMA) operation from host memory subsystem, second primary data;

perform an XOR operation on the first primary data in the second storage subsystem and the second primary data in the first buffer subsystem to produce first interim parity data; and

write, to the second buffer subsystem, the first interim parity data, wherein the RAID storage controller device is configured to:

provide, in the first storage subsystem in response to the RAID primary data storage device writing the first interim parity data to the second buffer subsystem, a journal entry that indicates an inconsistent parity stripe,

wherein the RAID primary data storage device is configured, in response to a second command received from the RAID storage controller device, to:

write, to the first buffer subsystem via a second DMA operation from the host memory subsystem, third primary data;

perform an XOR operation on the second primary data in the second storage subsystem, the third primary data in the first buffer subsystem, and the first interim parity data in the second buffer subsystem to produce second interim parity data;

write, to the second buffer subsystem, the second interim parity data; and

a RAID parity data storage device that includes a third storage subsystem storing first parity data and a third buffer subsystem, wherein the RAID parity data storage device is configured, in response to a third command received from the RAID storage controller device, to:

write, to the third buffer subsystem via a third DMA operation from the second buffer subsystem, the second interim parity data;

perform an XOR operation on the first parity data in the third storage subsystem and the second interim parity data in the third buffer subsystem to produce second parity data; and

overwrite, in the third storage subsystem, the first parity data with the second parity data, wherein the RAID storage controller device is configured to:

remove, from the first storage subsystem in response to the RAID primary data storage device overwriting the first parity data with the second parity data in the third buffer subsystem, the journal entry that indicates the inconsistent parity stripe.

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

overwrite, in the second storage subsystem, the first primary data with the second primary data; and

overwrite, in the second storage subsystem, the second primary data with the third primary data.

3. The system of claim 1 , wherein the second buffer subsystem is a Controller Memory Buffer (CMB) included in the RAID primary data storage device.

4. The system of claim 1 , wherein the first storage subsystem includes an NVDIMM device in the host system.

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

determine that a parity data update requirement is met and, in response, generate and transmit the third command to the RAID parity data storage device.

6. The system of claim 1 , wherein the RAID parity data storage device is configured, in response to overwriting the first parity data with the second parity data in the third storage subsystem, to:

provide a completion message to the RAID storage controller device, wherein RAID storage controller device is configured to:

remove, from the first storage subsystem in response to the completion message, the journal entry that indicates the inconsistent parity stripe.

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

a Redundant Array of Independent Disk (RAID) primary data storage device that includes a first storage subsystem storing first primary data, a first buffer subsystem, and a second buffer subsystem, wherein the RAID primary data storage device is configured, in response to a first command received from a RAID storage controller device, to:

write, to the first buffer subsystem via a first Direct Memory Access (DMA) operation from a host system, second primary data;

perform an XOR operation on the first primary data in the first storage subsystem and the second primary data in the first buffer subsystem to produce first interim parity data;

write, to the second buffer subsystem, the first interim parity data;

send a first completion message to the RAID storage controller device that causes the RAID storage controller device to provide a journal entry in the host system that indicates an inconsistent parity stripe,

wherein the RAID primary data storage device is configured, in response to a second command received from the RAID storage controller device, to:

write, to the first buffer subsystem via a second DMA operation from the host system, third primary data;

perform an XOR operation on the second primary data in the first storage subsystem, the third primary data in the first buffer subsystem, and the first interim parity data in the second buffer subsystem to produce second interim parity data;

write, to the second buffer subsystem, the second interim parity data;

a RAID parity data storage device that includes a second storage subsystem storing first parity data and a third buffer subsystem, wherein the RAID parity data storage device is configured, in response to a third command received from the RAID storage controller device, to:

write, to the third buffer subsystem via a third DMA operation from the second buffer subsystem, the second interim parity data;

perform an XOR operation on the first parity data in the second storage subsystem and the second interim parity data in the third buffer subsystem to produce second parity data;

overwrite, in the second storage subsystem, the first parity data with the second parity data; and

send a second completion message to the RAID storage controller device that causes the RAID storage controller device to remove the journal entry in the host system that indicates the inconsistent parity stripe.

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

overwrite, in the first storage subsystem, the first primary data with the second primary data; and

overwrite, in the first storage subsystem, the second primary data with the third primary data.

9. The IHS of claim 7 , wherein the second buffer subsystem is a Controller Memory Buffer (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 included in the host system.

11. The IHS of claim 7 , wherein the RAID parity data storage device receives the third command from the RAID storage controller device in response to a parity data update requirement being met.

12. The IHS of claim 7 , wherein the RAID primary data storage device is configured, in response overwriting the first parity data with the second parity data in the third storage subsystem, to:

provide a first completion message to the RAID storage controller device that causes the RAID storage controller device to remove the journal entry that indicates the inconsistent parity stripe from the host system.

13. The IHS of claim 7 , wherein the RAID parity data storage device is configured, in response to writing the first interim parity data to the second buffer subsystem, to:

provide a completion message to the RAID storage controller device that causes the RAID storage controller device to provide the journal entry that indicates the inconsistent parity stripe in the host system.

14. A method for assisting with deferred parity data update operations using Redundant Array of Independent Disk (RAID) storage devices, comprising:

receiving, by a first Redundant Array of Independent Disk (RAID) primary data storage device from a RAID storage controller device, a first command and, in response:

writing, by the RAID primary data storage device to a first buffer subsystem in the RAID primary data storage device via a first Direct Memory Access (DMA) operation from a host system, second primary data;

performing, by the RAID primary data storage device, an XOR operation on first primary data in a first storage subsystem in the RAID primary data storage device and the second primary data in the first buffer subsystem to produce first interim parity data;

writing, by the RAID primary data storage device to a second buffer subsystem in the RAID primary data storage device, the first interim parity data;

sending, by the RAID primary data storage device, a first completion message to the RAID storage controller device that causes the RAID storage controller device to provide a journal entry in the host system that indicates an inconsistent parity stripe,

receiving, by the RAID primary data storage device from the RAID storage controller device, a second command and, in response:

writing, by the RAID primary data storage device to the first buffer subsystem via a second DMA operation from the host system, third primary data;

performing, by the RAID primary data storage device, an XOR operation on the second primary data in the first storage subsystem, the third primary data in the first buffer subsystem, and the first interim parity data in the second buffer subsystem to produce second interim parity data;

writing, by the RAID primary data storage device to the second buffer subsystem, the second interim parity data;

receiving, by a RAID parity data storage device from the RAID storage controller device, a third command and, in response:

writing, by the RAID parity data storage device to a third buffer subsystem in the RAID parity data storage device via a third DMA operation from the second buffer subsystem, the second interim parity data;

performing, by the RAID parity data storage device, an XOR operation on first parity data in a second storage subsystem and the second interim parity data in the third buffer subsystem to produce second parity data;

overwriting, by the RAID parity data storage device in the second storage subsystem, the first parity data with the second parity data; and

sending, by the RAID parity data storage device, a second completion message to the RAID storage controller device that causes the RAID storage controller device to remove the journal entry in the host system that indicates the inconsistent parity stripe.

15. The method of claim 14 , further comprising:

overwriting, by the RAID primary data storage device in the first storage subsystem, the first primary data with the second primary data; and

overwriting, by the RAID primary data storage device in the first storage subsystem, the second primary data with the third primary data.

16. The method of claim 14 , wherein the second buffer subsystem is a Controller Memory Buffer (CMB) included in the RAID primary data storage device.

17. The method of claim 14 , wherein the second buffer subsystem is a Controller Memory Buffer (CMB) included in the RAID parity data storage device, and the third buffer subsystem is a CMB included in a RAID Q data storage device.

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

19. The method of claim 14 , further comprising:

providing, by the RAID primary data storage device in response overwriting the first parity data with the second parity data in the third storage subsystem, a first completion message to the RAID storage controller device that causes the RAID storage controller device to remove the journal entry that indicates the inconsistent parity stripe from the host system.

20. The method of claim 14 , further comprising:

providing, by the RAID parity data storage device in response to writing the first interim parity data to the second buffer subsystem, a completion message to the RAID storage controller device that causes the RAID storage controller device to provide the journal entry that indicates the inconsistent parity stripe in the host system.

Assignments (9)
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 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 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 11, 2019
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 050690/0145 →
Continuity (1)
Related Publication 20210096950A1 · Apr 1, 2021