IP Library Granted Patent US 11,347,439
Granted Patent B2
US 11,347,439 · App. 17/078,461 · Granted May 31, 2022

Managing I/O communications based on transceiver state

Inventors: Joseph G. Kanjirathinkal (Cary, NC); Peniel Charles (Bangalore, IN); Owen Crowley (Cork, IE)
Assignee: EMC IP Holding Company LLC
G06F3/0659G06F3/0604G06F3/067G06F3/0613G06F3/0635G06F3/0653G06F3/0683
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,347,439
App. No.
17/078,461
Granted
May 31, 2022
Kind
B2
Abstract

A storage system may manage I/O communications between the storage system and other components on a storage network based on the state information of transceivers (e.g., SFPs) along I/O paths between the storage system and other network components. A storage system may send one or more queries to a switch of a data storage network. The query may request the state information of transceivers within any port on any I/O path through the switch between the storage system and another component on the storage network, for example, a host system or another storage system. The storage system may receive the requested transceiver state information in one or more responses, and manage I/O communications between the storage system and the other network component based on the received transceiver state information. The received state information may include, for each transceiver, an RX power level and/or a TX Power level for the transceiver.

Claims (52)

1. For a data storage network including a storage system, a switch and one or more other network components, a method comprising:

for a first network component of the one or more other network components, sending at least one query from the storage system to the switch, the query requesting, for each of a first plurality of ports on one or more I/O paths that include the switch between the storage system and the first network component, state information about a state of an associated one of a plurality of transceivers included within said each port;

receiving at least one response to the at least one query, the at least one response including, for each of the first plurality of the ports, the state information of said associated one of the plurality of transceivers included within said each port, wherein the state information includes for said each port a measured receiving power of said associated one of the plurality of transceivers included in said each port and a measured transmitting power of said associated one of the plurality of transceivers included in said each port; and

managing I/O communications between the storage system and the first network component based on the state information, wherein there are a plurality of I/O paths between the storage system and the first network component and wherein each of the plurality of I/O paths includes one or more of the first plurality of ports, and wherein said managing is performed by the storage system and includes:

determining one of a plurality of health scores for each of the plurality of transceivers included in one of the first plurality of ports, wherein said one health score for said each transceiver is determined in accordance with at least one of the measured transmitting power of said each transceiver and the measured receiving power of said each transceiver;

determining one of a plurality of priority values for each of the plurality of I/O paths based at least in part upon one or more of the plurality of health scores associated with one or more of the plurality of transceivers of one or more of the first plurality of ports included in said each I/O path; and

selecting a first of the plurality of I/O paths for communications in accordance with the plurality of priority values determined for the plurality of I/O paths.

2. The method of claim 1 , wherein said determining one of a plurality of health scores for each of the plurality of transceivers includes:

for each of the plurality of transceivers, performing at least one comparison, the at least one comparison including comparing the measured receiving power of said each transceiver to a predefined receiving power threshold and/or comparing the measured transmitting power of said each transceiver to a predefined transmitting power threshold.

3. The method of claim 2 , wherein each I/O path of the plurality of I/O paths includes two or more of the first plurality of ports, and wherein each of the plurality of I/O paths has an associated one of the plurality of priority values based at least in part on two or more of the plurality of healthy scores associated with two or more of the plurality of transceivers of the two or more ports of said each I/O path.

4. The method of claim 3 , wherein the at least one query requests, for each of a second plurality of ports, including the first plurality of ports, between the storage system and a plurality of the one or more network components, including the first network component, state information about a state of a transceiver included within said each port,

wherein the at least one response includes, for each of the second plurality of the ports, the state information of the transceiver included within said each port, and

wherein said managing I/O communications between the storage system and the first network component includes determining that at least one of the plurality of I/O paths are between the storage system and the first network component, wherein the first I/O path is included in the at least one I/O path.

5. The method of claim 1 , wherein the sending of the at least one query is repeated according to a predefined schedule resulting in repeatedly receiving at least one response, respectively, in response to the repeated at least one query, and

wherein I/O communications between the storage system and the first network component are managed based on the state information included in the repeatedly received at least one response.

6. The method of claim 1 , wherein said managing I/O communications between the storage system and the first network component includes:

preventing I/O communications from being sent on at least one I/O path from among the plurality of I/O paths based at least in part on the state information for each of the first plurality of the ports.

7. The method of claim 1 , wherein the other network component is another data storage system.

8. The method of claim 1 , wherein the state information includes values for small form-factor pluggable Read Diagnostic Parameters in accordance with a Fibre Channel specification.

9. A data storage system for a data storage network including the storage system, a switch and one or more other network components, the data storage system including executable logic that implements a method including:

for a first network component of the one or more other network components, sending at least one query from the storage system to the switch, the query requesting, for each of a first plurality of ports on one or more I/O paths that include the switch between the storage system and the first network component, state information about a state of an associated one of a plurality of transceivers included within said each port;

receiving at least one response to the at least one query, the at least one response including, for each of the first plurality of the ports, the state information of said associated one of the plurality of transceivers included within said each port, wherein the state information includes for said each port a measured receiving power of said associated one of the plurality of transceivers included in said each port and a measured transmitting power of said associated one of the plurality of transceivers included in said each port; and

managing I/O communications between the storage system and the first network component based on the state information, wherein there are a plurality of I/O paths between the storage system and the first network component and wherein each of the plurality of I/O paths includes one or more of the first plurality of ports, and wherein said managing is performed by the storage system and includes:

