IP Library Granted Patent US 7,937,617
Granted Patent B1
US 7,937,617 · App. 11/261,269 · Granted May 3, 2011

Automatic clusterwide fail-back

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 7,937,617
App. No.
11/261,269
Granted
May 3, 2011
Kind
B1
Abstract

Systems and procedures may be used to coordinate the fail-back of multiple hosts in environments where the hosts share one or more data-storage resources. In one implementation, a procedure for coordinating fail-backs includes monitoring a failed data path to detect a restoration of the data path, polling remaining nodes in response to the restoration, and allowing the first node to resume communications if access has been restored to the remaining nodes.

Claims (91)

1. A method comprising:

determining that access by a first node in a computation cluster through a first controller to a storage resource has been restored;

querying each node in a plurality of nodes to determine whether access to the resource through the first controller has been restored for each node in the plurality of nodes, wherein the plurality of nodes comprises nodes in the computation cluster for which the first controller is a fail-back target, wherein

the querying is performed in response to the determining that access by the first node through the first controller to the resource has been restored;

receiving a response to the querying, wherein

the response indicates that access to the resource through the first controller has been restored for each node in the plurality of nodes; and

instructing, based at least in part on the response, the first node to communicate with the resource through the first controller, wherein the instructing the first node to communicate with the resource through the first controller is performed in response to determining that the access to the resource through the first controller has been restored for each node in the plurality of nodes.

2. The method of claim 1 , wherein the resource comprises a logical unit (LUN) or a group of logical units on a storage array.

3. The method of claim 1 , comprising:

in response to determining that access by the second node through the first controller to the resource has been restored, instructing the second node to communicate with the resource through the first controller.

4. The method of claim 1 , wherein the querying the second node comprises:

querying the second node to determine whether the first controller is a fail-back target for the second node.

5. The method of claim 1 , wherein:

the determining that access by the first node through the first controller to the resource has been restored is performed by a master node in the computation cluster;

the querying the second node to determine whether access by the second node to the resource through the first controller has been restored is performed by the master node; and

the instructing the first node to communicate with the resource through the first controller is performed by the master node.

6. The method of claim 5 , wherein the master node comprises the first node or the second node.

7. The method of claim 1 , comprising:

monitoring a first data path from the first node through the first controller to the resource;

wherein the determining that access by the first node to the resource through the first controller has been restored is performed in response to the monitoring.

8. The method of claim 7 , comprising:

detecting a failure of the first data path; and

communicating between the first node and the resource through a second controller prior to the determining that access by the first node to the resource through the first controller has been restored.

9. The method of claim 7 , wherein the monitoring comprises:

transmitting detection commands from the first node through a port on the first node, wherein the port is coupled to the first data path.

10. The method of claim 9 , wherein the detection commands comprise at least one of: a periodic heartbeat signal, or an inquiry command to a storage array that comprises the controller, or a read command to the storage array, or a write command to the storage array.

11. The method of claim 1 , wherein the determining that access by the first node to the resource through the first controller has been restored comprises:

transmitting a fail-back request from the first node to a master node in the cluster.

12. The method of claim 1 , wherein the determining that access by the first node to the resource through the first controller has been restored comprises:

informing a master node in the cluster that the access has been restored, wherein the informing is performed by the first node.

13. A method comprising:

determining that a first data path is available for use by a first node in a computation cluster, wherein

the determining is performed by the first node,

the computation cluster comprises a plurality of computation nodes, and

the first data path was previously unavailable to the first node;

informing a master node in the plurality of nodes that the first data path is available for use by the first node;

abstaining from communicating between the first node and a destination over the first data path until receiving a fail-back approval from the master node, wherein

the abstaining occurs after the determining that the first data path is available for use by the first node, and

the fail-back approval is based at least in part on a determination that the first data path is available for use by each node in the plurality of nodes; and

resuming communication between the first node and the destination after receiving the fail-back approval from the master node, wherein

the fail-back approval is received after the informing.

14. The method of claim 13 , wherein the determining that the first data path is available comprises:

transmitting detection commands from the first node through a port on the first node coupled to the first data path; and

receiving, at the first node, a response to the detection commands.

15. A system comprising:

a first host comprising

a restoration detection module configured to monitor a failed communications path to a storage resource, and

a query module configured to transmit a request for approval for a fail-back, wherein

a plurality of hosts are coupled to the failed communications path, and

the query module is configured to transmit the request in response to the restoration detection module detecting a restoration of the failed communications path; and

a master host coupled to the first host, the master host comprising

a coordination module configured to

receive the request from the first host,

determine, in response to the request, whether each host in the plurality of hosts is ready to perform a fail-back, and

transmit a fail-back approval to the first host, wherein

the fail-back approval is based at least in part on the request, and

the first host is configured to abstain from communicating over the failed communications path until receiving the fail-back approval.

16. The system of claim 15 , wherein the plurality of hosts comprises the master host, and the storage resource comprises a logical unit (LUN) or a group of logical units on a storage array.

17. The system of claim 15 , wherein the coordination module is configured to transmit a fail-back approval to the first host only if each host in the plurality of hosts is ready to perform a fail-back.

18. The system of claim 15 , wherein:

the restoration detection module is configured to transmit detection commands through a port on the first host, wherein the port is coupled to the failed communications path and the detection commands comprise at least one of: a periodic heartbeat signal, or an inquiry command to a storage array that comprises the storage resource, or a read command to the storage array, or a write command to the storage array; and

the restoration detection module is configured to detect a restoration of the failed communications path based upon a response to the detection commands.

19. A system comprising:

a first host comprising

a first means for monitoring a failed communications path to a storage resource, and

a second means for requesting approval for a fail-back, wherein

a plurality of hosts are coupled to the failed communications path, and

the second means is configured to transmit a request for approval in response to the first means detecting a restoration of the failed communications path; and

a master host coupled to the first host, the master host comprising

a third means configured to

receive the request for approval from the first host, and

determine, in response to the request, whether each host in the plurality of hosts is ready to perform a fail-back, and

transmit a fail-back approval to the first host, wherein

the fail-back approval is based at least in part on the request, and

the first host is configured to abstain from communicating over the failed communications path until receiving the fail-back approval.

20. The system of claim 19 , wherein the third means is configured to transmit a fail-back approval to the first host only if each host in the plurality of hosts is ready to perform a fail-back.

21. A computer readable storage medium comprising program instructions executable on one or more processors, the computer readable medium being at least one of an electronic storage medium, a magnetic storage medium, or an optical storage medium, wherein the program instructions are configured to implement each of:

monitoring a first data path from a first node in a computation cluster through a first controller on a storage array to a resource on the storage array;

in response to the monitoring, determining that access by the first node through the first controller to the resource has been restored;

in response to the determining that access by the first node through the first controller to the resource has been restored, querying each node in a plurality of nodes to determine whether access to the resource through the first controller has been restored for each node in the plurality of nodes, wherein

the plurality of nodes are in the computation cluster and are nodes for which the first controller is a fail-back target; and

only if access to the resource through the first controller has been restored for each node in the plurality of nodes,

instructing the first node to communicate with the resource through the first controller.

22. A method comprising:

determining that access by a first node in a computation cluster through a first controller to a storage resource has been restored;

querying a second node in the computation cluster to determine whether access by the second node through the first controller to the resource has been restored, wherein

the querying is performed in response to the determining that the access by the first node through the first controller to the resource has been restored, and;

receiving a response to the querying, wherein

the response indicates that the access by the second node through the first controller to the resource has been restored, and

instructing, based at least in part on the response, the first node to communicate with the resource through the first controller, wherein

the instructing the first node to communicate with the resource through the first controller is performed only if access to the resource through the first controller has been restored for each node in the computation cluster for which the first controller is a fail-back target.

Assignments (16)
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 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
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 →
SECURITY INTEREST Recorded Dec 10, 2024
From: ARCTERA US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 069563/0243 →
PATENT SECURITY AGREEMENT Recorded Dec 10, 2024
From: ARCTERA US LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069585/0150 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 069548/0468 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
CHANGE OF NAME Recorded Oct 1, 2007
From: VERITAS OPERATING CORPORATION
To: SYMANTEC OPERATING CORPORATION
Reel/Frame 019899/0213 →