IP Library Granted Patent US 11,269,792
Granted Patent B2
US 11,269,792 · App. 16/887,344 · Granted Mar 8, 2022

Dynamic bandwidth management on a storage system

Inventors: Owen Martin (Hopedale, MA); Erik P. Smith (Douglas, MA)
Assignee: EMC IP Holding Company LLC
G06F13/1668G06F11/3442G06F2213/0062
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,269,792
App. No.
16/887,344
Granted
Mar 8, 2022
Kind
B2
Abstract

Bandwidth on a front-end port of a storage system may be managed. A plurality of logical storage units may be divided into a plurality of priority groups according to a predefined priority. For a first priority group of the plurality of priority groups having a highest priority, a first forecasted average amount of bandwidth of the first port to be consumed by the logical storage units of the first priority group during a first temporal interval may be determined. Based on the first forecasted average amount, a first reserve amount of bandwidth on the first port to be reserved for use by the logical storage units of the first priority group during the first temporal interval may be determined. The first reserve amount of bandwidth on the first port for use by the logical storage units of the first priority group during the first temporal interval may be reserved.

Claims (68)

1. For a storage system including a first port communicatively coupled to one or more host ports, and including a plurality of logical storage units for which IO connections have been established between the first port and the one or more host ports, a method comprising:

dividing the plurality of logical storage units into a plurality of priority groups, the priority groups ordered according to a predefined priority;

for a first priority group of the plurality of priority groups having a highest priority, determining a first forecasted cumulative average amount of bandwidth of the first port to be consumed by the logical storage units of the first priority group during a first temporal interval;

based on the first forecasted average amount, determining a first reserve amount of bandwidth on the first port to be reserved for use by the logical storage units of the first priority group during the first temporal interval; and

reserving the first reserve amount of bandwidth on the first port for use by the logical storage units of the first priority group during the first temporal interval.

2. The method of claim 1 , wherein the first port has a first bandwidth threshold defining a maximum amount of bandwidth permitted to be consumed during any time interval on the first port, and wherein the method further comprises:

determining a first remaining amount of bandwidth available for use on the first port during the first temporal interval by subtracting the first reserved amount of bandwidth from the first bandwidth threshold.

3. The method of claim 2 , further comprising:

determining a second bandwidth threshold defining a maximum amount of bandwidth permitted to be consumed for an IO path between the first port and a first of the one or more host ports; and

for a first IO connection between the first port and the first host port for a logical storage unit that is not a member of the first priority group, determining a first amount of bandwidth to allocate to the first IO connection based on at least the second bandwidth threshold and the first remaining amount of bandwidth.

4. The method of claim 3 , wherein determining the first amount of bandwidth to allocate to the first IO connection includes:

determining a second amount of bandwidth desired to be consumed by the first IO connection during the first temporal interval; and

if the second amount of bandwidth exceeds the second bandwidth threshold or the first remaining amount of bandwidth, adjusting an amount of bandwidth to be consumed by one or more IO connections on the first port during the first temporal interval.

5. The method of claim 2 , further comprising:

determining a second bandwidth threshold defining a maximum amount of bandwidth permitted to be consumed for an IO path between the first port and a first of the one or more host ports; and

for a first IO connection between the first port and the first host port for a logical storage unit that is a member of the first priority group, determining a first amount of bandwidth to allocate to the first IO connection based on at least the second bandwidth threshold and the first reserve amount of bandwidth.

6. The method of claim 5 , wherein determining the first amount of bandwidth to allocate to the first IO connection includes:

determining a second amount of bandwidth desired to be consumed by the first IO connection during the first temporal interval; and

if the second amount of bandwidth exceeds the second bandwidth threshold or the first reserve amount, adjusting an amount of bandwidth to be consumed by the first IO connection during the first temporal interval.

7. The method of claim 1 , wherein the method further comprises:

for a second priority group of the plurality of priority groups having a priority lower than the first priority group, determining a second forecasted average amount of bandwidth of the first port to be consumed by the logical storage units of the second priority group during the first temporal interval;

based on the second forecasted average amount, determining a second reserve amount of bandwidth on the first port to be reserved from the first remaining amount of bandwidth for use by the logical storage units of the second priority group during the first temporal interval; and

reserving the second reserve amount of bandwidth on the first port for use by the logical storage units of the second priority group during the first temporal interval.

8. A storage system, comprising:

a first port communicatively coupled to one or more host ports;

a plurality of logical storage units for which IO connections have been established between the first port and the one or more host ports; and

executable logic that implements a method including:

dividing the plurality of logical storage units into a plurality of priority groups, the priority groups ordered according to a predefined priority;

for a first priority group of the plurality of priority groups having a highest priority, determining a first forecasted cumulative average amount of bandwidth of the first port to be consumed by the logical storage units of the first priority group during a first temporal interval;

based on the first forecasted average amount, determining a first reserve amount of bandwidth on the first port to be reserved for use by the logical storage units of the first priority group during the first temporal interval; and

reserving the first reserve amount of bandwidth on the first port for use by the logical storage units of the first priority group during the first temporal interval.

9. The system of claim 8 , wherein the first port has a first bandwidth threshold defining a maximum amount of bandwidth permitted to be consumed during any time interval on the first port, and wherein the method further comprises:

determining a first remaining amount of bandwidth available for use on the first port during the first temporal interval by subtracting the first reserved amount of bandwidth from the first bandwidth threshold.

10. The system of claim 9 , wherein the method further comprises:

determining a second bandwidth threshold defining a maximum amount of bandwidth permitted to be consumed for an IO path between the first port and a first of the one or more host ports; and

