IP Library Granted Patent US 11,340,809
Granted Patent B1
US 11,340,809 · App. 17/083,362 · Granted May 24, 2022

Redirecting i/o communications based on network topology

Inventors: Owen Crowley (Cork, IE); Peniel Charles (Bangalore, IN); Manikandan Sethuraman (Bangalore, IN); Joseph G. Kanjirathinkal (Cary, NC)
Assignee: EMC IP Holding Company LLC
G06F3/0635G06F3/061G06F3/067H04L12/4641H04L61/6022
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,340,809
App. No.
17/083,362
Granted
May 24, 2022
Kind
B1
Abstract

Path components associated with I/O paths between another network component and a target system may be determined, and the health of target ports on such I/O paths may be determined. Failed I/O communications may be redirected based on the determined path components and the determined health of target ports. In response to a failed I/O communication, it may be determined which of the remaining I/O paths between the host system and the storage system has the least amount of associated path components in common with the failed I/O path, and the I/O communication may be redirected on such I/O path. The redirect I/O path also may be selected based on the health ranking of target ports of the I/O paths.

Claims (66)

1. For a data storage network including a storage system, another network component, and a plurality of permitted input/output (I/O) paths between the storage system and the other network component, each permitted I/O path including a plurality of ports, each port being included within one or more path components, each path component being a physical component or a logical grouping of ports, wherein each permitted I/O path is associated with a plurality of path components, the plurality of path components including each of the one or more path components within which a port of the I/O path is included, a method comprising:

detecting a failed I/O communication on a first I/O path of a plurality of permitted I/O paths;

determining a weighted non-commonality score for each of one or more remaining I/O paths, wherein the one or more remaining I/O paths include each of the plurality of permitted I/O paths other than the first I/O path, wherein said determining the weighted non-commonality score for said each remaining I/O path includes:

determining non-common path components of said each remaining I/O path that are not included in the first I/O path;

assigning a weight to each of the non-common path components of said each remaining I/O path, wherein said assigning includes assigning each physical component of the non-common path components a greater weight than each logical component of the non-common path components, wherein said each logical component is denoted by a logical grouping of ports; and

determining the weighted non-commonality score for said each remaining I/O path in accordance with the non-common path components and the weights assigned to the non-common path components;

selecting a second I/O path from among the one or more remaining I/O paths based at least in part on the weighted non-commonality score for each of the one or more remaining I/O paths; and

re-sending the failed I/O communication on the second I/O path.

2. The method of claim 1 , wherein each of the plurality of permitted I/O paths includes a storage system port, and wherein the method further comprises:

for each of the plurality of permitted I/O paths, determining a health value for the storage system port included in the permitted I/O path,

wherein the second I/O path is selected based at least in part on the health value of the storage system port of the second I/O path.

3. The method of claim 2 , further comprising:

ranking the storage system ports of the permitted I/O paths based on the health values of the storage system ports,

wherein the second I/O path is selected based at least in part on a ranking of the storage system port of the second I/O path.

4. The method of claim 1 , further comprising:

determining the plurality of path components associated with each I/O path, the plurality of path components including a switch that includes two ports of the I/O path.

5. The method of claim 4 , wherein determining the switch includes determining a media access control (MAC) address of the switch.

6. The method of claim 1 , further comprising:

determining the plurality of path components associated with each I/O path, the plurality of path components including a logical network of ports that includes two or more ports of the I/O path.

7. The method of claim 6 , wherein determining the logical network includes determining an IP sub-network and/or virtual local area network (VLAN) of which the two or more ports are members.

8. The method of claim 1 , further comprising:

determining the plurality of path components associated with each I/O path, the plurality of path components including a storage processing node that includes a storage system port included in the I/O path.

9. The method of claim 1 , further comprising:

the storage system determining the plurality of path components associated with each I/O path; and

the storage system communicating the plurality of path components to the other network component,

wherein the host system determines the one or more other I/O paths of the plurality of permitted I/O paths that have the least amount of associated path components in common with the first I/O path, selects the second I/O path from among the one or more other I/O paths, and re-sends the failed I/O communication on the second I/O path.

10. The method of claim 1 , wherein the other network component is a host system.

11. A system for a data storage network including a storage system, another network component, and a plurality of permitted input/output (I/O) paths between the storage system and the other network component, each permitted I/O path including a plurality of ports, each port being included within one or more path components, each path component being a physical component or a logical grouping of ports, wherein each permitted I/O path is associated with a plurality of path components, the plurality of path components including each of the one or more path components within which a port of the I/O path is included, the system including executable logic that implements a method comprising:

detecting a failed I/O communication on a first I/O path of a plurality of permitted I/O paths;

