IP Library Granted Patent US 9,544,371
Granted Patent B1
US 9,544,371 · App. 14/691,076 · Granted Jan 10, 2017

Method to discover multiple paths to disk devices cluster wide

Inventors: Amarinder Singh Randhawa (Sunnyvale, CA); Sathish Nayak (San Jose, CA); Prasanta Ranjan Dash (San Jose, CA)
Assignee: Veritas Technologies LLC
H04L67/1097H04L45/24H04L45/46G06F13/4063
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 9,544,371
App. No.
14/691,076
Granted
Jan 10, 2017
Kind
B1
Abstract

A system and method for determining a status of a connection path. For example, the method can include receiving a control message at a first node of a number of nodes that are configured to form a cluster, identifying a second node of the nodes as a node from which the control message was received, identifying a storage device to which the second node is coupled; and determining a status of a connection path. The connection path is between the first node and the second node, and the second node and the storage device. The first node includes a first computer system, and the second node includes a second computer system.

Claims (123)

1. A method comprising:

receiving a control message at a multi-pathing module of a first node, wherein

the first node comprises a first computer system,

the first node is one of a plurality of nodes, and

the plurality of nodes are configured to form a cluster by virtue of, at least in part, being configured to communicate with one another via a network;

identifying a second node of the plurality of nodes as a node from which the control message was received, wherein

the multi-pathing module performs, at least in part, the identifying the second node, and

the second node comprises a second computer system;

identifying a storage device to which the second node is coupled, wherein

the multi-pathing module performs, at least in part, the identifying the storage device, and

the second node and the storage device are configured to communicate with one another via a storage area network; and

determining a status of a connection path, wherein

the multi-pathing module performs, at least in part, the determining, and

the connection path is between the first node and the second node via the network, and the second node and the storage device via the storage area network.

2. The method of claim 1 , wherein

the control message is received at a disk connectivity module of the multi-pathing module,

the multi-pathing module comprises

the disk connectivity module, and

a meta-node, and

the method further comprises

communicating connectivity information from the disk connectivity module to the meta-node.

3. The method of claim 2 , wherein

the meta-node comprises a map,

the method further comprises

storing the connectivity information in the map.

4. The method of claim 1 , further comprising:

detecting that the status of the connection path indicates that a connection path has been established from the first node to the second node; and

generating event change information.

5. The method of claim 4 , further comprising:

storing the event change information in a map.

6. The method of claim 1 , further comprising:

detecting that the status of the connection path indicates that a previous connection path

from the first node to the second node has changed; and

generating state change information.

7. The method of claim 6 , further comprising:

storing the state change information in a map.

8. The method of claim 1 , wherein

the control message is received at a disk connectivity module of the multi-pathing module,

the multi-pathing module comprises

the disk connectivity module, and

a meta-node comprising a data structure, and

the method further comprises

communicating connectivity information from the disk connectivity module to the meta-node, and

storing the connectivity information in the data structure.

9. The method of claim 6 , wherein the connectivity information comprises:

path information, representing a plurality of paths from the first node to the storage device and comprising

information indicating which of the plurality of nodes are connected to the first node via a path, and

information indicating which of the plurality of nodes have access to the storage device, and

node information representing the plurality of nodes.

10. The method of claim 7 , further comprising:

updating at least a portion of the information in the connectivity information, based on one or more changes to connectivity status for at least one of the plurality of paths.

11. The method of claim 8 , further comprising:

selecting a selected path of the plurality of paths, wherein

the selecting is performed using the at least the portion of the information in the connectivity information; and

distributing an I/O request on the selected path.

12. A computer program product comprising:

a plurality of instructions configured to implement a multi-pathing module, comprising

a first set of instructions, executable on a first computer system, configured to

receive a control message at a first node, wherein

the first node comprises the first computer system,

the first node is one of a plurality of nodes,

the first node is configured to communicate with one or more other nodes of the plurality of nodes via a network, and

the plurality of nodes form a cluster by virtue of, at least in part, being configured to communicate with one another via the network,

a second set of instructions, executable on the first computer system, configured to identify a second node of the plurality of nodes as a node from which the control message was received, wherein

the second node comprises a second computer system, and

the plurality of nodes comprises the second node,

a third set of instructions, executable on the first computer system, configured to identify a storage device to which the second node is coupled, wherein

the second node and the storage device are configured to communicate with one another by a storage area network, and

a fourth set of instructions, executable on the first computer system, configured to determine a status of a connection path, wherein

the connection path is between the first node and the second node via the network, and the second node and the storage device via the storage area network; and

