A method and apparatus for reverting a disk drive to an earlier point in time is disclosed. Changes made to the drive are saved in a circular history buffer which includes the old data, the time it was replaced by new data, and the original location of the data. The circular history buffer may also be implemented by saving new data elements into new locations and leaving the old data elements in their original locations. References to the new data elements are mapped to the new location. The disk drive is reverted to an earlier point in time by replacing the new data elements with the original data elements retrieved from the history buffer, or in the case of the other embodiment, reads to the disk are mapped to the old data elements stilled stored in their original locations. The method and apparatus may be implemented as part of an operating system, or as a separate program, or in the controller for the disk drive. The method and apparatus are applicable to other forms of data storage as well. Also disclosed are method and apparatus for providing firewall protection to data in a data storage medium of a computer system.
CONTINUATION DATA
This application is a continuation of U.S. Ser. No. 09/105,733 filed Jun. 26, 1998 which is a continuation-in-part of U.S. application Ser. No. 09/039,650, filed Mar. 16, 1998 and entitled "Method, Software And Apparatus For Saving, Using And Recovering Data", which is a continuation in part of Ser. No. 08/924,198, filed Sep. 5, 1997 entitled "Method and Apparatus for Saving and Recovering Data", the entire disclosures of which are hereby incorporated by reference herein.
A method and system for identifying and recovering a file damaged by a hard drive failure. The method includes monitoring event logs, mapping at least one failing sector to at least one corresponding corrupted file if a hard drive failure is detected, and performing a selected remedial procedure based on the at least one corrupted file. According to the method and system disclosed herein, the user is quickly informed of the corrupted file and is given choices for remedial procedures.
In a fault-tolerant system employing software fault-tolerance techniques, the identifiers used for control blocks or objects referenced on an interface between two co-operating partner software processes either require resynchronization after fail over of one or both of the partners or impose unwanted performance impacts on normal operation of the system. Replicated handles enhance the techniques currently used in such systems to avoid both the need for resynchronization and other potential performance impacts of the prior art.
A fault tolerant communication apparatus provides redundant links between at least two computers. The apparatus includes a first set of links connected to a first computer, a second set of links connected to at least one second computer, and a communication controller between the first set of links and the second set of links. The communication controller ensures communication between the two computers if there is at least one active link between the computers for data communication. USB/Firewire based serial links can be used.
A system for generating a virtual point-in-time copy of a selected subset (e.g., a selected volume or logical unit) of a storage system. The present system operates by using a bitmap in storage system controller cache memory to indicate blocks of memory in the selected volume that have been overwritten since the snapshot was initiated. When a write to the selected volume is requested, the cache bitmap is checked to determine whether the original data (in the area to be overwritten) has already been copied from the selected volume to a temporary volume. If the original data was previously copied, then the write proceeds to the selected volume. If, however, the original data would be overwritten by the presently requested write operation, then an area containing the original data is copied from the selected volume to a temporary volume. Reads from the temporary volume first check the bitmap to determine if the requested data has already been copied from the selected volume to the temporary volume. If so, the data is read from the temporary volume, otherwise, the data is read from the selected volume.
A ruggedized file system, which provides ruggedness to non-volatile storage media at the device driver level. The ruggedized block device driver implementation provides ruggedness at the device driver level, thereby allowing atomic sequences of operations by the file system. Accordingly, the device driver is told that the current data state is a "fall-back" consistent state, into which the system should wake up if interrupted prior to completion of the sequence, following which operations are executed as required by the file system, including erasing, writing or overwriting blocks. The device driver is further told when the atomic sequence is complete, such that a new consistent state is thereby defined. It is, accordingly, the responsibility of the device driver to ensure that either the sequence completes and the file system reaches the target consistent state, or if power is lost or any other failure occurs in the middle, the file system will wake up in the initial fallback state. Except for activating this "atomicity" feature as described above, the file system does not have to be aware of any implementation detail of the ruggedness solution.