This invention concerns a computer data protection system for managing storage of data in a file in a backup computer storage medium and a file in a primary computer storage medium.
File replication and synchronization (FRS) systems are used to communicate created files, updates and deletions to a document or program made at a source location to a designated target location. A location may be a folder or a logical disk volume, for example. By sending document changes to a target location, if a source location becomes unavailable, the target location is used to provide a document with the latest updates resulting in reduced downtime. In known systems scheduled backups ensure high document availability, but changes made to a document between, a last backup time and the time when a source location becomes unavailable, are lost. This loss can be minimized by increasing the backup frequency but there is still a time window where updated files are unavailable at the target location in the event of a failure at the source location.
Known systems for ‘continuous’ file replication and synchronization (FRS) between a source location on a primary computer (where files are edited) and a target location on a backup computer (where the backup files are stored) connected over a data network, are used to continuously communicate changes at a source location to a target location. However, the continuous nature of updates does not guarantee 100% availability of updated files at the target location if the source location is not available. Known systems using continuous updates fail to guarantee 100% availability of a file in a backup computer in the event of a hardware or software failure at a primary computer.
Known systems typically use an asynchronous, event driven mechanism to propagate changes continuously from a primary computer to a backup computer and hence fail to achieve 100% availability. The asynchronous nature of the change propagation results in a time window (failure time window or FTW) where the changes to a file have been applied on the primary computer and are yet to be applied on the backup computer (i.e., changes are in an FRS queue and subsequently in a change execution queue at a backup computer) and a failure during this time results in irrecoverable inconsistency between the primary and backup computer. Consider a file write operation invoked by an application at a source location which is being monitored by a continuous FRS service. A typical sequence of events which occurs and the window for failure, during which a failure at a primary computer results in data loss at the backup computer is shown in
Some known hardware systems, including RAID (Redundant Array of Inexpensive Disks), failover clustering, NAS (Network Attached Storage), SAN (Storage Area Network) systems, achieve full (100%) availability in case of a primary computer failure. RAID, NAS, SAN and failover clustering provide means of achieving 100% availability in the event of a failure at the primary computer in that the data is available at the backup computer (or disk) but are often expensive and cumbersome. A system according to invention principles addresses these deficiencies and associated problems.
A system advantageously performs unitary step synchronous file replication and synchronization to backup computer data providing 100% availability at the backup computer and to eliminate data loss in the event of a primary computer failure, at relatively low cost compared to hardware system. A computer data protection system comprises a primary computer storage medium, a backup computer storage medium and a storage management system. The storage management system, in response to a command to write data to a file in the primary computer storage medium, initiates storage of data in a file in the backup computer storage medium and a file in the primary computer storage medium. The storage management system delays returning acknowledgement of completion of an operation to write the data to the primary computer storage medium until completion of storage of the data in the file in the backup computer storage medium and the file in said primary computer storage medium.
a shows a source function in an application calling a target function in a known system.
b shows performing file updates (at the primary and backup storage media) in one unitary step, ensuring both primary and backup media are updated before returning an application function call.
A system synchronously communicates data representing document updates to a target location on a backup computer eliminating a time window which potentially causes lost update information in the event of a computer system failure. The system ensures 100% availability of a file in a backup computer, if it was successfully created, changed or deleted at a source location on a primary computer. The inventors have advantageously recognized that by performing file update operations in primary and backup computers in a single unitary step eliminates a failure time window that may result in loss data upon a system failure. The system provides document update information to both the primary and backup computer system in one step, so that either both the primary and backup computer systems are updated or neither system is updated in response to occurrence of a system failure.
In one embodiment, the system performs document file updates at both the primary and the backup computer in one single unitary step from the perspective of a storage management application and operating system, to eliminate a failure time window. At the application level, a storage management application is informed of a success or failure only if updates to both the primary and backup computer system are successful or a failure. From the system perspective, if there is an error during either of the updates, both document copies in the primary and backup computer systems are replaced with versions prior to the updates by the OS (operating system) and the storage management application is informed about the failure of the operation. The OS may incorporate at least a portion of the storage management system to perform the version replacement.
a shows a known system such as a Windows API in which a source function 303 in an application calls a target function 305 which responds to the source function. In contrast,
However, as is indicated in the sequence of events of
In one embodiment, the file in backup computer storage medium 27 and the file in primary computer storage medium 19 are a latest version of the file. Also, in response to a primary computer operation failure occurring during a write operation and being determined by detector 17, storage management system 15 initiates storage of (and uses) a previous version of the file as the file in backup computer storage medium 27 and the file in primary computer storage medium 19. Further, an NTFS compatible transaction manager application in storage management system 15 initiates storage of a previous version of the file as the file in backup computer storage medium 27 and the file in primary computer storage medium 19. In one embodiment, storage management system 15 initiates overwrite of the file in backup computer storage medium 27 and the file in the primary computer storage medium 17 with a previous version of the file. Further, storage management system 15 initiates storage of data in backup computer storage medium 27 prior to storage in primary computer storage medium 19. Alternatively, storage management system 15 initiates storage of data in primary computer storage medium 19 prior to storage in the backup computer storage medium 27 or initiates storage of data in primary computer storage medium 19 concurrently with storage in backup computer storage medium 27, for example. The process of
A processor as used herein is a computer, processing device, logic array or other device for executing machine-readable instructions stored on a computer readable medium, for performing tasks and may comprise any one or combination of, hardware and firmware. A processor may also comprise memory storing machine-readable instructions executable for performing tasks. A processor acts upon information by manipulating, analyzing, modifying, converting or transmitting information for use by an executable procedure or an information device, and/or by routing the information to an output device. A processor may use or comprise the capabilities of a controller or microprocessor, for example, and is conditioned using executable instructions to perform special purpose functions not performed by a general purpose computer. A processor may be coupled (electrically and/or as comprising executable components) with any other processor enabling interaction and/or communication there-between. A display processor or generator is a known element comprising electronic circuitry or software or a combination of both for generating display images or portions thereof.
An executable application, as used herein, comprises code or machine readable instructions for conditioning the processor to implement predetermined functions, such as those of an operating system, a context data acquisition system or other information processing system, for example, in response to user command or input. An executable procedure is a segment of code or machine readable instruction, sub-routine, or other distinct section of code or portion of an executable application for performing one or more particular processes. These processes may include receiving input data and/or parameters, performing operations on received input data and/or performing functions in response to received input parameters, and providing resulting output data and/or parameters. A user interface (UI), as used herein, comprises one or more display images, generated by a display processor and enabling user interaction with a processor or other device and associated data acquisition and processing functions.
The UI also includes an executable procedure or executable application. The executable procedure or executable application conditions the display processor to generate signals representing the UI display images. These signals are supplied to a display device which displays the image for viewing by the user. The executable procedure or executable application further receives signals from user input devices, such as a keyboard, mouse, light pen, touch screen or any other means allowing a user to provide data to a processor. The processor, under control of an executable procedure or executable application, manipulates the UI display images in response to signals received from the input devices. In this way, the user interacts with the display image using the input devices, enabling user interaction with the processor or other device. The functions and process steps herein may be performed automatically or wholly or partially in response to user command. An activity (including a step) performed automatically is performed in response to executable instruction or device operation without user direct initiation of the activity.
The system and processes of
This is a non-provisional application of provisional application Ser. No. 61/175,633 filed May 5, 2009, by A. Basu et al.
Number | Date | Country | |
---|---|---|---|
61175633 | May 2009 | US |