Search Images Maps Play YouTube News Gmail Drive More »
Sign in
Screen reader users: click this link for accessible mode. Accessible mode has the same essential features but works better with your reader.

Patents

  1. Advanced Patent Search
Publication numberUS6883120 B1
Publication typeGrant
Application numberUS 09/456,027
Publication date19 Apr 2005
Filing date3 Dec 1999
Priority date3 Dec 1999
Fee statusLapsed
Publication number09456027, 456027, US 6883120 B1, US 6883120B1, US-B1-6883120, US6883120 B1, US6883120B1
InventorsGaurav Banga
Original AssigneeNetwork Appliance, Inc.
Export CitationBiBTeX, EndNote, RefMan
External Links: USPTO, USPTO Assignment, Espacenet
Computer assisted automatic error detection and diagnosis of file servers
US 6883120 B1
Abstract
A method and system for computer assisted automatic error detection and diagnosis of file servers. Software modules periodically and continuously review monitoring statistics gathered by the file server regarding its operation. The monitoring statistics are processed by a pattern matching system and a rule-based inference system. Software modules augment known network protocols, by manipulating parameters of lower-level protocols using different higher-level protocols. Using the higher-level protocols, software modules determine if the selected parameters for the lower-level protocols are correct. Software modules track hardware and software configuration changes to the file server, and relate changes in known monitoring statistics to timing of those hardware and software configuration changes.
Images(6)
Previous page
Next page
Claims(30)
1. A method, including steps of
repeatedly reviewing monitoring statistics regarding operation of a file server, said steps of reviewing being performed at least as often as a selected time period; and
processing said monitoring statistics using a diagnostic software module on said file server, in response to said steps of repeatedly reviewing;
wherein said diagnostic software module diagnoses a behavior of said file server to determine a specific problem or problems by comparing said monitoring statistics to rules or patterns representing abnormal states of operation for said file server; and
wherein said monitoring statistics include information gathered by at least first and second software modules, said first and second software modules being disposed at differing protocol levels within an operating system of said file server.
2. A method as in claim 1, wherein said diagnostic software module includes a pattern matching system and a rule-based inference system.
3. A method as in claim 1, wherein said monitoring statistics include information gathered by at least one software module within an operating system of said file server.
4. A method as in claim 1, wherein said selected time period is less than 10 seconds.
5. A method as in claim 1, wherein said steps of processing are responsive to a usage profile for said file server.
6. A method as in claim 5, wherein said usage profile includes information regarding whether use of said file server includes usage as an ISP, a development environment, or a mail server.
7. A method as in claim 1, further including steps of
selecting parameters for said differing protocol levels;
using said diagnostic software module to determine a measure of efficiency for said file server using a higher one of said differing protocol levels; and
selecting new parameters for a lower one of said differing protocol levels in response to said measure of efficiency.
8. A method, including steps of
tracking configuration changes to a file server;
maintaining monitoring statistics for said file server:
identifying a relationship between changes in said monitoring statistics for said file server and timing of said configuration changes;
identifying possible errors or other faults for said server associated with relating said changes in said monitoring statistics to timing of said configuration changes;
determining, in response to said relationship between said changes in monitoring statistics and said timing of configuration changes, which of said possible errors or other faults is most likely; and
identifying, in response to which of said possible errors or other faults is most likely, one or more of said configuration changes.
9. A method as in claim 8, including steps of suggesting activities to reverse said configuration changes so as to place said file server in an operating state.
10. A method as in claim 8, wherein said configuration changes include hardware and software configuration changes.
11. A file server comprising:
an interface to a network;
mass storage accessible through said interface;
a processor that controls access to said mass storage; and
a memory that stores information including instructions executable by said processor, said instructions including steps of (a) repeatedly reviewing monitoring statistics regarding operation of said file server, said steps of reviewing being performed at least as often as a selected time period, and (b) processing said monitoring statistics using a diagnostic software module on said file server, in response to said steps of repeatedly reviewing;
wherein said diagnostic software module diagnoses a behavior of said file server to determine a specific problem or problems by comparing said monitoring statistics to rules or patterns representing abnormal states of operation for said file server; and
wherein said monitoring statistics include information gathered by at least first and second software modules, said first and second software modules being disposed at differing protocol levels within an operating system of said file server.
12. A file server as in claim 11, wherein said diagnostic software module includes a pattern matching system and a rule-based inference system.
13. A file server as in claim 11, wherein said monitoring statistics include information gathered by at least one software module within an operating system of said file server.
14. A file server as in claim 11, wherein said selected time period is less than 10 seconds.
15. A file server as in claim 11, wherein said steps of processing are responsive to a usage profile for said file server.
16. A file server as in claim 15, wherein said usage profile includes information regarding whether use of said file server includes usage as an ISP, a development environment, or a mail server.
17. A file server as in claim 11, said instructions further comprising steps of: (c) selecting parameters for said differing protocol levels; (d) using said diagnostic software module to determine a measure of efficiency for said file server using a higher one of said differing protocols levels; and (e) selecting new parameters for a lower one of said differing protocol levels in response to said measure of efficiency.
18. A file server comprising:
an interface to a network;
mass storage accessible through said interface;
a processor that controls access to said mass storage; and
a memory that stores information including instructions executable by said processor, said instructions including steps of (a) tracking configuration changes to said file server, (b) maintaining monitoring statistics for said file server, (c) identifying a relationship between changes in said monitoring statistics for said file server and timing of said configuration changes, (d) identifying possible errors or other faults for said server associated with said changes in said monitoring statistics, (e) determining, in response to said relationship between said changes in monitoring statistics and said timing of configuration changes, which of said possible errors or other faults is most likely, and (f) identifying, in response to which of said possible errors or other faults is most likely, one or more of said configuration changes.
19. A file server as in claim 18, wherein said instructions further include steps of suggesting activities to reverse said configuration changes so as to place said file server in an operating state.
20. A file server as in claim 18, wherein said configuration changes include hardware and software configuration changes.
21. A memory storing information including instructions, the instructions executable by a processor to control a file server, the instructions including steps of
repeatedly reviewing monitoring statistics regarding operation of said file server, said steps of reviewing being performed at least as often as a selected time period; and
processing said monitoring statistics using a diagnostic software module on said file server, in response to said steps of repeatedly reviewing;
wherein said diagnostic software module diagnoses a behavior of said file server to determine a specific problem or problems by comparing said monitoring statistics to rules or patterns representing abnormal states of operation for said file server; and
wherein said monitoring statistics include information gathered by at least first and second software modules, said first and second software modules being disposed at differing protocol levels within an operating system of said file server.
22. A memory as in claim 21, wherein said diagnostic software module includes a pattern matching system and a rule-based inference system.
23. A memory as in claim 21, wherein said monitoring statistics include information gathered by at least one software module within an operating system of said file server.
24. A memory as in claim 21, wherein said selected time period is less than 10 seconds.
25. A memory as in claim 21, wherein said steps of processing are responsive to a usage profile for said file server.
26. A memory as in claim 25, wherein said usage profile includes information regarding whether use of said file server includes usage as an ISP, a development environment, or a mail server.
27. A memory as in claim 21, the instructions further including steps of:
selecting parameters for said differing protocol levels;
using said diagnostic software module to determine a measure of efficiency for said file server using a higher one of said differing protocol levels; and
selecting new parameters for a lower one of said differing protocol levels in response to said measure of efficiency.
28. A memory storing information including instructions, the instructions executable by a processor to control a file server, the instructions including steps of
tracking configuration changes to a file server;
maintaining monitoring statistics for said file server;
identifying a relationship between changes in said monitoring statistics for said file server and timing of said configuration changes;
identifying possible errors or other faults for said server associated with said changes in said monitoring statistics;
determining in response to said relationship between said changes in monitoring statistics and said timing of configuration changes, which of said possible errors or other faults is most likely; and
identifying, in response to which of said possible errors or other faults is most likely, one or more of said configuration changes.
29. A memory as in claim 28, wherein said instructions further include steps of suggesting activities to reverse said configuration changes so as to place said file server in an operating state.
30. A memory as in claim 28, wherein said configuration changes include hardware and software configuration changes.
Description
BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates to computer assisted automatic error detection and diagnosis of file servers, such as for a networked file server.

