# Patent

## Title
Disaster recovery on dissimilar hardware

## Abstract

A computer-implemented method may comprise performing a disaster recovery restore process on a target computing device; accessing a backup server; and selecting a source backup from the backup server. The source backup may comprise one or more volumes, partitions, files and device drivers of a source computing device from which the source backup was created. The selected source backup may then be installed in an offline partition of the target computing device. One or more target device drivers may then be installed in the offline partition. To complete the disaster recovery restore process on the target computing device, the target computing device may then be rebooted. Both the backup of the source computing device and the active partition of the target device may comprise source computing device-dependent hardware device drivers. When carried out in a Windows® environment, Sysprep need not be used and the kernel need not be modified.

## Background
BACKGROUND
Embodiments are related to the recovery of user data, metadata, system configuration and operating system from a first computing device having a first hardware configuration to a second computing device having a second hardware configuration that may be different from the first hardware configuration.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram of a source computing device and a backup service accessed over a computer network.
FIG. 2 is a block diagram illustrating aspects of one embodiment.
FIG. 3 is a flowchart of a method according to one embodiment.



DETAILED DESCRIPTION
FIG. 1 shows a source computing device 102 and a backup service 104. The source computing device 102 may access the backup service 104 over a computer network 103 including, for example, the Internet and/or some other private network. Disaster Recovery (hereafter, “DR”) refers to the process of recovering user data, metadata, system configuration and the entire operating system from a backup-up source computing device to a target computing device. DR may be carried out when the source computing device has been destroyed or otherwise rendered inoperable or inaccessible and when it is desired to restore all user data, metadata and system configuration to a target computing device in such a manner that the target computing device may be used as a drop-in replacement for the destroyed, inoperative or inaccessible source computing device. FIG. 2 is a block diagram of a source computing device and a backup service accessed over a computer network. In FIG. 2, the source computing device 102 has been subjected to some event that renders it inoperable, as suggested by the large “X”. A target computing device 202 may then be provided as a replacement, which target computing device is to be configured according to a selected source backup stored in the backup service 104. In the illustrative example of FIG. 2, the selected source computing device backup is source computing device backup 1. The target computing device 202 may be identical to the now-inoperable source computing device 102, but that need not be the case. Indeed, there are instances in which the target computing device 202 may be dissimilar, at least in term of device drivers and hardware, relative to the source computing device 102. For example, whereas, the source computing device 102 may be a desktop computer, the target computing device 202 may be a laptop computer, a tablet, a server or even a similar computing device with, for example, a different motherboard or enterprise-level storage. A representative target computing device 202 is shown in FIG. 2. For example, a target computing device 202 may be configured to carry out all or a portion of the functionality described herein and may comprise a microprocessor or controller 208, memory 210 and a network interface 220 configured to couple the target computing device 202 to network 103 and/or other external devices (e.g., external storage that is not cloned or otherwise a party to the disaster recovery restore process) through communication ports. Some external devices may not be affected by whatever disaster that befell the source computing device. Such external devices may include, for example, Storage Area Networks (SAN), Network Attached Storage (NAS), Redundant Array of Inexpensive Disks (RAID) and the like. Examination of the metadata in the source computing device backup may reveal those external devices that were likely not affected and, therefore, need not be restored to an earlier state.
The target computing device 202 may also include mass storage. The mass storage, according to one embodiment, may comprise a Hard Disk Drive (HDD) comprising one or more rotating magnetic disks 204. The mass storage of target computing device 202 may also comprise non-volatile (e.g., Flash-based) memories 206. Alternatively still, the mass storage of target computing device 202 may comprise one or more hybrid storage devices 205, each comprising both magnetic disks 204 and non-volatile semiconductor memory 206. As also shown in FIG. 2, the microprocessor 208, coupled to the mass storage, the memory 210 and to the network interface 220, may be configured to execute instructions configured to implement the embodiments shown relative to FIG. 3 and described herein.
As suggested in FIG. 2, each of the backups, shown in FIG. 2 as source computing device backup 1 and backup 2, may comprise both system information and user data. For example, each backup of the source computing device stored in backup service 104 may comprise, among other items, volumes, partitions, user files and hardware device drivers of the source computing device 102. This presents problems in term of, amongst other issues, software drivers and other hardware-dependent software. Indeed, drivers that may have been designed to control hardware on the source computing device 102 may not be operative to control the dissimilar hardware on the target computing device 202.
In a Microsoft Windows® environment, disk images are often used to perform DR backups on both similar and dissimilar hardware. Disk images are computer files containing the contents and structure of a disk volume or an entire data storage device, such as a hard drive, tape drive, floppy disk, optical disc or USB flash drive. A disk image is usually created by creating a sector-by-sector copy of the source medium, thereby perfectly replicating the structure and contents of a storage device independent of the file system. Depending on the disk image format, a disk image may span one or more computer files. Conventionally, the same image may be used during restoration of the user data, metadata and configuration onto a different (target) computing device.
In order for the restore to work on dissimilar hardware as well, before the disk image is taken, a windows tool called Sysprep is run, to clean the system of any device/hardware-specific information. Sysprep was originally introduced for use with Windows NT 4.0. Later versions introduced for Windows 2000 and Windows XP, available for download from Microsoft, were included in the Windows CD. Windows Vista marks the first version of Microsoft's NT operating system to include a Hardware Abstraction Layer (HAL) independent version of Sysprep in the “out of box” installation. Hardware abstractions are sets of routines in software that emulate platform-specific details, giving programs direct access to the hardware resources. Such abstraction layers allow programmers to write device-independent, high performance applications by providing standard OS calls to hardware. Sysprep can be used to prepare an operating system for disk cloning and restoration via a disk image. Windows operating system installations include many unique software elements per installation that must be “generalized” before capturing and deploying a disk image to one or more target computers. Such unique software elements include driver software. The Sysprep tool removes all the drivers removed from the image before the image is taken, as the drivers in the disk image may not be appropriate for the specific hardware of the target computer. During restore, multiple iterations are typically performed between reboots, to add the target hardware drivers. The requirement to use Sysprep and the need for multiple reboots to restore a source computing device onto a potentially dissimilar target computing device constitutes a significant technological problem.
One embodiment, therefore, is a technological solution to this technological problem. Backup of all DR-related data of a source computing device, which may comprise system information, Operating System (OS) data and user volumes and partitions, may be carried out at a volume and file level on both Basic Input/Output System (BIOS) and Unified Extensible Firmware Interface (UEFI) to a backup server. As this backup may include the entire system information of the source computing device, the source computing device's hardware device drivers may be backed up as well. It should be noted here that not all of the hardware device drivers of the source computing device may be relevant to the target computing device, as the hardware configurations thereof may be dissimilar. That is, the target computing devices (the computing devices on which the DR restore process is to be performed) may not comprise all of the hardware for which the hardware device drivers of the source computer were designed.
At restore time, a disaster recovery process is initiated in which the backup of the source computing device is restored onto the target computing device, which target computing device may comprise new or dissimilar hardware; that is, hardware that was not present on the source computing device from which the source backup was created. This restore process also restores the entire system information, including the hardware device drivers of the source computing device, which might or might not be relevant on the target computing device, according to one embodiment. The restoration may be carried out, according to one embodiment, in an offline boot partition and OS partitions, which resides in a different volume than the active OS partition. As one embodiment may be carried out in a Microsoft Windows® environment, the system information, including the hardware device drivers of the source computing device may be restored in a Windows boot partition. Indeed, at this stage of the disaster recovery process, the Windows® PE operating system is running from a temporary boot partition created by booting the target computing device using the Win PE OS. A Volume Shadow Copy Service (VSS) backup-and-recovery application that performs disaster recovery (also called bare-metal recovery) can use the Automated System Recovery (ASR) writer together with Windows Pre-installation Environment (Windows PE) to back up and restore critical volumes and other components of the bootable system state. The temporary boot partition created by the Windows PE operating system is stored in the target computing device's random access memory (RAM). The partition to which the restore process restores the system information, device drivers and files from the source computing device is an offline partition, stored in non-volatile memory, such as a hard disk drive (HDD) or semiconductor memory, such as a Flash-based mass storage device.
According to one embodiment, the target computing device may then retrieve one or more target device drivers from a predetermined location. That is, the user may then be provided with the option of providing the locations of the target device drivers. Such a location may be, for example, a CD placed in a CD ROM drive in the target computing device. The hardware device drivers of the target computing device may then be retrieved from the predetermined location and loaded and installed into the offline partition. The offline partition, at this stage, comprises the volumes, system information and user files of the source computing device, together with any target computing device-specific device drivers that may have been loaded. This system information may comprise one or more hardware device drivers of the source computing device, irrespective of whether such source computing device-originated hardware device drivers are relevant or indeed useful in the target computing device. To complete the disaster recovery process, according to one embodiment, the target computing device may then be rebooted.
In a Windows® environment, upon reboot, the Windows Plug and Play mechanism may automatically choose the right drivers based on their ranking. Indeed, some devices of the target computing device may require a vendor-supplied driver that is designed specifically for that device or one that is designed to support a family of devices. However, other devices of the target computing device may be driven by a system-supplied driver that supports all the devices of a given device setup class. In a Windows® environment, the OS may be configured to select the driver that most closely matches the device. If Windows® does not find such a driver, it may select from increasingly more general drivers, based on their ranking. Such a ranking may be carried out by creating a list of all matching drivers and assigning each matching driver a rank, which may comprise an integer whose value is greater than or equal to zero This allows the co-existence of both the source machine drivers, and the new, target drivers.
In a Windows® 7 and above, one embodiment leverages automatic appropriate HAL selection (Windows Vista and above) and appropriate driver selection using the driver ranking process of the Plug and Play mechanism to select the hardware device drivers to be installed in the offline partition and, thereafter, in the active (e.g., boot) partition, which is the partition that holds the boot sector containing the OS and that contains the boot loader and the software responsible for booting the OS. The kernel, therefore, need not be modified as the appropriate HAL is selected by the operating system.
FIG. 3 is a flowchart of a method, according to one embodiment. As shown therein, block B31 calls for performing a disaster recovery restore process on a target computing device. As shown at B32, a backup server, as shown at 104 in FIGS. 1 and 2, may be accessed over a computer network, as shown at 103. In B33, a source backup may be selected from the backup server 104 such as, for example, by reference to a timestamp. The source backup may comprise, for example, one or more volumes, partitions, files and hardware device drivers of the source computing device from which the source backup was created. As shown at B34, the selected source backup may then be installed in an offline partition of the target computing device, to recreate the partitions, and volumes, user data, hardware device drivers and the like of the source computing device on the target computing device. A device driver or drivers specific to the target hardware device driver may then be installed in the offline partition, as shown at B35. Lastly, the target computing device may then be rebooted to complete the disaster recovery process on the target computing device, as called for by B36.
According to one embodiment, rebooting the target computing device, as shown in B36, may configure the offline partition into an active, boot partition. Installing the device driver or drivers specific to the target computing device may comprise retrieving the target device driver(s) from a predetermined location such as, for example, a location on the network or a data carrier such as a USB drive or a CD inserted into the target computing device's CD tray. The target computing device may comprise and be configured to run an operating systems such as a version of Microsoft Windows® 7 or above.
According to one embodiment, the target computing device, after having rebooted, still comprises the device driver(s) of the source computing device, although one or more of these may not be active or operative to control or operate any hardware on the target computing device. Stated differently, the device driver(s) (e.g., SAS or SATA drivers) of the source computing device may be left in the selected source backup when the selected source backup (such as source computing device backup 1 shown in FIG. 2) is installed in the offline partition of the target computing device. Therefore, completing the disaster recovery process on the target computing device may be carried out without executing Microsoft Sysprep, whose purpose includes the removal of device-specific hardware device drivers.
When implemented in a Windows® environment, for example, rebooting target computing devices implementing Windows® 8 and above may comprise rebooting the target computing device a single time to complete the disaster recovery restore process. For a target computing device running a version of Windows® 7 (Vista), rebooting may be carried out twice to complete the disaster recovery restore process. According to one embodiment, the restore process may be carried out without requiring selection of a Hardware Abstraction Layer (HAL).
Another embodiment is a machine-readable medium having data stored thereon representing sequences of instructions which, when executed by a computing device, causes the computing device to perform a disaster recovery restore process on a target computing device as described and shown herein.
As the hardware device drivers of the source computing device may be, according to one embodiment, ported over the offline partition and thereafter to the target computing device's active boot partition, no Sysprep need be run on the source backup, as the backup source need not be cleaned of all hardware-dependent device drivers. Not having to rid the source backup of hardware dependent device drivers can save hours of backup time and significantly decrease the computation resources expended at the source computing device. From a disaster recovery restore operation point of view, fewer reboots may be necessary to load the offline partition as the active partition and to fully configure the target computing device to an operational state. Fewer reboots may be necessary as the hardware device drivers for the target computing device are installed at the same time that the target computing device is being restored from the source backup. In a Windows® environment, a single reboot may be sufficient to complete the disaster recovery restore process. For Windows 7 operating systems, only two reboots may be required.
Moreover, the restore process may be carried out such that the restored target computing device has the same hosting parameters and the same Internet Protocol (IP) address as the inoperative source computing device. In this manner, the restored target computing device is brought online, is identified as and behaves just like the source computing device. Alternatively, the computing device may be restored and given a different name, hosting service, IP address, thereby preserving the backup of the source computing device, should it be desired to roll back to that version at some future date.
While certain embodiments of the disclosure have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the disclosure. Indeed, the novel methods, devices and systems described herein may be embodied in a variety of other forms. Furthermore, various omissions, substitutions and changes in the form of the methods and systems described herein may be made without departing from the spirit of the disclosure. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the disclosure. For example, those skilled in the art will appreciate that in various embodiments, the actual physical and logical structures may differ from those shown in the figures. Depending on the embodiment, certain steps described in the example above may be removed, others may be added. Also, the features and attributes of the specific embodiments disclosed above may be combined in different ways to form additional embodiments, all of which fall within the scope of the present disclosure. Although the present disclosure provides certain preferred embodiments and applications, other embodiments that are apparent to those of ordinary skill in the art, including embodiments which do not provide all of the features and advantages set forth herein, are also within the scope of this disclosure. Accordingly, the scope of the present disclosure is intended to be defined only by reference to the appended claims.

