IP Library Granted Patent US 11,223,679
Granted Patent B2
US 11,223,679 · App. 16/035,785 · Granted Jan 11, 2022

Host device with multi-path layer configured for detection and reporting of path performance issues

Inventors: Vinay G. Rao (Bangalore, IN); Sanjib Mallick (Bangalore, IN); Krishna Deepak Nuthakki (Bangalore, IN); Arieh Don (Newton, MA)
Assignee: EMC IP Holding Company LLC
H04L67/1097H04L67/1002
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,223,679
App. No.
16/035,785
Granted
Jan 11, 2022
Kind
B2
Abstract

An apparatus in one embodiment comprises a host device configured to communicate over a network with a storage system comprising a plurality of storage devices. The host device comprises a set of input-output queues and a multi-path input-output driver configured to select input-output operations from the set of input-output queues for delivery to the storage system over the network. The multi-path input-output driver is further configured to send a predetermined command to the storage system over each of a plurality of paths from the host device to the storage system, to monitor a response time for the predetermined command on each of the paths, and to detect a performance issue with at least a given one of the paths based at least in part on the monitored response time. The predetermined command illustratively comprises a Small Computer System Interface (SCSI) “immediate” command of a particular type, such as a Test Unit Ready (TUR) command.

Claims (76)

1. An apparatus comprising:

a host device comprising a processor and a memory coupled to the processor and configured to communicate over a network with a storage system comprising a plurality of storage devices;

the host device further comprising:

a set of input-output queues; and

a multi-path input-output driver configured to select input-output operations from the set of input-output queues for delivery to the storage system over the network;

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

to send a predetermined command to the storage system over each of a plurality of paths from the host device to the storage system;

to monitor a response time for the predetermined command on each of the paths;

to detect a performance issue with at least a given one of the paths based at least in part on the monitored response time;

to identify a particular one of the storage devices associated with the given path for which the performance issue is detected;

to map the particular storage device to at least one process that generates input-output operations directed to the particular storage device; and

to generate a notification identifying the process so as to permit the process to be mapped to a particular application running on the host device;

wherein the host device is further configured:

to map the process identified in the notification to the particular application; and

to perform at least one automated action relating to the particular application based at least in part on the notification identifying the process; and

wherein detecting a performance issue comprises:

determining a current response time for the given path from a response by the storage system to a current instance of the predetermined command;

determining a previous response time for the given path from a response by the storage system to a previous instance of the predetermined command;

comparing the current response time to the previous response time; and

responsive to the current response time being greater than the previous response time by more than a threshold amount, detecting the performance issue with the given path.

2. The apparatus of claim 1 further comprising one or more additional host devices each configured to communicate over the network with the storage system and wherein each additional host device comprises a set of input-output queues and a multi-path input-output driver configured to select input-output operations from the set of input-output queues for delivery to the storage system over the network.

3. The apparatus of claim 1 wherein the multi-path input-output driver is further configured to periodically send the predetermined command to the storage system over each of the plurality of paths.

4. The apparatus of claim 1 wherein the predetermined command comprises a particular type of command selected to elicit a response from the storage system.

5. The apparatus of claim 1 wherein the predetermined command comprises a Small Computer System Interface (SCSI) command of a particular type.

6. The apparatus of claim 1 wherein the predetermined command comprises at least one of a Test Unit Ready (TUR) command, an Inquiry command, a Read Capacity command and a vendor unique command.

7. The apparatus of claim 2 wherein a given one of the multi-path input-output drivers is further configured to map the given path for which a performance issue is detected to a particular one of the host devices.

8. The apparatus of claim 1 wherein the paths over which the predetermined command is sent comprise paths associated with respective initiator-target pairs.

9. The apparatus of claim 1 wherein the host device is configured to generate a notification for delivery to a host administrator responsive to detection of the performance issue with the given path.

10. The apparatus of claim 1 wherein the host device is configured to generate a notification for delivery to the storage system responsive to detection of the performance issue with the given path.

11. The apparatus of claim 1 wherein the multi-path input-output driver is further configured:

to select the input-output operations from the set of input-output queues for delivery to the storage system in accordance with a load balancing algorithm; and

to adjust the load balancing algorithm based at least in part on the detected performance issue.

12. A method comprising:

configuring a host device comprising a processor and a memory coupled to the processor;

configuring a multi-path input-output driver of the host device to communicate with a storage system over a network; and

configuring the multi-path input-output driver of the host device to implement:

sending a predetermined command to the storage system over each of a plurality of paths from the host device to the storage system;

monitoring a response time for the predetermined command on each of the paths;

detecting a performance issue with at least a given one of the paths based at least in part on the monitored response time;

identifying a particular one of the storage devices associated with the given path for which the performance issue is detected;

mapping the particular storage device to at least one process that generates input-output operations directed to the particular storage device; and

generating a notification identifying the process so as to permit the process to be mapped to a particular application running on the host device;

the method further comprising:

mapping the process identified in the notification to the particular application; and

performing at least one automated action relating to the particular application based at least in part on the notification identifying the process; and

wherein detecting a performance issue comprises:

determining a current response time for the given path from a response by the storage system to a current instance of the predetermined command;

determining a previous response time for the given path from a response by the storage system to a previous instance of the predetermined command;

comparing the current response time to the previous response time; and

responsive to the current response time being greater than the previous response time by more than a threshold amount, detecting the performance issue with the given path.

13. 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, the host device comprising a processor and a memory coupled to the processor, causes the multi-path input-output driver:

to send a predetermined command to the storage system over each of a plurality of paths from the host device to the storage system;

to monitor a response time for the predetermined command on each of the paths;

to detect a performance issue with at least a given one of the paths based at least in part on the monitored response time;

to identify a particular one of the storage devices associated with the given path for which the performance issue is detected;

to map the particular storage device to at least one process that generates input-output operations directed to the particular storage device; and

to generate a notification identifying the process so as to permit the process to be mapped to a particular application running on the host device;

wherein the host device is further configured:

to map the process identified in the notification to the particular application; and

to perform at least one automated action relating to the particular application based at least in part on the notification identifying the process; and

wherein detecting a performance issue comprises:

determining a current response time for the given path from a response by the storage system to a current instance of the predetermined command;

determining a previous response time for the given path from a response by the storage system to a previous instance of the predetermined command;

comparing the current response time to the previous response time; and

responsive to the current response time being greater than the previous response time by more than a threshold amount, detecting the performance issue with the given path.

14. The computer program product of claim 13 wherein the program code, when executed by the host device comprising the multi-path input-output driver, further causes the multi-path input-output driver:

to select input-output operations from a set of input-output queues for delivery to the storage system in accordance with a load balancing algorithm; and

to adjust the load balancing algorithm based at least in part on the detected performance issue.

15. The method of claim 12 further comprising the multi-path input-output driver:

selecting input-output operations from a set of input-output queues for delivery to the storage system in accordance with a load balancing algorithm; and

adjusting the load balancing algorithm based at least in part on the detected performance issue.

16. The method of claim 12 wherein the predetermined command comprises a particular type of command selected to elicit a response from the storage system.

17. The method of claim 12 wherein the particular application comprises at least one process generating input-output operations directed to a particular one of the storage devices associated with the given path, and wherein the at least one automated action relating to the particular application comprises initiating migration of the at least one process of the particular application from a first one of the host devices that utilizes the given path to a second one of the host devices that does not utilize the given path based at least in part on the mapping.

18. The method of claim 12 wherein the predetermined command comprises at least one of a Test Unit Ready (TUR) command, an Inquiry command, a Read Capacity command and a vendor unique command.

19. The apparatus of claim 1 wherein the particular application comprises at least one process generating input-output operations directed to a particular one of the storage devices associated with the given path, and wherein the at least one automated action relating to the particular application comprises initiating migration of the at least one process of the particular application from a first one of the host devices that utilizes the given path to a second one of the host devices that does not utilize the given path based at least in part on the mapping.

20. The computer program product of claim 13 wherein the particular application comprises at least one process generating input-output operations directed to a particular one of the storage devices associated with the given path, and wherein the at least one automated action relating to the particular application comprises initiating migration of the at least one process of the particular application from a first one of the host devices that utilizes the given path to a second one of the host devices that does not utilize the given path based at least in part on the mapping.

Assignments (8)
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 (047648/0422) Recorded May 20, 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 060160/0862 →
RELEASE OF SECURITY INTEREST AT REEL 047648 FRAME 0346 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 058298/0510 →
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 AGREEMENT (CREDIT) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047648/0346 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 12, 2018
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 047648/0422 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 16, 2018
From: RAO, VINAY G.; MALLICK, SANJIB; NUTHAKKI, KRISHNA DEEPAK; DON, ARIEH
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 046356/0131 →
Continuity (1)
Related Publication 20200021654A1 · Jan 16, 2020