for a first IO connection between the first port and the first host port for a logical storage unit that is not a member of the first priority group, determining a first amount of bandwidth to allocate to the first IO connection based on at least the second bandwidth threshold and the first remaining amount of bandwidth.

11. The system of claim 10 , wherein determining the first amount of bandwidth to allocate to the first IO connection includes:

determining a second amount of bandwidth desired to be consumed by the first IO connection during the first temporal interval; and

if the second amount of bandwidth exceeds the second bandwidth threshold or the first remaining amount of bandwidth, adjusting an amount of bandwidth to be consumed by one or more IO connections on the first port during the first temporal interval.

12. The system of claim 9 , wherein the method further comprises:

determining a second bandwidth threshold defining a maximum amount of bandwidth permitted to be consumed for an IO path between the first port and a first of the one or more host ports; and

for a first IO connection between the first port and the first host port for a logical storage unit that is a member of the first priority group, determining a first amount of bandwidth to allocate to the first IO connection based on at least the second bandwidth threshold and the first reserve amount of bandwidth.

13. The system of claim 12 , wherein determining the first amount of bandwidth to allocate to the first IO connection includes:

determining a second amount of bandwidth desired to be consumed by the first IO connection during the first temporal interval; and

if the second amount of bandwidth exceeds the second bandwidth threshold or the first reserve amount, adjusting an amount of bandwidth to be consumed by the first IO connection during the first temporal interval.

14. The system of claim 8 , wherein the method further comprises:

for a second priority group of the plurality of priority groups having a priority lower than the first priority group, determining a second forecasted average amount of bandwidth of the first port to be consumed by the logical storage units of the second priority group during the first temporal interval;

based on the second forecasted average amount, determining a second reserve amount of bandwidth on the first port to be reserved from the first remaining amount of bandwidth for use by the logical storage units of the second priority group during the first temporal interval; and

reserving the second reserve amount of bandwidth on the first port for use by the logical storage units of the second priority group during the first temporal interval.

15. For a storage system including a first port communicatively coupled to one or more host ports, and including a plurality of logical storage units for which IO connections have been established between the first port and the one or more host ports, non-transitory computer-readable media having software stored thereon comprising:

executable code that divides the plurality of logical storage units into a plurality of priority groups, the priority groups ordered according to a predefined priority;

executable code that, for a first priority group of the plurality of priority groups having a highest priority, determines a first forecasted cumulative average amount of bandwidth of the first port to be consumed by the logical storage units of the first priority group during a first temporal interval;

executable code that, based on the first forecasted average amount, determines a first reserve amount of bandwidth on the first port to be reserved for use by the logical storage units of the first priority group during the first temporal interval; and

executable code that reserves the first reserve amount of bandwidth on the first port for use by the logical storage units of the first priority group during the first temporal interval.

16. The non-transitory computer-readable media of claim 15 , wherein the first port has a first bandwidth threshold defining a maximum amount of bandwidth permitted to be consumed during any time interval on the first port, and wherein the software further comprises:

executable code that determines a first remaining amount of bandwidth available for use on the first port during the first temporal interval by subtracting the first reserved amount of bandwidth from the first bandwidth threshold.

17. The non-transitory computer-readable media of claim 16 , wherein the software further comprises:

executable code that determines a second bandwidth threshold defining a maximum amount of bandwidth permitted to be consumed for an IO path between the first port and a first of the one or more host ports; and

executable code that, for a first IO connection between the first port and the first host port for a logical storage unit that is not a member of the first priority group, determines a first amount of bandwidth to allocate to the first IO connection based on at least the second bandwidth threshold and the first remaining amount of bandwidth.

18. The non-transitory computer-readable media of claim 17 , wherein determining the first amount of bandwidth to allocate to the first IO connection includes:

determining a second amount of bandwidth desired to be consumed by the first IO connection during the first temporal interval; and

if the second amount of bandwidth exceeds the second bandwidth threshold or the first remaining amount of bandwidth, adjusting an amount of bandwidth to be consumed by one or more IO connections on the first port during the first temporal interval.

19. The non-transitory computer-readable media of claim 16 , wherein the software further comprises:

executable code that determines a second bandwidth threshold defining a maximum amount of bandwidth permitted to be consumed for an IO path between the first port and a first of the one or more host ports; and

executable code that, for a first IO connection between the first port and the first host port for a logical storage unit that is a member of the first priority group, determines a first amount of bandwidth to allocate to the first IO connection based on at least the second bandwidth threshold and the first reserve amount of bandwidth.

20. The non-transitory computer-readable media of claim 19 , wherein determining the first amount of bandwidth to allocate to the first IO connection includes:

determining a second amount of bandwidth desired to be consumed by the first IO connection during the first temporal interval; and

if the second amount of bandwidth exceeds the second bandwidth threshold or the first reserve amount, adjusting an amount of bandwidth to be consumed by the first IO connection during the first temporal interval.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053574/0221) 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 060333/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053578/0183) 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 060332/0864 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053573/0535) 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 060333/0106 →
RELEASE OF SECURITY INTEREST AT REEL 053531 FRAME 0108 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0371 →
SECURITY INTEREST Recorded Aug 21, 2020
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 053578/0183 →
SECURITY INTEREST Recorded Aug 21, 2020
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 053573/0535 →
SECURITY INTEREST Recorded Aug 21, 2020
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 053574/0221 →
SECURITY AGREEMENT Recorded Aug 18, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 053531/0108 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2020
From: MARTIN, OWEN; SMITH, ERIK P.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052787/0994 →