2. Related Art

Network file servers are subject to errors and other failures (such as less-than-expected levels of performance), including those arising from hardware failure, software error, erroneous configuration, or mismatch between configuration and usage. Many of these errors and other failures are similar to those that are common for general-purpose computer systems, and these would therefore be subject to similar forms of error detection and diagnosis by a user of the system. However, many network file servers are designed for minimal user intervention, and are specifically intended to have extremely simple user interfaces. One such group of easy-to-use network file servers are called “Network Appliance”™ file servers, for which the model of use is that the device is as easy to use as a common toaster.

One problem with known systems is that relative ease of use is often coupled with relatively unsophisticated users. Error detection and diagnosis by relatively unsophisticated users is subject to the drawback that relatively unsophisticated users are relatively unsophisticated in the use of error detection and diagnosis techniques. Thus, forms of error detection and diagnosis that are acceptable for general-purpose computer systems are not nearly as suitable for network file servers where one of the most important purposes is to be easy-to-use.

Accordingly, it would be advantageous to provide a technique for computer assisted automatic error detection and diagnosis of file servers that is not subject to drawbacks of the known art.

SUMMARY OF THE INVENTION

The invention provides a method and system for computer assisted automatic error detection and diagnosis of file servers. In a preferred embodiment, the file server includes diagnostic software modules for (1) periodic and continuous interpretation of monitoring statistics, (2) augmentation of known network protocols, (3) cross-layer analysis of monitoring statistics, and (4) tracking of hardware and software configuration changes.

In a first aspect of the invention, the diagnostic software modules periodically and continuously review monitoring statistics gathered by the file server regarding its operation. These monitoring statistics can include a wide variety of values gathered by software modules at disparate levels within the operating system of the file server. The collection of monitoring statistics is processed by a pattern matching system and a rule-based inference system. In a preferred embodiment, the pattern matching system and rule-based inference system are responsive to a use profile for the file server, such as whether the file server is being used for an ISP, a development environment, a mail server, or otherwise.

In a second aspect of the invention, the diagnostic software modules are capable of augmenting known network protocols, by manipulating parameters of lower-level protocols using different higher-level protocols. The diagnostic software modules can manipulate known parameters of the lower-level protocols in rapid succession, so as to try a large number of combinations of protocol parameters. Using the higher-level protocols, the diagnostic software modules can determine if the selected parameters for the lower-level protocols are correct.

In a third aspect of the invention, the diagnostic software modules are capable of imposing sequential and combined constraints on diagnosis of possible errors, with reference to known logical coupling between monitoring statistics gathered at multiple logical levels of software modules within the file server. In a preferred embodiment, constraints from multiple logical levels are chained together so as to limit the number of possible errors deduced as possible from the various monitoring statistics to a relatively small number.

In a fourth aspect of the invention, the diagnostic software modules are capable of tracking hardware and software configuration changes to the file server, and relating changes in known monitoring statistics to timing of those hardware and software configuration changes. In a preferred embodiment, the diagnostic software modules are capable of determining the configuration change most likely to be responsible for a computer assisted diagnosed error, and of suggesting activities to reverse the hardware and software configuration changes so as to place the file server in an operating state.

The invention provides an enabling technology for a wide variety of applications for computer assisted automatic error detection and diagnosis of file servers, so as to obtain substantial advantages and capabilities that are novel and non-obvious in view of the known art. Examples described below primarily relate to networked file servers, but the invention is broadly applicable to many different types of automated software systems.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a block diagram of a system for computer assisted automatic error detection and diagnosis of file servers.

FIG. 2 shows a process flow diagram of a first method for operating a system for computer assisted automatic error detection and diagnosis of file servers, including periodic and continuous interpretation of monitoring statistics.

FIG. 3 shows a process flow diagram of a second method for operating a system for computer assisted automatic error detection and diagnosis of file servers, including augmentation of known network protocols.

