IP Library Granted Patent US 11,762,588
Granted Patent B2
US 11,762,588 · App. 17/383,672 · Granted Sep 19, 2023

Multi-path layer configured to access storage-side performance metrics for load balancing policy control

Inventors: Amit Pundalik Anchi (Bangalore, IN); Rimpesh Patel (Bangalore, IN); Sanjib Mallick (Bangalore, IN)
Assignee: EMC IP Holding Company LLC
G06F3/0659G06F3/064G06F3/0611G06F3/0635G06F3/0683
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,762,588
App. No.
17/383,672
Granted
Sep 19, 2023
Kind
B2
Abstract

An apparatus comprises at least one processing device. The at least one processing device is configured to obtain storage-side performance information maintained by a storage system in conjunction with processing of input-output operations directed to the storage system by a host device over a network, to dynamically select a particular one of a plurality of distinct load balancing policies available in the host device based at least in part on the obtained storage-side performance information, and to apply the selected load balancing policy in directing additional input-output operations from the host device to the storage system. At least one of the load balancing policies comprises a storage cache aware load balancing policy that causes different ones of the input-output operations to be directed to different cache entities of the storage system based at least in part on cache-related performance metrics of the obtained storage-side performance information.

Claims (37)

1. An apparatus comprising:

at least one processing device comprising a processor coupled to a memory;

wherein the at least one processing device is configured:

to obtain storage-side performance information maintained by a storage system in conjunction with processing of input-output operations directed to the storage system by a host device over a network, the storage-side performance information comprising at least cache collision rates for respective cache entities of the storage system;

to dynamically select a particular one of a plurality of distinct load balancing policies available in the host device based at least in part on the obtained storage-side performance information in conjunction with host-side performance information maintained by the host device; and

to apply the selected load balancing policy in directing additional input-output operations from the host device to the storage system.

2. The apparatus of claim 1 wherein the at least one processing device comprises at least a portion of the host device.

3. The apparatus of claim 1 wherein the obtaining, dynamically selecting and applying are implemented in a multi-path layer comprising at least one multi-path input-output driver of the host device.

4. The apparatus of claim 1 wherein at least one of the load balancing policies comprises a storage cache aware load balancing policy that causes different ones of the input-output operations to be directed to different cache entities of the storage system based at least in part on cache-related performance metrics of the obtained storage-side performance information.

5. The apparatus of claim 4 wherein the cache entities of the storage system comprise respective components of the storage system that have respective local caches associated therewith.

6. The apparatus of claim 4 wherein the cache entities of the storage system comprise respective storage controllers of the storage system with each such storage controller having a different local cache associated therewith.

7. The apparatus of claim 1 wherein dynamically selecting a particular one of the plurality of distinct load balancing policies available in the host device based at least in part on the obtained storage-side performance information comprises automatically switching between at least a first load balancing policy that is storage cache aware and a second load balancing policy that is not storage cache aware.

8. The apparatus of claim 7 wherein the first load balancing policy utilizes cache-related performance metrics of the obtained storage-side performance information in load balancing decisions.

9. The apparatus of claim 7 wherein the second load balancing policy does not utilize cache-related performance metrics of the obtained storage-side performance information in load balancing decisions.

10. The apparatus of claim 7 wherein the first load balancing policy comprises:

accessing for each of one or more storage devices a stored mapping between ranges of logical block addresses of the storage device and respective ones of a plurality of cache entities of the storage system; and

for each of at least a subset of the additional input-output operations:

identifying a particular one of the cache entities based at least in part on a logical block address of the input-output operation and the stored mapping; and

selecting a particular one of a plurality of paths for delivery of the input-output operation to the storage system based at least in part on the identified cache entity.

11. The apparatus of claim 10 wherein the mapping is generated at least in part using information obtained from the storage system and characterizing the cache entities of the storage system.

12. The apparatus of claim 1 wherein the storage-side performance information is obtained from the storage system utilizing at least one of:

an in-band communication mechanism in which one or more commands in a designated storage protocol are sent from the host device to the storage system; and

an out-of-band communication mechanism in which host management software of the host device communicates with storage system management software of the storage system over a network connection.

13. The apparatus of claim 1 wherein dynamically selecting a particular one of the plurality of distinct load balancing policies available in the host device based at least in part on the obtained storage-side performance information comprises automatically selecting a first load balancing policy that is storage cache aware to replace a second load balancing policy that is not storage cache aware responsive to one or more of the cache collision rates for respective cache entities of the storage system exceeding a specified threshold.

14. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code, when executed by at least one processing device comprising a processor coupled to a memory, causes the processing device:

to obtain storage-side performance information maintained by a storage system in conjunction with processing of input-output operations directed to the storage system by a host device over a network, the storage-side performance information comprising at least cache collision rates for respective cache entities of the storage system;

to dynamically select a particular one of a plurality of distinct load balancing policies available in the host device based at least in part on the obtained storage-side performance information in conjunction with host-side performance information maintained by the host device; and

to apply the selected load balancing policy in directing additional input-output operations from the host device to the storage system.

15. The computer program product of claim 14 wherein at least one of the load balancing policies comprises a storage cache aware load balancing policy that causes different ones of the input-output operations to be directed to different cache entities of the storage system based at least in part on cache-related performance metrics of the obtained storage-side performance information.

16. The computer program product of claim 14 wherein dynamically selecting a particular one of the plurality of distinct load balancing policies available in the host device based at least in part on the obtained storage-side performance information comprises automatically switching between at least a first load balancing policy that is storage cache aware and a second load balancing policy that is not storage cache aware.

17. A method comprising:

obtaining storage-side performance information maintained by a storage system in conjunction with processing of input-output operations directed to the storage system by a host device over a network, the storage-side performance information comprising at least cache collision rates for respective cache entities of the storage system;

dynamically selecting a particular one of a plurality of distinct load balancing policies available in the host device based at least in part on the obtained storage-side performance information in conjunction with host-side performance information maintained by the host device; and

applying the selected load balancing policy in directing additional input-output operations from the host device to the storage system.

18. The method of claim 17 wherein at least one of the load balancing policies comprises a storage cache aware load balancing policy that causes different ones of the input-output operations to be directed to different cache entities of the storage system based at least in part on cache-related performance metrics of the obtained storage-side performance information.

19. The method of claim 17 wherein dynamically selecting a particular one of the plurality of distinct load balancing policies available in the host device based at least in part on the obtained storage-side performance information comprises automatically switching between at least a first load balancing policy that is storage cache aware and a second load balancing policy that is not storage cache aware.

20. The method of claim 17 wherein dynamically selecting a particular one of the plurality of distinct load balancing policies available in the host device based at least in part on the obtained storage-side performance information comprises automatically selecting a first load balancing policy that is storage cache aware to replace a second load balancing policy that is not storage cache aware responsive to one or more of the cache collision rates for respective cache entities of the storage system exceeding a specified threshold.

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 Jul 23, 2021
From: ANCHI, AMIT PUNDALIK; PATEL, RIMPESH; MALLICK, SANJIB
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 056958/0103 →
Priority Claims (1)
IN 202141026082 · Jun 11, 2021 · national
Continuity (1)
Related Publication 20220398038A1 · Dec 15, 2022