IP Library Granted Patent US 8,707,107
Granted Patent B1
US 8,707,107 · App. 13/316,014 · Granted Apr 22, 2014

Systems and methods for proactively facilitating restoration of potential data failures

Inventors: Arindam Panna (Maharashtra, IN); Nilesh Dhakras (Maharashtra, IN)
Assignee: Symantec Corporation
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,707,107
App. No.
13/316,014
Filed
Dec 9, 2011
Granted
Apr 22, 2014
Kind
B1
Art Unit
2117
USPC
714/747
Abstract

A computer-implemented method may include monitoring a computing system for evidence of potential data failures within the computing system. The computer-implemented method may also include detecting evidence that indicates a potential data failure while monitoring the computing system and identifying data implicated in the potential data failure based on the detected evidence. The computer-implemented method may further include initiating an action configured to proactively facilitate restoration of at least a portion of the data implicated in the potential data failure prior to determining whether the data implicated in the potential data failure needs to be restored. Various other methods, systems, and computer-readable media are also disclosed.

Claims (92)

1. A computer-implemented method for proactively facilitating restoration of potential data failures, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

monitoring a computing system for evidence of potential data failures within the computing system;

while monitoring the computing system, detecting evidence that indicates a potential data failure within the computing system by:

identifying a file system located on the computing system;

detecting at least one failed attempt to perform an input/output operation on at least a portion of data stored in the file system;

identifying data implicated in the potential data failure based on the detected evidence;

initiating an action configured to proactively facilitate restoration of at least a portion of the data implicated in the potential data failure in response to the detected evidence prior to making a determination as to whether the data implicated in the potential data failure needs to be restored.

2. The method of claim 1 , wherein detecting the evidence that indicates the potential data failure within the computing system further comprises:

identifying an application installed on the computing system;

searching the computing system for evidence that indicates data corruption in at least a portion of data accessed by the application;

while searching the computing system, detecting the evidence that indicates data corruption in the portion of data accessed by the application.

3. The method of claim 2 , wherein detecting the evidence that indicates data corruption in the portion of data accessed by the application further comprises:

identifying at least one event log that specifies at least one error detected in the computing system;

searching the event log for an error that indicates that the portion of data accessed by the application is potentially corrupt;

while searching the event log, identifying the error that indicates that the portion of data accessed by the application is potentially corrupt.

4. The method of claim 3 , wherein the event log that specifies the errors detected in the computing system comprises at least one of:

an event log maintained by an operating system installed on the computing system;

an event log maintained by the application that accessed the portion of data that is potentially corrupt;

an event log maintained by an administrator of the computing system.

5. The method of claim 1 , wherein identifying the data implicated in the potential data failure based on the detected evidence comprises using a file system filter driver to:

access the file system;

detect the failed attempt to perform the input/output operation on the portion of data stored in the file system;

detect an apparently successful attempt to perform the input/output operation on the portion of data in the file system after detecting the failed attempt to perform the input/output operation;

identify the portion of data stored in the file system based on the input/output operation.

6. The method of claim 1 , wherein the action configured to proactively facilitate restoration of the portion of the data comprises at least one of:

warning a user of the computing system of the potential data failure to enable the user to determine whether to restore the data implicated in the potential data failure;

replacing the data implicated in the potential data failure with a backup copy of the data implicated in the potential data failure;

enabling a different computing system to access a backup copy of the data implicated in the potential data failure;

bringing online a virtual machine that includes a backup copy of the data implicated in the potential data failure.

7. The method of claim 1 , wherein initiating the action configured to proactively facilitate restoration of the portion of the data implicated in the potential data failure comprises:

determining that a backup copy of the data implicated in the potential data failure is stored on a remote computing system;

copying the backup copy of the data implicated in the potential data failure from the remote computing system to a local storage location on the computing system;

facilitating replacement of the data implicated in the potential data failure with the backup copy upon determining that the data implicated in the potential data failure is no longer operable for at least one intended purpose of the data.

8. The method of claim 1 , wherein initiating the action configured to proactively facilitate restoration of the portion of the data implicated in the potential data failure comprises:

identifying a plurality of actions capable of proactively facilitating restoration of the portion of the data implicated in the potential data failure;

identifying at least one of the actions based on the detected evidence;

initiating the identified action in response to the detected evidence.

9. The method of claim 1 , wherein determining whether the data implicated in the potential data failure needs to be restored comprises determining whether the data implicated in the potential data failure is no longer operable for at least one intended purpose of the data.

10. The method of claim 1 , wherein detecting the failed attempt to perform the input/output operation on the portion of data stored in the file system comprises:

identifying a list that specifies defective data clusters;