## Claims

1. A computer-implemented method, comprising:
performing a disaster recovery restore process on a target computing device;
accessing, over a computer network, a backup server;
selecting a source backup from the backup server, the source backup comprising at least one volume, at least one file and at least one device driver of a source computing device from which the source backup was created;
installing the selected source backup in an offline partition of the target computing device;
installing at least one target device driver in the offline partition; and
rebooting the target computing device to complete the disaster recovery restore process on the target computing device.

2. The computer-implemented method of claim 1, wherein rebooting the target computing device configures the offline partition into an active partition.

3. The computer-implemented method of claim 1, wherein installing the at least one target device driver comprises retrieving the at least one target device driver from a predetermined location.

4. The computer-implemented method of claim 1, wherein at least the target computing device comprises a version of Microsoft Windows® 7 or above operating system.

5. The computer-implemented method of claim 1, wherein the target computing device, after having rebooted, still comprises the at least one device driver of the source computing device.

6. The computer-implemented method of claim 1, further comprising leaving the at least one device driver of the source computing device in the selected source backup when the selected source backup is installed in the offline partition of the target computing device.

7. The computer-implemented method of claim 1, comprising completing the disaster recovery restore process on the target computing device without executing Microsoft Sysprep.

8. The computer-implemented method of claim 1, wherein rebooting comprises rebooting the target computing device a single time to complete the disaster recovery restore process.