determining a weighted non-commonality score for each of one or more remaining I/O paths, wherein the one or more remaining I/O paths include each of the plurality of permitted I/O paths other than the first I/O path, wherein said determining the weighted non-commonality score for said each remaining I/O path includes:

determining non-common path components of said each remaining I/O path that are not included in the first I/O path;

assigning a weight to each of the non-common path components of said each remaining I/O path, wherein said assigning includes assigning each physical component of the non-common path components a greater weight than each logical component of the non-common path components, wherein said each logical component is denoted by a logical grouping of ports; and

determining the weighted non-commonality score for said each remaining I/O path in accordance with the non-common path components and the weights assigned to the non-common path components;

selecting a second I/O path from among the one or more remaining I/O paths based at least in part on the weighted non-commonality score for each of the one or more remaining I/O paths; and

re-sending the failed I/O communication on the second I/O path.

12. The system of claim 11 , wherein each of the plurality of permitted I/O paths includes a storage system port, and wherein the method further comprises:

for each of the plurality of permitted I/O paths, determining a health value for the storage system port included in the permitted I/O path,

wherein the second I/O path is selected based at least in part on the health value of the storage system port of the second I/O path.

13. The system of claim 12 , wherein the method further comprises:

ranking the storage system ports of the permitted I/O paths based on the health values of the storage system ports,

wherein the second I/O path is selected based at least in part on a ranking of the storage system port of the second I/O path.

14. The system of claim 11 , wherein the method further comprises:

determining the plurality of path components associated with each I/O path, the plurality of path components including a switch that includes two ports of the I/O path.

15. The system of claim 14 , wherein determining the switch includes determining a media access control (MAC) address of the switch.

16. The system of claim 11 , wherein the method further comprises:

the storage system determining the plurality of path components associated with each I/O path; and

the storage system communicating the plurality of path components to the other network component,

wherein the host system determines the one or more other I/O paths of the plurality of permitted I/O paths that have the least amount of associated path components in common with the first I/O path, selects the second I/O path from among the one or more other I/O paths, and re-sends the failed I/O communication on the second I/O path.

17. For a data storage network including a storage system, another network component, and a plurality of permitted input/output (I/O) paths between the storage system and the other network component, each permitted I/O path including a plurality of ports, each port being included within one or more path components, each path component being a physical component or a logical grouping of ports, wherein each permitted I/O path is associated with a plurality of path components, the plurality of path components including each of the one or more path components within which a port of the I/O path is included, computer-readable media having executable code stored thereon comprising:

executable code that detects a failed I/O communication on a first I/O path of a plurality of permitted I/O paths;

executable code that determines a weighted non-commonality score for each of one or more remaining I/O paths, wherein the one or more remaining I/O paths include each of the plurality of permitted I/O paths other than the first I/O path, wherein the executable code that determines the weighted non-commonality score for said each remaining I/O path includes:

executable code that determines non-common path components of said each remaining I/O path that are not included in the first I/O path;

executable code that assigns a weight to each of the non-common path components of said each remaining I/O path, wherein said executable code that assigns includes second executable code that assigns each physical component of the non-common path components a greater weight than each logical component of the non-common path components, wherein said each logical component is denoted by a logical grouping of ports; and

executable code that determines the weighted non-commonality score for said each remaining I/O path in accordance with the non-common path components and the weights assigned to the non-common path components;

executable code that selects a second I/O path from among the one or more remaining I/O paths based at least in part on the weighted non-commonality score for each of the one or more remaining I/O paths; and

executable code that re-sends the failed I/O communication on the second I/O path.

18. The computer-readable media of claim 17 , wherein each of the plurality of permitted I/O paths includes a storage system port, and wherein the further comprises stored thereon:

executable code that, for each of the plurality of permitted I/O paths, determines a health value for the storage system port included in the permitted I/O path,

wherein the second I/O path is selected based at least in part on the health value of the storage system port of the second I/O path.

19. The computer-readable media of claim 18 , further comprising:

executable code that ranks the storage system ports of the permitted I/O paths based on the health values of the storage system ports,

wherein the second I/O path is selected based at least in part on a ranking of the storage system port of the second I/O path.

20. The computer-readable media of claim 17 , further comprising:

executable code that controls the storage system to determine the plurality of path components associated with each I/O path; and

executable code that controls the storage system to communicate the plurality of path components to the other network component,

wherein the host system determines the one or more other I/O paths of the plurality of permitted I/O paths that have the least amount of associated path components in common with the first I/O path, selects the second I/O path from among the one or more other I/O paths, and re-sends the failed I/O communication on the second I/O path.

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 Oct 29, 2020
From: CROWLEY, OWEN; CHARLES, PENIEL; SETHURAMAN, MANIKANDAN; KANJIRATHINKAL, JOSEPH G.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 054203/0816 →