This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2012-149831, filed on Jul. 3, 2012, the entire contents of which are incorporated herein by reference.
The embodiments discussed herein are directed to a restoration program and a restoration apparatus.
Computers are recovered or replaced conventionally by backing up data and then restoring the backed up data in the case when trouble occurs. For example, data of an operating system (OS) or a business system operated on a computer to be replaced is backed up when a computer is replaced. The backed up data is then restored on a hard disk of a target computer, for example. This can enable the business system to be resumed on the target computer.
With the conventional methods for replacing computers, however, the business system suspends a restart until restoration of the backed up data is completed. A technology is therefore known in the related art in which storage fields accessed during the start-up processing of the OS is recorded to identify the information accessed along with the start-up of the OS and to execute failure recovery processing using the identified information only.
By using the technologies in the related art, however, the data used for the business system is not restored. Therefore, when the business system is operated, the user has to wait for the restoration of the data, thereby increasing the business downtime.
A restoration program according to one aspect of an embodiment of the present invention causes a computer to execute processing in which backup data of an operating system and a business system is restored without running the operating system until a predetermined time point. The predetermined time point is a time point until which the total amount of the data read out along with the start-up of the operating system and a predetermined business system remains equal to or smaller than the total amount of the data that can be restored from the backup data while running the operating system and the business system. The restoration program causes the computer to execute processing that starts up the operating system and the business system, after the backup data is restored until a predetermined time point. The restoration program then causes the computer to execute processing that restores the backup data at the predetermined time point and later, in parallel with the start-up of the operating system and the business system.
According to an aspect of an embodiment, a computer-readable recording medium stores therein a program. The program causes a computer to execute a process including restoring backup data in which an operating system and a predetermined business system are backed up without running the operating system until a predetermined time point until which the total amount of the data read out along with the start-up of the operating system and the business system remains equal to or smaller than the total amount of the data that is restorable from the backup data while running the operating system and the business system; starting up the operating system and the business system, after the backup data is restored until the predetermined time point; and
restoring the backup data at the predetermined time point and later, in parallel with the start-up of the operating system and the business system.
The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, as claimed.
Preferred embodiments of the present invention will be explained with reference to accompanying drawings. The embodiments recited herein are not to be construed as limitations of the invention to specifically recited examples and conditions. The embodiments of the present invention could be combined with each other unless the processing of the embodiments contradicts to each other.
A first embodiment will now be described. In the first embodiment, a system 10 will be described that replaces a computer by backing up data and then restoring the backed up data.
The server device 11 is a computer to be replaced. An OS 20 is running, on which a business system 21 is operated in the server device 11. The OS 20 is software that provides basic functions utilized by many application software programs in common and totally manages the computer. The server device 12 is a target computer that generates backup data 31 in which the OS 20 and the business system 21 operated on the server device 11 are backed up. The server device 13 is a computer in which the backup data 31 is restored. In the present embodiment, the server device 13, for example, is a restoration apparatus.
Along with the start-up of the OS 20, a filter driver 22 is started up in the server device 11. The filter driver 22 monitors the readout of files along with the start-up of the OS 20. The filter driver 22 then generates a list B in which file names, time periods from the start-up of the filter driver 22 to the beginning of reading out the files, and the amounts of data of the files are recorded in the order read out by the OS 20.
Backup software 30 that backs up the data is installed in the server device 12. When the server device 11 is replaced, the server device 11 and the server device 12 are coupled to each other so that they can communicate through a not illustrated network. Examples of embodiments of such a network are any communication networks such as the Internet, a local area network (LAN), a wide area network (WAN), and a virtual private network (VPN) regardless of a wired or wireless network. The list B stored in the server device 11 is transmitted to the server device 12. The server device 12 stores therein the list B received from the server device 11. The server device 12 also stores therein a list A in which the files are recorded that are read from the time when the OS 20 is started up to the time when the filter driver 22 is started up. That is to say, the list A contains the files that are read until the filter driver 22 is started up in the server device 11. The list B contains the files that are read after the filter driver 22 is started up. The list A is not generated in backup processing but generated in advance for each type of hardware or an OS, by an administrator or a developer of the backup software 30, for example.
With reference to
When a computer is replaced, the backup data 31 generated by the server device 12 is stored in the server device 13. The mapping information 32 including the list A and the list B is stored in the server device 13. In the present embodiment, the server device 13 restores the backup data 31, whereby a computer is replaced. The server device 13 may read out and restore the backup data 31 and the mapping information 32 stored in the server device 12 through a network.
Two types of restoration speed exist when restoring the backup data 31: speed A and speed B. The speed A is used for restoration by running a restoration program on an OS for restoration. The speed B is used for restoration in the background by running a restoration program on the OS 20. The restoration using the speed A can restore backup data 31 faster and in a shorter time than the restoration using the speed B. It is difficult to start up the business system 21 in the case of the restoration using the speed A, because the OS 20 is not running. By contrast, the restoration using the speed B, in which the OS 20 is running, the business system 21 can be started up. The restoration using the speed B, however, takes longer time to restore the backup data 31, and the business system 21 suspends a restart until the restoration of the data used in the business system 21 is completed.
It is to be noted that when starting up computers such as the server devices 11 to 13, a large amount of data is read out in the initial stage of the start-up along with the start-up of the OS and the business system. After a certain period of time has passed from the start-up, the amount of read out data tends to decrease.
The server device 13, therefore, restores the backup data 31 without running the OS 20 until a predetermined time point until which the total amount of the data subsequently read out along with the start-up of the OS 20 and the business system 21 remains equal to or smaller than the total amount of the data that can be restored while running the OS 20 and the business system 21. After the server device 13 restores the backup data 31 until the predetermined time point, the server device 13 starts up the OS 20 and the business system 21. The server device 13 then restores the backup data 31 after the predetermined time point, in parallel with the start-up of the OS 20 and the business system 21. As described above, the server device 13 restores the backup data 31 without running the OS 20 until a predetermined time point, thereby restoring the OS 20 and the business system 21 faster. The server device 13 restores the backup data 31 in parallel with the start-up of the OS 20 and the business system 21 after the predetermined time point, thereby preventing the state in which the restoration of the data used for the OS 20 and the business system 21 has to be waited for. This enables the server device 13 to prevent a long business downtime.
The structure of the server device 13 that restores backup data will now be described in detail with reference to
The storage unit 40 is a storage device such as a hard disk, a solid state drive (SSD), and an optical disc drive. The storage unit 40 may be a rewritable semiconductor memory such as a flash memory and a non-volatile static random access memory (NVSRAM).
The storage unit 40 stores therein various types of information. For example, the storage unit 40 stores therein the backup data 31, the mapping information 32, an OS for restoration 33, and a restoration program 34 that performs various types of processing such as first restoration processing and second restoration processing, which will be described later. The OS for restoration 33 has a limited function such as a function used for restoring the backup data 31. An example of the OS for restoration 33 is Windows (registered trademark) Preinstallation Environment (Windows (registered trademark) PE). The restoration program 34 operates on the OS for restoration 33 and restores the backup data 31.
The control unit 41 includes an inner memory for storing a program in which various types of processing procedures are defined and control data, thereby executing various types of processing. When the control unit 41 restores the backup data 31, the OS for restoration 33 is started up, on which the restoration program 34 is started up. The restoration program 34 operates on the OS for restoration 33 so that the control unit 41 functions as various types of processors. As illustrated in
The first restoring unit 50 is a processor that executes the restoration processing of the backup data 31. The first restoring unit 50 restores files from the backup data 31 to the storage unit 40 according to the mapping information 32. For example, the first restoring unit 50 reads out the item of file name sequentially from the top of the list A included in the mapping information 32 and restores the files listed in the item of file name from the backup data 31 to the storage unit 40. The files listed in the list A may be restored in any order. The first restoring unit 50 then reads out the item of file name according to the order listed in the item of reading order of the list B included in the mapping information 32, and restores the files listed in the item of file name from the backup data 31 to the storage unit 40. Subsequently, the first restoring unit 50 restores the files stored in neither the list A nor the list B from the backup data 31 to the storage unit 40.
Each time the restoration of each of the files is completed, the first restoring unit 50 records the restored file. For example, when the restoration of the files in the list A included in the mapping information 32 is completed, the first restoring unit 50 records that effect in the list A. If the starting unit 52 orders the first restoring unit 50 to end the processing during the restoration of the files, the first restoring unit 50 ends the processing after the restoration of the file being restored is completed.
The calculation unit 51 is a processor that performs various types of calculations. The calculation unit 51 calculates the speed A used when the backup data 31 is restored while the restoration program 34 is operated on the OS for restoration 33. For example, when the first restoring unit 50 restores any one of the files listed in the list A, the calculation unit 51 calculates the speed A by dividing the amount of data of the file by the time period for the restoration. The calculation unit 51 also calculates the speed B used when the backup data 31 is restored in the background while the restoration program 34 is operated on the OS 20. For example, the calculation unit 51 calculates the speed B by multiplying the speed A by a predetermined coefficient that is larger than 0 and smaller than 1. In the present embodiment, the speed B is calculated by multiplying the speed A by ½, for example. The speed B can be calculated from the device structure of the server device 13, for example, if it is possible. The speed B may be a fixed value set by an administrator, for example. The speed B may use the restoration speed used when restoration is performed previously in the server device 13 while running the OS 20.
The calculation unit 51 calculates a timing to cause the first restoring unit 50 to end the restoration of the backup data 31. The calculation unit 51 firstly calculates a time X at which the total amount of the data read out along with the start-up of the OS 20 and the business system 21 becomes equal to or smaller than the total amount of the data that can be restored when the backup data 31 is restored without running the OS 20. For example, the calculation unit 51 reads out the records one by one according to the order listed in the item of reading order from the list B included in the mapping information 32 and accumulates the amount of the data read out along with the start-up to calculate the total amount of the data read out for each of the time periods listed in the item of reading time. The calculation unit 51 multiplies each time period in the item of reading time by the speed A to calculate the total amount of the data that can be restored using the speed A for each time period in the item of reading time. The calculation unit 51 then compares the amount of data read out with the total amount of the data that can be restored using the speed A for each time period in the item of reading time, and determines the time at which the total amount of the data read out firstly becomes equal to or smaller than the total amount of the data that can be restored using the speed A as the time X.
Subsequently, the calculation unit 51 calculates a time Y at which the total amount of the data read out at the time X and later along with the start-up of the OS 20 and the business system 21 becomes equal to or smaller than the total amount of the data that can be restored from the backup data 31 at the time X and later while running the OS 20 and the business system 21. For example, the calculation unit 51 reads out the records, of which the reading time is the time X and later one by one according to the order listed in the item of reading order from the list B and accumulates the amount of the data read out along with the start-up to calculate the total amount of the data read out along with the start-up for each time listed in the item of reading time. The calculation unit 51 multiplies the time period obtained by subtracting the time X from the time in the item of reading time by the speed B to calculate the total amount of the data that can be restored at the time X and later using the speed B for each time period in the item of reading time. The calculation unit 51 then compares the amount of data read out at the time X and later with the total amount of the data that can be restored at the time X and later using the speed B for each of the time periods listed in the item of reading time, and determines the time at which the total amount of the data read out firstly becomes equal to or smaller than the total amount of the data that can be restored using the speed B as the time Y.
The calculation unit 51 then calculates a time period a during which the data read out along with the start-up of the OS 20 and the business system 21 until the time Y is restored from the backup data 31 using the speed A. For example, the calculation unit 51 calculates the time period a by dividing the total amount of the data 71A read out at the time X and later by the speed A.
The calculation unit 51 calculates a time Z at which the reading speed of the data read out along with the start-up of the OS 20 and the business system 21 becomes equal to or larger than the speed B, immediately before the time Z. For example, the calculation unit 51 calculates the reading speed of the data according to the following procedure: the calculation unit 51 obtains the time difference of the reading time between one of the records and the subsequent record in the reading order listed in the list B, for each file to be read out at the time Y and earlier listed in the list B included in the mapping information 32 and divides the amount of the data of the file by the time difference. The calculation unit 51 then compares the reading speed with the speed B in the reverse order of the reading order, for each file to be read out at the time Y and earlier listed in the list B. The calculation unit 51 determines the file of which reading speed is equal to or faster than the speed B and determines the time at which the determined file is read out as the time Z. In the present embodiment, for example, the time Z is a fourth time point.
Subsequently, the calculation unit 51 excludes the data read out from the time Z to the time Y, from the data read out from the time X to the time Y along with the start-up of the OS 20 and the business system 21, thereby calculating the time period a′ during which the data is restored from the backup data 31 using the speed A. The calculation unit 51 may calculate the time period a′ by dividing the total amount of the data read out from the time X and later to the time Z by the speed A.
With reference to
The starting unit 52 orders the start-up of the restored OS 20 and business system 21. When starting up the OS 20 and the business system 21 after restarting the server device 13, the starting unit 52 orders the OS for restoration 33 to restart the server device 13.
The OS 20 is started up, on which the restoration program 34 and the business system 21 are started up in the control unit 41. The restoration program 34 operates on the OS 20 so that the control unit 41 functions as various types of processors. As illustrated in
The second restoring unit 53 is a processor that restores the backup data 31 in parallel with the start-up of the OS 20 and the business system 21. The second restoring unit 53 restores the backup data 31 in the background in parallel with the start-up of the OS 20 and the business system 21. For example, the second restoring unit 53 restores the files that have not been restored from the backup data 31 to the storage unit 40 in the order of the reading order by the OS 20 according to the mapping information 32.
The flow of generation processing will now be described in which the filter driver 22 of the server device 11 according to the present embodiment monitors the OS 20 reading the files and generates the list B.
As illustrated in
The filter driver 22 determines whether the start-up of the OS 20 is completed (S12). If the start-up of the OS 20 is completed (Yes at S12), the processing is ended. If the start-up of the OS 20 is not completed (No at S12), the processing is returned to S10 described above.
The flow of backup processing will now be described in which the backup software 30 of the server device 12 according to the present embodiment backs up the OS 20 and the business system 21 that operate on the server device 11.
As illustrated in
The flow of the first restoration processing will now be described in which the server device 13 according to the present embodiment restores the backup data 31 without running the OS 20 and the business system 21.
As illustrated in
When any of the files listed in the list A is restored by the first restoring unit 50, the calculation unit 51 calculates the speed A by dividing the amount of data of the file by the time period for the restoration. The calculation unit 51 also calculates the speed B by multiplying the speed A by a predetermined coefficient (S31).
The calculation unit 51 reads out one record according to the reading order from the list B included in the mapping information 32 (S32) and accumulates the amounts of the data of the read out record stored in the item of file size (S33). The calculation unit 51 calculates the total amount of the data that can be restored using the speed A by multiplying the time periods of the read out records listed in the item of reading time by the speed A (S34). The calculation unit 51 then determines whether the accumulated read out total amount of the data is equal to or smaller than the total amount of the data that can be restored using the speed A (S35). If the accumulated read out total amount of the data is not equal to or smaller than the total amount of the data that can be restored using the speed A (No at S35), the processing is returned to S32 described above. If the accumulated read out total amount of the data is equal to or smaller than the total amount of the data that can be restored using the speed A (Yes at S35), the calculation unit 51 determines the time of the read out record listed in the item of reading time as the time X (S36).
The calculation unit 51 reads out one record of which the reading time is the time X and later according to the reading order from the list B included in the mapping information 32 (S37) and accumulates the amounts of the data of the read out records stored in the item of file size (S38). The calculation unit 51 calculates the total amount of the data that can be restored at the time X and later using the speed B by multiplying the time obtained by subtracting the time X from the time of the read out record listed in the item of reading time by the speed B (S39). The calculation unit 51 then determines whether the read out total amount of the data at the time X and later is equal to or smaller than the total amount of the data that can be restored using the speed B (S40). If the accumulated total amount of the data read out at the time X and later is not equal to or smaller than the total amount of the data that can be restored using the speed B (No at S40), the processing is returned to S37 described above. If the accumulated total amount of the data read out at the time X and later is equal to or smaller than the total amount of the data that can be restored using the speed B (Yes at S40), the calculation unit 51 determines the time of the read out record listed in the item of reading time as the time Y (S41). After that, the calculation unit 51 calculates the time period a, during which the data read out from the time X to the time Y is restored from the backup data 31 using the speed A (S42).
As illustrated in
The calculation unit 51 compares the calculated reading speed with the speed B and determines whether the reading speed is equal to or faster than the speed B (S45). If the reading speed is not equal to or faster than the speed B (No at S45), the processing is returned to S43 described above. If the reading speed is equal to or faster than the speed B (Yes at S45), the calculation unit 51 determines the time of the read out record listed in the item of reading time as the time of Z (S46). The calculation unit 51 then obtains a time period t by dividing the total amount of the data read out from the time Z to the time Y by the speed A, and calculates the time period a′ by subtracting the time period t from the time period a (S47).
The starting unit 52 orders the first restoring unit 50 to end the processing at the timing when the sum of the time X and the time period a′ has elapsed since the beginning of the restoration of the file in the list B by the first restoring unit 50 (S48). The starting unit 52 then orders the restart of the restored OS 20 and business system 21, and the processing is ended (S49).
The flow of the second restoration processing will now be described in which the server device 13 according to the present embodiment restores the backup data 31 while running the OS 20 and the business system 21.
As illustrated in
As described above, the server device 13 restores the data without running the OS 20 or the business system 21 until a predetermined time point until which the total amount of the data read out along with the start-up of the OS 20 and the business system 21 remains equal to or smaller than the total amount of the data that can be restored while running the OS 20 and the business system 21. After the server device 13 restores the backup data 31 until the predetermined time point, the server device 13 starts up the OS 20 and the business system 21. The server device 13 then restores the backup data 31 after the predetermined time point, in parallel with the start-up of the OS 20 and the business system 21. This enables the server device 13 to prevent a long business downtime.
The server device 13 calculates the time X at which the total amount of the data read out along with the start-up of the OS 20 and the business system 21 becomes equal to or smaller than the total amount of the data that can be restored when the backup data 31 is restored without running the OS 20. The server device 13 also calculates the time Y at which the total amount of the data read out at the time X and later along with the start-up of the OS 20 and the business system 21 becomes equal to or smaller than the total amount of the data that can be restored from the backup data 31 at the time X and later while running the OS 20 and the business system 21. The server device 13 further calculates the sum of the time X and the time period a during which the data read out along with the start-up of the OS 20 and the business system 21 until the time Y is restored from the backup data 31 without running the OS 20. The server device 13 then restores the backup data 31 without running the OS 20 until the sum of the time X and the time period a has elapsed. This enables the server device 13 to prevent the state in which the restoration of the data used for the start-up of the business system 21 has to be waited for.
The server device 13 calculates the time Z at which the reading speed of the data read out along with the start-up of the OS 20 and the business system 21, immediately before the time Y, becomes equal to or larger than the speed with which the data is restored from the backup data 31 while running the OS 20 and the business system 21. The server device 13 calculates the sum of the time X and the time period a′ during which the data read out until the time Z is restored from the backup data 31 without running the OS 20. This enables the server device 13 to prevent the state in which the restoration of the data used for the business system 21 has to be waited for, thereby further reducing a business downtime.
The server device 13 restores the files for the start-up of the OS 20 from the backup data 31. The server device 13 then restores the backup data 31 in the reading order of the OS 20 without running the OS 20 until the predetermined time point described above. This enables the server device 13 to quickly start up the OS 20 after the restoration and prevent the period for the OS 20 after start-up to wait for the restoration of the data.
While the embodiment relating to the apparatus disclosed herein has been described, the disclosed technology can be embodied in various types of embodiments other than the above-described embodiment. Another embodiment according to the present invention will be described hereinafter.
The restoration program 34 has been described as a program in the first embodiment, however, the disclosed apparatus is not limited to this example. The restoration program 34 may include a plurality of programs. For example, the restoration program 34 may include a program operated on the OS for restoration 33 and a program operated on the OS 20.
The second restoring unit 53 restores the files from the backup data 31 according to the mapping information 32 in the description of the first embodiment, however, the disclosed apparatus is not limited to this example. If the readout of the data not yet restored is requested, the second restoring unit 53 may preferentially restore the requested data. This prevents the state in which the restoration of the data requested to be read out is waited for.
When the backup data 31 is restored, the restoration program 34 is operated on the OS for restoration 33 in the description of the first embodiment, however, the disclosed apparatus is not limited to this example. The restoration program 34 may be generated to include a program for controlling the hardware for the restoration of the backup data 31, whereby the restoration can be performed by the restoration program 34 alone.
If the backup data 31 is different data from the mapping information 32 in the first embodiment described above, the backup data 31 may include the mapping information 32.
Furthermore, each of the elements of the devices illustrated in the drawings is merely a depiction of concepts or functionality, and is not necessarily configured physically in the manner illustrated in the drawings. In other words, specific configurations in which each of the devices is distributed or integrated are not limited to those illustrated in the drawings. More specifically, the whole or a part of the devices may be distributed or integrated functionally or physically in any units depending on various loads or utilization. For example, the processors, the first restoring unit 50, the calculation unit 51, the starting unit 52, and the second restoring unit 53 illustrated in
Restoration Program
Various types of processing described in the embodiments above may also be implemented by executing a preliminary prepared program on a workstation or other computer systems. The computer system is therefore exemplified hereinafter that executes a program having the same function as the above-described embodiments.
As illustrated in
The ROM 320 preliminarily stores therein a restoration program 320a that has the same functions as the processors described in the embodiments above. For example, the ROM 320 preliminarily stores therein the restoration program 320a having the same functions as the first restoring unit 50, the calculation unit 51, the starting unit 52, and the second restoring unit 53 in the first embodiment. The restoration program 320a can be separated from the ROM 320 as necessary.
The HDD 330 stores therein various types of data such as backup data 330a.
The CPU 310 reads out the restoration program 320a from the ROM 320 and executes the restoration program 320a, the same operations are performed as the processors according to the first embodiment. That is to say, the restoration program 320a executes the same operations as the first restoring unit 50, the calculation unit 51, the starting unit 52, and the second restoring unit 53 according to the first embodiment.
The restoration program 320a is not always to be stored in the ROM 320 preliminarily, and may be stored in the HDD 330.
For example, the program may be stored in a “portable physical medium” to be inserted in the computer 300, such as a flexible disk (FD), a compact disk read-only memory (CD-ROM), a digital versatile disk (DVD), a magneto-optical disk (MO), and an integrated circuit (IC) card. The computer 300 may read out the program from such a portable physical medium and execute the program.
The program may be stored in “another computer (or a server)” coupled to the computer 300 through a public line, the Internet, a LAN, or a WAN, for example. The computer 300 may read out the program from such a network and execute the program.
According to an aspect of an embodiment of the present invention, a long business downtime can be prevented.
All examples and conditional language recited herein are intended for pedagogical purposes of aiding the reader in understanding the invention and the concepts contributed by the inventor to further the art, and are not to be construed as limitations to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2012-149831 | Jul 2012 | JP | national |