9. The computer-implemented method of claim 1, performed without requiring selection of a Hardware Abstraction Layer (HAL).

10. A computing device restored as a result of a disaster recovery process, comprising:
a processor;
non-volatile memory coupled to the processor;
volatile memory coupled to the processor; and
an active partition loaded into the volatile memory, the active partition having been generated from an offline partition stored in the non-volatile memory and comprising at least one volume, at least one file and at least one hardware device driver originating from a selected backup of a source computing device.

11. The computing device of claim 10, wherein the active partition is created upon rebooting.

12. The computing device of claim 10, wherein the active partition comprises both at least one hardware device driver originating from the selected backup of the source computing device and at least one hardware device driver specific to the computing device.

13. The computing device of claim 10, further comprising an operating system and wherein the operating system is configured as a version of Microsoft Windows® 7 or above.

14. The computing device of claim 10, wherein the active partition is created without having executed Microsoft Sysprep on the selected backup of the source computing device.

15. The computing device of claim 10, wherein the active partition is created following rebooting the computing device a single time.

16. The computing device of claim 10, wherein the active partition is created without having required selection of a Hardware Abstraction Layer (HAL).

17. A machine-readable medium having data stored thereon representing sequences of instructions which, when executed by a computing device, causes the computing device to:
perform a disaster recovery restore process on a target computing device;
access, over a computer network, a backup server;
select a source backup from the backup server, the source backup comprising at least one volume, at least one file and at least one device driver of a source computing device from which the source backup was created;
install the selected source backup in an offline partition of the target computing device;
install at least one target device driver in the offline partition; and
reboot the target computing device to complete the disaster recovery restore process on the target computing device.