a non-transitory computer-readable storage medium, wherein the instructions are encoded in the non-transitory computer-readable storage medium.

13. The computer program product of claim 12 , wherein

the control message is received at a disk connectivity module of the multi-pathing module,

the multi-pathing module comprises

the disk connectivity module, and

a meta-node comprising a map, and

the instructions further comprise

a fifth set of instructions, executable on the first computer system, configured to communicate connectivity information from the disk connectivity module to the meta-node, and

a sixth set of instructions, executable on the first computer system, configured to store the connectivity information in the map.

14. The computer program product of claim 12 , wherein the instructions further comprise:

a fifth set of instructions, executable on the first computer system, configured to detect that the status of the connection path indicates that a connection path has been established from the first node to the second node;

a sixth set of instructions, executable on the first computer system, configured to generate event change information; and

a seventh set of instructions, executable on the first computer system, configured to store the event change information in a map.

15. The computer program product of claim 12 , wherein the instructions further comprise:

a fifth set of instructions, executable on the first computer system, configured to detect that the status of the connection path indicates that a previous connection path from the first node to the second node has changed;

a sixth set of instructions, executable on the first computer system, configured to generate state change information; and

a seventh set of instructions, executable on the first computer system, configured to store the state change information in a map.

16. The computer program product of claim 12 , wherein

the control message is received at a disk connectivity module of the multi-pathing module,

the multi-pathing module comprises

the disk connectivity module, and

a meta-node comprising a data structure, and

the instructions further comprise

a fifth set of instructions, executable on the first computer system, configured to communicate connectivity information from the disk connectivity module to the meta-node, and

a sixth set of instructions, executable on the first computer system, configured to store the connectivity information in the data structure.

17. The computer program product of claim 16 , wherein the connectivity information comprises:

path information, representing a plurality of paths from the first node to the storage device and comprising

information indicating which of the plurality of nodes are connected to the first node via a path, and

information indicating which of the plurality of nodes have access to the storage device, and

node information representing the plurality of nodes.

18. The computer program product of claim 17 , wherein the instructions further comprise:

a seventh set of instructions, executable on the first computer system, configured to update at least a portion of the information in the connectivity information, based on one or more changes to connectivity status for at least one of the plurality of paths;

a eighth set of instructions, executable on the first computer system, configured to select a selected path of the plurality of paths, wherein

the sixth set of instructions are configured to be executed using the at least the portion of the information in the connectivity information; and

a ninth set of instructions, executable on the first computer system, configured to distribute an I/O request on the selected path.

19. A computer system comprising:

one or more processors;

a network interface, coupled to the one or more processors, wherein

the computer system is configured to be one of a plurality of computer systems forming a cluster by virtue of being configured to communicate with one another via a network, and

the computer system is configured to communicate with one or more other computer systems of the plurality of computer systems via the network, using the network interface;

a non-transitory computer-readable storage medium, coupled to the one or more processors; and

a multi-pathing module, encoded in the non-transitory computer-readable storage medium, wherein

the multi-pathing module comprises

a disk connectivity module,

a meta-node, and

a plurality of instructions configured to cause the one or more processors to

receive a control message from another computer system of the plurality of computer systems via the network,

identify a storage device to which the another computer system is coupled, wherein

 the another computer system and the storage device are configured to communicate with one another via a storage area network, and

determine connectivity information for a connection path between the computer system and the another computer system via the network, and the another computer system and the storage device via the storage area network.

20. The computer system of claim 19 , wherein the meta-node comprises a data structure, and the multi-pathing module is further configured to:

facilitate communication of the connectivity information from the disk connectivity module to the meta-node; and

store the connectivity information in the data structure.

Assignments (13)
SECURITY INTEREST Recorded Dec 12, 2025
From: ARCTERA US LLC
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 073951/0470 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 070530/0497 Recorded Dec 1, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0730 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 069585/0150 Recorded Dec 1, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0848 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069632/0613 →
PATENT SECURITY AGREEMENT Recorded Dec 10, 2024
From: ARCTERA US LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069585/0150 →
SECURITY INTEREST Recorded Dec 10, 2024
From: ARCTERA US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 069563/0243 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 069548/0468 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT R/F 052426/0001 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 054535/0565 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Apr 16, 2020
From: VERITAS TECHNOLOGIES, LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 052426/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2017
From: SYMANTEC CORPORATION
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 041897/0001 →
PATENT SECURITY AGREEMENT Recorded Nov 23, 2016
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 040679/0466 →
Continuity (1)
Continuation 13410044 · Mar 1, 2012