IP Library Granted Patent US 11,630,581
Granted Patent B2
US 11,630,581 · App. 17/089,516 · Granted Apr 18, 2023

Host bus adaptor (HBA) virtualization awareness for effective input-output load balancing

Inventors: Owen Crowley (Carrigaline, IE); Peniel Charles (Bangalore, IN); Joseph G. Kanjirathinkal (Cary, NC)
Assignee: EMC IP Holding Company LLC
G06F3/0613G06F3/067G06F3/0635G06F3/0653G06F3/0659G06F3/0664G06F9/45558G06F9/542G06F2009/45595
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,630,581
App. No.
17/089,516
Granted
Apr 18, 2023
Kind
B2
Abstract

An apparatus comprises at least one processing device that is configured to control delivery of input-output operations from a host device to a storage system over selected ones of a plurality of paths through a network. The at least one processing device is further configured to detect a reduction in performance of one or more of the input-output operations over one or more paths of the plurality of paths, to identify a physical initiator component corresponding to the one or more paths, and to notify the storage system about the reduction in performance and the identified physical initiator component. The at least one processing device is also configured to receive a notification from the storage system indicating one or more virtual initiator instances of a plurality of virtual initiator instances corresponding to the identified physical initiator component, and to deactivate the one or more virtual initiator instances.

Claims (43)

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 control delivery of input-output operations from a host device to a storage system over selected ones of a plurality of paths through a network;

to detect a reduction in performance of one or more of the input-output operations over one or more paths of the plurality of paths;

to identify a physical initiator component corresponding to the one or more paths;

to notify the storage system about the reduction in performance and the identified physical initiator component;

to receive, in response to a designated command in a particular storage protocol, a notification from the storage system indicating one or more virtual initiator instances of a plurality of virtual initiator instances corresponding to the identified physical initiator component, wherein respective subsets of the plurality of virtual initiator instances correspond to respective ones of a plurality of physical initiator components;

to deactivate the one or more virtual initiator instances corresponding to the identified physical initiator component; and

to route additional ones of the input-output operations through one or more additional virtual initiator instances of the plurality of virtual initiator instances other than the one or more virtual initiator instances that have been deactivated, wherein the one or more additional virtual initiator instances correspond to at least one physical initiator component of the plurality of physical initiator components that is different from the identified physical initiator component.

2. The apparatus of claim 1 wherein the plurality of virtual initiator instances comprise respective ones of a plurality of virtual host bus adaptors.

3. The apparatus of claim 1 wherein the identified physical initiator component comprises a physical host bus adaptor.

4. The apparatus of claim 1 wherein the at least one processing device is further configured to reactivate the one or more virtual initiator instances corresponding to the identified physical initiator component responsive to repairing of the one or more paths associated with the reduction in performance.

5. The apparatus of claim 1 wherein said at least one processing device comprises at least one multi-path input-output driver implemented in the host device and configured to control delivery of the input-output operations to storage devices of the storage system over the selected ones of the plurality of paths through the network.

6. The apparatus of claim 5 wherein the at least one multi-path input-output driver comprises a multi-path input-output driver of a virtual input-output server.

7. The apparatus of claim 5 wherein the at least one multi-path input-output driver comprises a multi-path input-output driver of at least one of a virtual machine and a logical partition.

8. The apparatus of claim 1 wherein the notifying of the storage system about the reduction in performance and the identified physical initiator component is performed via a log select command.

9. The apparatus of claim 1 wherein the designated command comprises a log sense command.

10. The apparatus of claim 1 wherein the storage system comprises data mapping the respective subsets of the plurality of virtual initiator instances to the respective ones of the plurality of physical initiator components.

11. The apparatus of claim 1 wherein the reduction in performance comprises at least one of a reduction in input-output operations per second, an increase in latency and an increase in response time.

12. 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 at least one processing device:

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

to detect a reduction in performance of one or more of the input-output operations over one or more paths of the plurality of paths;

to identify a physical initiator component corresponding to the one or more paths;

to notify the storage system about the reduction in performance and the identified physical initiator component;

to receive, in response to a designated command in a particular storage protocol, a notification from the storage system indicating one or more virtual initiator instances of a plurality of virtual initiator instances corresponding to the identified physical initiator component, wherein respective subsets of the plurality of virtual initiator instances correspond to respective ones of a plurality of physical initiator components;

to deactivate the one or more virtual initiator instances corresponding to the identified physical initiator component; and

to route additional ones of the input-output operations through one or more additional virtual initiator instances of the plurality of virtual initiator instances other than the one or more virtual initiator instances that have been deactivated, wherein the one or more additional virtual initiator instances correspond to at least one physical initiator component of the plurality of physical initiator components that is different from the identified physical initiator component.

13. The computer program product of claim 12 wherein the plurality of virtual initiator instances comprise respective ones of a plurality of virtual host bus adaptors.

14. The computer program product of claim 12 wherein the program code further causes said at least one processing device to reactivate the one or more virtual initiator instances corresponding to the identified physical initiator component responsive to repairing of the one or more paths associated with the reduction in performance.

15. The computer program product of claim 12 wherein the notifying of the storage system about the reduction in performance and the identified physical initiator component is performed via a log select command.

16. A method comprising:

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

detecting a reduction in performance of one or more of the input-output operations over one or more paths of the plurality of paths;

identifying a physical initiator component corresponding to the one or more paths;

notifying the storage system about the reduction in performance and the identified physical initiator component;

receiving, in response to a designated command in a particular storage protocol, a notification from the storage system indicating one or more virtual initiator instances of a plurality of virtual initiator instances corresponding to the identified physical initiator component, wherein respective subsets of the plurality of virtual initiator instances correspond to respective ones of a plurality of physical initiator components;

deactivating the one or more virtual initiator instances corresponding to the identified physical initiator component; and

routing additional ones of the input-output operations through one or more additional virtual initiator instances of the plurality of virtual initiator instances other than the one or more virtual initiator instances that have been deactivated, wherein the one or more additional virtual initiator instances correspond to at least one physical initiator component of the plurality of physical initiator components that is different from the identified physical initiator component.

17. The method of claim 16 wherein the plurality of virtual initiator instances comprise respective ones of a plurality of virtual host bus adaptors.

18. The method of claim 16 further comprising reactivating the one or more virtual initiator instances corresponding to the identified physical initiator component responsive to repairing of the one or more paths associated with the reduction in performance.

19. The method of claim 16 wherein the notifying of the storage system about the reduction in performance and the identified physical initiator component is performed via a log select command.

20. The method of claim 16 wherein the designated command comprises a log sense command.

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 4, 2020
From: CROWLEY, OWEN; CHARLES, PENIEL; KANJIRATHINKAL, JOSEPH G.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 054276/0180 →