FIG. 4 shows a process flow diagram of a third method for operating a system for computer assisted automatic error detection and diagnosis of file servers, including cross-layer analysis of monitoring statistics.

FIG. 5 shows a process flow diagram of a fourth method for operating a system for computer assisted automatic error detection and diagnosis of file servers, including tracking of hardware and software configuration changes.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

In the following description, a preferred embodiment of the invention is described with regard to preferred process steps and data structures. Embodiments of the invention can be implemented using general-purpose processors or special purpose processors operating under program control, or other circuits, adapted to particular process steps and data structures described herein. Implementation of the process steps and data structures described herein would not require undue experimentation or further invention.

Lexicography

The following terms refer or relate to aspects of the invention as described below. The descriptions of general meanings of these terms are not intended to be limiting, only illustrative.

    • client and server—in general, these terms refer to a relationship between two devices, particularly to their relationship as client and server, not necessarily to any particular physical devices.
    •  For example, but without limitation, a particular client device in a first relationship with a first server device, can serve as a server device in a second relationship with a second client device. In a preferred embodiment, there are generally a relatively small number of server devices servicing a relatively larger number of client devices.
    • client device and server device—in general, these terms refer to devices taking on the role of a client device or a server device in a client-server relationship (such as an HTTP web client and web server). There is no particular requirement that any client devices or server devices must be individual physical devices. They can each be a single device, a set of cooperating devices, a portion of a device, or some combination thereof.
    •  For example, but without limitation, the client device and the server device in a client-server relation can actually be the same physical device, with a first set of software elements serving to perform client functions and a second set of software elements serving to perform server functions.
    • configuration changes—in general, information regarding changes to a configuration of the file server.
    • cross-layer analysis—in general, a technique for applying a large number of combinations of diagnostic constraints, so as to determine a set of errors or other faults are not compatible with the set of current monitoring statistics.
    • diagnostic constraint—in general, a functional or logical constraint on possible errors or other failures, due to functional or logical structure of the file server or its operating system.
    • diagnostic software module—in general, a software module in the file server used for performing computer assisted automatic error detection and diagnosis.
    • error detection and diagnosis—in general, a technique for detecting errors and other failures, and for determining a likely cause thereof.
    • lower-level and higher-level protocols—in general, these terms refer to a relationship between two protocols, particularly to their relationship as a higher-level protocol which relies on operation of a lower-level protocol and which is able to alter parameters of the lower-level protocol, not necessarily to any particular protocols.
    • manipulating parameters—in general, a technique for using a higher-level protocol to determine whether a lower-level protocol is operating relatively efficiently using a set of selected parameters for the lower-level protocol, and using the lower-level protocol to repeatedly and rapidly alter those selected parameters so as to find an optimal set of selected parameters.
    • monitoring statistics—in general, information regarding performance of the file server or other device.
    • network protocol—in general, a technique for communication between devices, such as for example between (a) the file server or other device and (b) a point external to the file server or other device.
    • pattern matching—in general, a technique for comparing a set of monitoring statistics against a selected pattern known to be related to an error or other fault.
    • periodic and continuous interpretation—in general, repeated and rapid review of monitoring statistics, so as to identify errors or other faults rapidly and as early as possible
    • protocol augmentation—in general, a technique for using a higher-level protocol to determine whether a lower-level protocol is operating relatively efficiently using a set of selected parameters for the lower-level protocol, and using the lower-level protocol to repeatedly and rapidly alter those selected parameters so as to find an optimal set of selected parameters.
    • rule-based inference system—in general, a technique for drawing factual conclusions from monitoring statistics and other known facts, so as to determine the presence or absence of an error or other fault.
    • sequential and combined constraints on diagnosis—in general, a technique for applying a large number of combinations of diagnostic constraints, so as to determine a set of errors or other faults are not compatible with the set of current monitoring statistics
    • usage profile—in general, information regarding a pattern or profile of use of a file server or other device.

As noted above, these descriptions of general meanings of these terms are not intended to be limiting, only illustrative. Other and further applications of the invention, including extensions of these terms and concepts, would be clear to those of ordinary skill in the art after perusing this application. These other and further applications are part of the scope and spirit of the invention, and would be clear to those of ordinary skill in the art, without further invention or undue experimentation.

System Elements

FIG. 1 shows a block diagram of a system for computer assisted automatic error detection and diagnosis of file servers.

A system 100 includes a file server (or other device) 110, a communication network 120, a network interface 130, and a database 140.

The file server (or other device) 110 includes a computer having a processor, program and data memory, mass storage, a presentation element, and an input element, and coupled to the communication network 120. As used herein, the term “computer” is intended in its broadest sense, and includes any device having a programmable processor or otherwise falling within the generalized Turing machine paradigm. The mass storage can include any device for storing relatively large amounts of information, such as magnetic disks or tapes, optical devices, magneto-optical devices, or other types of mass storage.

The file server 110 includes operating system software 111, including an appliance operating system 112 for controlling the file server 110 and performing its file server operations, and a diagnostic software module 113 for performing computer assisted automatic error detection and diagnosis.

The diagnostic software module 113 includes software modules for error detection and diagnosis (further described with regard to FIG. 2, FIG. 3, FIG. 4, and FIG. 5), and is coupled to the database 140 for storing and retrieving statistical and other information.

The communication network 120 includes any technique for sending information between the file server 110 and at least one point outside the file server 110. In a preferred embodiment, the communication network 120 includes a computer network, such as an Internet, intranet, extranet, or a virtual private network. In alternative embodiments, the communication network 120 can include a direct communication line, a switched network such as a telephone network, or some combination thereof.

The network interface 130 includes a communication link between the file server 10 and the communication network 120.

The database 140 includes memory or mass storage in which monitoring statistics and other information about the file server 110 can be recorded and retrieved therefrom.

Method of Operation (Interpretation of Monitoring Statistics)

FIG. 2 shows a process flow diagram of a first method for operating a system for computer assisted automatic error detection and diagnosis of file servers, including periodic and continuous interpretation of monitoring statistics.