identifying, in the list, a data cluster that includes the portion of data stored in the file system;

determining, based at least in part on identifying the data cluster in the list, that the portion of the data included in the data cluster is potentially corrupt.

11. The method of claim 10 , wherein:

the file system adds the data cluster to the list in response to the failed attempt to perform the input/output operation on the portion of data;

after the file system adds the data cluster to the list in response to the failed attempt, the file system initiates an apparently successful attempt to perform the input/output operation on the portion of data;

determining that the portion of data included in the data cluster is potentially corrupt comprises determining that the portion of data included in the data cluster is potentially corrupt despite the file system's apparently successful attempt to perform the input/output operation on the portion of data.

12. A system for proactively facilitating restoration of potential data failures, the system comprising:

a monitoring module programmed to:

monitor a computing system for evidence of potential data failures within the computing system;

detect, while monitoring the computing system, evidence that indicates a potential data failure within the computing system by:

identifying a file system located on the computing system;

detecting at least one failed attempt to perform an input/output operation on at least a portion of data stored in the file system;

identify data implicated in the potential data failure based on the detected evidence;

a restoration module programmed to initiate an action configured to proactively facilitate restoration of at least a portion of the data implicated in the potential data failure in response to the detected evidence prior to making a determination as to whether the data implicated in the potential data failure needs to be restored;

at least one processor configured to execute the monitoring module and the restoration module.

13. The system of claim 12 , wherein the monitoring module is further programmed to:

identify an application installed on the computing system;

search the computing system for evidence that indicates data corruption in at least a portion of data accessed by the application;

detect, while searching the computing system, the evidence that indicates data corruption in the portion of data accessed by the application.

14. The system of claim 13 , wherein the monitoring module is further programmed to:

identify at least one event log that specifies at least one error detected in the computing system;

search the event log for an error that indicates that the portion of data accessed by the application is potentially corrupt;

identify, while searching the event log, the error that indicates that the portion of data accessed by the application is potentially corrupt.

15. The system of claim 14 , wherein the event log that specifies the error detected in the computing system comprises at least one of:

an event log maintained by an operating system installed on the computing system;

an event log maintained by the application that accessed the portion of data that is potentially corrupt;

an event log maintained by an administrator of the computing system.

16. The system of claim 12 , wherein the monitoring module is programmed to use a file system filter driver to:

access the file system;

detect the failed attempt to perform the input/output operation on the portion of data stored in the file system;

detect an apparently successful attempt to perform the input/output operation on the portion of data in the file system after detecting the failed attempt to perform the input/output operation;

identify the portion of data stored in the file system based on the input/output operation.

17. The system of claim 12 , wherein the action configured to proactively facilitate restoration of the portion of the data comprises at least one of:

warning a user of the computing system of the potential data failure to enable the user to determine whether to restore the data implicated in the potential data failure;

replacing the data implicated in the potential data failure with a backup copy of the data implicated in the potential data failure;

enabling a different computing system to access a backup copy of the data implicated in the potential data failure;

bringing online a virtual machine that includes a backup copy of the data implicated in the potential data failure.

18. The system of claim 12 , wherein the restoration module is programmed to:

determine that a backup copy of the data implicated in the potential data failure is stored on a remote computing system;

copy the backup copy of the data implicated in the potential data failure from the remote computing system to a local storage location on the computing system;

facilitate replacement of the data implicated in the potential data failure with the backup copy upon determining that the data implicated in the potential data failure is no longer operable for at least one intended purpose of the data.

19. The system of claim 12 , wherein the restoration module is programmed to:

identify a plurality of actions configured to proactively facilitate restoration of the portion of the data implicated in the potential data failure;

identify at least one of the actions based on the detected evidence;

initiate the identified action in response to the detected evidence.

20. A non-transitory computer-readable-storage medium comprising one or more computer-executable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

monitor a computing system for evidence of potential data failures within the computing system;

detect, while monitoring the computing system, evidence that indicates a potential data failure within the computing system by:

identifying a file system located on the computing system;

detecting at least one failed attempt to perform an input/output operation on at least a portion of data stored in the file system;

identify data implicated in the potential data failure based on the detected evidence;

initiate an action configured to proactively facilitate restoration of at least a portion of the data implicated in the potential data failure in response to the detected evidence prior to making a determination as to whether the data implicated in the potential data failure needs to be restored.

Assignments (14)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2026
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 075728/0466 →
AMENDMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded Apr 8, 2025
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 070779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 070335/0013 →
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 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
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: 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 Dec 9, 2011
From: PANNA, ARINDAM; DHAKRAS, NILESH
To: SYMANTEC CORPORATION
Reel/Frame 027360/0086 →