IP Library Granted Patent US 11,256,446
Granted Patent B1
US 11,256,446 · App. 16/983,050 · Granted Feb 22, 2022

Host bus adaptor (HBA) virtualization aware multi-pathing failover policy

Inventors: Rimpesh Patel (Bangalore, IN); Amit Pundalik Anchi (Bangalore, IN)
Assignee: EMC IP Holding Company LLC
G06F3/0664G06F3/067G06F3/0611G06F3/0631G06F3/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,256,446
App. No.
16/983,050
Granted
Feb 22, 2022
Kind
B1
Abstract

A host device is configured to communicate over a network with a storage system comprising a plurality of storage devices. 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 a plurality of paths through the network. The MPIO driver is further configured to identify whether given ones of a plurality of initiators associated with the paths comprise given ones of a plurality of virtual initiator instances, and to identify given ones of a plurality of physical initiator components corresponding to the given ones of the virtual initiator instances. The MPIO driver is also configured to detect a failure of an IO operation over a first path, and to select a second path for retrying the IO operation based on the identification of the physical initiator components corresponding to the virtual initiator instances.

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 a plurality 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 identify whether given ones of a plurality of initiators associated with the plurality of paths comprise given ones of a plurality of virtual initiator instances;

to identify given ones of a plurality of physical initiator components corresponding to the given ones of the plurality of virtual initiator instances;

wherein, in identifying given ones of the plurality of physical initiator components corresponding to the given ones of the plurality of virtual initiator instances, the multi-path input-output driver is configured to access data mapping sets of two or more virtual initiator instances of the plurality of virtual initiator instances to respective single physical initiator components of the plurality of physical initiator components;

to detect a failure of at least one input-output operation of the plurality of input-output operations over a first path of the plurality of paths, wherein the first path is through a first virtual initiator instance of the plurality of virtual initiator instances mapped to a first physical initiator component of the plurality of physical initiator components;

to identify a second path of the plurality of paths that is through a second virtual initiator instance of the plurality of virtual initiator instances mapped to a second physical initiator component of the plurality of physical initiator components different from the first physical initiator component; and

to select the second path of the plurality of paths for retrying the at least one input-output operation;

wherein the identification and selection of the second path is based at least in part on the data mapping the sets of two or more virtual initiator instances of the plurality of virtual initiator instances to the respective single physical initiator components of the plurality of physical initiator components.

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 2 wherein the plurality of physical initiator components comprise respective ones of a plurality of physical host bus adaptors.

4. The apparatus of claim 3 wherein, in selecting the second path of the plurality of paths for retrying the at least one input-output operation, the multi-path input-output driver is configured to select as the second path a path of the plurality of paths associated with a different one of the plurality of physical host bus adaptors than the first path.

5. The apparatus of claim 3 wherein:

in selecting the second path of the plurality of paths for retrying the at least one input-output operation, the multi-path input-output driver is configured to select as the second path a path of the plurality of paths associated with a different virtual host bus adaptor of the plurality virtual host bus adaptors than the first path; and

the different virtual host bus adaptor corresponds to a different physical host bus adaptor of the plurality of physical host bus adaptors than a virtual host bus adaptor of the first path.

6. The apparatus of claim 1 wherein, in identifying whether the given ones of the plurality of initiators comprise given ones of the plurality of virtual initiator instances, the multi-path input-output driver is configured to access data for distinguishing between the virtual and physical initiator components from one or more logical partitions of the host device.

7. The apparatus of claim 6 wherein the data comprises world-wide names corresponding to the given ones of the plurality of virtual initiator instances and to the given ones of the plurality of physical initiator components.

8. The apparatus of claim 6 wherein the data comprises at least one of identifying information of the host device and identifying information of the one or more logical partitions of the host device.

9. The apparatus of claim 1 wherein the data mapping the sets of two or more virtual initiator instances of the plurality of virtual initiator instances to the respective single physical initiator components of the plurality of physical initiator components is accessed from one or more logical partitions of the host device.

10. The apparatus of claim 9 wherein the multi-path input-output driver is further configured to categorize the plurality of paths according to respective single physical initiator components of the plurality of physical initiator components corresponding to the sets of two or more virtual initiator instances of the plurality of virtual initiator instances.