A method 200 includes a set of flow points and a set of steps. The system 100 performs the method 200. Although the method 200 is described serially, the steps of the method 200 can be performed by separate elements in conjunction or in parallel, whether asynchronously, in a pipelined manner, or otherwise. There is no particular requirement that the method 200 be performed in the same order in which this description lists the steps, except where so indicated.

At a flow point 210, the diagnostic software module 113 is ready to passively monitor operating system statistics.

At a step 211, the diagnostic software module 113 receives operating system statistics from the database 140 and compares those operating system statistics against a set of predefined rules regarding statistical aberrations. If the operating system statistics fall within the predefined rules, thus indicating an abnormal system state, the diagnostic software module 113 flags that abnormal system state, enters a reporting record in the database 140, and reports the detected abnormal system state and its associated operating system statistics to an operator (not shown).

In a preferred embodiment, the predefined rules regarding statistical aberrations include both (a) pattern matching, in which the diagnostic software module 113 compares the monitoring statistics against selected patterns known to be related to an errors or other faults, and (b) rule-based inference, in which the diagnostic software module 113 draws factual conclusions from monitoring statistics and other known facts, so as to determine the presence or absence of errors or other faults.

In a preferred embodiment, the predefined rules regarding statistical aberrations are responsive to a usage pattern for the file server, as recorded in the database 140 or otherwise. For example, the file server can be primarily used as for an ISP, a development environment, a mail server, or otherwise. The usage pattern for the file server could reflect such information, preferably including an expected number of distinct users, an expected number of distinct files, an expected size for typical files, and an expected duration of existence for distinct files or file-usage sessions.

At a step 212, the diagnostic software module 113 determines, using the predefined rules, whether the abnormal system state corresponds to a specific known problem, or is associated with more than one known problem. If the abnormal system state corresponds to a specific known problem, the diagnostic software module 113 so indicates and reports the specific known problem to the operator.

At a step 213, if the abnormal system state was determined in the previous step to correspond to a set of more than one known problem, the diagnostic software module 113 determines if there is a predefined technique for analyzing the abnormal system state. If there is such a predefined technique, the diagnostic software module 113 proceeds with the next step.

At a step 214, the diagnostic software module 113 performs the predefined technique for analyzing the abnormal system state found in the previous step.

After this step, the method 200 has performed one round of passively monitoring operating system statistics, and is ready to perform another such round so as to continuously monitor operating system statistics.

The method 200 is performed one or more times starting from the flow point 210 and continuing therefrom. In a preferred embodiment, the diagnostic software module 113 repeatedly performs the method 200, starting from the flow point 210 and continuing therefrom, so as to review monitoring statistics gathered by the file server periodically and continuously.

Method of Operation (Augmentation of Network Protocols)

FIG. 3 shows a process flow diagram of a second method for operating a system for computer assisted automatic error detection and diagnosis of file servers, including augmentation of known network protocols.

A method 300 includes a set of flow points and a set of steps. The system 100 performs the method 300. Although the method 300 is described serially, the steps of the method 300 can be performed by separate elements in conjunction or in parallel, whether asynchronously, in a pipelined manner, or otherwise. There is no particular requirement that the method 300 be performed in the same order in which this description lists the steps, except where so indicated.

At a flow point 310, the diagnostic software module 113 is ready to determine the presence or absence of errors or other faults, using protocol augmentation of known network protocols.

At a step 311, the diagnostic software module 113 selects parameters for known network protocols, so as to communicate with a device at a point outside the file server 110. In selecting these parameters, the diagnostic software module 113 attempts to choose parameters that match with the device outside the file server 110, so as to achieve relatively efficient communication.

At a step 312, the diagnostic software module 113 uses the lower-level protocol to set its parameters to the parameters selected in the previous step.

At a step 313, the diagnostic software module 113 communicates with the device outside the file server 110 using a higher-level protocol, and uses the higher-level protocol to measure the relative efficiency of communication therewith.

At a step 314, the diagnostic software module 113 selects a new set of parameters for the lower-level protocol, in response to the measure of relative efficiency determined using the higher-level protocol in the previous step.

The diagnostic software module 113 performs the step 312, the step 313, and the step 314, repeatedly and rapidly, so as to try a large number of combinations of protocol parameters. The diagnostic software module 113 thus determines which selected parameters are optimal.

At a step 315, the diagnostic software module 113 uses the lower-level protocol to set its parameters to the parameters determined to be optimal.

After this step, the method 300 has set the optimal parameters for the lower-level protocol.

The method 300 can be performed one or more times starting from the flow point 310 and continuing therefrom.

Method of Operation (Cross-Layer Analysis)

FIG. 4 shows a process flow diagram of a third method for operating a system for computer assisted automatic error detection and diagnosis of file servers, including cross-layer analysis of monitoring statistics.

A method 400 includes a set of flow points and a set of steps. The system 100 performs the method 400. Although the method 400 is described serially, the steps of the method 400 can be performed by separate elements in conjunction or in parallel, whether asynchronously, in a pipelined manner, or otherwise. There is no particular requirement that the method 400 be performed in the same order in which this description lists the steps, except where so indicated.

At a flow point 410, the diagnostic software module 113 is ready to perform cross-layer analysis of monitoring statistics.

At a step 411, the diagnostic software module 113 identifies a diagnostic constraint applicable to the set of current monitoring statistics.

At a step 412, the diagnostic software module 113 performs pattern matching and rule-based inference to attempt to identify a known error or other fault, similar to the method 200.

The diagnostic software module 1113 performs the step 411 and the step 412 repeatedly and rapidly, so as to apply a large number of combinations of diagnostic constraints. The diagnostic software module 113 thus determines a set of errors or other faults are not compatible with the set of current monitoring statistics.

In a preferred embodiment, the diagnostic software module 113 continues to apply combinations of diagnostic constraints until the set of errors or other faults is reduced to only a few possibilities.

After this step, the method 400 has used cross-layer analysis of monitoring statistics to restrict the set of possible errors or other faults.

The method 400 can be performed one or more times starting from the flow point 410 and continuing therefrom.

Method of Operation (Tracking Configuration Changes)

