IP Library Granted Patent US 10,067,675
Granted Patent B2
US 10,067,675 · App. 15/416,371 · Granted Sep 4, 2018

I/O handling between virtualization and RAID storage

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 10,067,675
App. No.
15/416,371
Granted
Sep 4, 2018
Kind
B2
Abstract

A method for handling input/output (I/O) in a data storage system comprising a RAID subsystem storing data according to a RAID level utilizing a parity scheme, where RAID stripes have been configured across a plurality of data storage devices. The method may include monitoring write requests to the RAID subsystem, identifying write requests destined for the same RAID stripe, and bundling the identified write requests for substantially simultaneous execution at the corresponding RAID stripe. Monitoring write requests to the RAID subsystem may include delaying at least some of the write requests to the RAID subsystem so as to build-up a queue of write requests. In some embodiments, identifying write requests and bundling the identified write requests may include identifying and bundling a number of write requests as required to perform a full stripe write to the corresponding RAID stripe.

Claims (38)

1. A method for handling input/output (I/O) in a data storage system comprising a RAID subsystem storing data according to a RAID level utilizing a parity scheme, where RAID stripes have been configured across a plurality of data storage devices, and where the data storage system allocates data space in data pages, the data pages being smaller in size than the size of a RAID stripe, the method comprising:

monitoring requests for storage space on the RAID subsystem;

where a plurality of data pages are requested for a same host device, allocating to the host device data pages from the RAID subsystem associated with a same RAID stripe;

monitoring write requests to the RAID subsystem to identify write requests for the allocated data pages; and

bundling write requests for the allocated data pages for substantially simultaneous execution at the RAID stripe.

2. The method of claim 1 , wherein monitoring write requests to the RAID subsystem comprises identifying write requests to other data pages of the corresponding RAID stripe, the method further comprising bundling the write requests for the allocated data pages with the write requests for the other data pages for substantially simultaneous execution at the RAID stripe.

3. The method of claim 2 , wherein bundling the write requests for the allocated data pages with the write requests for the other data pages comprises bundling a number of write requests required to perform a full stripe write to the RAID stripe.

4. The method of claim 2 , wherein bundling the write requests for the allocated data pages with the write requests for the other data pages comprises bundling a number of write requests required to perform a partial stripe write to the RAID stripe, the partial stripe write comprising substantially simultaneous execution of writes to at least two strips/segments of the RAID stripe.

5. The method of claim 1 , wherein monitoring write requests to the RAID subsystem comprises delaying at least a portion of the write requests to the RAID subsystem to build-up a queue of write requests.

6. The method of claim 5 , wherein at least some write requests are released from the queue after a predetermined period of time.

7. The method of claim 1 , wherein the allocated data pages are equal in size to a single strip/segment of a RAID stripe, and each write request corresponds to a write to at least a full page.

8. The method of claim 1 , wherein the allocated data pages are each at least one of 64 KB, 128 KB, and 256 KB in size.

9. The method of claim 1 , wherein the RAID level is at least one of RAID 5 and RAID 6.

10. The method of claim 1 , wherein the data storage devices comprise Flash based storage devices.

11. The method of claim 10 , wherein the data storage devices further comprise disk drives.

12. The method of claim 1 , wherein the bundled write requests comprise new data, the method further comprising:

reading parity data and data from the RAID stripe;

using the parity data and the data, calculating intermediate parity data;

using new data from the bundled write requests and the intermediate parity data to create new parity data; and

writing the new data and the new parity data by executing the bundled write requests at the RAID stripe substantially simultaneously.

13. The method of claim 12 , wherein calculating intermediate parity data comprises XORing the parity data and the data from the RAID stripe.

14. The method of claim 13 , wherein using new data from the bundled write requests and the intermediate parity data to create new parity data comprises XORing the new data from the bundled write requests with the intermediate parity data.

15. An information handling system comprising:

a data storage system comprising a RAID subsystem storing data according to a RAID level utilizing a parity scheme, where RAID stripes have been configured across a plurality of data storage devices, and where the data storage system allocates data space in data pages, the data pages being smaller in size than the size of a RAID stripe; and

a controller managing the data storage subsystem and configured to:

monitor requests for storage space on the RAID subsystem;

where a plurality of data pages are requested for a same host device, allocate to the host device data pages from the RAID subsystem associated with a same RAID stripe;

monitor write requests to the RAID subsystem to identify write requests for the allocated data pages; and

bundle write requests for the allocated data pages for substantially simultaneous execution at the RAID stripe.

16. The information handling system of claim 15 , wherein monitoring write requests to the RAID subsystem comprises identifying write requests to other data pages of the RAID stripe, and the controller is further configured to bundle the write requests for the allocated data pages with the write requests for the other data pages for substantially simultaneous execution at the RAID stripe.

17. The information handling system of claim 16 , wherein bundling the write requests for the allocated data pages with the write requests for the other data pages comprises bundling a number of write requests required to perform a full stripe write to the RAID stripe.

18. The information handling system of claim 16 , wherein the controller is further configured to delay at least a portion of the write requests to the RAID subsystem to build-up a queue of write requests for monitoring.

19. The information handling system of claim 18 , wherein the controller is further configured to release at least some write requests from the queue after a predetermined period of time.

20. A method for handling input/output (I/O) in a data storage system comprising a RAID subsystem storing data according to a RAID level utilizing a parity scheme, where RAID stripes have been configured across a plurality of data storage devices, and where the data storage system allocates data space in data pages, the data pages being smaller in size than the size of a RAID stripe, the method comprising:

monitoring requests for storage space on the RAID subsystem to identify a set of storage space requests received from one or more host devices;

assigning data pages from the RAID subsystem that are in a same RAID stripe to the set of storage space requests to increase the likelihood that subsequent write requests to the assigned data pages will be queued around the same time;

monitoring write requests to the RAID subsystem to identify write requests for the assigned data pages; and

bundling write requests for the assigned data pages for substantially simultaneous execution at the RAID stripe.

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 (041829/0873) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 059803/0724 →
RELEASE OF SECURITY INTEREST AT REEL 041808 FRAME 0516 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL INTERNATIONAL, L.L.C.; DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058297/0573 →
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 Mar 21, 2019
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 049452/0223 →
PATENT SECURITY INTEREST (NOTES) Recorded Feb 28, 2017
From: DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 041829/0873 →
PATENT SECURITY INTEREST (CREDIT) Recorded Feb 24, 2017
From: DELL INTERNATIONAL, L.L.C.; DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 041808/0516 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 26, 2017
From: KLEMM, MICHAEL J.; FLOEDER, ANTHONY J.
To: COMPELLENT TECHNOLOGIES
Reel/Frame 041093/0455 →
MERGER Recorded Jan 26, 2017
From: COMPELLENT TECHNOLOGIES, INC.
To: DELL INTERNATIONAL L.L.C.
Reel/Frame 041094/0666 →