determining one of a plurality of health scores for each of the plurality of transceivers included in one of the first plurality of ports, wherein said one health score for said each transceiver is determined in accordance with at least one of the measured transmitting power of said each transceiver and the measured receiving power of said each transceiver;

determining one of a plurality of priority values for each of the plurality of I/O paths based at least in part upon one or more of the plurality of health scores associated with one or more of the plurality of transceivers of one or more of the first plurality of ports included in said each I/O path; and

selecting a first of the plurality of I/O paths for communications in accordance with the plurality of priority values determined for the plurality of I/O paths.

10. The data storage system of claim 9 , wherein said determining one of a plurality of health scores for each of the plurality of transceivers includes:

for each of the plurality of transceivers, performing at least one comparison, the at least one comparison including comparing the measured receiving power of said each transceiver to a predefined receiving power threshold and/or comparing the measured transmitting power of said each transceiver to a predefined transmitting power threshold.

11. The data storage system of claim 10 , wherein each I/O path of the plurality of I/O paths includes two or more of the first plurality of ports, and wherein each of the plurality of I/O paths has an associated one of the plurality of priority values based at least in part on two or more of the plurality of healthy scores associated with two or more of the plurality of transceivers of the two or more ports of said each I/O path.

12. The data storage system of claim 11 , wherein the at least one query requests, for each of a second plurality of ports, including the first plurality of ports, between the storage system and a plurality of the one or more network components, including the first network component, state information about a state of a transceiver included within said each port,

wherein the at least one response includes, for each of the second plurality of the ports, the state information of the transceiver included within said each port, and

wherein said managing I/O communications between the storage system and the first network component includes determining that at least one of the plurality of I/O paths are between the storage system and the first network component, wherein the first I/O path is included in the at least one I/O path.

13. The data storage system of claim 9 , wherein the sending of the at least one query is repeated according to a predefined schedule resulting in repeatedly receiving at least one response, respectively, in response to the repeated at least one query, and

wherein I/O communications between the storage system and the first network component are managed based on the state information included in the repeatedly received at least one response.

14. The data storage system of claim 9 , wherein said managing I/O communications between the storage system and the first network component includes:

preventing I/O communications from being sent on at least one I/O path from among the plurality of I/O paths based at least in part on the state information for each of the first plurality of the ports.

15. The data storage system of claim 9 , wherein the state information includes values for small form-factor pluggable Read Diagnostic Parameters in accordance with a Fibre Channel specification.

16. For a data storage network including a storage system, a switch and one or more other network components, non-transitory computer-readable media having software stored thereon, the software comprising:

executable code that, for a first network component of the one or more other network components, sending at least one query from the storage system to the switch, the query requesting, for each of a first plurality of ports on one or more I/O path that include the switch between the storage system and the first network component, state information about a state of an associated one of a plurality of transceivers included within said each port;

executable code that receives at least one response to the at least one query, the at least one response including, for each of the first plurality of the ports, the state information of said associated one of the plurality of transceivers included within said each port, wherein the state information includes for said each port a measured receiving power of said associated one of the plurality of transceivers included in said each port and a measured transmitting power of said associated one of the plurality of transceivers included in said each port; and

executable code that manages I/O communications between the storage system and the first network component based on the state information, wherein there are a plurality of I/O paths between the storage system and the first network component and wherein each of the plurality of I/O paths includes one or more of the first plurality of ports, and wherein the executable code that manages I/O communications further includes:

executable code that determines one of a plurality of health scores for each of the plurality of transceivers included in one of the first plurality of ports, wherein said one health score for said each transceiver is determined in accordance with at least one of the measured transmitting power of said each transceiver and the measured receiving power of said each transceiver;

executable code that determines one of a plurality of priority values for each of the plurality of I/O paths based at least in part upon one or more of the plurality of health scores associated with one or more of the plurality of transceivers of one or more of the first plurality of ports included in said each I/O path; and

executable code that select a first of the plurality of I/O paths for communications in accordance with the plurality of priority values determined for the plurality of I/O paths.

17. The non-transitory computer-readable media of claim 16 , wherein said executable code that determines one of a plurality of health scores for each of the plurality of transceivers includes:

executable code that, for each of the plurality of transceivers, performs at least one comparison, the at least one comparison including comparing the measured receiving power of said each transceiver to a predefined receiving power threshold and/or comparing the measured transmitting power of said each transceiver to a predefined transmitting power threshold.

18. The non-transitory computer-readable media of claim 17 , wherein each I/O path of the plurality of I/O paths includes two or more of the first plurality of ports, and wherein each of the plurality of I/O paths has an associated one of the plurality of priority values based at least in part on two or more of the plurality of healthy scores associated with two or more of the plurality of transceivers of the two or more ports of said each I/O path.

19. The non-transitory computer-readable media of claim 18 , wherein the at least one query requests, for each of a second plurality of ports, including the first plurality of ports, between the storage system and a plurality of the one or more network components, including the first network component, state information about a state of a transceiver included within said each port,

wherein the at least one response includes, for each of the second plurality of the ports, the state information of the transceiver included within said each port, and

wherein said managing I/O communications between the storage system and the first network component includes determining that at least one of the plurality of I/O paths are between the storage system and the first network component, wherein the first I/O path is included in the at least one I/O path.

20. The non-transitory computer-readable media of claim 16 , wherein the executable code that manages I/O communications between the storage system and the first network component includes:

executable code that prevents I/O communications from being sent on at least one I/O path from among the plurality of I/O paths based at least in part on the state information for each of the first plurality of the ports.

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