FIG. 5 shows a process flow diagram of a fourth method for operating a system for computer assisted automatic error detection and diagnosis of file servers, including tracking of hardware and software configuration changes.

A method 500 includes a set of flow points and a set of steps. The system 100 performs the method 500. Although the method 500 is described serially, the steps of the method 500 can be performed by separate elements in conjunction or in parallel, whether asynchronously, in a pipelined manner, or otherwise. There is no particular requirement that the method 500 be performed in the same order in which this description lists the steps, except where so indicated.

At a flow point 510, the diagnostic software module 113 is ready to perform tracking of hardware and software configuration changes.

At a step 511, the diagnostic software module 113 identifies a past hardware or software configuration for the file server, recorded in the database 140 or otherwise, and a present hardware or software configuration for the file server, recorded in the database 140 or otherwise.

At a step 512, the diagnostic software module 113 identifies a set of differences between the past configuration and the present configuration. The diagnostic software module relates changes in known monitoring statistics to timing of those configuration changes.

At a step 513, the diagnostic software module 113 identifies a set of possible errors or other faults associated with the set of differences identified in the previous step.

At a step 514, the diagnostic software module 113 applies diagnostic constraints from the set of current monitoring statistics to the set of possible errors or other faults, so as to determine which errors or other faults are most likely.

At a step 515, the diagnostic software module 113 uses the determination, in the previous step, of which errors or other faults are most likely, to suggest activities to reverse the hardware or software configuration changes so as to place the file server in an operating state.

After this step, the method 500 has used tracking of hardware and software configuration changes to restrict the set of possible errors or other faults.

The method 500 can be performed one or more times starting from the flow point 510 and continuing therefrom.

Generality of the Invention

The invention has general applicability to various fields of use, not necessarily related to the services described above. For example, these fields of use can include other “appliance”-type devices other than file servers.

Other and further applications of the invention in its most general form, will be clear to those skilled in the art after perusal of this application, and are within the scope and spirit of the invention.

Technical Appendix

The technical appendix enclosed with this application is hereby incorporated by reference as if fully set forth herein, and forms a part of the disclosure of the invention and its preferred embodiments.

Alternative Embodiments

Although preferred embodiments are disclosed herein, many variations are possible which remain within the concept, scope, and spirit of the invention, and these variations would become clear to those skilled in the art after perusal of this application.