18. A computer-implemented method, comprising:
performing a disaster recovery restore process on a target computing device;
accessing, over a computer network, a backup server;
selecting a source backup from the backup server, the source backup comprising at least one volume, at least one file and at least one device driver of a source computing device from which the source backup was created;
installing the selected source backup in an offline partition of the target computing device;
installing at least one target device driver in the offline partition; and
rebooting the target computing device twice to complete the disaster recovery restore process on the target computing device.

19. A computing device restored as a result of a disaster recovery process, comprising:
a processor;
non-volatile memory coupled to the processor;
volatile memory coupled to the processor; and
an active partition loaded into the volatile memory, the active partition having been generated from an offline partition stored in the non-volatile memory and comprising at least one volume, at least one file and at least one hardware device driver originating from a selected backup of a source computing device,
wherein the at least one hardware device driver originating from the selected backup of the source computing device in the active partition is not configured to operate or control any hardware device in the computing device.

20. A computing device restored as a result of a disaster recovery process, comprising:
a processor;
non-volatile memory coupled to the processor;
volatile memory coupled to the processor; and
an active partition, created following rebooting the computing device twice, loaded into the volatile memory, the active partition having been generated from an offline partition stored in the non-volatile memory and comprising at least one volume, at least one file and at least one hardware device driver originating from a selected backup of a source computing device.