IP Library Granted Patent US 11,301,138
Granted Patent B2
US 11,301,138 · App. 16/516,670 · Granted Apr 12, 2022

Dynamic balancing of input/output (IO) operations for a storage system

Inventors: Anton Kucherov (Dudley, MA); David Meiri (Somerville, MA)
Assignee: EMC IP Holding Company LLC
G06F3/0611G06F3/0653G06F3/0659G06F3/0673
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,301,138
App. No.
16/516,670
Granted
Apr 12, 2022
Kind
B2
Abstract

In one aspect, performing dynamic balancing of input/output (IO) operations includes providing a first queue for a first storage unit and a second queue for a second storage unit. The queues are configured to receive IO requests directed to the storage units. An aspect also includes determining a quality of service (QoS) value assigned to each of the storage units, pulling entries from the queues at a rate that accords with the QoS value, executing IOs, and monitoring bandwidth of the IO operations. Upon determining the bandwidth is not in alignment with the QoS value for either of the first and second storage units, a further aspect includes modifying the rate in which entries are pulled from at least one of the queues, continuing the monitoring the bandwidth and the modifying the rate until the bandwidth aligns with the QoS value assigned to each of the storage units.

Claims (43)

1. A method for performing dynamic balancing of input/output (IO) operations for storage units, the method comprising:

providing a first queue for a first storage unit of the storage units;

providing a second queue for a second storage unit of the storage units, the first queue and the second queue configured to receive input/output (IO) requests directed to corresponding first and second storage units;

determining a quality of service (QoS) value assigned to each of the first storage unit and the second storage unit;

pulling entries from each of the first queue and the second queue at a rate that accords with the QoS value assigned to each of the first storage unit and the second storage unit;

executing IO operations pursuant to the pulled entries;

monitoring bandwidth of the IO operations, responsive to the executing, with respect to the first storage unit and the second storage unit; and

upon determining, from the monitoring, the bandwidth is not in alignment with the QoS value for either of the first storage unit and the second storage unit, adaptively adjusting a ratio in which numbers of entries are pulled from the first queue and the second queue during a subsequent polling cycle based on the monitored bandwidth of the IO operations with respect to the first storage unit and the monitored bandwidth of the IO operations with respect to the second storage unit, continuing the monitoring the bandwidth and the adaptively adjusting the ratio until the bandwidth aligns with the QoS value assigned to each of the first storage unit and the second storage unit.

2. The method of claim 1 , wherein the QoS value assigned to the first queue is the same as the QoS value assigned to the second queue.

3. The method of claim 1 , wherein the QoS value assigned to the first queue is different than the QoS value assigned to the second queue.

4. The method of claim 3 , wherein the rate in which the entries are pulled from the first queue is initially different.

5. The method of claim 1 , further comprising:

in response to the monitoring, upon determining a predefined bandwidth level has not been reached for either of the first storage unit and the second storage unit, maintaining the rate of the pulling entries.

6. The method of claim 1 , wherein the first storage unit and the second storage unit are volumes of a storage array.

7. A system for performing dynamic balancing of input/output (IO) operations for storage units, the system comprising:

a memory comprising computer-executable instructions; and

a processor operable by a storage system, the processor executing the computer-executable instructions, the computer-executable instructions when executed by the processor cause the processor to perform operations comprising:

providing a first queue for a first storage unit of the storage units;

providing a second queue for a second storage unit of the storage units, the first queue and the second queue configured to receive input/output (IO) requests directed to corresponding first and second storage units;

determining a quality of service (QoS) value assigned to each of the first storage unit and the second storage unit;

pulling entries from each of the first queue and the second queue at a rate that accords with the QoS value assigned to each of the first storage unit and the second storage unit;

executing IO operations pursuant to the pulled entries;

monitoring bandwidth of the IO operations, responsive to the executing, with respect to the first storage unit and the second storage unit; and

upon determining, from the monitoring, the bandwidth is not in alignment with the QoS value for either of the first storage unit and the second storage unit, adaptively adjusting a ratio in which numbers of entries are pulled from the first queue and the second queue during a subsequent polling cycle based on the monitored bandwidth of the IO operations with respect to the first storage unit and the monitored bandwidth of the IO operations with respect to the second storage unit, continuing the monitoring the bandwidth and the adaptively adjusting the ratio until the bandwidth aligns with the QoS value assigned to each of the first storage unit and the second storage unit.

8. The system of claim 7 , wherein the QoS value assigned to the first queue is the same as the QoS value assigned to the second queue.

9. The system of claim 7 , wherein the QoS value assigned to the first queue is different than the QoS value assigned to the second queue.

10. The system of claim 9 , wherein the rate in which the entries are pulled from the first queue are initially different.

11. The system of claim 7 , wherein the operations further comprise:

in response to the monitoring, upon determining a predefined bandwidth level has not been reached for either of the first storage unit and the second storage unit, maintaining the rate of the pulling entries.

12. The system of claim 7 , wherein the first storage unit and the second storage unit are volumes of a storage array.

13. A computer program product for performing dynamic balancing of input/output (IO) operations for storage units, the computer program product embodied on a non-transitory computer readable medium, and the computer program product including instructions that, when executed by a computer, causes the computer to perform operations comprising:

providing a first queue for a first storage unit of the storage units;

providing a second queue for a second storage unit of the storage units, the first queue and the second queue configured to receive input/output (IO) requests directed to corresponding first and second storage units;

determining a quality of service (QoS) value assigned to each of the first storage unit and the second storage unit;

pulling entries from each of the first queue and the second queue at a rate that accords with the QoS value assigned to each of the first storage unit and the second storage unit;

executing IO operations pursuant to the pulled entries;

monitoring bandwidth of the IO operations, responsive to the executing, with respect to the first storage unit and the second storage unit; and

upon determining, from the monitoring, the bandwidth is not in alignment with the QoS value for either of the first storage unit and the second storage unit, adaptively adjusting a ratio in which numbers of entries are pulled from the first queue and the second queue during a subsequent polling cycle based on the monitored bandwidth of the IO operations with respect to the first storage unit and the monitored bandwidth of the IO operations with respect to the second storage unit, continuing the monitoring the bandwidth and the adaptively adjusting the ratio until the bandwidth aligns with the QoS value assigned to each of the first storage unit and the second storage unit.

14. The computer program product of claim 13 , wherein the QoS value assigned to the first queue is the same as the QoS value assigned to the second queue.

15. The computer program product of claim 13 , wherein the QoS value assigned to the first queue is different than the QoS value assigned to the second queue.

16. The computer program product of claim 15 , wherein the rate in which the entries are pulled from the first queue are initially different.

17. The computer program product of claim 13 , wherein the operations further comprise:

in response to the monitoring, upon determining a predefined bandwidth level has not been reached for either of the first storage unit and the second storage unit, maintaining the rate of the pulling the entries.

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 (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 (050724/0571) 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 060436/0088 →
RELEASE OF SECURITY INTEREST AT REEL 050406 FRAME 421 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058213/0825 →
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 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
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 050724/0571 →
SECURITY AGREEMENT Recorded Sep 17, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 050406/0421 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 19, 2019
From: KUCHEROV, ANTON; MEIRI, DAVID
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 049803/0782 →