Patent Citations
Cited PatentFiling datePublication dateApplicantTitle
US4296464 *3 Mar 197720 Oct 1981Honeywell Inc.Process control system with local microprocessor control means
US482535412 Nov 198525 Apr 1989American Telephone And Telegraph Company, At&T Bell LaboratoriesMethod of file access in a distributed processing computer network
US49377636 Sep 198826 Jun 1990E I International, Inc.Method of system state analysis
US498427230 Nov 19888 Jan 1991At&T Bell LaboratoriesSecure file handling in a computer operating system
US506709910 Apr 198919 Nov 1991Allied-Signal Inc.Methods and apparatus for monitoring system performance
US5101402 *24 May 198831 Mar 1992Digital Equipment CorporationApparatus and method for realtime monitoring of network sessions in a local area network
US510750019 Apr 198921 Apr 1992Fujitsu Ltd.Diagnostic expert system
US5109350 *25 Jan 198928 Apr 1992British Telecommunications Public Limited CompanyEvaluation system
US51134426 Mar 198912 May 1992Lachman Associates, Inc.Method and apparatus for providing access control in a secure operating system
US514465919 Apr 19891 Sep 1992Richard P. JonesComputer file protection system
US5193151 *30 Aug 19899 Mar 1993Digital Equipment CorporationDelay-based congestion avoidance in computer networks
US520298319 Dec 198913 Apr 1993Kabushiki Kaisha ToshibaFile accessing system using code name to access selected conversion table for converting simplified file name into original file name
US522221718 Jan 198922 Jun 1993International Business Machines CorporationSystem and method for implementing operating system message queues with recoverable shared virtual storage
US528383030 Sep 19921 Feb 1994International Computers LimitedSecurity mechanism for a computer system
US5485574 *4 Nov 199316 Jan 1996Microsoft CorporationOperating system based performance monitoring of programs
US5506955 *1 Dec 19949 Apr 1996International Business Machines CorporationSystem and method for monitoring and optimizing performance in a data processing system
US5553235 *1 May 19953 Sep 1996International Business Machines CorporationSystem and method for maintaining performance data in a data processing system
US557271123 Sep 19945 Nov 1996Bull Hn Information Systems Inc.Mechanism for linking together the files of emulated and host system for access by emulated system users
US560486214 Mar 199518 Feb 1997Network Integrity, Inc.Continuously-snapshotted protection of computer files
US561756814 Dec 19941 Apr 1997International Business Machines CorporationSystem and method for supporting file attributes on a distributed file system without native support therefor
US562166326 Apr 199515 Apr 1997Icl Systems AbMethod and system for monitoring a computer system
US5623598 *22 Nov 199422 Apr 1997Hewlett-Packard CompanyMethod for identifying ways to improve performance in computer data storage systems
US564915213 Oct 199415 Jul 1997Vinca CorporationMethod and system for providing a static snapshot of data stored on a mass storage system
US56491969 Nov 199515 Jul 1997Legent CorporationSystem and method for distributed storage management on networked computer systems using binary object identifiers
US5655081 *8 Mar 19955 Aug 1997Bmc Software, Inc.System for monitoring and managing computer resources and applications across a distributed computing environment using an intelligent autonomous agent architecture
US5664106 *9 Feb 19952 Sep 1997Digital Equipment CorporationPhase-space surface representation of server computer performance in a computer network
US5666481 *26 Feb 19939 Sep 1997Cabletron Systems, Inc.Method and apparatus for resolving faults in communications networks
US5668944 *6 Sep 199416 Sep 1997International Business Machines CorporationMethod and system for providing performance diagnosis of a computer system
US566895812 Sep 199516 Sep 1997International Business Machines CorporationHeterogeneous filing system with common API and reconciled file management rules
US56757826 Jun 19957 Oct 1997Microsoft CorporationControlling access to objects on multiple operating systems
US568054115 Dec 199221 Oct 1997Fuji Xerox Co., Ltd.Diagnosing method and apparatus
US5684945 *16 Apr 19964 Nov 1997International Business Machines CorporationSystem and method for maintaining performance data in a data processing system
US568970114 Dec 199518 Nov 1997International Business Machines CorporationSystem and method for providing compatibility between distributed file system namespaces and operating system pathname syntax
US5699350 *6 Oct 199516 Dec 1997Canon Kabushiki KaishaReconfiguration of protocol stacks and/or frame type assignments in a network interface device
US5704036 *28 Jun 199630 Dec 1997Mci Communications CorporationSystem and method for reported trouble isolation
US572191626 Feb 199724 Feb 1998Microsoft CorporationMethod and system for shadowing file system structures from multiple types of networks
US57375234 Mar 19967 Apr 1998Sun Microsystems, Inc.Methods and apparatus for providing dynamic network file system client authentication
US5745669 *21 Jun 199628 Apr 1998Ast Research, Inc.System and method for recovering PC configurations
US5751964 *12 Sep 199512 May 1998International Business Machines CorporationSystem and method for automatic determination of thresholds in network management
US5758071 *12 Jul 199626 May 1998Electronic Data Systems CorporationMethod and system for tracking the configuration of a computer coupled to a computer network
US576166926 Sep 19952 Jun 1998Microsoft CorporationControlling access to objects on multiple operating systems
US5768501 *28 May 199616 Jun 1998Cabletron SystemsMethod and apparatus for inter-domain alarm correlation
US5784359 *28 Jun 199621 Jul 1998Mci Communications CorporationSystem and method for unreported trouble isolation
US578740917 May 199628 Jul 1998International Business Machines CorporationDynamic monitoring architecture
US581929231 May 19956 Oct 1998Network Appliance, Inc.Method for maintaining consistent states of a file system and for creating user-accessible read-only copies of a file system
US581931024 May 19966 Oct 1998Emc CorporationMethod and apparatus for reading data from mirrored logical volumes on physical disk drives
US582587711 Jun 199620 Oct 1998International Business Machines CorporationSupport for portable trusted software
US58359538 Nov 199610 Nov 1998Vinca CorporationBackup system that takes a snapshot of the locations in a mass storage device that has been identified for updating prior to updating
US587627829 May 19972 Mar 1999Cheng; HenryCooling device
US589095931 Mar 19986 Apr 1999Digital Equipment CorporationHigh efficiency blower system with integral backflow preventor
US5893083 *19 Mar 19966 Apr 1999Hewlett-Packard CompanyMethods and apparatus for monitoring events and implementing corrective action in a computer system
US591508712 Dec 199622 Jun 1999Secure Computing CorporationTransparent security proxy for unreliable message exchange protocols
US5920719 *6 Nov 19956 Jul 1999Apple Computer, Inc.Extensible performance statistics and tracing registration architecture
US592662128 Mar 199520 Jul 1999Siemens AktiengesellschaftMethod for automatic diagnosis of malfunctions
US593193522 May 19973 Aug 1999Microsoft CorporationFile system primitive allowing reprocessing of I/O requests by multiple drivers in a layered driver I/O system
US5933564 *22 Nov 19953 Aug 1999Litton Systems, Inc.Optical interconnection apparatus
US596396230 Jun 19985 Oct 1999Network Appliance, Inc.Write anywhere file-system layout
US598336412 May 19979 Nov 1999System Soft CorporationSystem and method for diagnosing computer faults
US599608614 Oct 199730 Nov 1999Lsi Logic CorporationContext-based failover architecture for redundant servers
US599994331 Oct 19977 Dec 1999Oracle CorporationLob locators
US6006016 *18 Oct 199621 Dec 1999Bay Networks, Inc.Network fault correlation
US6012100 *14 Jul 19974 Jan 2000Freegate CorporationSystem and method of configuring a remotely managed secure network interface
US6016553 *26 Jun 199818 Jan 2000Wild File, Inc.Method, software and apparatus for saving, using and recovering data
US6057757 *6 Jul 19982 May 2000Cabletron Systems, Inc.Method and apparatus for policy-based alarm notification in a distributed network management environment
US6058494 *3 Jul 19972 May 2000Hewlett-Packard CompanyStorage system with procedure for monitoring low level status codes, deriving high level status codes based thereon and taking appropriate remedial actions
US6072777 *28 Jun 19966 Jun 2000Mci Communications CorporationSystem and method for unreported root cause analysis
US6148338 *3 Apr 199814 Nov 2000Hewlett-Packard CompanySystem for logging and enabling ordered retrieval of management events
US6173417 *30 Apr 19989 Jan 2001Intel CorporationInitializing and restarting operating systems
US6173420 *31 Oct 19979 Jan 2001Oracle CorporationMethod and apparatus for fail safe configuration
US6181700 *16 Jul 199730 Jan 2001Matsushita Electric Industrial Co., Ltd.Data transfer device having retransmission control function
US6185577 *23 Jun 19986 Feb 2001Oracle CorporationMethod and apparatus for incremental undo
US6189114 *26 Jun 199813 Feb 2001International Business Machines CorporationData processing system diagnostics
US6237114 *13 May 199822 May 2001Sun Microsystems, Inc.System and method for evaluating monitored computer systems
US6240511 *14 Dec 199829 May 2001Emc CorporationMethod and apparatus for detecting system configuration changes
US628270130 Jul 199828 Aug 2001Mutek Solutions, Ltd.System and method for monitoring and analyzing the execution of computer programs
US6295611 *14 Dec 199825 Sep 2001Sun Microsystems, Inc..Method and system for software recovery
US6324659 *28 Oct 199927 Nov 2001General Electric CompanyMethod and system for identifying critical faults in machines
US6327677 *27 Apr 19984 Dec 2001Proactive NetworksMethod and apparatus for monitoring a network environment
US6338151 *21 Aug 19988 Jan 2002International Business Machines CorporationInput/output recovery which is based an error rate and a current state of the computer environment
US6405327 *19 Aug 199811 Jun 2002Unisys CorporationApparatus for and method of automatic monitoring of computer performance
US6415372 *19 Nov 19992 Jul 2002Emc CoroprationRolling back storage subsystem reconfigurations
US6449739 *17 Jan 200010 Sep 2002Mercury Interactive CorporationPost-deployment monitoring of server performance
US6460070 *3 Jun 19981 Oct 2002International Business Machines CorporationMobile agents for fault diagnosis and correction in a distributed computer environment
US6460147 *10 Dec 19981 Oct 2002International Business Machines CorporationSystem and method for automated testing of software systems utilizing statistical models
US6470464 *23 Feb 199922 Oct 2002International Business Machines CorporationSystem and method for predicting computer system performance and for making recommendations for improving its performance
US6477531 *18 Dec 19985 Nov 2002Motive Communications, Inc.Technical support chain automation with guided self-help capability using active content
US6484206 *7 Oct 199819 Nov 2002Nortel Networks LimitedEfficient recovery of multiple connections in a communication network
US6490690 *22 Jul 19993 Dec 2002International Business Machines CorporationMethod and apparatus for unix system catastrophic recovery aid
US6496282 *16 Aug 199917 Dec 2002Ricoh Company, Ltd.Method and apparatus for establishing synchronous fax communication through ISDN
US654598130 Dec 19988 Apr 2003Compaq Computer CorporationSystem and method for implementing error detection and recovery in a system area network
US677237522 Dec 20003 Aug 2004Network Appliance, Inc.Auto-detection of limiting factors in a TCP connection
US200300462715 Sep 20026 Mar 2003Network Appliance, Inc.Adaptive and generalized status monitor
UST955010 *12 Aug 19761 Feb 1977International Business Machines CorporationHardware/software monitoring system
EP0537098A211 Sep 199214 Apr 1993International Business Machines CorporationEvent handling mechanism having a filtering process and an action association process
JPH03131143A * Title not available
WO1993000632A122 Jun 19927 Jan 1993Icl Systems AbMethod and system for monitoring a computer system
WO2002084920A219 Dec 200124 Oct 2002Network Appliance, Inc.Auto-detection of limiting factors in a tcp connection
Non-Patent Citations
Reference
1Borg et al. "Fault Tolerance under UNIX." ACM Transactions on Computer Systems, Feb. 1989, pp. 1-24, vol. 7, No. 1.
2 *Cowart, "Mastering Windows 98", 1998, Sybex, ch. 29 overview.*
3IBM. "Automated Problem Reporting." IBM Technical Disclosure Bulletin, Nov. 1989, pp. 466-468, vol. 32, No. 6A.
4 *Miller et al., "Auto-Negotation" from "LAN Technologies Explained", Digital Press, 2000.*
5 *Norton et al., "Peter Norton's Complete Guide to Norton SystemWorks 2.0", 1999, Sams, chs. 3 and 13.*
6 *Stevens, "TCP/IP Illustrated, vol. 1: The Protcols", 1994, Addison Wesley Longman, Inc., pp. 33 and 231-233.*
Referenced by
Citing PatentFiling datePublication dateApplicantTitle
US7010718 *14 Aug 20027 Mar 2006Hitachi, Ltd.Method and system for supporting network system troubleshooting
US7080141 *12 Apr 200218 Jul 2006Cisco Technology, Inc.Arrangement for automated fault detection and fault resolution of a network device
US7155641 *15 May 200326 Dec 2006Microsoft CorporationSystem and method for monitoring the performance of a server
US7203868 *26 Nov 200310 Apr 2007Unisys CorporationDynamic monitoring of resources using snapshots of system states
US7206975 *6 Dec 200217 Apr 2007International Business Machines CorporationInternal product fault monitoring apparatus and method
US7284162 *26 Jul 200416 Oct 2007AlcatelAgent based router monitoring, diagnostic and maintenance
US732498630 Jun 200329 Jan 2008At&T Delaware Intellectual Property, Inc.Automatically facilitated support for complex electronic services
US7360122 *10 Jan 200315 Apr 2008Bea Systems, Inc.Method for initiating a sub-system health check
US7373556 *10 Jan 200313 May 2008Bea Systems, Inc.Method for monitoring sub-system health
US7380172 *31 Dec 200427 May 2008Microsoft CorporationExpert software diagnostic tool
US7409593 *30 Jun 20035 Aug 2008At&T Delaware Intellectual Property, Inc.Automated diagnosis for computer networks
US74967993 Nov 200624 Feb 2009Microsoft CorporationSystem and method for monitoring the performance of a server
US750941526 May 200624 Mar 2009Cisco Technology, Inc.Arrangement for automated fault detection and fault resolution of a network device
US7640454 *28 Jun 200429 Dec 2009Symantec Operating CorporationSystem and method for point-in-time recovery of application resource sets
US7698598 *24 Apr 200713 Apr 2010Netapp, Inc.Automatic generation of core files and automatic generation of support information with generation of core files
US7702959 *1 Aug 200620 Apr 2010Nhn CorporationError management system and method of using the same
US773514225 Jun 20078 Jun 2010At&T Intellectual Property I, L.P.Electronic vulnerability and reliability assessment
US7805630 *27 Jul 200628 Sep 2010Microsoft CorporationDetection and mitigation of disk failures
US7823029 *7 Sep 200526 Oct 2010International Business Machines CorporationFailure recognition, notification, and prevention for learning and self-healing capabilities in a monitored system
US784936710 Apr 20087 Dec 2010Oracle International CorporationMethod for performing a corrective action upon a sub-system
US784936810 Apr 20087 Dec 2010Oracle International CorporationMethod for monitoring server sub-system health
US8037343 *15 Sep 200911 Oct 2011Verizon Patent And Licensing, Inc.Trap-based configuration audit
US8074121 *9 Dec 20096 Dec 2011International Business Machines CorporationAutomated information technology error and service request correlation
US8484637 *3 Apr 20079 Jul 2013Microsoft CorporationParallel installation
US8949671 *30 Jan 20083 Feb 2015International Business Machines CorporationFault detection, diagnosis, and prevention for complex computing systems
US95946198 Oct 201214 Mar 2017Hewlett Packard Enterprise Development LpRobust hardware fault management system, method and framework for enterprise devices
US974921115 Feb 201129 Aug 2017Entit Software LlcDetecting network-application service failures
US20020165784 *1 Mar 20017 Nov 2002John TaggartLaunch service or purchase request directly from a network-enabled appliance
US20030217146 *10 Jan 200320 Nov 2003Rahul SrivastavaMethod for monitoring a sub-system health
US20030221002 *10 Jan 200327 Nov 2003Rahul SrivastavaMethod for initiating a sub-system health check
US20040230874 *15 May 200318 Nov 2004Microsoft CorporationSystem and method for monitoring the performance of a server
US20040267750 *30 Jun 200330 Dec 2004Aaron Jeffrey A.Automatically facilitated support for complex electronic services
US20050015667 *30 Jun 200320 Jan 2005Aaron Jeffrey A.Automated diagnosis for electronic systems
US20050038697 *30 Jun 200317 Feb 2005Aaron Jeffrey A.Automatically facilitated marketing and provision of electronic services
US20050038786 *11 Aug 200317 Feb 2005International Business Machines Corporation (Ibm)Self-configuration of database tables
US20050081119 *9 Aug 200414 Apr 2005Dizoglio MarcReal time data storage monitoring and administration
US20050240835 *26 Jul 200427 Oct 2005AlcatelAgent based router monitoring, diagnostic and maintenance
US20060150008 *31 Dec 20046 Jul 2006Microsoft CorporationExpert software diagnostic tool
US20060277299 *26 May 20067 Dec 2006John BaekelmansArrangement for automated fault detection and fault resolution of a network device
US20070033281 *1 Aug 20068 Feb 2007Hwang Min JError management system and method of using the same
US20070055915 *7 Sep 20058 Mar 2007Kobylinski Krzysztof RFailure recognition, notification, and prevention for learning and self-healing capabilities in a monitored system
US20070055916 *3 Nov 20068 Mar 2007Microsoft CorporationSystem and method for monitoring the performance of a server
US20070088828 *18 Oct 200519 Apr 2007International Business Machines CorporationSystem, method and program product for executing an application
US20070130376 *8 Nov 20067 Jun 2007Samsung Electronics Co., Ltd.Method and apparatus for setting configuration information
US20080005281 *29 Jun 20063 Jan 2008Microsoft CorporationError capture and reporting in a distributed computing environment
US20080028264 *27 Jul 200631 Jan 2008Microsoft CorporationDetection and mitigation of disk failures
US20080059120 *30 Aug 20066 Mar 2008Fei XiaoUsing fault history to predict replacement parts
US20080126836 *9 Nov 200729 May 2008Raid IncorporatedReal Time Data Storage Monitoring and Administration
US20080172743 *25 Jun 200717 Jul 2008Aaron Jeffrey AElectronic Vulnerability and Reliability Assessment
US20080215918 *10 Apr 20084 Sep 2008Bea Systems, Inc.Method for monitoring server sub-system health
US20080215924 *10 Apr 20084 Sep 2008Bea Systems, Inc.Method for performing a corrective action upon a sub-system
US20080250405 *3 Apr 20079 Oct 2008Microsoft CorporationParallel installation
US20080288821 *16 Jun 200820 Nov 2008Aaron Jeffrey AAutomated Diagnosis for Electronic Systems
US20080313632 *13 Jun 200718 Dec 2008Apurva KumarMethods, devices, and products for providing access to system-administration functions of a computer or related resources
US20090193298 *30 Jan 200830 Jul 2009International Business Machines CorporationSystem and method of fault detection, diagnosis and prevention for complex computing systems
US20110066876 *15 Sep 200917 Mar 2011Verizon Patent And Licensing, Inc.Trap-based configuration audit
US20110138234 *9 Dec 20099 Jun 2011International Business Machines CorporationAutomated information technology error and service request correlation
CN104718533A *8 Oct 201217 Jun 2015惠普发展公司,有限责任合伙企业Robust hardware fault management system, method and framework for enterprise devices
CN104718533B *8 Oct 201221 Jul 2017慧与发展有限责任合伙企业企业设备的硬件故障管理系统、方法及架构
CN105223892A *29 Oct 20156 Jan 2016苏州康开电气有限公司智能变压器
EP2904493A4 *8 Oct 201222 Jun 2016 Robust hardware fault management system, method and framework for enterprise devices
WO2006089352A1 *21 Feb 200631 Aug 2006United Electrical Software P/LMethod and system for monitoring computer systems
WO2015067078A1 *8 Aug 201414 May 2015苏州康开电气有限公司Intelligent self-learning system for electromechanical equipment
WO2015067079A1 *8 Aug 201414 May 2015YVVVXmWmWiZrVeVIntelligent analysis system for electromechanical equipment
Classifications
U.S. Classification714/47.1, 714/37, 714/E11.026, 714/E11.024, 714/E11.179, 714/4.1
International ClassificationG06F11/00
Cooperative ClassificationH04L41/142, G06F11/0751, G06F11/3051, G06F11/3006, G06F11/079, G06F11/0709
European ClassificationG06F11/07P1A, G06F11/30A1, G06F11/30C, G06F11/07P2, G06F11/07P6
Legal Events
DateCodeEventDescription
21 Mar 2000ASAssignment
Owner name: NETWORK APPLIANCE, INC., CALIFORNIA
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BANGA, GAURAV;REEL/FRAME:010711/0111
Effective date: 20000113
20 Oct 2008FPAYFee payment
Year of fee payment: 4
19 Oct 2012FPAYFee payment
Year of fee payment: 8
14 Sep 2015ASAssignment
Owner name: NETAPP, INC., CALIFORNIA
Free format text: CHANGE OF NAME;ASSIGNOR:NETWORK APPLIANCE, INC.;REEL/FRAME:036560/0184
Effective date: 20080310
25 Nov 2016REMIMaintenance fee reminder mailed
19 Apr 2017LAPSLapse for failure to pay maintenance fees
6 Jun 2017FPExpired due to failure to pay maintenance fee
Effective date: 20170419