Patent Publication Number: US-7721142-B2

Title: Copying procedures including verification in data networks

Description:
COMPUTER PROGRAM LISTING 
     A computer program listing appendix is included on CD-R compact disc. The computer program listing appendix: contains one file; the file name is HOI-11202-P491US00-Computer code.txt; the file was created on Aug. 3, 2009; and the file has a size of 75 KB. The computer program listing appendix is incorporated herein in its entirety by reference. 
     FIELD OF THE INVENTION 
     The present invention relates to a method and a system for copying and verifying data from a computer onto a copy storage means. 
     BACKGROUND 
     In many small and medium-sized companies as well as private computers, back-up procedures include backing up data to a removable medium, such as a backup tape, CD-ROM, storage means on the Internet, Local Area Network, or the like. Many computer programs for backing up data includes a verification test, normally based on bit-by-bit test to verify the data on the removable medium directly against the primary storage means after conclusion of the backup procedure. It is however not until the backup medium is to be used for restoring data, that it is confirmed that a functional backup has been achieved the actual day. 
     Furthermore, in most cases when a server fails a new server has to be provided and configured before backup data may be restored to establish the full server function. Prior art has presented several solutions to these problems. U.S. Pat. No. 5,907,672 (Matze et al) describes a system for backing up data at a very high speed by saving a logical image copy of the volume to a backup medium. The logical Image may then be restored in its entirety to a disk volume with a different physical geometry in a disaster recovery mode, however the backup procedure does not include any functional test of the data located on the backup medium. 
     Data may also be protected against failure due to faulty storage device by “disk mirroring”, in which data are stored redundantly on two or more disks. In U.S. Pat. No. 6,044,444 (Ofek) two data systems are interconnected by a data link for remote mirroring of data. That provides a copy of a server, whereby the copy may be stored at a location remote from the server, and the data on the copy are not at risk of being damaged in case any physical damage should occur to the server. However, the data on the copy is erased continuously by reading/mirroring new data to the copy. Thereby it is not possible to obtain and store backup data from previous days. In U.S. Pat. No. 5,978,565 (Ohran et al) a backup computer system runs a special mass storage access program that communicates with a mass storage emulator program on a network file server, making disks on the backup computer system appear like they were disks on the file server computer, whereby normal disk mirroring option of the file server operating system can be activated so that a copy of all data written to the mass storage device directly connected to the file server will also be written to the mass storage device on the backup computer. Then the backup computer system may function as a stand-in computer in case of server failure. However, no backup on a removable medium is provided. 
     U.S. Pat. No. 5,608,865 (Midgely et al) describes a stand-in system with backup media, wherein a stand-in computer creates an image of a file system on a server. The files on the stand-in computer are then copied to a backup medium, so that only the most recently created files are directly available on the stand-in computer, and the rest of the files may be retrieved from the backup medium. There is no test of the data on the backup medium, unless they are requested to be retrieved by the stand-in computer. Accordingly, no functional test of the data on the backup medium is conducted. 
     In EP 910019 ((INCM) Int. Computers Ltd.) a backup server is remotely connected to client computers via a public network and automatically performs regular backups of data from the client computers. The backed up data is stored in an automated tape library, and is periodically cloned to provide copies for off-site storage. However, no functional test of the data on the backup media is provided. 
     In U.S. Pat. No. 6,182,212 (IBM) a method for automating migration of system settings from an existing computer to a replacement computer system in response to a user input is described for use with user upgrades to a new hardware platform. However, there is no disclosure of the automatic migration of settings in connection with backup procedures. 
     In GB 2270779 a method for transfer of data and programs from a live computer database system to a back-up computer database system and for maintaining the back-up computer database system in readiness for emergency use is disclosed. The method implies conversion of programs and data on the live computer database system and transferring program and data to the back-up computer database system. Brief integrity checks are made on data in the back-up and live computer database system and balancing tests involving statistical analysis of the data tables in both computer database systems and verifying that data stored in both systems is the same. Balancing tests involve generation of statistics about a data table. The statistics include the number of rows in the table and may also include other values for example, the total value of a particular column. 
     However, GB 2270779 does not disclose any functional verification of the data on the back-up computer database system. The only verification of the data are statistical verification, such as number of rows and columns. Statistical verification only verifies that the same amount of datatables are transferred to the backup system, but is totally silent about the functionality of the data transferred. The system used comprises two computers, wherein the only disclosed communication between the two computers are through a back-up tape, thus verification cannot be performed on-line in GB 2270779. 
     SUMMARY OF THE INVENTION 
     The present invention provides a method and a system for backing up data (copying data) from a primary computer system onto a removable backup medium and/or a copy computer system combined with functionally verifying the data copied onto the medium and/or computer, whereby a more fail-safe backup system is provided and a stand-in computer in case of primary computer failure is readily available. Thus, the present invention relates in a first aspect to a method for copying data in at least one primary computer system from a primary storage means to a backup storage means and verifying said copied data, said method comprising:
         a) reading data from the primary storage means,   b) writing said read data to the backup storage means,   c) arranging a copy computer system having a copy storage means,   d) reading backed up data from the backup storage means,   e) writing backed up data to the copy storage means,   f) obtaining copy data.       

     In another embodiment, the invention relates to a method for copying data in at least one primary computer system from a primary storage means to a backup storage means and verifying said copied data, said method comprising:
         a) reading data from the primary storage means,   b) writing said read data to the backup storage means,   c) arranging a copy computer system having a copy storage means,   d) reading backed up data from the backup storage means,   e) writing backed up data to the copy storage means,   f) obtaining copy data, and   g) verifying copy data in relation to data on the primary storage means.       

     In yet another embodiment, the invention relates to a method for copying data in at least one primary computer system from a primary storage means to a backup storage means and verifying said copied data, said method comprising:
         a) reading data from the primary storage means,   b) writing said read data to the backup storage means,   c) arranging a copy computer system having a copy storage means,   d) reading backed up data from the backup storage means,   e) writing backed up data to the copy storage means,   f) obtaining copy data, and   g) comparing copy data with data on the primary storage means thereby verifying the backed up data.       

     The comparison may be made from the copy data towards the data on the primary storage means or vice versa. 
     The method offers the user a possibility of assuring that a functional backup has been obtained and furthermore, in case of breakdown of the primary computer the copy computer may function as stand-in. 
     Furthermore, the invention relates to a method for copying data in at least one primary computer system from a primary storage means to a copy storage means and verifying said copied data, said method comprising:
         a) reading data from the primary storage means,   b) arranging a copy computer system having a copy storage means,   c) writing data to the copy storage means,   d) obtaining copy data, and   e) comparing copy data with data on the primary storage means thereby functionally verifying the copied data.       

     The method provides a functional test of the data on the copy computer system independent of whether a removable backup has been obtained in addition to the copy on the copy computer system. 
     For any of the methods the copy computer system may thus act as a stand-in system, as a backup system, optionally with removable storage means, such as removable disks for storage purposes, a test environment, or the copy computer may be an upgraded computer, for example when upgrading a computer with software, including operating system, and with hardware. In case of upgrading the copy computer is converted to the primary computer after successful comparison and/or verification of the copied data. 
     In another aspect the invention relates to a copy system comprising at least one primary computer system having a primary storage means and a backup storage means, said primary storage means and backup storage means being at least periodically connectable, said system further comprising a copy computer system having a copy storage means, said copy storage means and backup storage means being at least periodically connectable, and said primary storage means and said copy storage means being connected through a network. The system according to the invention allows a backup medium to be arranged remote from the primary computer system as well as the copy computer system, whereby the backed up data is not at risk of synchronous exposure to the same damages as the data of the primary computer system. 
     Furthermore, the copy computer system may also function as a test environment, with which upgrades, software tests, tutoring and the like may take place. Thereby, the risk of downperiods is reduced. 
    
    
     
       DRAWINGS 
         FIG. 1  pictures a system wherein a back-up tape is recorded from a primary server and verified on a copy server. 
         FIG. 2  pictures a system wherein the back-up tape is located in a computer at a remote location, and the copied data are transferred by means of a network. 
         FIG. 3  pictures a system wherein a backup is recorded from a primary server onto a copy computer and a functional verification of the data is performed. 
         FIG. 4  shows a flow chart for the restore procedures. 
         FIG. 5  shows a flow chart for the change of hardware. 
         FIG. 6  shows a flow chart for the change of identity of the copy computer. 
         FIG. 7  shows a flow chart for the verification procedures. 
         FIG. 8  shows a flow chart for the stand-in procedures. 
         FIG. 9  pictures a primary computer with a tape driver. 
         FIG. 10  pictures a set of primary computers transferring their copy to a central backup computer to which a backup unit, a tape robot, etc. are connected. After completion of the backup, the copy is transferred to a copy computer which again tests each completed copy. 
         FIG. 11  pictures a system with an SAN/NAS with connected backup unit. A backup is taken of the contents of the SAN/NAS. After completion of the backup, the data are transferred back to a copy computer or downsized SAN/NAS. 
         FIG. 12  pictures a system similar to the one shown in  FIG. 11 , but with a different purpose. A backup is taken from the point of view of the primary computer. Data/software may be stored on NAS/SAN, but the backup only contains the data which make the primary computer function in a correct manner. SAN/NAS may contain data for other primary computers, but these data may be copied for security purposes on another occasion. The location of backup drives is not important. They may be located at NAS/SAN or the copy computer as appropriate. 
         FIG. 13  pictures a system with a central storage means housing security copies for companies/affiliates. A backup is taken of all primary computers onto an SAN/NAS storage means. The stored security copies may be tested by transferring data by means of network from SAN/NAS to a copy computer located either centrally or locally. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     The method and system according to the invention is particular suitable for use in computer networks having at least one file server and optionally a plurality of client computers, such as working stations. However, the invention may also be applied in systems wherein the primary computer system functions both as server and working station. The invention presents a reliable backup and copy system capable of being provided at low costs, still presenting an elevated level of security compared to previous backup systems, due to the functional tests, and at the same time offering the possibility of easily providing a stand-in computer, should the primary computer fail. 
     The term computer is used in its normal meaning, i.e. to denote for example a server or a client computer. 
     The term “server” is used in its normal meaning, i.e. a dedicated file server, a database server, an application server, a terminal server, etc. Clients may login to the server, and use the services of the server, that is files, databases, printers etc. 
     The term “client computer” or “client” is also used in its normal meaning, i.e. a computer logged on to a server and using the services of the server. The client computers are normally working stations. 
     The computer systems according to this invention may be stationary computers as well as portable computers. 
     The term “primary computer system” means the system the data of which is determined to be copied/backed up for storage and/or later use. The primary computer system may be a server, a working station or any other computer comprising data to be copied. 
     The term “storage means” is used in its normal meaning, i.e. a means for storing data, files, databases etc. A storage means of a computer relates to the total storage means of the computer, for example the storage means of a server refers to the total storage of the server storing files, data, databases, as well as information and settings of the server. Storage means may also be Network Attached Storage (NAS) or Storage Area Network (SAN), see also the figures. 
     The term “copy data” means the data copied from the primary computer system, primarily data relating to files and databases; however, copy data may also include operating system, settings etc. 
     The term “copy computer” means an independent computer system not integrated in the primary computer system. 
     The terms “functionality” and “functional” are used in their normal meaning. For example, by functional test of data is meant that it is tested that data are accessible and may be used in the same way as they could in the original system. Also, test of functionality is performed by executing a series of file tests. The test will thus include comparing of content, observing the syntax, testing the ability of the host software to use a given file, e.g. the ability to open and read/write in the file. 
     The method and system according to the invention is suitable for backup procedures (full backup, incremental backup, etc.) that may be performed either automatically at scheduled intervals, or performed ad hoc. Furthermore, the invention is suitable for any kind of copying of data from one computer system to another computer system, or for providing a stand-in computer system when a primary computer system is to be replaced or changed, during which a period of down-time would otherwise be implicit. 
     Furthermore, the invention is suitable for any kind of upgrading of computer and/or of programs and/or of installing new programs, as primary computer system can remain in full function and safe from tampering due to technical manoeuvering. 
     Backup/Copy System 
     In one preferred embodiment the invention relates to a backup system, but the invention is not limited to a backup system. Thus, in one embodiment the invention relates to a copy system comprising at least one primary computer system having a primary storage means and a backup storage means, said primary storage means and said backup storage means being at least periodically connectable, said system further comprising a copy computer system having a copy storage means, said copy storage means and backup storage means being at least periodically connectable, and said primary storage means and said copy storage means being connected through a network, as well as method for use with said system. 
     The primary computer system may be any computer system as described above. The method and the system provides also for a set-up wherein at least two primary computer systems are arranged, such as a copy system comprising at least a first primary computer system and a second primary computer system, each primary computer system having a primary storage means, said system further comprising at least one backup storage means, said primary storage means and backup storage means being at least periodically connectable, said system further comprising at least one copy computer system having a copy storage means, said copy storage means and backup storage means being at least periodically connectable, and each of said primary storage means and said copy storage means being connected through a network. Accordingly, the total copy system may include at least two primary computer systems, such as at least three primary computer systems, such as at least four primary computer systems, all connected to the same copy computer system. 
     The backup storage means is preferably a removable storage medium, such as an external removable storage medium. A wide variety of media are commercially available today, such as magnetic media, memory media and optical media. In particular the storage medium is selected from a magnetic tape, a disk, a DVD, a CD-ROM, a memory smart card, an optical crystal, NAS, or SAN. It Is preferred that the backup medium is removable since it may then be stored at a (safe) location remote from the primary computer system and the copy computer system, so that any physical damage to said systems, such as theft, vandalism, fire, water flood, etc. will not damage the backup medium. Furthermore, by a removable backup medium, it is possible to use different units of media for each day, week or month, so that the previous backup is not erased when the next backup is performed. The backup storage means may be arranged in the primary computer system, such as a tape in a tape station in said computer system, or the backup storage means may be arranged in an individual device, and connected to the primary computer system by means of a network. 
     Independent of the arrangement of the primary computer system to the backup storage means, the copy computer system may either have the backup medium located locally or through a network, when data is read into the copy storage means. The present Invention also offers an advantage in that it may lead to a longer utility period for backup media, since they may be used, until no useful backup is conductable on said media, and flaws will immediately be disclosed due to the verification procedure/restore procedure. 
     Network 
     Anywhere in this context, a network according to the present invention may be a wired network or a wireless network, or a combination of these. The network may be an intranet (i.e. Local Area Network, LAN), an extranet (i.e. Wide Area Network, WAN) or the Internet, or again combinations of these. By the term intranet is meant a network in-house of the company. By the term extranet is meant a network functioning as an intranet between two remote locations. The term “Internet” is used in its conventional meaning. 
     In one embodiment the backup storage means is connected to the primary storage means through an intranet, and data are transferred from the primary storage means to the backup storage means by the intranet. Also, the copy storage means is connected to the backup storage means through the intranet, and data transport between these units are performed via the intranet. Furthermore, the primary storage means and the copy storage means are connected through the intranet as well, for verification and comparison purposes. 
     In another embodiment the backup storage means is connected to the primary storage means through the Internet, and data are transferred from the primary storage means to the backup storage means by the Internet. Also, the copy storage means is connected to the backup storage means through the Internet, and data transport between these units are performed via the Internet. As opposed hereto, the primary storage means and the copy storage means are connected through the intranet, for verification and comparison purposes. 
     As may be apparent to the person skilled in the art, other combinations of connections through Internet, intranet and extranet are possible, leaving a wide variety of possible arrangements in relation to location of primary computer system and copy computer system in relation to each other and individually in relation to the backup storage means. 
     Copy Computer System 
     The copy computer system may be any suitable computer system, such as a system identical to the primary computer system. It is however possible to use the invention with a copy computer system that differs from the primary computer system as long as it is compatible with the primary computer system. In a preferred embodiment the copy computer system is a down-sized computer system, whereby the costs of the backup system is lowered. By the term down-sized is meant a computer having for example a lower processor speed, a smaller hard disk, and/or a smaller memory as long as the capacity of the copy computer allows it to perform the relevant procedures. It is of course necessary that the copy computer at least has a storage capacity capable of storing the data from the primary computer system for example in a compressed mode. In case the primary computer system works with mirrored disks, the copy computer system needs only a storage capacity corresponding to one of the mirrored disks. Normally the copy computer system will be equipped with a smaller storage capacity than the primary computer system. 
     Optionally, the copy computer has a basic operating system capable of servicing the writing of data from the backup medium or from the primary computer system according to the procedure chosen. During verification the basic operating system is normally shut down, and instead the copy computer is using the copied operating system as a part of the verification test. 
     In another embodiment, restore software may be located on the backup storage means activatable when comparison and/or verification is to take place. Such software may also include adaptation and reboot of the system. 
     Configuration Change 
     Configuration changes may be conducted if necessary. The system configuration in the operating system copied from the primary computer system should be adapted to function with the hardware of the copy computer. In case of self-configuring operating systems, the change of configuration is conducted automatically. For some systems the hardware configuration of the copy computer system may if necessary be copied to the backed up operating system before rebooting the copy computer using the backed up operating system for verification, or the new hardware components are detected and relevant software and drivers are thereby installed. In another embodiment, the software is self-configuring for the hardware on the copy computer. 
     Backup/Upgrade System 
     In another embodiment of the invention, suitable for backup purposes and particular suitable for upgrading purposes, the invention relates to a copy system with or without a backup medium, namely a method for copying data located in at least one primary computer system from a primary storage means to a copy storage means and verifying said copied data, said method comprising:
         a) reading data from the primary storage means,   b) arranging a copy computer system having a copy storage means,   c) writing data to the copy storage means,   d) obtaining copy data, and   e) comparing the functionality of copy data with data on the primary storage means thereby functionally verifying the backed up data.       

     In this method a copy computer is obtained, said copy computer comprising a functional copy of the data of the primary computer system. Of course the system also includes the possibility of arranging one primary computer copying to more copy computers. For example two or more copy computers may be used sequentially, so that one copy computer is in function per day. The copy computer is then available for a variety of purposes as discussed above. In particular the method is suitable for upgrading computers/programs when a system is to be replaced or changed, avoiding a downtime period. In the upgrading situation a backup medium may not be necessary. 
     Verification 
     The verification procedure is preferably a functional verification procedure. By the term “functional verification” and “functionally verifying” is meant that a copy is obtained for which the functionality of the data on the copy is checked, as contradistinction to a bit-by-bit test between primary storage means and backup storage means. 
     The verification is conducted after the data has been written to the copy storage means and the copy computer system is operating with the copy data. The verification of data on the copy computer is preferably conducted by 
     a) Testing operating system and/or 
     b) Testing one or more files on copy computer system and/or 
     c) Testing requests to databases 
     d) Testing custom services 
     It is preferred that the verification comprises at least both steps b) and c), more preferably all three steps, more preferably all four steps. 
     The test may be conducted manually, that is visually on a screen by a person checking the data. In a preferred embodiment, the verification is conducted automatically by comparison with corresponding operating systems, files and databases on the primary computer system, so that the copy computer system verifies its stored files against the original data on the primary computer system, either on demand or as scheduled by the system. The comparison is preferably initiated automatically by the copy computer system. 
     The functional verification test may be preceded by a bit-by-bit test between data on the primary storage means and data on the backup storage means as a first step of verification. 
     a) testing operating system 
     The test is preferably conducted by starting the operating system and checking services to be started by said system. A comparison is made based on a checklist from the primary computer system. Furthermore, a check of failure logs may be provided. For some operating systems this test should be preceded by a step of rebooting the copy computer system with data from backup medium. 
     b) test one or more files on the copy computer system 
     The test may be conducted manually by accessing one or more files and testing the integrity of the files. In a preferred embodiment the files are tested automatically by comparing predetermined features of the files on the copy computer system with features of the same files on the primary computer system. Examples of features are file&#39;s last access date, time stamp, the file&#39;s extended attributes (protection mode, owner, etc.) Furthermore, at check sum of the file on the copy computer system may be compared to the check sum of the file on the primary computer system. Also the entire content of the file on the copy computer system may be compared with the entire content of the same file on the primary computer system, such as check of a number of files selected stochastically among the backed up files. 
     c) testing requests to files or databases 
     The functionality of databases cannot be tested merely by comparison of files, but instead the verification procedures may include performing identical requests on the copy computer system and the primary computer system and comparing the results. 
     The functionality of files can be tested by using the host program or a parser which opens and verifies that the contents of the files comply with the specification of the specific file type (for example Microsoft Word, Microsoft Excel, Adobe Acrobat etc.) The test may also include performing identical requests on the copy computer and the primary computer system and comparing the results. 
     d) testing one or more files or database requests by accessing one or more files or requests and check the result of the files or the request. For example the result of a request could be generated in the primary computer system copied to the copy computer and compared with a similar request in the copy computer system. 
     e) testing custom services 
     Customized programs and services specific for the primary computer system may of course also be verified according to the present invention. 
     In case the verification procedure is conducted through a network the necessary parts of the identity of the copy computer (being identical to the primary computer due to the copying procedure) must be changed before the verification procedure commences. For example in present Linux systems the identity change may be accomplished by a program whereas the identity change in Windows NT may be accomplished by a program followed by rebooting the computer. 
     A message will be given if the verification procedure identifies failures of the backed up data, so that necessary measures can be taken inclusive initiation of a new backup procedure, optionally by using another backup medium. In a preferred embodiment a message is given at the conclusion of the verification whether concluded successfully or not. 
     After the verification procedure is concluded successfully, the removable backup medium, if any, may be stored at any suitable place, such as in a box protected from fire etc, and the user may be confident that the data on the removable backup medium will function in case of failure, since functional tests have already been conducted. Then the copy computer may be used for its predetermined purpose. In one embodiment the copy computer enters a stand-by mode wherein one or more of the following options may arise: 
     The read/write mode of the system is deactivated (no admittance to the data is possible) until the copy computer is going to be used again, for example as a stand-in. 
     In case replicating databases are backed up, it is appropriate that the stand-by mode includes deactivation of the replication function. In case it is desired that the copy computer be continuously updated, the copy computer may take part in the replication. 
     The part of the computer comprising the copy data is delimited from the rest of the copy computer, and the residual part of the copy computer may be used for another purpose, for example as a normal client/portable computer. 
     Stand-In Server 
     In case the service of a primary computer system becomes unavailable, whether due to failure or scheduled maintenance, either a human system manager or an automatic initiation program may invoke the copy computer system&#39;s stand-in mode for the failed server. In stand-in mode, the copy computer system provides users with access to the data hitherto available from the unavailable primary computer system. 
     When the copy computer system assumes stand-in mode for a failed computer, the copy computer system executes a procedure to identify itself to the network as the failed server and then services all requests for failed primary computer system from the network. Clients who have lost their connection due to failed primary computer system are connected to the copy computer system when they login again, either manually using the same login method they normally use, or automatically by their standard client software. The copy computer system can provide more than file services and database services, for instance the copy computer system can provide stand-in printing services and other common peripheral support services. The complete transition requires very short time, often less than a few minutes, and it may not require the copy computer system to reboot depending on the particular operating system as discussed above. The only risk of loss of data is due to the fact that the version of a file will only be as recent as the last time a backup procedure was performed or updated due to for example replication procedures, automated copy procedures, etc. 
     When the copy computer system is to be used as a stand-in computer, it is normally preferred that the storage means is capable of having a read-only mode. Thereby clients are capable of reading data on the stand-in computer, but since no data are written into the copy storage means during the stand-in period, no up-dating procedures of the primary storage means, and/or the backup storage means are necessary. 
     If the copy computer system may be used as stand-in also for a longer period it may be appropriate to provide a copy storage means capable of switching between read-only mode and read-write mode leading to a more flexible system. In this case when the failed primary computer system recovers, the data of the primary computer system are restored from the copy computer system with the changes that took place while the copy computer system stood in for the failed primary computer system. 
     Furthermore, the copy computer system may be used for testing new configurations etc. to check the possibilities of new configurations before introducing them on the primary computer system. The invention further provides a secured progress of the procedures of replacing old computers, replacing lost computers, upgrading programs and/or computers. 
     Several Primary Computer Systems 
     The invention further provides the possibility that a single copy computer system can support a plurality of primary computer systems, that is that a single copy computer system may be used for functional verification of backups from more than one primary computer system. Accordingly, the invention also relates to a method used for backing up data from at least a first primary computer system and a second primary system, comprising
         a) reading data from the first primary storage means,   b) writing said read data to the backup storage means,   c) arranging a copy computer system having a copy storage means,   d) reading backed up data from the backup storage means,   e) writing backed up data to the copy storage means,   f) obtaining copy data,   g) comparing copy data with data on the first primary storage means thereby verifying the backed up data, and   h) repeating steps a) to g) for the second primary computer.       

     As well as a method for copying data from more than one primary computer system, such as a method for copying data in at least one primary computer system from a primary storage means to a copy storage means and verifying said copied data, said method comprising:
         a) reading data from the primary storage means,   b) arranging a copy computer system having a copy storage means,   c) writing data to the copy storage means,   d) obtaining copy data, and   e) comparing copy data with data on the primary storage means thereby functionally verifying the backed up data.       

     The only requirements for the copy computer system are that it is compatible with all primary computer systems, and that the storage capacity of the copy computer system corresponds to the necessary storage capacity for the largest primary storage means of the primary computer systems. The procedure can be performed by allocating individual backup storage means for each primary computer system, such as one medium per primary computer system or alternatively it can be performed by the reuse of a common storage means in the case of verified backups stored on external media. Also data from several servers may be arranged on one or more backup media, for example through tape robots, tape loaders, SAN or NAS. 
     In case one of the primary computer systems falls, all that is necessary to provide a stand-in computer is writing the latest backup data to the copy computer, and subsequently the copy computer may function as stand-in for the primary computer system. 
     Also, the backup system may be used for backing up several primary computer systems, wherein the backup is conducted by backing up two or more primary computer systems onto one medium, or a series of media. Thereby, the verification procedure is conducted per media, and the copy computer system is capable of locating the data corresponding to a specific primary computer system selectively, independent of location on the backup storage medium. Such a backup system may for example be a backup robot. 
     Also, the present invention is useful to backup storage means located at different locations but connected by a network, such as storage area networks (SAN), or Network Area Services (NAS) and servers arranged in clusters. 
     The present invention is not dependent on any specific backup program or operative system, and may therefore be used in any combination of systems, backup programs and operative systems. Thus, the present invention may be used with a backup program selected from Microsoft Tape Format® (MTF) with NTBackup, Veritas BackupExec®, Cheyenne ArcServe® as well as any other commercially available backup system. 
     Another advantage of the present invention is that is may be conducted in connection with a wide variety of operating systems, such as Microsoft Windows NT®, all versions, Microsoft Windows 2000 Server®, Microsoft Windows 2000 Advanced Server®, Novell Netware® v. 3, v. 4, Linux, including distribution from Redhat, Debian, etc., Mac OS X® and Mac OS 8®, and Unix Systems, such as Solaris®. 
     Example 1 
     The system set-up in  FIG. 1  shows a primary computer system and a copy computer. The arrow shows the route of the backup medium denoted Backup tape from the primary computer system to the copy computer system. Verification of the data copied to the copy computer system is conducted through the network connection between the primary computer system and the copy computer system. 
     The system set-up in  FIG. 2  shows another embodiment of the invention having a primary computer system and a copy computer. The arrow shows the route of the data from the primary computer system to a remote computer denoted Storage acting as a backup storage means and further from the remote computer to the copy computer system. Verification of the data copied to the copy computer system is conducted through the network connection between the primary computer system and the copy computer system. 
     The system set-up in  FIG. 3  shows an embodiment of the invention, wherein the data are copied directly from the primary computer system to the copy computer system through the network connection, and the verification of the data copied to the copy computer system is conducted through the same network connection between the primary computer system and the copy computer system. 
     Example 2 
     Primary Computer with Tape Driver 
     From the primary computer (see  FIG. 9 ), a backup of data is transferred to backup tapes. After completion, readout of data from backup tapes (connected to primary computer) to the copy computer is initiated. The system configuration is adapted, and the copy computer is restarted. Verification may be carried out if desired. 
     Example 3 
     A set of primary computers (see  FIG. 10 ) transfers their backup to a central backup computer to which a backup unit, a tape robot, etc. are connected. After completion of the backup, the copy is transferred to a copy computer which again tests each completed security copy. 
     Example 4 
     A system (see  FIG. 11 ) has an SAN/NAS with connected backup unit. A backup is taken of the contents of the SAN/NAS. After completion of the backup, the data are transferred back to a copy computer or downsized SAN/NAS. 
     Example 5 
     The system (see  FIG. 12 ) is similar to the one described in Example 4, but with a different purpose. A backup is taken from the point of view of the primary computer. Data/software may be stored on NAS/SAN, but the backup only contains the data which make the primary computer function in a correct manner. SAN/NAS may contain data for other primary computers, but these data may be copied for security purposes on another occasion. The location of backup drives is not important. They may be located at NAS/SAN or the copy computer as appropriate. 
     Example 6 
     A system (see  FIG. 13 ) has a central storage means housing security copies for companies/affiliates. A backup is taken of all primary computers onto an SAN/NAS storage means. The stored security copies may be tested by transferring data from SAN/NAS to a copy computer located either centrally or locally. 
     Example 7 
     The programming for an example of the method according to the invention is shown in this example in relation to Microsoft Tape Format (MTF), NT Backup: 
     Depending on the operating system, hardware change may be conducted as shown in the flow chart in  FIG. 5 , and examples of the programming steps are shown below: 
     
       
         
           
               
               
             
               
                   
                   
               
             
            
               
                   
                 Void hardware_change( ) 
               
               
                   
                 Begin 
               
            
           
           
               
               
            
               
                   
                 Open closed registry 
               
            
           
           
               
               
            
               
                   
                 Change security access for selected keys 
               
               
                   
                 While Reading configuration for keys to delete 
               
            
           
           
               
               
            
               
                   
                 Erase key 
               
            
           
           
               
               
            
               
                   
                 While Reading configuration for keys to add 
               
            
           
           
               
               
            
               
                   
                 Copy key and subkeys from running registry to closed 
               
               
                   
                 registry. 
               
            
           
           
               
               
            
               
                   
                 Copy files found in the keys. 
               
            
           
           
               
               
            
               
                   
                 Restore security access to original setup 
               
               
                   
                 Delete network card from closed registry 
               
               
                   
                 Copy network card from running registry to closed 
               
            
           
           
               
               
            
               
                   
                 registry 
               
            
           
           
               
               
            
               
                   
                 Change any occurrence of the name of the network 
               
               
                   
                 card in the closed registry. 
               
               
                   
                 Change startup value for the AT-disk controller 
               
               
                   
                 If dual processor kernel then change kernel files 
               
            
           
           
               
               
            
               
                   
                 Close registry 
               
            
           
           
               
               
            
               
                   
                 End 
               
               
                   
                   
               
            
           
         
       
     
     Restore procedures may be conducted as shown in the flow chart in  FIG. 4 , and examples of the programming steps are shown below: 
     
       
         
           
               
               
             
               
                   
                   
               
             
            
               
                   
                 Void restore( ) 
               
               
                   
                 Begin 
               
            
           
           
               
               
            
               
                   
                 Connect to tape 
               
               
                   
                 Read tape information 
               
               
                   
                 While reading Read tape 
               
            
           
           
               
               
            
               
                   
                 Case volume: 
               
            
           
           
               
               
            
               
                   
                 If second partition 
               
            
           
           
               
               
            
               
                   
                 Read configuration from close 
               
               
                   
                 registry 
               
               
                   
                 Create partitions 
               
            
           
           
               
               
            
               
                   
                 Case dir: 
               
            
           
           
               
               
            
               
                   
                 Move to new directory position 
               
               
                   
                 Create new directory 
               
               
                   
                 Enter directory 
               
            
           
           
               
               
            
               
                   
                 Case file: 
               
            
           
           
               
               
            
               
                   
                 Create new file 
               
               
                   
                 Copy contents from tape to file 
               
               
                   
                 Close file 
               
            
           
           
               
               
            
               
                   
                 Case security: 
               
            
           
           
               
               
            
               
                   
                 Apply security to either file or directory 
               
            
           
           
               
               
            
               
                   
                 Case close: 
               
            
           
           
               
               
            
               
                   
                 Close file or directory 
               
            
           
           
               
               
            
               
                   
                 End 
               
               
                   
                   
               
            
           
         
       
     
     Verification may be conducted as shown in the flow chart in  FIG. 7 , and examples of the programming steps are shown below: 
     
       
         
           
               
               
             
               
                   
                   
               
             
            
               
                   
                 Void verification 
               
               
                   
                 Begin 
               
            
           
           
               
               
            
               
                   
                 Open connection to event log 
               
            
           
           
               
               
            
               
                   
                 While traversing log 
               
            
           
           
               
               
            
               
                   
                 If errors found then stop 
               
            
           
           
               
               
            
               
                   
                 Close event log 
               
            
           
           
               
               
            
               
                   
                 Retrieve list of active services 
               
               
                   
                 Compare with list of services supposed to start 
               
               
                   
                 If differences found then stop 
               
            
           
           
               
               
            
               
                   
                 (only if DNS-services exists) 
               
               
                   
                 Send a request to a DNS service on both primary and 
               
               
                   
                 copy computer 
               
               
                   
                 Compare answers 
               
               
                   
                 If differences found then stop. 
               
               
                   
                 While traversing partitions 
               
            
           
           
               
               
            
               
                   
                 While traversing directories 
               
            
           
           
               
               
            
               
                   
                 While traversing files 
               
            
           
           
               
               
            
               
                   
                 Connect to a network drive on the 
               
               
                   
                 primary computer 
               
               
                   
                 Compare files and directories not 
               
               
                   
                 touched or created after the date of 
               
               
                   
                 the backup on the primary- and copy 
               
               
                   
                 computer 
               
               
                   
                 If difference in the creation date found 
               
               
                   
                 then stop 
               
               
                   
                 If difference in the size found then 
               
               
                   
                 stop 
               
               
                   
                 If difference in the date of change 
               
               
                   
                 found then stop 
               
               
                   
                 If a random number is equal to a selected 
               
               
                   
                 number then 
               
            
           
           
               
               
            
               
                   
                 Compare contents of files 
               
               
                   
                 If difference found then stop 
               
            
           
           
               
               
            
               
                   
                 (only if database exists) 
               
            
           
           
               
               
            
               
                   
                 Connect to database on copy computer 
               
            
           
           
               
               
            
               
                   
                 Connect to database on primary computer 
               
            
           
           
               
               
            
               
                   
                 Send data request to databases 
               
               
                   
                 If answers are different then stop 
               
            
           
           
               
               
            
               
                   
                 Inform user about the state of the backup and verification 
               
               
                   
                 process - that is has finished with success. 
               
            
           
           
               
               
            
               
                   
                 end 
               
               
                   
                   
               
            
           
         
       
     
     Identity change may be conducted as shown in the flow chart in  FIG. 6 , and examples of the programming steps are shown below: 
     
       
         
           
               
               
             
               
                   
                   
               
             
            
               
                   
                 void change_identity 
               
               
                   
                 begin 
               
            
           
           
               
               
            
               
                   
                 Read configuration 
               
               
                   
                 Open registry 
               
            
           
           
               
               
            
               
                   
                 Find working network card 
               
            
           
           
               
               
            
               
                   
                 Change properties for ip-address, DNS, WINS 
               
               
                   
                 Change the netbios name and domain for the machine 
               
               
                   
                 Find old SID in registry 
               
               
                   
                 Generate new SID and replace it in registry 
               
            
           
           
               
               
            
               
                   
                 While traversing the registry 
               
            
           
           
               
               
            
               
                   
                 Search for the occurrence of the SID in all 
               
               
                   
                 keys in the registry 
               
               
                   
                 Replace the old SID with the new. 
               
               
                   
                 Search the security list of all keys for the 
               
               
                   
                 occurrence of the SID. 
               
               
                   
                  Replace the old SID with the new. 
               
            
           
           
               
               
            
               
                   
                 While traversing the partitions 
               
            
           
           
               
               
            
               
                   
                  Search for the occurrence of SID in the security 
               
               
                   
                  list 
               
               
                   
                 Replace the old SID with the new. 
               
               
                   
                 While traversing the directories 
               
            
           
           
               
               
            
               
                   
                 Search for the occurrence of SID in the 
               
               
                   
                 security list 
               
               
                   
                 Replace the old SID with the new. 
               
            
           
           
               
               
            
               
                   
                 While traversing the files 
               
               
                   
                  Search for the occurrence of SID in 
               
               
                   
                  the security list 
               
               
                   
                  Replace the old SID with the new. 
               
            
           
           
               
               
            
               
                   
                 If databases active then shutdown 
               
            
           
           
               
               
            
               
                   
                 Find the configuration of the databases in the registry 
               
               
                   
                 Change the identity of the databases 
               
               
                   
                 Activate databases 
               
               
                   
                 Change identity of any custom services in the registry 
               
               
                   
                 Run batch file 
               
               
                   
                 Close registry 
               
            
           
           
               
               
            
               
                   
                 Preset startup value to be operating system from 
               
               
                   
                 primary computer 
               
            
           
           
               
               
            
               
                   
                 Reboot 
               
            
           
           
               
               
            
               
                   
                 End 
               
               
                   
                   
               
            
           
         
       
     
     Stand-in may be conducted as shown in the flow chart in  FIG. 8 , and examples of the programming steps are shown below: 
     
       
         
           
               
               
             
               
                   
                   
               
             
            
               
                   
                 Void standin( ) 
               
               
                   
                 Begin 
               
            
           
           
               
               
            
               
                   
                 Ask if latest backup has been restored 
               
               
                   
                 If not call restore procedure 
               
            
           
           
               
               
            
               
                   
                 Inform user to remove network connection from primary 
               
               
                   
                 computer. 
               
               
                   
                 Send a “ping” to primary computer. 
               
               
                   
                 If still active wait 
               
               
                   
                 Else continue 
               
               
                   
                 Call Identity change procedure 
               
               
                   
                 Restore share keys in the registry 
               
               
                   
                 Ask user if he wants read-only or write-access 
               
               
                   
                 If read-only change keys for the shares 
               
            
           
           
               
               
            
               
                   
                 Change startup state of deactivated services 
               
               
                   
                 Reboot 
               
            
           
           
               
               
            
               
                   
                 End 
               
               
                   
                 Void Stand-out( ) 
               
               
                   
                 Begin 
               
            
           
           
               
               
            
               
                   
                 Send message to users and inform them to close connection 
               
               
                   
                 to server. 
               
               
                   
                 If users still active wait 
               
               
                   
                 Else continue 
               
               
                   
                 Change to read-only for the shares in the registry. 
               
               
                   
                 Call identity change procedure. 
               
               
                   
                 Deactivate server services 
               
               
                   
                 Reboot 
               
            
           
           
               
               
            
               
                   
                 //In the meanwhile turn on the primary computer 
               
            
           
           
               
               
            
               
                   
                 //After restart manually copy changed files from 
               
               
                   
                 copy computer to primary computer, including databases. 
               
            
           
           
               
               
            
               
                   
                 End 
               
               
                   
                   
               
            
           
         
       
     
     An example of the code for the program is included in the computer program listing appendix which is incorporated herein in its entirety by reference.