WO2018024327A1 - Device and method arranged to support execution of a booting process executed during an instant restore process - Google Patents

Device and method arranged to support execution of a booting process executed during an instant restore process Download PDF

Info

Publication number
WO2018024327A1
WO2018024327A1 PCT/EP2016/068536 EP2016068536W WO2018024327A1 WO 2018024327 A1 WO2018024327 A1 WO 2018024327A1 EP 2016068536 W EP2016068536 W EP 2016068536W WO 2018024327 A1 WO2018024327 A1 WO 2018024327A1
Authority
WO
WIPO (PCT)
Prior art keywords
data block
storage
during
requested
booting process
Prior art date
Application number
PCT/EP2016/068536
Other languages
French (fr)
Inventor
Asaf Yeger
Michael Sternberg
Boris Liberman
Original Assignee
Huawei Technologies Co., Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co., Ltd. filed Critical Huawei Technologies Co., Ltd.
Priority to CN201680087849.4A priority Critical patent/CN109564533B/en
Priority to PCT/EP2016/068536 priority patent/WO2018024327A1/en
Publication of WO2018024327A1 publication Critical patent/WO2018024327A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating

Definitions

  • the present invention is directed to a device and method, both arranged to support execution of a booting process, which is executed during an instant restore process. Further, the present invention relates to a correspondingly arranged computer program product and to a correspondingly arranged computer-readable medium.
  • data restore or data recovery respectively is executed in case of an operating system failure, malfunction of a software and/or hardware entity (e.g. storage device), accidental damage or deletion of data, etc. (typically, on a single-drive, single-partition, single-OS (operating system) system), in which case the task is to restore or recover all data to enable a further operation of a computing system or device.
  • a software and/or hardware entity e.g. storage device
  • accidental damage or deletion of data etc.
  • the task is to restore or recover all data to enable a further operation of a computing system or device.
  • Instant restore or instant recovery becomes more and more popular.
  • Instant restore or instant recovery allows a back-up snapshot of a virtual machine (VM) to run temporarily by use of a secondary or back-up storage after a failure or disaster occurs in the VM or in a computing system or device, on which the VM is executed.
  • Instant restore or recovery may also be referred to as recovery in place.
  • user workloads are redirected to a back-up or secondary storage while primary storage, which has been used during the execution of the VM, is restored.
  • a back-up VM corresponding or reproducing the VM, is then executed on a back-up device (e.g., server) by use of the data stored on the back-up or secondary storage and the redirected workloads.
  • a back-up device e.g., server
  • the workload is redirected to the original VM. Because the instant restore or recovery occurs behind the scenes or offline, respectively, the user is unaware that anything unusual has happened.
  • the instant restore allows the user to use the computing device or system, on which the VM is run, continuously even if a damage occurred and an instant restore process has been required.
  • the running or executed VM ensures the desired use and operation of the computing device or system, on which the VM is run or executed.
  • instant restore When executing instant restore, it is not necessary to connect the user directly to a back-up copy of their VM because the minute the user starts working on that back-up VM the back-up is no longer in a pristine state. Instead, in the instant restore process, a snapshot or image of the VM is created so the back-up remains in a pristine state and all the user write operations get redirected to that snapshot, so the user is able to work off of the back-up VM.
  • the snapshot or image is generated with regard to all files and data stored and/or necessary for executing the VM and, thus, for operating the computing system or device, on which the VM is run or executed. I.e.
  • the back-up VM is booted in the background or offline respectively.
  • the booting process is executed to put the VM into an operation state that corresponds to the operation state of the back-upped VM or to back-upped image/snapshot respectively.
  • an initialization of the computing system or device and, if required, of applications running in the system or device is executed.
  • a booting process comprises identification of hardware and/or software components, verification of their availability and functionality, and controlling of said components such that they are ready for operation of the VM on the computing system or device after the booting process.
  • a booting process comprises, for example, also execution of master boot record (MBR), loading of operating system (OS) kernel, loading of driver(s), and/or starting of the execution of services/daemons and/or applications.
  • MLR master boot record
  • OS operating system
  • driver(s) loading of driver(s)
  • the restored VM and, thus, the respective computing system or device is ready for its intended use.
  • the time from beginning the booting process until the VM and, thus, the respective computing system or device, on which the VM is run, is important. Particularly, this time should be as short as possible because it is always desired that the VM and, thus, the computing system or device is ready for its intended use as soon as possible after its start.
  • I/O requests are issued to the back-up or secondary storage to derive data blocks required for the further correct execution of the VM, i.e. for putting the computing system or device in a state that enables the intended execution of the VM and, thus, a proper operation of the computing system or device.
  • the corresponding reads of the back-up or secondary storage are performed in a non-uniform way and/or on demand. Between the individual issuances of corresponding I/O requests some time runs. Further, the I/O requests request data blocks that are located randomly in the back-up or secondary storage, and it takes time to detect the requested data blocks. Thus, it takes time to receive the requested data, necessary to execute the booting process.
  • a methodology is desired that enables a fast provision of data blocks necessary for the execution of a booting process within an instant restore process and, thus, for putting a VM and, thus, the respective computing system or device, on which the VM is run/executed, in a state, in which it is ready for its intended use, after the instant restore.
  • the object of the present invention is provision of a method and a device that enable an improved execution of an instant restore process and, particularly, that enable an improved execution of a booting process executed during the instant restore process.
  • the present invention provides a method and device that are arranged to support the execution of a booting process, which is executed during an instant restore process, and that overcome at least the above-mentioned drawbacks.
  • the method and the device are arranged such that they accelerate the provision of data blocks necessary for the execution of the booting process. In this way, the execution of the booting process and, consequently, of the instant restore process is accelerated.
  • the present invention as specified in claims and as described herein in connection with appended figures, on the one side, executes a back-up process, during which additionally a test booting process is executed, based on data backed-up in the back-up process, for generating a set of data blocks requested during the test booting process.
  • the set of data blocks is used to execute the booting process of the instant restore process.
  • the set of data blocks is used for pre-fetching the data blocks of said set.
  • the present invention ensures that the VM and, thus, the respective computing system or device, on which the VM is run/executed, is quickly and with less effort put in a state, in which they are ready for their intended use, after the execution of the instant restore process.
  • a device which is arranged to support an execution of a booting process, which is executed during an instant restore process, wherein the instant restore process is configured to instantly restore data backed-up in a back-up process
  • the device comprises at least one of the following: a back-up process executing unit, wherein the back-up process executing unit is configured to execute a test booting process by use of the data backed-up in the back-up process and to generate, during the test booting process, a requested data block set, wherein each entry of the requested data block set comprises information on a data block, requested from a storage during the test booting process; an instant restore process executing unit, wherein the instant restore process executing unit is configured to execute, during the instant restore process, the booting process by pre-fetching, for each entry of the requested data block set, from the storage a
  • the back-up process comprises the above-mentioned generation of a snapshot of a VM to a storage.
  • the storage is, for example, the above-mentioned back-up or secondary storage.
  • the term "storage” will be generally used although it comprises, for example, the back-up or secondary storage as mentioned also above in the background part.
  • a back-up VM is generated in the back-up process, wherein the data of the back-up VM is stored in the storage and wherein the back-up VM is an image/snapshot of the VM.
  • the snapshot/image is generated with regard to all files and data stored on a respective computing device or system, on which the VM is run/executed, and/or necessary for executing the VM on the respective computing device or system and, thus, for operating the respective computing system or device.
  • all files and data stored and/or necessary for executing the VM are stored on a storage (e.g., the secondary or back-up storage) as a snapshot of the whole VM.
  • a storage e.g., the secondary or back-up storage
  • the back-up of the data and, thus, also of the VM is executed as usual with regard to an instant restore process.
  • the VM represents a software that is run or executed by the respective computing system or device and that ensures a correct operation of the respective computing system or device.
  • pre-fetching has the usual meaning and refers to loading or storing of contents of a storage or memory into a higher level of a storage or memory hierarchy, wherein the higher level of the storage or memory hierarchy allows a higher access speed.
  • data blocks are loaded into or stored in a further memory that enables a faster access to the data blocks.
  • the further memory is a cache, for example. Because, according to the present invention, the pre-fetching is executed during the instant restore process and, particularly, during a booting process of the instant restore process, the data blocks, which are pre-fetched, are backed-up data blocks. I.e., the data blocks are gathered or retrieved from the backed-up data.
  • the information on a data block, requested from the storage during the test booting process comprises an address of the data block in the storage and a size of the data block.
  • the sizes of the requested data block set is kept small. This allows a fast processing of the requested data block set. Consequently, the handling of the requested data block set does not affect the performance of the booting process and or the corresponding instant restore process.
  • the instant restore process executing unit is configured to execute said pre-fetching by retrieving the data block from the storage by use of the information of the respective entry in the requested data block set and by storing the data block in a further storage, wherein the further storage is configured to allow a faster access to the data block than the storage.
  • the booting process is enabled to execute fast access to all or at least nearly all data blocks, required for the execution of the booting process.
  • the back-up process executing unit is configured to monitor, during the test booting process, data block requests for requesting data blocks from the storage.
  • the monitoring enables a detection of all or at least nearly all data blocks, required for the execution of the booting process that will be executed during the instant restore process.
  • an accurate set or requested data blocks is generated by the back-up process executing unit such that the accuracy on provision of data blocks, actually required by a booting process, is ensured.
  • the back-up process executing unit is configured to collect, during the test booting process, information on data blocks, requested from the storage during the test booting process. In this way, it is ensured that the knowledge on all data blocks, required for the execution of the booting process, is collected. Thus, the accuracy on provision of data blocks, actually required by the booting process executed during the instant restore process, is improved.
  • the back-up process executing unit is configured to instruct storing of the requested data block set in the storage as a part of the data backed-up in the back-up process.
  • a uniform and consistent back-up process is executed, which enables a fast retrieval of the requested data block set when the corresponding instant restore process is executed. No further identification of storage addresses for fining the respective requested data block set is necessary, such that also the execution of the respective instant restore process and, particularly, of the booting process of the instant restore process is accelerated.
  • the instant restore process executing unit is configured to retrieve, during the booting process, the requested data block set from the storage.
  • a method which is arranged to support an execution of a booting process, which is executed during an instant restore process, wherein the instant restore process is configured to instantly restore data backed-up in a back-up process, wherein the method comprises at least one of the following steps: executing a test booting process by use of the data backed-up in the back-up process and generating, during the test booting process, a requested data block set, wherein each entry of the requested data block set comprises information on a data block, requested from a storage during the test booting process; executing, during the instant restore process, the booting process by pre-fetching, for each entry of the requested data block set, from the storage a data block, information on which the entry of the requested data block set comprises.
  • the steps of the method correspond to the steps or activities executed by the device arranged to support execution of a booting process, which is executed during a restore process, as introduced above and as described in more detail below. Also by the method, the effects described here
  • the present invention refers to a computer program product comprising computer readable program code that is configured to cause a computing device to execute steps of the method introduced above and explained in more detail below.
  • the present invention relates to a computer-readable recording medium configured to store therein said computer program product.
  • Figs, la and lb show exemplary arrangements of a device, arranged to support the execution of a booting process, which is executed during an instant restore process, according to an embodiment of the present invention.
  • Fig. 2 shows steps of a method, arranged to support the execution of a booting process, which is executed during an instant restore process, according to an embodiment of the present invention.
  • Fig. 3 shows an arrangement of a requested data block set according to an embodiment of the present invention.
  • Fig. 4 shows an exemplary arrangement of an entry of a requested data block set according to an embodiment of the present invention.
  • Fig. 5 shows a flow-diagram of sub-steps of a test booting process execution step according to an embodiment of the present invention. shows a flow-diagram of sub-steps performed in a step for executing a booting process during an instant restore process according to an embodiment of the present invention.
  • Figs, la and lb show exemplary arrangements of a device 110, 120, 130, arranged to support the execution of a booting process, which is executed during an instant restore process, according to an embodiment of the present invention.
  • the device 110 comprises both a back-up process executing unit 111 and an instant restore process executing unit 112.
  • the back-up process executing unit 111 is configured to execute, in addition to a back-up of data, a test booting process by use of the data backed-up in the back-up process and to generate, during the test booting process, a requested data block set, wherein each entry of the requested data block set comprises information on a data block, requested from a storage during the test booting process.
  • the test booting process is executed for the backed-up VM.
  • the data blocks, requested during the test-booting process are backed-up data blocks.
  • the storage is a storage, on which the data backed-up in the back-up process is stored, i.e. the above-mentioned secondary or back-up storage.
  • the instant restore process executing unit 112 is configured to execute, during an instant restore process, a booting process by pre-fetching, for each entry of the requested data block set, from the storage a data block, information on which the entry of the requested data block set comprises. Because the requested data block set has been generated during the back-up process and, particularly, during the test booting process of the back-up process, the data blocks, with regard to which the pre-fetching is executed, are backed-up data blocks.
  • both components - the back-up process executing unit 111 and the instant restore process executing unit 112 - become active subsequently.
  • the back-up process with the test booting process is executed by the back-up process executing unit 111.
  • the instant restore process executing unit 112 executes during the respective instant restore process a booting process by use of the requested data block set generated by the backup process executing unit 111.
  • both components operate offline or in background, respectively. Thus, they do not affect the usual operation of the VM, data of which is backed-up in the back-up process, i.e. for which a back-up VM is generated.
  • both the back-up process executing unit 111 and the instant restore process executing unit 112 are included in one device 110 for supporting the execution of a booting process of an instant restore process. According to the embodiment of Fig.
  • Fig. 2 shows the general steps of a method arranged to support the execution of a booting process, which is executed during an instant restore process, according to an embodiment of the present invention.
  • a test booting process is executed by use of data backed-up in the back-up process, and a requested data block set is generated during the test booting process, wherein each entry of the requested data block set comprises information on a data block, requested from a storage during the test booting process.
  • the test booting process is executed in addition to the back-up process.
  • the test booting process is executed as a separate process following the back-up process, wherein, according to another embodiment, the test booting process is executed within the back-up process after data has been backed-up.
  • the back-up process is executed for preparing an execution of an instant restore process. I.e., in the back- up process, a snapshot or image of a VM is generated and stored in a storage as described above, for example. Particularly, the generation of the snapshot or image of the VM is executed as usual with regard to an instant restore process.
  • the storage is, for example, a back-up or secondary storage.
  • the snapshot/image of the VM is generated with regard to all files and data stored on a computing device or system, on which the VM is run/executed, and/or necessary for executing the VM on the computing device or system and, thus, for operating the respective computing system or device.
  • all files and data stored and/or necessary for executing the VM are stored in the storage as a snapshot or image of the whole VM, i.e. as a back-up VM (as described above).
  • the test booting process is a part of the back-up process, also the test booting process is executed offline or in background. Thus, its execution does not affect the usual operation of the VM, data of which is backed-up in the back-up process, i.e. for which a back-up VM is generated. Consequently, also the operation of the computing system or device, on which the VM is executed, is not affected by the execution of the booting process of the instant restore process.
  • the step 201 is executed by the device 110, 120, which is arranged to support an execution of a booting process, which is executed during an instant restore process.
  • the step 201 is executed by the back-up process executing unit 111.
  • the device 110, 120 or by the back-up process executing unit 111 correspondingly execute the 201 the test booting process offline or in background.
  • Step 202 is executed during an instant restore process, in which the data backed-up in the above-mentioned back-up process is restored.
  • a booting process is executed, wherein the booting process is executed by pre-fetching, for each entry of the requested data block set, from the storage a data block, information on which the entry of the requested data block set comprises.
  • the storage is, for example, a back-up or secondary storage.
  • the data blocks, which are pre-fetched, are backed- up data blocks.
  • the step 202 is executed by the device 110, 130, which is arranged to support an execution of the booting process, which is executed during the instant restore process.
  • step 201 is executed by the instant restore process executing unit 111.
  • Steps 201 and 202 are executed independently from each other.
  • step 201 is executed before step 202
  • step 202 is executed after the execution of step 201 has been finished, because step 202 uses the requested data block set generated in step 201.
  • Fig. 3 shows an arrangement of the requested data block set 311 according to an embodiment of the present invention.
  • the requested data block set 311 is stored in a storage 301.
  • the storage 301 is, for example, the above-mentioned back-up or secondary storage.
  • the storage 301 may be one component or may represent a plurality of storages 301.
  • the requested data block set 311 may be stored in one coherent storage 301 or in a plurality of (i.e., at least two) different storage units 301.
  • the requested data block set 311, generated in step 201 e.g., by the device 110, 120, 130 and, particularly, by the back-up process executing unit 111), comprises a plurality of entries (i.e.
  • test booting process and, particularly, the data block requests are monitored, and each time a data block is requested a corresponding new entry 311-1, 311-2, ... , 311 -n of the requested data block set 311 is generated and added to the set 311.
  • the requested data block set 311 is stored together with the data backed-up in the back-up process.
  • the storage 301 comprises, i.e. stores also the backed-up data.
  • the backed-up data comprise a snapshot or image of the VM, with regard to which the back-up is executed, i.e. the back-up VM as described herein.
  • Fig. 4 shows an exemplary arrangement of an entry 311 -i of the requested data block set 311 , wherein 1 ⁇ i ⁇ n.
  • the entry 311-i comprises
  • said information comprises an address 401 of the requested data block in the storage and the size 402 of the data block.
  • the requested data block set 311 may be accessed in a fast way, without wasting processing time and, thus, without, affecting the execution of the test booting process.
  • a data block, requested from the storage during the current or present booting process is stored in the entry 311 -i of the requested data block set 311.
  • the embodiment of Fig. 4 is an example of the entry 311-i of the requested data block set 311.
  • an entry 311-i is arranged such that it allows an identification of the respective data block in the storage.
  • Fig. 5 shows a flow-diagram of sub-steps of the test booting process execution step 201 according to an embodiment of the present invention.
  • the sub-steps are executed, for example, by the device 110, 120 arranged to support the execution of a booting process, which is executed during an instant restore process.
  • the sub-steps are executed, for example, by the back-up process executing unit 111.
  • the sub-steps are executed during the test booting process.
  • the test booting process is, in turn, a part of a boot- up process.
  • step 501 data block requests (e.g., I/O requests), executed during the test booting process, are monitored. In this way, it is determined, which data blocks will be required by a booting process executed during an instant restore process, in which the booted-up data will be restored.
  • the monitoring is executed, for example, by monitoring and detecting accesses to the storage, in which the corresponding data blocks are stored. Because the test booting process is a part of the back-up process, the monitored data block requests comprise requests on data blocks backed-up in the back-up process.
  • the storage is, for example, the above- mentioned storage 301 of Fig. 3.
  • the corresponding data blocks comprise, for example: data required for identification of hardware and/or software components of the computing system or device, VM of which is backed-up and may be later restored by the instant restore process; data required for verification of the availability and/or functionality of the hardware and/or software components; data required for controlling said hardware and/or software components such that they are ready for operation after the booting process; data required for initialization and/or operation of the VM and/or of the corresponding computing system or device; data required for initialization and/or operation of applications executed in the VM and/or of the corresponding computing system or device; data required for the execution of the MBR, which will be booted during the corresponding instant restore process; data required for loading the OS kernel; data required for loading driver(s); data required for starting of the execution of services/daemons and/or applications; and/or any further data required during the booting process executed during the instant restore process.
  • step 502 information 401, 402 on the data blocks, requested from the storage during the test booting process, is collected. For this purpose, once a request of a data block (e.g., I/O request) has been monitored or detected 501, the information 401, 402 on the data block is detected. As discussed above with regard to Figs. 3 and 4a, the information 401 , 402 comprises, for example, an address 401 of the data block in the storage (e.g., storage 301) and the size 402 of the data block.
  • the storage e.g., storage 301
  • the requested data block set 311 is stored in the storage (e.g., the storage 301). Particularly, an entry 311 - 1 , 311 -2, 311 -i, 311 -n of the requested data block set 311 is generated for the data block information 401, 402 collected in step 502. Then, the corresponding data block information 401 , 402 is stored in the generated entry 311 - 1 , 311 -2, 311 -i, 311 -n.
  • the above described steps 502, 503 are executed with regard to each data block that has been monitored or detected in step 501. At the end of the execution of the test booting process execution step 201, i.e.
  • the requested data block set 311 comprises information on all data blocks requested in said test booting process and monitored in step 501.
  • Fig. 6 shows a flow-diagram of sub-steps performed in the step 202 for executing a booting process during an instant restore process according to an embodiment of the present invention.
  • the sub-steps are executed, for example, by the device 110, 130 arranged to support the execution of the booting process of the instant restore process.
  • the sub-steps are executed, for example, by the restore process executing unit 112.
  • the sub-steps are executed during the booting process.
  • the booting process is, in turn, a part of the instant restore process.
  • the requested data block set 311 is retrieved from a storage.
  • the storage is, for example, a secondary or boot-up storage.
  • the storage is the storage 301 shown in Fig. 3.
  • the requested data block set 311 can be retrieved from the storage 301, if, in a test booting process of a back-up process, a requested data block set 311 has been generated 201, as described above. If no requested data block set 311 has been generated 201 in a back-up process and, particularly, in a test booting process of the back-up process, the execution of the pre-fetching step 202 is not possible and is ended.
  • step 601 the access to the requested data block set 311 is started at a predetermined entry 311-1, 311-2, 311 -i, 311-n of the data block set 311, for example, at the first entry 311-1 of the requested data block set 311.
  • step 602 an entry 311-1, 311-2, 311 -i, 311-n is accessed.
  • a data block information 401, 402 stored in the entry 311-1, 311-2, 311 -i, 311-n is derived from said entry 311-1, 311-2, 311-i, 311-n.
  • the corresponding data block is retrieved from the storage (e.g., storage 301) by use of the information 401, 402.
  • the information 401, 402 comprises an address 401 of the data block in the storage and the length 402 of the data block
  • the corresponding data block is retrieved by accessing the storage at the address 401 and reading a data block, starting at said address 401 and having the length 402.
  • the retrieved data block is a data block that has been backed-up in the back-up process, in which also the respective test booting process has been executed.
  • the step 603 is executed with regard to data blocks that have been backed- up in said back-up process.
  • step 604 the retrieved data block is stored in a further storage (e.g., cache), which allows a faster access to the data block than the storage, from which the data block has been retrieved in step 603.
  • a pre-fetching of the data block is executed.
  • step 605 it is verified, whether all entries 311-1, 311-2, 311-i, 311-n of the requested data block set 311 have been derived 602 and accessed 603 and whether all respective data blocks have been stored 604 in the further storage (e.g., cache). If the requested data block set 311 comprises un-considered entries 311-1, 311-2, 311-i, 311-n, i.e.
  • the execution of the booting process 202 of the instant restore process continues with a new execution of step 602 and, thus, with a consideration of a further entry 311-1, 311-2, 311-i, 311-n of the requested data block set 311. If all entries 311 - 1 , 311 -2, 311 -i, 311 -n of the requested data block set 311 have been considered, the execution of the booting process 202 of the instant restore process is terminated or ended in step 606.
  • the execution of the steps 602 to 605 may be interrupted for a time period if the further storage (e.g., cache), into which the data blocks are stored 604 is full.
  • the execution of the steps 602 to 605 is continued after a use of one or more of data blocks, stored 604 in the further storage, has been finished in the booting process.
  • said one or more of data blocks, which have been stored 604 in the further storage and usage of which is finished in the booting process are considered as being not required for the further execution of the booting process.
  • said one or more data blocks are deleted from the further storage, and the execution of the sub-steps 602 to 605 is continued until all entries have been considered.
  • the above-mentioned interruption may be executed at any time where it is determined that the further storage (e.g., cache) is full.
  • the further storage e.g., cache
  • a data block, which has been previously stored 604 in the further storage and processing of which during the booting process has been finished, will be replaced by a new data block identified by further execution of the sub-steps 602 to 605.
  • the present invention is implementable in several technical areas where VMs, with regard to which a back-up and a corresponding instant restore process can be executed, are used.
  • the VMs can be executed on different computing systems or devices such as mobile computing systems or devices (e.g., mobile phones, smart phones, vehicles, laptops, etc.) or stationary computing systems or devices (e.g., facilities, sensors, actuators, etc.).
  • the present invention is implementable in different environments. Besides the usual computer-aided environments with physical devices or apparatus, the present invention is implementable also in virtual or cloud environments. Thus, also virtual systems and systems operated via cloud can be backed-up and instantly restored according to the present invention.
  • the device 110, 120, 130 is a storage device, wherein, according to a further embodiment, the device 110, 120, 130 is the storage device, on which the backed-up data and the requested data block set are stored during the back-up process.
  • the device 110, 120, 130 is a storage device that hosts virtual machine (VM) disks.
  • the device 110, 120, 130 is a hypervisor, i.e. a hardware and/or software device that creates and runs virtual machines, or a server.
  • the device 110, 120, 130 may be any computing device, wherein the term "device” comprises an apparatus with a housing, a system, or an arrangement as indicated above.
  • the further storage e.g., cache
  • the further storage into which the data blocks are pre-fetched, is generally a storage that allows a faster access to the stored data than the storage, in which data blocks are stored and from which the data blocks are requested during a booting process.
  • the present invention is directed to a device and method, both arranged to support execution of a booting process, which is executed during an instant restore process, wherein the instant restore process is configured to instantly restore data backed-up in a back-up process.
  • a backup process executing unit of the device executes a test booting process by use of the data backed- up in the back-up process and generates, during the test booting process, a requested data block set, wherein each entry of the requested data block set comprises information on a data block, requested from a storage during the test booting process.
  • An instant restore process executing unit of the device executes, during the instant restore process, the booting process by prefetching, for each entry of the requested data block set, from the storage a data block, information on which the entry of the requested data block set comprises.

Abstract

The present invention is directed to a device and method, both arranged to support execution of a booting process, which is executed during an instant restore process, wherein the instant restore process is configured to instantly restore data backed-up in a back-up process. A back-up process executing unit of the device executes a test booting process by use of the data backed-up in the back-up process and generates, during the test booting process, a requested data block set, wherein each entry of the requested data block set comprises information on a data block, requested from a storage during the test booting process. An instant restore process executing unit of the device executes, during the instant restore process, the booting process by pre-fetching, for each entry of the requested data block set, from the storage a data block, information on which the entry of the requested data block set comprises.

Description

DEVICE AND METHOD ARRANGED TO SUPPORT EXECUTION OF A BOOTING PROCESS EXECUTED DURING AN INSTANT RESTORE PROCESS
TECHNICAL FIELD The present invention is directed to a device and method, both arranged to support execution of a booting process, which is executed during an instant restore process. Further, the present invention relates to a correspondingly arranged computer program product and to a correspondingly arranged computer-readable medium.
BACKGROUND
In general, data restore or data recovery respectively is executed in case of an operating system failure, malfunction of a software and/or hardware entity (e.g. storage device), accidental damage or deletion of data, etc. (typically, on a single-drive, single-partition, single-OS (operating system) system), in which case the task is to restore or recover all data to enable a further operation of a computing system or device.
Recently, instant restore or instant recovery, respectively, becomes more and more popular. Instant restore or instant recovery, respectively, allows a back-up snapshot of a virtual machine (VM) to run temporarily by use of a secondary or back-up storage after a failure or disaster occurs in the VM or in a computing system or device, on which the VM is executed. Instant restore or recovery, respectively, may also be referred to as recovery in place. Within an instant restore process user workloads are redirected to a back-up or secondary storage while primary storage, which has been used during the execution of the VM, is restored. A back-up VM, corresponding or reproducing the VM, is then executed on a back-up device (e.g., server) by use of the data stored on the back-up or secondary storage and the redirected workloads. Once the instant restore or recovery has been completed, the workload is redirected to the original VM. Because the instant restore or recovery occurs behind the scenes or offline, respectively, the user is unaware that anything unusual has happened. Thus, the instant restore allows the user to use the computing device or system, on which the VM is run, continuously even if a damage occurred and an instant restore process has been required. The running or executed VM ensures the desired use and operation of the computing device or system, on which the VM is run or executed.
When executing instant restore, it is not necessary to connect the user directly to a back-up copy of their VM because the minute the user starts working on that back-up VM the back-up is no longer in a pristine state. Instead, in the instant restore process, a snapshot or image of the VM is created so the back-up remains in a pristine state and all the user write operations get redirected to that snapshot, so the user is able to work off of the back-up VM. The snapshot or image is generated with regard to all files and data stored and/or necessary for executing the VM and, thus, for operating the computing system or device, on which the VM is run or executed. I.e. all files and data stored and/or necessary for the execution of the VM are stored on a secondary or back-up storage as a snapshot or image of the whole VM. As soon as the snapshot has been created, the instant restore or recovery process begins in the background or offline respectively. The user of the computing device or system is completely oblivious that the instant restore or recovery is going on, and once the instant restore or recovery is finished, the user's workload is redirected back to the original VM.
With instant restore it is possible to restore the VM into user's working environment by running the VM directly from the secondary or back-up storage. Because there is no need to extract the VM from the back-up or secondary storage and to copy it into the primary storage, which is used by the computing device or system on that the VM runs, it is possible to restart the VM from any restore point (incremental or full) in a matter of minutes. The VM's backed-up image or snapshot respectively (i.e. the back-up VM) remains in a read-only state to avoid unexpected modifications.
When the instant restore process is executed, the back-up VM is booted in the background or offline respectively. The booting process is executed to put the VM into an operation state that corresponds to the operation state of the back-upped VM or to back-upped image/snapshot respectively. For this purpose, an initialization of the computing system or device and, if required, of applications running in the system or device is executed. In particular, a booting process comprises identification of hardware and/or software components, verification of their availability and functionality, and controlling of said components such that they are ready for operation of the VM on the computing system or device after the booting process. A booting process comprises, for example, also execution of master boot record (MBR), loading of operating system (OS) kernel, loading of driver(s), and/or starting of the execution of services/daemons and/or applications. After the execution of the booting process, the restored VM and, thus, the respective computing system or device is ready for its intended use. The time from beginning the booting process until the VM and, thus, the respective computing system or device, on which the VM is run, is important. Particularly, this time should be as short as possible because it is always desired that the VM and, thus, the computing system or device is ready for its intended use as soon as possible after its start.
During a booting process, input/output (I/O) requests are issued to the back-up or secondary storage to derive data blocks required for the further correct execution of the VM, i.e. for putting the computing system or device in a state that enables the intended execution of the VM and, thus, a proper operation of the computing system or device. The corresponding reads of the back-up or secondary storage are performed in a non-uniform way and/or on demand. Between the individual issuances of corresponding I/O requests some time runs. Further, the I/O requests request data blocks that are located randomly in the back-up or secondary storage, and it takes time to detect the requested data blocks. Thus, it takes time to receive the requested data, necessary to execute the booting process. The execution of the booting process slows down and affects the instant restore process. However, it is desired to enable a fast and efficient instant restore process such that a correct further operation of the restored VM is enabled and such that also the operation of the computing device or system, on which the restored VM is run/executed, is continued without affecting it. Thus, further methodologies supporting a fast and efficient execution of an instant restore process and, in particular, of a booting process, which is executed during the instant restore process, are required. Particularly, a methodology is desired that enables a fast provision of data blocks necessary for the execution of a booting process within an instant restore process and, thus, for putting a VM and, thus, the respective computing system or device, on which the VM is run/executed, in a state, in which it is ready for its intended use, after the instant restore.
SUMMARY
The object of the present invention is provision of a method and a device that enable an improved execution of an instant restore process and, particularly, that enable an improved execution of a booting process executed during the instant restore process. The present invention provides a method and device that are arranged to support the execution of a booting process, which is executed during an instant restore process, and that overcome at least the above-mentioned drawbacks. In particular, the method and the device are arranged such that they accelerate the provision of data blocks necessary for the execution of the booting process. In this way, the execution of the booting process and, consequently, of the instant restore process is accelerated. As a consequence, a faster putting of a VM, which is instantly restored, and thus, of the respective computing system or device into a state is achieved, in which the VM and, thus, the respective computing system or device, on which the VM is executed, are ready for the intended use. In particular, the present invention as specified in claims and as described herein in connection with appended figures, on the one side, executes a back-up process, during which additionally a test booting process is executed, based on data backed-up in the back-up process, for generating a set of data blocks requested during the test booting process. On the other side, during an instant restore process, which restores a VM by use of the data backed-up in said back-up process, the set of data blocks is used to execute the booting process of the instant restore process. Particularly, the set of data blocks is used for pre-fetching the data blocks of said set. In this way, a fast and efficient execution of the booting process of an instant restore process is enabled. Further, the present invention ensures that the VM and, thus, the respective computing system or device, on which the VM is run/executed, is quickly and with less effort put in a state, in which they are ready for their intended use, after the execution of the instant restore process.
The object of the present invention is achieved by the solution provided in the enclosed independent claims. Advantageous implementations of the present invention are further defined in the respective dependent claims. According to a first aspect, a device is provided, which is arranged to support an execution of a booting process, which is executed during an instant restore process, wherein the instant restore process is configured to instantly restore data backed-up in a back-up process, wherein the device comprises at least one of the following: a back-up process executing unit, wherein the back-up process executing unit is configured to execute a test booting process by use of the data backed-up in the back-up process and to generate, during the test booting process, a requested data block set, wherein each entry of the requested data block set comprises information on a data block, requested from a storage during the test booting process; an instant restore process executing unit, wherein the instant restore process executing unit is configured to execute, during the instant restore process, the booting process by pre-fetching, for each entry of the requested data block set, from the storage a data block, information on which the entry of the requested data block set comprises.
The back-up process comprises the above-mentioned generation of a snapshot of a VM to a storage. The storage is, for example, the above-mentioned back-up or secondary storage. In the following, the term "storage" will be generally used although it comprises, for example, the back-up or secondary storage as mentioned also above in the background part. Thus, a back-up VM is generated in the back-up process, wherein the data of the back-up VM is stored in the storage and wherein the back-up VM is an image/snapshot of the VM. The snapshot/image is generated with regard to all files and data stored on a respective computing device or system, on which the VM is run/executed, and/or necessary for executing the VM on the respective computing device or system and, thus, for operating the respective computing system or device. I.e. all files and data stored and/or necessary for executing the VM are stored on a storage (e.g., the secondary or back-up storage) as a snapshot of the whole VM. Generally, the back-up of the data and, thus, also of the VM is executed as usual with regard to an instant restore process.
The VM represents a software that is run or executed by the respective computing system or device and that ensures a correct operation of the respective computing system or device.
The term "pre-fetching" has the usual meaning and refers to loading or storing of contents of a storage or memory into a higher level of a storage or memory hierarchy, wherein the higher level of the storage or memory hierarchy allows a higher access speed. In other words, data blocks are loaded into or stored in a further memory that enables a faster access to the data blocks. According to an embodiment, the further memory is a cache, for example. Because, according to the present invention, the pre-fetching is executed during the instant restore process and, particularly, during a booting process of the instant restore process, the data blocks, which are pre-fetched, are backed-up data blocks. I.e., the data blocks are gathered or retrieved from the backed-up data.
By use of the device, an acceleration of the booting process, which is executed during the instant restore process, and, thus, also of the instant restore process itself is enabled. Furthermore, the computing system or device, on which the VM to be restored is executed, are efficiently and faster put into their normal operating state. In a first possible implementation according to the first aspect, the information on a data block, requested from the storage during the test booting process, comprises an address of the data block in the storage and a size of the data block. When doing so, the sizes of the requested data block set is kept small. This allows a fast processing of the requested data block set. Consequently, the handling of the requested data block set does not affect the performance of the booting process and or the corresponding instant restore process.
In a second possible implementation form according to the first aspect as such or according to the first implementation form of the first aspect, the instant restore process executing unit is configured to execute said pre-fetching by retrieving the data block from the storage by use of the information of the respective entry in the requested data block set and by storing the data block in a further storage, wherein the further storage is configured to allow a faster access to the data block than the storage. Thus, the booting process is enabled to execute fast access to all or at least nearly all data blocks, required for the execution of the booting process.
In a third possible implementation form according to the first aspect as such or according to the any of the preceding implementation forms of the first aspect, the back-up process executing unit is configured to execute the test booting process offline and/or in background. Thus, the usual operation of the VM and, thus, also of the computing system or device, on which the VM is executed, is continued. The test booting process does not affect the usual operation.
In a fourth possible implementation form according to the first aspect as such or according to the any of the preceding implementation forms of the first aspect, the back-up process executing unit is configured to monitor, during the test booting process, data block requests for requesting data blocks from the storage. The monitoring enables a detection of all or at least nearly all data blocks, required for the execution of the booting process that will be executed during the instant restore process. Thus, an accurate set or requested data blocks is generated by the back-up process executing unit such that the accuracy on provision of data blocks, actually required by a booting process, is ensured.
In a fifth possible implementation form according to the first aspect as such or according to the any of the preceding implementation forms of the first aspect, the back-up process executing unit is configured to collect, during the test booting process, information on data blocks, requested from the storage during the test booting process. In this way, it is ensured that the knowledge on all data blocks, required for the execution of the booting process, is collected. Thus, the accuracy on provision of data blocks, actually required by the booting process executed during the instant restore process, is improved.
In a sixth possible implementation form according to the first aspect as such or according to the any of the preceding implementation forms of the first aspect, the back-up process executing unit is configured to instruct storing of the requested data block set in the storage as a part of the data backed-up in the back-up process. Thus, a uniform and consistent back-up process is executed, which enables a fast retrieval of the requested data block set when the corresponding instant restore process is executed. No further identification of storage addresses for fining the respective requested data block set is necessary, such that also the execution of the respective instant restore process and, particularly, of the booting process of the instant restore process is accelerated.
In a seventh possible implementation form according to the first aspect as such or according to the any of the preceding implementation forms of the first aspect, the instant restore process executing unit is configured to retrieve, during the booting process, the requested data block set from the storage.
According to a second aspect, a method is provided, which is arranged to support an execution of a booting process, which is executed during an instant restore process, wherein the instant restore process is configured to instantly restore data backed-up in a back-up process, wherein the method comprises at least one of the following steps: executing a test booting process by use of the data backed-up in the back-up process and generating, during the test booting process, a requested data block set, wherein each entry of the requested data block set comprises information on a data block, requested from a storage during the test booting process; executing, during the instant restore process, the booting process by pre-fetching, for each entry of the requested data block set, from the storage a data block, information on which the entry of the requested data block set comprises. Generally, the steps of the method correspond to the steps or activities executed by the device arranged to support execution of a booting process, which is executed during a restore process, as introduced above and as described in more detail below. Also by the method, the effects described herein are achieved.
According to a third aspect, the present invention refers to a computer program product comprising computer readable program code that is configured to cause a computing device to execute steps of the method introduced above and explained in more detail below. According to a fourth aspect, the present invention relates to a computer-readable recording medium configured to store therein said computer program product.
BRIEF DESCRIPTION OF THE DRAWINGS
The above-described aspects and implementation forms of the present invention will be explained in the following description of specific embodiments in relation to the enclosed drawings, in which:
Figs, la and lb show exemplary arrangements of a device, arranged to support the execution of a booting process, which is executed during an instant restore process, according to an embodiment of the present invention.
Fig. 2 shows steps of a method, arranged to support the execution of a booting process, which is executed during an instant restore process, according to an embodiment of the present invention.
Fig. 3 shows an arrangement of a requested data block set according to an embodiment of the present invention.
Fig. 4 shows an exemplary arrangement of an entry of a requested data block set according to an embodiment of the present invention.
Fig. 5 shows a flow-diagram of sub-steps of a test booting process execution step according to an embodiment of the present invention. shows a flow-diagram of sub-steps performed in a step for executing a booting process during an instant restore process according to an embodiment of the present invention.
DETAILED DESCRIPION OF THE EMBODIMENTS Generally, it has to be noted that all arrangements, devices, modules, components, models, elements, units, entities, and means and so forth described in the present application could be implemented by software or hardware elements or any kind of combination thereof. All steps which are performed by the various entities described in the present application as well as the functionality described to be performed by the various entities are intended to mean that the respective entity is adapted to or configured to perform the respective steps and functionalities. Even if in the following description of the specific embodiments, a specific functionality or step to be performed by a general entity is not reflected in the description of a specific detailed element of the entity which performs the specific step or functionality, it should be clear for a skilled person that these methods and functionalities can be implemented in respective hardware or software elements, or any kind of combination thereof. Further, the method of the present invention and its various steps are embodied in the functionalities of the various described apparatus elements. Moreover, any of the embodiments and features of any of the embodiments, described herein, may be combined with each other, unless a combination is explicitly excluded.
Figs, la and lb show exemplary arrangements of a device 110, 120, 130, arranged to support the execution of a booting process, which is executed during an instant restore process, according to an embodiment of the present invention. According to the embodiment of Fig. la, the device 110 comprises both a back-up process executing unit 111 and an instant restore process executing unit 112. As specified above, the back-up process executing unit 111 is configured to execute, in addition to a back-up of data, a test booting process by use of the data backed-up in the back-up process and to generate, during the test booting process, a requested data block set, wherein each entry of the requested data block set comprises information on a data block, requested from a storage during the test booting process. Thus, the test booting process is executed for the backed-up VM. The data blocks, requested during the test-booting process, are backed-up data blocks. Here, according to an embodiment, the storage is a storage, on which the data backed-up in the back-up process is stored, i.e. the above-mentioned secondary or back-up storage. The instant restore process executing unit 112, in turn, is configured to execute, during an instant restore process, a booting process by pre-fetching, for each entry of the requested data block set, from the storage a data block, information on which the entry of the requested data block set comprises. Because the requested data block set has been generated during the back-up process and, particularly, during the test booting process of the back-up process, the data blocks, with regard to which the pre-fetching is executed, are backed-up data blocks.
Thus, both components - the back-up process executing unit 111 and the instant restore process executing unit 112 - become active subsequently. First, the back-up process with the test booting process is executed by the back-up process executing unit 111. Subsequently, after completion of the back-up process and after the activity of the back-up process executing unit 111, the instant restore process executing unit 112 executes during the respective instant restore process a booting process by use of the requested data block set generated by the backup process executing unit 111. Further, both components operate offline or in background, respectively. Thus, they do not affect the usual operation of the VM, data of which is backed-up in the back-up process, i.e. for which a back-up VM is generated. Consequently, also the operation of the computing system or device, on which the VM is executed, is not affected by the execution of the booting process of the instant restore process. The arrangements of the device 110, 120, 130, arranged to support the execution of a booting process, which is executed during an instant restore process, of the back-up process executing unit 111, and of the instant restore process executing unit 112 may be provided in different ways according to the present invention. According to the embodiment of Fig. la, both the back-up process executing unit 111 and the instant restore process executing unit 112 are included in one device 110 for supporting the execution of a booting process of an instant restore process. According to the embodiment of Fig. lb, the back-up process executing unit 111 and the instant restore process executing unit 112 are parts of two separate devices 120, 130 arranged to support the execution of a booting process of an instant restore process. The back-up process executing unit 111 is located in a first device 120 and the instant restore process executing unit 112 is located in a second device 130, wherein both the first device 120 and the second device 130 are arranged to support the execution of the same booting process of the same instant restore process.
Fig. 2 shows the general steps of a method arranged to support the execution of a booting process, which is executed during an instant restore process, according to an embodiment of the present invention. According to the present embodiment, in step 201, a test booting process is executed by use of data backed-up in the back-up process, and a requested data block set is generated during the test booting process, wherein each entry of the requested data block set comprises information on a data block, requested from a storage during the test booting process. The test booting process is executed in addition to the back-up process. According to an embodiment, the test booting process is executed as a separate process following the back-up process, wherein, according to another embodiment, the test booting process is executed within the back-up process after data has been backed-up. The back-up process is executed for preparing an execution of an instant restore process. I.e., in the back- up process, a snapshot or image of a VM is generated and stored in a storage as described above, for example. Particularly, the generation of the snapshot or image of the VM is executed as usual with regard to an instant restore process. The storage is, for example, a back-up or secondary storage. The snapshot/image of the VM is generated with regard to all files and data stored on a computing device or system, on which the VM is run/executed, and/or necessary for executing the VM on the computing device or system and, thus, for operating the respective computing system or device. I.e. all files and data stored and/or necessary for executing the VM are stored in the storage as a snapshot or image of the whole VM, i.e. as a back-up VM (as described above). Because the test booting process is a part of the back-up process, also the test booting process is executed offline or in background. Thus, its execution does not affect the usual operation of the VM, data of which is backed-up in the back-up process, i.e. for which a back-up VM is generated. Consequently, also the operation of the computing system or device, on which the VM is executed, is not affected by the execution of the booting process of the instant restore process.
According to an embodiment, the step 201 is executed by the device 110, 120, which is arranged to support an execution of a booting process, which is executed during an instant restore process. For example, the step 201 is executed by the back-up process executing unit 111. Thus, when the test booting process is executed 201 by the device 110, 120 or by the back-up process executing unit 111, the device 110, 120 or by the back-up process executing unit 111 correspondingly execute the 201 the test booting process offline or in background.
Step 202 is executed during an instant restore process, in which the data backed-up in the above-mentioned back-up process is restored. In step 202, during the instant restore process, a booting process is executed, wherein the booting process is executed by pre-fetching, for each entry of the requested data block set, from the storage a data block, information on which the entry of the requested data block set comprises. As mentioned above, the storage is, for example, a back-up or secondary storage. The data blocks, which are pre-fetched, are backed- up data blocks. According to an embodiment, the step 202 is executed by the device 110, 130, which is arranged to support an execution of the booting process, which is executed during the instant restore process. For example, the step 201 is executed by the instant restore process executing unit 111. Steps 201 and 202 are executed independently from each other. However, step 201 is executed before step 202, and step 202 is executed after the execution of step 201 has been finished, because step 202 uses the requested data block set generated in step 201.
Fig. 3 shows an arrangement of the requested data block set 311 according to an embodiment of the present invention. According to the present embodiment, the requested data block set 311 is stored in a storage 301. The storage 301 is, for example, the above-mentioned back-up or secondary storage. The storage 301 may be one component or may represent a plurality of storages 301. Thus, the requested data block set 311 may be stored in one coherent storage 301 or in a plurality of (i.e., at least two) different storage units 301. The requested data block set 311, generated in step 201 (e.g., by the device 110, 120, 130 and, particularly, by the back-up process executing unit 111), comprises a plurality of entries (i.e. at least one entry) 311-1, 311-2, ... , 311 -n. In Fig. 3 , n entries are indicated exemplary, wherein n > 1. Each of the entries 311-1, 311-2, ..., 311 -n indicates one data block request, e.g., I/O request, performed during a test booting process, with regard to which the requested data block set 311 is generated. Particularly, each of the entries 311-1, 311-2, ..., 311-n indicates a data block that has been requested from a storage (e.g., storage 301) during the test booting process. The execution of the test booting process and, particularly, the data block requests are monitored, and each time a data block is requested a corresponding new entry 311-1, 311-2, ... , 311 -n of the requested data block set 311 is generated and added to the set 311.
According to the present embodiment, the requested data block set 311 is stored together with the data backed-up in the back-up process. Thus, the storage 301 comprises, i.e. stores also the backed-up data. The backed-up data comprise a snapshot or image of the VM, with regard to which the back-up is executed, i.e. the back-up VM as described herein. Fig. 4 shows an exemplary arrangement of an entry 311 -i of the requested data block set 311 , wherein 1 < i <n. According to the present embodiment, the entry 311-i comprises
information on a data block, requested from the storage during the test booting process.
According to the present embodiment, said information comprises an address 401 of the requested data block in the storage and the size 402 of the data block. In this way, it is not necessary to store the whole data block in the requested data block set 311 and, particularly, in the respective entry 311-i. Thus, the storage space is saved. Furthermore, the requested data block set 311 may be accessed in a fast way, without wasting processing time and, thus, without, affecting the execution of the test booting process.
Here, it has to be noted, that according to at least one further embodiment, also further and/or other information on a data block, requested from the storage during the current or present booting process, is stored in the entry 311 -i of the requested data block set 311. The embodiment of Fig. 4 is an example of the entry 311-i of the requested data block set 311. In general, an entry 311-i is arranged such that it allows an identification of the respective data block in the storage.
Fig. 5 shows a flow-diagram of sub-steps of the test booting process execution step 201 according to an embodiment of the present invention. The sub-steps are executed, for example, by the device 110, 120 arranged to support the execution of a booting process, which is executed during an instant restore process. Particularly, the sub-steps are executed, for example, by the back-up process executing unit 111. Furthermore, the sub-steps are executed during the test booting process. The test booting process is, in turn, a part of a boot- up process.
In step 501, data block requests (e.g., I/O requests), executed during the test booting process, are monitored. In this way, it is determined, which data blocks will be required by a booting process executed during an instant restore process, in which the booted-up data will be restored. The monitoring is executed, for example, by monitoring and detecting accesses to the storage, in which the corresponding data blocks are stored. Because the test booting process is a part of the back-up process, the monitored data block requests comprise requests on data blocks backed-up in the back-up process. The storage is, for example, the above- mentioned storage 301 of Fig. 3.
The corresponding data blocks comprise, for example: data required for identification of hardware and/or software components of the computing system or device, VM of which is backed-up and may be later restored by the instant restore process; data required for verification of the availability and/or functionality of the hardware and/or software components; data required for controlling said hardware and/or software components such that they are ready for operation after the booting process; data required for initialization and/or operation of the VM and/or of the corresponding computing system or device; data required for initialization and/or operation of applications executed in the VM and/or of the corresponding computing system or device; data required for the execution of the MBR, which will be booted during the corresponding instant restore process; data required for loading the OS kernel; data required for loading driver(s); data required for starting of the execution of services/daemons and/or applications; and/or any further data required during the booting process executed during the instant restore process. In step 502, information 401, 402 on the data blocks, requested from the storage during the test booting process, is collected. For this purpose, once a request of a data block (e.g., I/O request) has been monitored or detected 501, the information 401, 402 on the data block is detected. As discussed above with regard to Figs. 3 and 4a, the information 401 , 402 comprises, for example, an address 401 of the data block in the storage (e.g., storage 301) and the size 402 of the data block.
In step 503, the requested data block set 311 is stored in the storage (e.g., the storage 301). Particularly, an entry 311 - 1 , 311 -2, 311 -i, 311 -n of the requested data block set 311 is generated for the data block information 401, 402 collected in step 502. Then, the corresponding data block information 401 , 402 is stored in the generated entry 311 - 1 , 311 -2, 311 -i, 311 -n. The above described steps 502, 503 are executed with regard to each data block that has been monitored or detected in step 501. At the end of the execution of the test booting process execution step 201, i.e. at the end of the back-up process comprising the test booting process, the requested data block set 311 comprises information on all data blocks requested in said test booting process and monitored in step 501. Fig. 6 shows a flow-diagram of sub-steps performed in the step 202 for executing a booting process during an instant restore process according to an embodiment of the present invention. The sub-steps are executed, for example, by the device 110, 130 arranged to support the execution of the booting process of the instant restore process. Particularly, the sub-steps are executed, for example, by the restore process executing unit 112. Furthermore, the sub-steps are executed during the booting process. The booting process is, in turn, a part of the instant restore process.
In step 601, the requested data block set 311 is retrieved from a storage. The storage is, for example, a secondary or boot-up storage. For example, the storage is the storage 301 shown in Fig. 3. The requested data block set 311 can be retrieved from the storage 301, if, in a test booting process of a back-up process, a requested data block set 311 has been generated 201, as described above. If no requested data block set 311 has been generated 201 in a back-up process and, particularly, in a test booting process of the back-up process, the execution of the pre-fetching step 202 is not possible and is ended. However, if a requested data block set 311 has been generated 201 in a test booting process, the previously generated requested data block set 311 is retrieved from the storage 301. In step 601 , according to an embodiment, the access to the requested data block set 311 is started at a predetermined entry 311-1, 311-2, 311 -i, 311-n of the data block set 311, for example, at the first entry 311-1 of the requested data block set 311.
In step 602, an entry 311-1, 311-2, 311 -i, 311-n is accessed. In particular, a data block information 401, 402 stored in the entry 311-1, 311-2, 311 -i, 311-n is derived from said entry 311-1, 311-2, 311-i, 311-n.
In step 603, the corresponding data block is retrieved from the storage (e.g., storage 301) by use of the information 401, 402. For example, if the information 401, 402 comprises an address 401 of the data block in the storage and the length 402 of the data block, the corresponding data block is retrieved by accessing the storage at the address 401 and reading a data block, starting at said address 401 and having the length 402. The retrieved data block is a data block that has been backed-up in the back-up process, in which also the respective test booting process has been executed. Thus, the step 603 is executed with regard to data blocks that have been backed- up in said back-up process.
In step 604, the retrieved data block is stored in a further storage (e.g., cache), which allows a faster access to the data block than the storage, from which the data block has been retrieved in step 603. Thus, in step 604, a pre-fetching of the data block is executed.
In step 605, it is verified, whether all entries 311-1, 311-2, 311-i, 311-n of the requested data block set 311 have been derived 602 and accessed 603 and whether all respective data blocks have been stored 604 in the further storage (e.g., cache). If the requested data block set 311 comprises un-considered entries 311-1, 311-2, 311-i, 311-n, i.e. entries 311-1, 311-2, 311-i, 311-n that have not been handled in the previous steps 602 to 604, the execution of the booting process 202 of the instant restore process continues with a new execution of step 602 and, thus, with a consideration of a further entry 311-1, 311-2, 311-i, 311-n of the requested data block set 311. If all entries 311 - 1 , 311 -2, 311 -i, 311 -n of the requested data block set 311 have been considered, the execution of the booting process 202 of the instant restore process is terminated or ended in step 606.
Here, it has to be noted that the execution of the steps 602 to 605 may be interrupted for a time period if the further storage (e.g., cache), into which the data blocks are stored 604 is full. The execution of the steps 602 to 605 is continued after a use of one or more of data blocks, stored 604 in the further storage, has been finished in the booting process. Here, said one or more of data blocks, which have been stored 604 in the further storage and usage of which is finished in the booting process, are considered as being not required for the further execution of the booting process. Thus, said one or more data blocks are deleted from the further storage, and the execution of the sub-steps 602 to 605 is continued until all entries have been considered. The above-mentioned interruption may be executed at any time where it is determined that the further storage (e.g., cache) is full. With each restart of the execution of the sub-steps 602 to 605, a data block, which has been previously stored 604 in the further storage and processing of which during the booting process has been finished, will be replaced by a new data block identified by further execution of the sub-steps 602 to 605.
The present invention is implementable in several technical areas where VMs, with regard to which a back-up and a corresponding instant restore process can be executed, are used. The VMs can be executed on different computing systems or devices such as mobile computing systems or devices (e.g., mobile phones, smart phones, vehicles, laptops, etc.) or stationary computing systems or devices (e.g., facilities, sensors, actuators, etc.).
Furthermore, the present invention is implementable in different environments. Besides the usual computer-aided environments with physical devices or apparatus, the present invention is implementable also in virtual or cloud environments. Thus, also virtual systems and systems operated via cloud can be backed-up and instantly restored according to the present invention.
The device 110, 120 130, which is arranged to support the execution of a booting process, which is executed during a restore process, may be arranged in different ways. According to an embodiment, the device 110, 120, 130 is a part of the computing system or device, on which the VM is executed, while, according to another embodiment, the device 110, 120, 130 is a device that is external to the computing system or device. According to an embodiment the device 110, 120, 130 is an apparatus that comprises a housing, while, according to another embodiment, the device 110, 120, 130 is rather a system or an arrangement comprising a plurality of (at least two) interconnected entities, units and/or devices. According to an embodiment, the device 110, 120, 130 is a storage device, wherein, according to a further embodiment, the device 110, 120, 130 is the storage device, on which the backed-up data and the requested data block set are stored during the back-up process. According to an embodiment, the device 110, 120, 130 is a storage device that hosts virtual machine (VM) disks. According to another embodiment, the device 110, 120, 130 is a hypervisor, i.e. a hardware and/or software device that creates and runs virtual machines, or a server. Generally, the device 110, 120, 130 may be any computing device, wherein the term "device" comprises an apparatus with a housing, a system, or an arrangement as indicated above. The further storage (e.g., cache), into which the data blocks are pre-fetched, is generally a storage that allows a faster access to the stored data than the storage, in which data blocks are stored and from which the data blocks are requested during a booting process.
In view of the aforesaid, it becomes clear that different arrangements of the present invention are possible. The present invention allows a modular implementation. Therefore, the above described embodiments are combinable with each other.
The present invention is directed to a device and method, both arranged to support execution of a booting process, which is executed during an instant restore process, wherein the instant restore process is configured to instantly restore data backed-up in a back-up process. A backup process executing unit of the device executes a test booting process by use of the data backed- up in the back-up process and generates, during the test booting process, a requested data block set, wherein each entry of the requested data block set comprises information on a data block, requested from a storage during the test booting process. An instant restore process executing unit of the device executes, during the instant restore process, the booting process by prefetching, for each entry of the requested data block set, from the storage a data block, information on which the entry of the requested data block set comprises.
The invention has been described in conjunction with various embodiments herein. However, other variations to the enclosed embodiments can be understood and effected by those skilled in the art and practicing the claimed invention, from a study of the drawings, the disclosure and the appended claims. In the claims, the word "comprising" does not exclude other elements or steps, and the indefinite article "a" or "an" does not exclude a plurality. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage.

Claims

CLAIMS A device arranged to support an execution of a booting process, which is executed during an instant restore process, wherein the instant restore process is configured to instantly restore data backed-up in a back-up process, wherein the device comprises at least one of the following: - a back-up process executing unit, wherein the back-up process executing unit is configured to execute a test booting process by use of the data backed-up in the backup process and to generate, during the test booting process, a requested data block set, wherein each entry of the requested data block set comprises information on a data block, requested from a storage during the test booting process; - an instant restore process executing unit, wherein the instant restore process executing unit is configured to execute, during the instant restore process, the booting process by pre-fetching, for each entry of the requested data block set, from the storage a data block, information on which the entry of the requested data block set comprises. The device according to claim 1 , wherein the information on a data block, requested from the storage during the test booting process, comprises an address of the data block in the storage and a size of the data block. The device according to claim 1 or 2, wherein the instant restore process executing unit is configured to execute said pre-fetching by retrieving the data block from the storage by use of the information of the respective entry in the requested data block set and by storing the data block in a further storage, wherein the further storage is configured to allow a faster access to the data block than the storage. The device according to any one of the preceding claims, wherein the back-up process executing unit is configured to execute the test booting process offline and/or in background. The device according to any one of the preceding claims, wherein the back-up process executing unit is configured to monitor, during the test booting process, data block requests for requesting data blocks from the storage. The device according to any one of the preceding claims, wherein the back-up process executing unit is configured to collect, during the test booting process, information on data blocks, requested from the storage during the test booting process. The device according to any one of the preceding claims, wherein the back-up process executing unit is configured to instruct storing of the requested data block set in the storage as a part of the data backed-up in the back-up process. The device according to any one of the preceding claims, wherein the instant restore process executing unit is configured to retrieve, during the booting process, the requested data block set from the storage. A method arranged to support an execution of a booting process, which is executed during an instant restore process, wherein the instant restore process is configured to instantly restore data backed-up in a back-up process, wherein the method comprises at least one of the following steps: - executing a test booting process by use of the data backed-up in the back-up process and generating, during the test booting process, a requested data block set, wherein each entry of the requested data block set comprises information on a data block, requested from a storage during the test booting process; - executing, during the instant restore process, the booting process by pre-fetching, for each entry of the requested data block set, from the storage a data block, information on which the entry of the requested data block set comprises. 0. A computer program product comprising computer readable program code that is configured to cause a computing device to execute steps of method of claim 9.
1. A computer-readable recording medium configured to store therein a computer program product, which comprises a computer readable program code that is configured to cause a computing device to execute steps of method of claim 9.
PCT/EP2016/068536 2016-08-03 2016-08-03 Device and method arranged to support execution of a booting process executed during an instant restore process WO2018024327A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201680087849.4A CN109564533B (en) 2016-08-03 2016-08-03 Device and method for supporting execution of guide process in instant recovery process
PCT/EP2016/068536 WO2018024327A1 (en) 2016-08-03 2016-08-03 Device and method arranged to support execution of a booting process executed during an instant restore process

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2016/068536 WO2018024327A1 (en) 2016-08-03 2016-08-03 Device and method arranged to support execution of a booting process executed during an instant restore process

Publications (1)

Publication Number Publication Date
WO2018024327A1 true WO2018024327A1 (en) 2018-02-08

Family

ID=56567609

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2016/068536 WO2018024327A1 (en) 2016-08-03 2016-08-03 Device and method arranged to support execution of a booting process executed during an instant restore process

Country Status (2)

Country Link
CN (1) CN109564533B (en)
WO (1) WO2018024327A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6073232A (en) * 1997-02-25 2000-06-06 International Business Machines Corporation Method for minimizing a computer's initial program load time after a system reset or a power-on using non-volatile storage
US20100017653A1 (en) * 2008-07-16 2010-01-21 Naama Parush-Shear-Yashuv Reference state information generation
EP2251781A1 (en) * 2009-04-20 2010-11-17 Intel Corporation Booting an operating system of a system using a read ahead technique
US20160162409A1 (en) * 2014-12-03 2016-06-09 Electronics And Telecommunications Research Institute Virtual machine host server apparatus and method for operating the same

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996027155A2 (en) * 1995-02-13 1996-09-06 Electronic Publishing Resources, Inc. Systems and methods for secure transaction management and electronic rights protection

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6073232A (en) * 1997-02-25 2000-06-06 International Business Machines Corporation Method for minimizing a computer's initial program load time after a system reset or a power-on using non-volatile storage
US20100017653A1 (en) * 2008-07-16 2010-01-21 Naama Parush-Shear-Yashuv Reference state information generation
EP2251781A1 (en) * 2009-04-20 2010-11-17 Intel Corporation Booting an operating system of a system using a read ahead technique
US20160162409A1 (en) * 2014-12-03 2016-06-09 Electronics And Telecommunications Research Institute Virtual machine host server apparatus and method for operating the same

Also Published As

Publication number Publication date
CN109564533B (en) 2020-12-04
CN109564533A (en) 2019-04-02

Similar Documents

Publication Publication Date Title
US10073703B2 (en) Booting an operating system of a system using a read ahead technique
US10379967B2 (en) Live rollback for a computing environment
US8666938B1 (en) Installed application cloning and failover to virtual server
EP2840495B1 (en) Container-based processing method and apparatus
JP6297715B2 (en) Compute device initialization trace
US10007540B2 (en) Virtual machine reboot information persistence into host memory
US20120117555A1 (en) Method and system for firmware rollback of a storage device in a storage virtualization environment
JP4903244B2 (en) Computer system and failure recovery method
TW201627859A (en) Virtual machine image analysis
EP2639698B1 (en) Backup control program, backup control method, and information processing device
CN106775846B (en) Method and device for online migration of physical server
US10936328B2 (en) Tracking a boot disk of a computing device through one or more reboots of the computing device
WO2014024279A1 (en) Memory failure recovery device, method, and program
JP5471365B2 (en) Information processing apparatus and computer program
WO2018024327A1 (en) Device and method arranged to support execution of a booting process executed during an instant restore process
US10838818B2 (en) Memory persistence from a volatile memory to a non-volatile memory
KR102052816B1 (en) Method for recovering error in non-volatile main memory unit and system therefor
US10838737B1 (en) Restoration of memory content to restore machine state
US10592329B2 (en) Method and electronic device for continuing executing procedure being aborted from physical address where error occurs
CN107704198B (en) Information processing method and electronic equipment
WO2018033220A1 (en) Device and method arranged to support execution of a booting process
JP2016076152A (en) Error detection system, error detection method, and error detection program

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16747511

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16747511

Country of ref document: EP

Kind code of ref document: A1