11. The apparatus of claim 10 wherein the first path of the plurality of paths is categorized under the first physical initiator component and the second path of the plurality of paths is categorized under the second physical initiator components.

12. The apparatus of claim 1 wherein the second virtual initiator instance of the plurality virtual initiator instances is different from the first virtual initiator instance of the plurality virtual initiator instances.

13. 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:

identifying whether given ones of a plurality of initiators associated with the plurality of paths comprise given ones of a plurality of virtual initiator instances;

identifying given ones of a plurality of physical initiator components corresponding to the given ones of the plurality of virtual initiator instances;

wherein identifying given ones of the plurality of physical initiator components corresponding to the given ones of the plurality of virtual initiator instances comprises accessing data mapping sets of two or more virtual initiator instances of the plurality of virtual initiator instances to respective single physical initiator components of the plurality of physical initiator components;

detecting a failure of at least one input-output operation of the plurality of input-output operations over a first path of the plurality of paths, wherein the first path is through a first virtual initiator instance of the plurality of virtual initiator instances mapped to a first physical initiator component of the plurality of physical initiator components;

identifying a second path of the plurality of paths that is through a second virtual initiator instance of the plurality of virtual initiator instances mapped to a second physical initiator component of the plurality of physical initiator components different from the first physical initiator component; and

selecting the second path of the plurality of paths for retrying the at least one input-output operation;

wherein the identification and selection of the second path is based at least in part on the of data mapping the sets of two or more virtual initiator instances of the plurality of virtual initiator instances to the respective single physical initiator components of the plurality of physical initiator components; and

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

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

15. The method of claim 14 wherein the plurality of physical initiator components comprise respective ones of a plurality of physical host bus adaptors.

16. The method of claim 15 wherein the selecting of the second path of the plurality of paths for retrying the at least one input-output operation comprises selecting as the second path a path of the plurality of paths associated with a different one of the plurality of physical host bus adaptors than the first path.

17. 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 identify whether given ones of a plurality of initiators associated with the plurality of paths comprise given ones of a plurality of virtual initiator instances;

to identify given ones of a plurality of physical initiator components corresponding to the given ones of the plurality of virtual initiator instances;

wherein, in identifying given ones of the plurality of physical initiator components corresponding to the given ones of the plurality of virtual initiator instances, the program code causes the multi-path input-output driver to access data mapping sets of two or more virtual initiator instances of the plurality of virtual initiator instances to respective single physical initiator components of the plurality of physical initiator components;

to detect a failure of at least one input-output operation of the plurality of input-output operations over a first path of the plurality of paths, wherein the first path is through a first virtual initiator instance of the plurality of virtual initiator instances mapped to a first physical initiator component of the plurality of physical initiator components;

to identify a second path of the plurality of paths that is through a second virtual initiator instance of the plurality of virtual initiator instances mapped to a second physical initiator component of the plurality of physical initiator components different from the first physical initiator component; and

to select the second path of the plurality of paths for retrying the at least one input-output operation;

wherein the identification and selection of the second path is based at least in part on the data mapping the sets of two or more virtual initiator instances of the plurality of virtual initiator instances to the respective single physical initiator components of the plurality of physical initiator components.

18. The computer program product of claim 17 wherein the second virtual initiator instance of the plurality virtual initiator instances is different from the first virtual initiator instance of the plurality virtual initiator instances.

19. The computer program product of claim 17 wherein the data mapping the sets of two or more virtual initiator instances of the plurality of virtual initiator instances to the respective single physical initiator components of the plurality of physical initiator components is accessed from one or more logical partitions of the host device.

20. The method of claim 13 wherein the data mapping the sets of two or more virtual initiator instances of the plurality of virtual initiator instances to the respective single physical initiator components of the plurality of physical initiator components is accessed from one or more logical partitions of the host device.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0523) 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 060332/0664 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0434) 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 060332/0740 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0609) 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/0570 →
RELEASE OF SECURITY INTEREST AT REEL 054591 FRAME 0471 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0463 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 054475/0609 →
SECURITY INTEREST Recorded Nov 18, 2020
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 054475/0434 →
SECURITY INTEREST Recorded Nov 18, 2020
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 054475/0523 →
SECURITY AGREEMENT Recorded Nov 13, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 054591/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 3, 2020
From: PATEL, RIMPESH; ANCHI, AMIT PUNDALIK
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 053380/0907 →