IP Library Granted Patent US 8,930,762
Granted Patent B1
US 8,930,762 · App. 13/718,734 · Granted Jan 6, 2015

Optimal tracking of cluster-wide shared storage connectivity for graceful error handling

Inventors: Prasanta Dash (San Jose, CA); Chaitanya Yalamanchili (Sunnyvale, CA)
Assignee: Symantec Corporation
G06F11/006
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 8,930,762
App. No.
13/718,734
Granted
Jan 6, 2015
Kind
B1
Abstract

The tracking of cluster-wide connectivity information is optimized. I/O errors that result from failed operations in which specific nodes attempt to access shared storage are detected. The start-times of failed operations are tracked. The tracked start-times are compared to the time at which the cluster-wide connectivity information was last updated. Responsive to the results of the comparing, the cluster-wide connectivity information is updated in response only to a single I/O error that results from a single failed operation that was initiated after the update time, wherein additional errors resulting from failed operations with start-times after the update time are also detected, thereby preventing redundant updates of the cluster-wide connectivity information. The update time is set to the time at which the cluster-wide connectivity information is updated.

Claims (54)

1. A computer implemented method for optimized tracking of cluster-wide connectivity information in a clustering and storage system comprising a plurality of nodes and shared storage, the method comprising the steps of:

detecting I/O (“input/output”) errors that result from failed operations in which specific nodes of the cluster attempt to access shared storage;

tracking start-times of failed operations that result in I/O errors;

comparing start-times of failed operations that result in I/O errors to an update time, the update time comprising a time at which cluster-wide connectivity information was last updated;

responsive to results of the comparing, updating the cluster-wide connectivity information in response only to a single I/O error that results from a single failed operation that was initiated after the update time, thereby preventing redundant updates of the cluster-wide connectivity information; and

setting the update time to the time at which the cluster-wide connectivity information is updated.

2. The method of claim 1 further comprising:

detecting an I/O (“input/output”) error that results from an operation that failed as a result of non-availability of shared storage at a cluster-wide level.

3. The method of claim 1 further comprising:

detecting an I/O (“input/output”) error that results from an operation that failed as a result of a connectivity problem local to a specific node of the cluster attempting to access shared storage.

4. The method of claim 1 further comprising:

deferring performance of a connectivity check by a specific node.

5. The method of claim 1 wherein updating the cluster-wide connectivity information in response only to a single I/O error that results from a single failed operation that was initiated after the update time, thereby preventing redundant updates of the cluster-wide connectivity information, further comprises:

updating the cluster-wide connectivity information in response only to a single I/O error that results from a failed operation with a start time after the update time, wherein additional I/O errors are detected, the additional I/O errors also resulting from failed operations having start-times after the update time.

6. The method of claim 1 wherein updating the cluster-wide connectivity information in response only to a single I/O error that results from a single failed operation that was initiated after the update time, thereby preventing redundant updates of the cluster-wide connectivity information, further comprises:

updating the cluster-wide connectivity information in response only to an I/O error that results from a failed operation resulting from a first event, wherein at least one additional detected I/O error results from at least one additional failed operation resulting from a second event.

7. The method of claim 1 wherein updating the cluster-wide connectivity information in response only to a single I/O error that results from a single failed operation that was initiated after the update time, thereby preventing redundant updates of the cluster-wide connectivity information, further comprises:

updating the cluster-wide connectivity information in response only to a single detected I/O error resulting from a failed operation resulting from a single logical unit (“LUN”) level connectivity event, wherein at least one additional detected I/O error results from at least one additional failed operation resulting from the same single LUN level connectivity event.

8. The method of claim 7 wherein updating the cluster-wide connectivity information in response only to a single detected I/O error resulting from a failed operation resulting from a single logical unit (“LUN”) level connectivity event further comprises:

updating the cluster-wide connectivity information in response only to a single detected I/O error resulting from a failed operation on a first logical volume resulting from a single logical unit (“LUN”) level connectivity event, wherein at least one additional detected I/O error results from at least one additional failed operation on a second logical volume resulting from the same single LUN level connectivity event.

9. The method of claim 1 wherein updating the cluster-wide connectivity information in response only to a single I/O error that results from a single failed operation that was initiated after the update time, thereby preventing redundant updates of the cluster-wide connectivity information, further comprises:

using LUN level sequence numbers in determining a relative order of failed operations.

10. The method of claim 1 wherein comparing start-times of failed operations to the update time further comprises:

representing start-times of operations and the update time using compatible units of measurement and degrees of precision.

11. The method of claim 10 further comprising:

maintaining a single global update time for the cluster.

12. The method of claim 10 further comprising:

maintaining a global update time for the cluster; and

tracking specific nodes whose connectivity status changes between updates of the cluster-wide connectivity information.

13. The method of claim 10 further comprising:

maintaining at least two update times for the cluster from a group of update times consisting of: a global update time, a local update time, a partial update time and a per node update time.

14. The method of claim 1 wherein setting the update time to the time at which the cluster-wide connectivity information is updated further comprises:

setting the update time to a value that is higher than any current value used to measure start-times or sequences of I/O operations on any participating LUN or node of the cluster, thereby ensuring that I/O operations that began prior to the most recent update do not trigger updating the cluster-wide connectivity information.

15. At least one non-transitory computer readable-storage medium for optimized tracking of cluster-wide connectivity information in a clustering and storage system comprising a plurality of nodes and shared storage, the at least one non-transitory computer readable-storage medium storing computer executable instructions that, when loaded into computer memory and executed by at least one processor of a computing device, cause the computing device to perform the following steps:

detecting I/O (“input/output”) errors that result from failed operations in which specific nodes of the cluster attempt to access shared storage;

tracking start-times of failed operations that result in I/O errors;

comparing start-times of failed operations that result in I/O errors to an update time, the update time comprising a time at which cluster-wide connectivity information was last updated;

responsive to results of the comparing, updating the cluster-wide connectivity information in response only to a single I/O error that results from a single failed operation that was initiated after the update time, thereby preventing redundant updates of the cluster-wide connectivity information; and

setting the update time to the time at which the cluster-wide connectivity information is updated.

16. The at least one non-transitory computer readable-storage medium of claim 15 further storing computer executable instructions to perform the following additional step:

updating the cluster-wide connectivity information in response only to an I/O error that results from a failed operation with a start-time after the update time, wherein additional I/O errors are detected, the additional I/O errors also resulting from failed operations having start-times after the update time.

17. The at least one non-transitory computer readable-storage medium of claim 15 further storing computer executable instructions to perform the following additional step:

updating the cluster-wide connectivity information in response only to an I/O error that results from a failed operation resulting from a first event, wherein at least one additional detected I/O error results from at least one additional failed operation resulting from a second event.

18. The at least one non-transitory computer readable-storage medium of claim 15 further storing computer executable instructions to perform the following additional step:

updating the cluster-wide connectivity information in response only to a single detected I/O error resulting from a failed operation resulting from a single logical unit (“LUN”) level connectivity event, wherein at least one additional detected I/O error results from at least one additional failed operation resulting from the same single LUN level connectivity event.

19. The at least one non-transitory computer readable-storage medium of claim 18 further storing computer executable instructions to perform the following additional step:

updating the cluster-wide connectivity information in response only to a single detected I/O error resulting from a failed operation on a first logical volume resulting from a single logical unit (“LUN”) level connectivity event, wherein at least one additional detected I/O error results from at least one additional failed operation on a second logical volume resulting from the same single LUN level connectivity event.

20. A computer system for optimized tracking of cluster-wide connectivity information in a clustering and storage system comprising a plurality of nodes and shared storage, the computer system comprising:

system memory;

an I/O error detecting module residing in the system memory, the I/O error detecting module being programmed to detect I/O (“input/output”) errors that result from failed operations in which specific nodes of the cluster attempt to access shared storage;

an operation start-time tracking module residing in the system memory, the operation start-time tracking module being programmed to track start-times of failed operations that result in I/O errors;

a time comparing module residing in the system memory, the time comparing module being programmed to compare start-times of failed operations that result in I/O errors to an update time, the update time comprising a time at which cluster-wide connectivity information was last updated;

a cluster connectivity information updating module residing in the system memory, the cluster connectivity information updating module being programmed to update the cluster-wide connectivity information in response only to a single I/O error that results from a single failed operation that was initiated after the update time, thereby preventing redundant updates of the cluster-wide connectivity information; and

an update time setting module residing in the system memory, the update time setting module being programmed to set the update time to the time at which the cluster-wide connectivity information is updated.

Assignments (8)
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 →
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 →
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: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 3, 2013
From: DASH, PRASANTA; YALAMANCHILI, CHAITANYA
To: SYMANTEC CORPORATION
Reel/Frame 029563/0989 →