IP Library Granted Patent US 11,543,971
Granted Patent B2
US 11,543,971 · App. 17/106,970 · Granted Jan 3, 2023

Array driven fabric performance notifications for multi-pathing devices

Inventors: Peniel Charles (Bangalore, IN); Gopinath Marappan (Coimbatore, IN); Vinay G. Rao (Bangalore, IN); Sanjib Mallick (Bangalore, IN); Arieh Don (Newton, MA)
Assignee: EMC IP Holding Company LLC
G06F3/0613G06F3/067G06F3/0614G06F3/0635G06F3/0653G06F3/0659
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,543,971
App. No.
17/106,970
Granted
Jan 3, 2023
Kind
B2
Abstract

A host device is configured to communicate over a network with a storage system. The host device comprises a multi-path input-output (MPIO) driver configured to control delivery of input-output (IO) operations from the host device to the storage system over selected ones of a plurality of paths through the network. The MPIO driver is further configured to send one or more requests to the storage system for data corresponding to performance of one or more switch fabrics in the network, and to receive the data corresponding to the performance of the one or more switch fabrics from the storage system. The MPIO driver is also configured to identify one or more performance issues associated with at least one of the selected ones of the plurality of paths based on the received data, and to manage one or more of the input-output operations responsive to the identified performance issues.

Claims (52)

1. An apparatus comprising:

a host device comprising a processor coupled to a memory;

the host device being configured to communicate over a network with a storage system;

the host device comprising:

a multi-path input-output driver configured to control delivery of input-output operations from the host device to the storage system over selected ones of a plurality of paths through the network;

wherein the multi-path input-output driver is further configured:

to send one or more requests to the storage system for data corresponding to performance of one or more switch fabrics in the network, wherein the one or more switch fabrics comprise one or more network switches;

to receive a first portion of the data corresponding to the performance of the one or more switch fabrics in the network from the storage system, wherein the first portion of the data is from a first switch fabric notification identifying at least one of one or more initiators and one or more targets used in one or more of the input-output operations;

to identify one or more performance issues associated with at least one of the selected ones of the plurality of paths based on the first portion of the data; and

to manage the one or more of the input-output operations responsive to the identified one or more performance issues;

wherein the first portion of the data comprises a count of events where at least part of the at least one of the selected ones of the plurality of paths fails;

wherein, in identifying the one or more performance issues, the multi-path input-output driver is configured to determine whether the count of events exceeds a threshold number of events; and

wherein the multi-path input-output driver is further configured to receive an indication of unavailability of a second portion of the data corresponding to the performance of the one or more switch fabrics in the network, and wherein the second portion of the data is from a second switch fabric notification failing to identify the one or more initiators and the one or more targets used in the one or more of the input-output operations.

2. The apparatus of claim 1 wherein the one or more requests for the data corresponding to the performance of the one or more switch fabrics are transmitted to the storage system utilizing one or more Small Computer System Interface (SCSI) commands.

3. The apparatus of claim 2 wherein the one or more SCSI commands comprise a log sense command.

4. The apparatus of claim 1 wherein, in managing the one or more of the input-output operations, the multi-path input-output driver is configured to throttle given ones of the input-output operations over the at least one of the selected ones of the plurality of paths.

5. The apparatus of claim 1 wherein, in managing the one or more of the input-output operations, the multi-path input-output driver is configured to send given ones of the input-output operations over one or more paths of the plurality of paths unaffected by the identified one or more performance issues.

6. The apparatus of claim 1 wherein, in identifying the one or more performance issues, the multi-path input-output driver is further configured to determine that the at least one of the one or more initiators and the one or more targets used in the one or more of the input-output operations correspond to the at least one of the selected ones of the plurality of paths.

7. The apparatus of claim 1 wherein the multi-path input-output driver is further configured to execute the management of the one or more of the input-output operations responsive to the count of events exceeding the threshold.

8. The apparatus of claim 1 wherein the storage system receives the first and second switch fabric notifications from the one or more switch fabrics.

9. The apparatus of claim 8 wherein the first and second switch fabric notifications each comprise a fabric performance impact notification (FPIN).

10. The apparatus of claim 8 wherein the storage system stores the data corresponding to the performance of the one or more switch fabrics, and wherein the multi-path input-output driver is configured to access at least a portion of the stored data utilizing one or more Small Computer System Interface (SCSI) commands.

11. The apparatus of claim 1 wherein the identified one or more performance issues comprise at least one of lost credit, credit stall and oversubscription.

12. A method performed by a host device configured to communicate over a network with a storage system, comprising:

configuring a multi-path input-output driver of the host device to control delivery of input-output operations from the host device over selected ones of a plurality of paths through the network;

the multi-path input-output driver:

sending one or more requests to the storage system for data corresponding to performance of one or more switch fabrics in the network, wherein the one or more switch fabrics comprise one or more network switches;

receiving a first portion of the data corresponding to the performance of the one or more switch fabrics in the network from the storage system, wherein the first portion of the data is from a first switch fabric notification identifying at least one of one or more initiators and one or more targets used in one or more of the input-output operations;

identifying one or more performance issues associated with at least one of the selected ones of the plurality of paths based on the first portion of the data; and

managing the one or more of the input-output operations responsive to the identified one or more performance issues;

wherein the first portion of the data comprises a count of events where at least part of the at least one of the selected ones of the plurality of paths fails;

wherein, in identifying the one or more performance issues comprises, the multi-path input-output driver determines whether the count of events exceeds a threshold number of events;

wherein the multi-path input-output driver receives an indication of unavailability of a second portion of the data corresponding to the performance of the one or more switch fabrics in the network, and wherein the second portion of the data is from a second switch fabric notification failing to identify the one or more initiators and the one or more targets used in the one or more of the input-output operations; and

wherein the host device comprises a processor coupled to a memory.

13. The method of claim 12 wherein

in identifying the one or more performance issues, the multi-path input-output driver further determines that the at least one of the one or more initiators and the one or more targets used in the one or more of the input-output operations correspond to the at least one of the selected ones of the plurality of paths.

14. The method of claim 12 wherein the multi-path input-output driver executes the managing of the one or more of the input-output operations responsive to the count of events exceeding the threshold.

15. The method of claim 12 wherein, in managing the one or more of the input-output operations, the multi-path input-output driver throttles given ones of the input-output operations over the at least one of the selected ones of the plurality of paths.

16. The method of claim 12 wherein, in managing the one or more of the input-output operations, the multi-path input-output driver sends given ones of the input-output operations over one or more paths of the plurality of paths unaffected by the identified one or more performance issues.

17. The method of claim 12 wherein the storage system receives the first and second switch fabric notifications from the one or more switch fabrics.

18. 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 a host device comprising a multi-path input-output driver, the host device being configured to communicate over a network with a storage system, causes the multi-path input-output driver:

to control delivery of input-output operations from the host device to the storage system over selected ones of a plurality of paths through the network;

to send one or more requests to the storage system for data corresponding to performance of one or more switch fabrics in the network, wherein the one or more switch fabrics comprise one or more network switches;

to receive a first portion of the data corresponding to the performance of the one or more switch fabrics in the network from the storage system, wherein the first portion of the data is from a first switch fabric notification identifying at least one of one or more initiators and one or more targets used in one or more of the input-output operations;

to identify one or more performance issues associated with at least one of the selected ones of the plurality of paths based on the first portion of the data; and

to manage the one or more of the input-output operations responsive to the identified one or more performance issues;

wherein the first portion of the data comprises a count of events where at least part of the at least one of the selected ones of the plurality of paths fails;

wherein, in identifying the one or more performance issues, the program code causes the multi-path input-output driver to determine whether the count of events exceeds a threshold number of events; and

wherein the program code further causes the multi-path input-output driver to receive an indication of unavailability of a second portion of the data corresponding to the performance of the one or more switch fabrics in the network, and wherein the second portion of the data is from a second switch fabric notification failing to identify the one or more initiators and the one or more targets used in the one or more of the input-output operations.

19. The computer program product of claim 18 wherein

in identifying the one or more performance issues, the program code further causes the multi-path input-output driver to determine that the at least one of the one or more initiators and the one or more targets used in the one or more of the input-output operations correspond to the at least one of the selected ones of the plurality of paths.

20. The computer program product of claim 18 wherein the program code further causes the multi-path input-output driver to execute the management of the one or more of the input-output operations responsive to the count of events exceeding the threshold.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (055479/0342) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0460 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (055479/0051) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0663 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056136/0752) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0771 →
RELEASE OF SECURITY INTEREST AT REEL 055408 FRAME 0697 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0553 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056136/0752 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 055479/0051 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 055479/0342 →
SECURITY AGREEMENT Recorded Feb 25, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 055408/0697 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2020
From: CHARLES, PENIEL; MARAPPAN, GOPINATH; RAO, VINAY G.; MALLICK, SANJIB; DON, ARIEH
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 054493/0142 →