Providing a backup service from a remote backup data center to a computer through a network

A technique provides a backup service to a computer over a network. The technique involves connecting the computer to the network, and providing a backup data center with read access to a storage device of the computer through the network. The storage device includes a boot record area and a data area. The technique further involves, after read access to the storage device of the computer is provided, performing a backup operation between the computer and the backup data center through the network. The backup operation includes copying at least a portion of a boot record stored in the boot record area of the storage device of the computer to the backup data center through the network. A restore operation is capable of being performed to restore the boot record from the backup data center to the computer through the network as well.

BACKGROUND

A typical hard disk includes at least one boot record area and a data area for storing data. For example, on a non-partitioned hard disk, the first sector typically stores a master boot record which contains code for booting an operating system. As another example, on a partitioned hard disk, the first sector of the entire hard disk device typically stores a master boot record and the first sector of each partition typically stores a volume boot record which contains code for booting programs contained in that partition.

A conventional backup system can routinely back up information from the data area of the hard disk. As a result, if the hard disk subsequently loses the information (e.g., due to a failure of the hard disk, due to inadvertent user error, etc.), the information can be recovered from the backup system.

Some conventional backup systems incrementally operate over the Internet. For example, as the information within the data area of a hard disk changes over time, a conventional backup system can incrementally backup the changed information within the data area (e.g., new and changed files which have date stamps which are more recent than the date stamp of the last backup) to a backup site over the Internet.

SUMMARY

Unfortunately, there are deficiencies associated with the above-described conventional backup systems. For example, the above-described conventional backup systems have not been applied to fully backing up an entire hard disk over the Internet. Along these lines, it has been impractical to perform complete sector-by-sector copies of entire disk images or file-by-file copies of entire file systems over the Internet due to the enormous sizes of disk images and file systems in combination with network bandwidth limitations.

Furthermore, it is not practical to back up boot records and/or operating systems on hard disks since such items typically remain in inconsistent states while the computers are running. For instance, important portions of operating systems (e.g., operating system programs, operating system data files, registry entries, etc.) typically remain open and in use and routinely change while the computers are in operation. As a result, an operating system restored from a backup taken while a computer was running the operating system would likely lead to unreliable and unstable operation of the computer.

In contrast to the above-described conventional backup systems, an improved technique provides, to a computer over a network, a backup service which is able to reliably backup an operating system as well as boot records from one or more storage devices of the computer. Such a technique involves placing the operating system and the boot records in a consistent state (i.e., files are not currently in use and are not changing), and then backing up the storage devices over the network using de-duplication and delta encoding processes. Since the operating system and the boot records are in a consistent state, any restoration of the operating system and the boot records results in continued reliable operation of the computer. Furthermore, since the technique employs de-duplication and delta encoding, it is now practical to maintain a current backup of an entire storage device via a network such as the Internet. Accordingly, such a technique is able to alleviate a substantial delay associated with a traditional full backup.

One embodiment is directed to a method of providing a backup service to a computer over a network. The method includes connecting the computer to the network, and providing a backup data center with read access to a storage device of the computer through the network. The storage device includes a boot record area and a data area. The method further includes, after read access to the storage device of the computer is provided, performing a backup operation between the computer and the backup data center through the network. The backup operation includes copying at least a portion of a boot record stored in the boot record area of the storage device of the computer to the backup data center through the network. A restore operation is capable of later being performed to restore the boot record from the backup data center to the computer (or perhaps a replacement computer) through the network as well.

Other embodiments are directed to backup and restoration systems and devices, a backup data center, an apparatus which facilitates providing a backup service between a computer and a backup data center, computer program products, as well as other techniques. Such embodiments may involve backing up and restoring operating systems in place of, or in combination with, one or more boot records. Furthermore, such embodiments may involve restoring only specific portions of a storage device (e.g., particular files, records, etc.) rather than the entirety of the storage device.

DETAILED DESCRIPTION

An improved technique provides, to a computer over a network, a backup service which is able to reliably backup an operating system as well as boot records from one or more storage devices of the computer. Such a technique involves placing the operating system and the boot records in a consistent state, and then backing up the storage devices over the network using de-duplication and delta encoding processes. Since the operating system and the boot records are in a consistent state, restoration of the operating system and the boot records results in continued reliable operation of the computer. Additionally, since the technique employs de-duplication and delta encoding, it is now practical to maintain a current backup of an entire storage device via a network such as the Internet.

FIG. 1is a block diagram of a computerized environment20which backs up, over a network, a storage device having an operating system as well as boot records. The computerized environment20includes a computerized device (or simply computer)22, a backup data center24and a network26. The network26conveys electronic communications28between the computer22and the backup data center24. Along these lines, the network26is illustrated as a cloud because it is capable of having a variety of topologies including hub-and-spoke, backbone, loop, irregular, a combination of the Internet and LAN(s), combinations thereof, and so on.

The computer22includes a network interface30to connect to the network26, a processor32, primary memory34(i.e., high speed volatile memory), a storage device36(i.e., slower non-volatile memory), and ancillary storage38. The storage device34includes boot records40and a first operating system42. The ancillary storage38includes a control routine44and a second operating system46. Both the storage device34and the ancillary storage38are capable of being implemented in a variety of forms such as optical storage, magnetic storage, solid-state media, and so on.

The backup data center24includes a network interface50to connect to the network26, a controller52to provide backup services to computers, and a data storage assembly54to store backups on behalf of the computers. The controller52(e.g., a set of processors running specialized software) is constructed and arranged to employ de-duplication and delta encoding processes when providing backup services.

During normal operation, the computer22runs the first operating system42from the storage device36, and is capable of performing a variety of tasks. Such tasks may include activities relating to a general purpose computer (e.g., document editing by a user, providing email and web access, etc.) and/or specialized activities if the computer22runs specialized software (web server operations, database operations, etc.).

At some point, when the computer22is ready for back up, the computer22cleanly shuts down thus placing the storage device36in a consistent state. That is, any data cached in the primary memory34is synchronized to the storage device36, and the information stored in the storage device36is no longer in a state of change. Rather, the information stored in the storage device36, including the boot records40and the first operating system42, is now stable and ready to be backed up so that any restoration enables stable and reliable execution.

To backup the storage device36, the processor32is commanded to boot the second operating system46from the ancillary storage38(i.e., the ancillary storage38is provisioned as a second bootable device). Once the computer22is running the second operating system46, the control routine44provides the backup data center24with full read access to the storage device36over the network26thus enabling the backup data center24to obtain a complete backup of the storage device36. That is, the controller52of the backup data center24is able to communicate with the computer22through the network interface50, and obtain a current and consistent version of all of the information on the storage device36including the boot records40and the first operating system42and store that version (as well as older versions) in the data storage assembly54for future restoration.

Along these lines, if the backup data center24already stores a copy of a portion of the information for another computer (also referred to as a “tenant”), a second copy is not conveyed to the backup data center24. That is, there is no need to consume network bandwidth and additional storage space. Rather, the backup data center24simply increments a counter (see the controller52inFIG. 1) to indicate that the existing copy is now stored on behalf of both computers. This feature, which is referred to as de-duplication, is particularly useful for backing up certain information from groups of computers which have large amounts of data in common such as computers at a company all of which are running the first operating system42.

Additionally, if there is data from the computer22which was previously stored at the backup data center24which has changed since the last backup, the backup data center24only copies the differences (i.e., the deltas) which exist on the storage device36since the last backup. The differences can be captured at a block level, a file level, or in the form of some other type of data unit. This process is referred to as delta encoding.

Once the backup data center24has captured the changes from the computer22, a current backup of the entire contents of the storage device36now reside at the backup data center24and the information on the entire storage device36can be restored (if necessary) by combining the last backup and the recently captured differences. Furthermore, an older version of the entire contents of the storage device36can be restored simply from the last backup (i.e., if desired, an earlier backup of the storage device36without the differences can be restored to the computer22or a replacement computer).

It should be understood that the control routine44on the ancillary storage38can be configured to facilitate portions or all of the above-described process of quiescing the activity of the storage device36before engaging the backup data center24to carry out backing up of the storage device36. For example, while the processor32is running the first operating system42, the control routine44can direct the processor32to shutdown and restart using the second operating system46at a scheduled time (e.g., evenings, weekends, etc.) in order to perform the backup operations at convenient times. Alternatively, the process of quiescing the activity of the storage device36and engaging the backup data center24can be performed manually by a user or automatically by an attached device.

In some arrangements, the processor32initiates the backup process and pushes the data to the data center24through the network26. Such arrangements provide more control over the backup process to the processor32(e.g., timing, frequency, security, etc.).

In other arrangements, the data center24initiates the backup process and pulls the data from the computer22through the network26. Such arrangements provide more control over the backup process to the data center24(e.g., the ability to load balance and schedule relative to other backup processes, etc.).

It should be further understood that the software components on the ancillary storage38are capable of being delivered to the ancillary storage38via a computer program product60having a non-transitory computer readable storage medium. Similarly, the controller52of the backup data center24can be implemented using a set of processors and a set of backup applications which are delivered to the backup data center24via a computer program product62having a non-transitory computer readable storage medium. Examples of suitable computer readable storage media include tangible articles of manufacture and apparatus which store instructions in a non-volatile manner such as CD-ROM, flash memory, disk memory, tape memory, and the like.

It should be further understood that Connected® Backup offered by Iron Mountain of Boston, Mass. is a suitable data backup and recovery platform for the backup data center24of the computerized environment20. Further details will now be provided with reference toFIG. 2.

FIG. 2is a block diagram (i.e., a logical layout) of the storage device36. The storage device36includes a master boot record area70(0), and partitions72(1),72(2), . . . (collectively, a set of partitions72). Each partition72includes a boot record area70, a data area74, and an unused area76. For example, the partition72(1) includes a boot record area70(1), a data area74(1), and an unused area76(1). Similarly, the partition72(2) includes a boot record area70(2), a data area74(2), and an unused area76(2). The partition72(2) is enhanced with an operating system area78which stores the first operating system42(also seeFIG. 1).

The boot record areas70store respective boot records40. In particular, the master boot record area70(0) stores a master boot record40(0) which includes master boot code82to bootstrap the computer22and a partition table84which identifies locations of the partitions72. Additionally, the boot record area70(1) of the partition72(1) stores a boot record40(1) which identifies locations for booting programs in the partition72(1). Similarly, the boot record area70(2) of the partition72(2) stores a boot record40(2) which identifies locations for booting programs in the partition72(2), and so on.

Each data area74stores data such as applications (or programs)90and user data92. For example, the data area74(1) of partition72(1) stores a set of applications90(1) and user data92(1). Similarly, the data area74(2) of partition72(2) stores a set of applications90(2) and user data92(2). It should be understood that, as each data area74of a partition72fills with additional data during operation of the computer22, the data area74consumes (or expands into) the unused area76of that partition72.

It should be understood that data within boot records40and the first operating system42may change over time. For example, the first operating system42may undergo an update or upgrade which changes certain operating system programs and/or data files. Additionally, changes may be made over time to the operating system registry or to particular boot records. Advantageously, the backup data center24is constructed and arranged to capture these changes by copying the differences since the last backup to obtain a current backup of all the information on the storage device36including the boot records40and the first operating system42. As a result, the computer22can be fully restored (or replaced) by the backup data center24if any portion of the storage device36, including boot records40and the first operating system42, are lost.

In some arrangements, the backup data center24backs up the applications90and the user data92using standard de-duplication and delta encoding processes. However, in these arrangements, significant software constructs which may be relatively large in size (e.g., particular versions or releases of operating systems) are preferably stored in a pool. In this context, when the backup data center24initially backs up the first operating system42on behalf of a first tenant (i.e., a subscriber of backup services), the backup data center24(i) stores a backup copy of the first operating system42in a storage location referred to as “pool storage”, (ii) creates an association between the backup copy of the first operating system42and the first tenant, and (iii) sets a counter to indicate that there is one tenant associated with the backup copy. Later, when the backup data center24is ready to back up the first operating system42on behalf of a second tenant (e.g., the computer22ofFIG. 1), the backup data center42simply creates a second association between the backup copy of the first operating system42and the second tenant, and increments the counter to indicate that there is another tenant associated with the backup copy. Accordingly, there is no actual moving of data from the storage device36through network26needed to effectuate backing up the first operating system42on behalf of the second tenant.

It should be understood that the first operating system42can be backed up for additional tenants in a similar manner (i.e., adding an association to the new tenants and incrementing the counter). Furthermore, if there are changes made to the first operating system42for specific tenants, pool chains (i.e., mini delta encoding chains) can be established for each tenant.

It should be further understood that the storage device36was described above as a partitioned storage device. In other arrangements, the storage device36is non-partitioned or is viewed as having a single partition. Nevertheless, the backup data center24is capable of obtaining and maintaining a full backup of the boot record40and first operating system42of the storage device36via the network26while the storage device36is in a consistent state for reliable restoration. Further details will now be provided with reference toFIGS. 3 and 4.

FIG. 3shows a flowchart of a procedure100which is performed within the computerized environment20to backup the storage device36of the computer22to the backup data center24.FIG. 4shows certain operational details at a particular moment during the procedure100.

In step102of procedure100, the computer22connects to the network26thus enabling the computer22to communicate with the backup data center24(also seeFIG. 1). In some arrangements, at least a portion of the network26is the public Internet. In some arrangements, the backup data center22located remotely from the computer22, e.g., geographically separated for disaster recover purposes.

In step104, the computer22provides read access to the storage device36which includes the boot record areas70, the operating system area78, and the data areas74(also seeFIG. 2) while the information on the storage device36is maintained in a consistent state. As mentioned earlier, the computer22runs the second operating system46and operates under direction of the control routing44from the ancillary storage38thus leaving the storage device36in a stable unchanging condition for reliable backup. Preferably, when the computer22runs the second operating system46, the computer22authenticates itself with the backup data center24and establishes a secure communications channel with the backup data center24through the network26.

In step106, the computer22participates in a backup operation with the backup data center24to ensure that the backup data center24has a current version of all of the information on the storage device36. Along these lines, the computer22communicates with the backup data center24to determine which data on the storage device36needs to be transferred to the backup data center24. Advantageously, not all of the data on the storage device36needs to pass through the network26due to de-duplication and delta encoding features provided by the backup data center24.

As shown inFIG. 4, the computer22is able to send only a copy of changes that have occurred to the information on the storage device36to the backup data center24over the network26while the computer22runs the second operating system46and the control routine44from the ancillary storage38(FIG. 1). Since the boot records40and the first operating system42stored on the storage device36are quiesced, the backup data center24is able to obtain and store a reliable copy of all of the information on the storage device36in the data storage assembly54. Thus, any restoration from the data storage assembly54, which includes the boot records40and the first operating system42, will be a coherent copy which can be reliably used by the computer22(or perhaps replacement hardware).

Moreover, since the backup data center24employs de-duplication and delta encoding, the computer22needs to send only the differences since the last backup through the network26. As a result, the amount of time and network bandwidth consumed are reasonable to enable completion of the backup operation in a relatively short amount of time (e.g., over night, during a weekend, etc.) via the network26. Without de-duplication and delta encoding, the backup process via the network26could take an unreasonable amount of time to complete (e.g., a day, a week, etc.) thus rendering the backup service impractical for routine use.

At this point and as illustrated by step108, additional operations can be performed. For example, subsequent backup operations can be performed between the computer22and the backup data center24through the network26employing de-duplication and delta encoding to create newer backups of the storage device36. Additionally, any and all of the information from the storage device36can be restored including the boot records40and the operating system42. Although a full restoration of all of the information from the storage device36may take a substantial amount of time (e.g., to restore through the network26, to ship a replacement storage device containing the restored backup back to the tenant, etc.), it is presumed that this substantial amount of time is acceptable since the result is a full recovery and the occurrence of such recovery events is relatively infrequent. Further details will now be provided with reference toFIGS. 5 and 6.

FIG. 5shows an apparatus200which enables a computer to conveniently carrying out restoration of a backup of the storage device36from the backup data center24over the network26(also seeFIGS. 1 and 2). That is, the apparatus200enables the computer22to restore all of the information backed up from the storage device36(e.g., if all or part of the storage device36was corrupted). Alternatively, the apparatus200enables a new computer to operate in place of the computer22(e.g., after a loss or catastrophic failure of the computer22). The apparatus200is capable of being implemented as a provisioned thumb drive or USB device which enables the computer to boot without access to an installed storage device that is to be the restoration target. The apparatus200is also capable of being implemented as a bootable CD, an external hard drive, and the like.

As shown inFIG. 5, the apparatus200stores an operating system202, drivers204and code206. The operating system202enables the computer to boot without any access to the installed storage device which is the eventual restoration target. The drivers204enable the computer to connect the computer to connect to a network (e.g., drivers for the network interface of the computer) and to access the installed storage device (e.g., drivers to perform read/write/modify/etc operations on the installed storage device). The code206enables the computer to engage the backup data center24through the network and systematically coordinate restoration of the backup of the storage device36from the backup data center24to the installed storage device. Further details will now be provided with reference toFIG. 6.

FIG. 6shows a procedure240which is performed by a processor of the computer to restore the information backed up from the storage device36by the backup data center24(FIG. 1) using the apparatus200(FIG. 5). In step242the processor boots the operating system202of the apparatus200and obtains control over the network interface and restoration target (write access to the installed storage device) via the drivers204of the apparatus200.

In step246, the computer establishes communications with the backup data center24through the network and prepares the computer to restore the information to the installed storage device. In particular, the code206enables the computer to authenticate and establish a secure channel to the backup data center24through the network. At this point, the computer is ready to begin a restoration operation to restore the information backed up from the storage device36to the installed storage device.

In step246, the computer restores the information backed up from the storage device36to the installed storage device through the network. As part of this restoration, the computer writes the boot records40and the first operating system42to the installed storage device.

In step248, the code206of the apparatus200directs the processor of the computer to reboot using the first operating system42on the installed storage device, and the apparatus200can be removed. Alternatively, the reboot step can be performed manually by a user. Since the backup was taken from the storage device36while information was in a consistent stable state, the computer operates normally in a non-problematic manner.

As described above, improved techniques provide, to computers22over networks26, backup services which reliably backup operating systems42as well as boot records40from storage devices36of the computers22. Such techniques involve placing the operating systems42and the boot records40in consistent states, and then backing up the storage devices36over the networks26using de-duplication and delta encoding processes. Since the operating systems42and the boot records40are in consistent states, restoration of the operating systems42and the boot records40results in continued reliable operation of the computers22. Additionally, since the technique employs de-duplication and delta encoding, it is now practical to backup each storage device36over a public network, e.g., the Internet.

For example, it should be understood that the apparatus200(FIG. 5) is capable of being formed by portions of the computer22, i.e., the apparatus200can be built-in to the computer22. In this arrangement, the components202,204and206can reside in the ancillary storage38(e.g., the operating system202can be the second operating system46).

Additionally, it should be understood that the ancillary storage38can be implemented as a peripheral device or second magnetic hard disk that the processor32boots from during the backup process. In some arrangements, the processor32can run a scheduler or automated routine which directs the processor32of the computer22to periodically shutdown the first operating system42and boot the second operating system46(e.g., nightly, weekly, etc.) in order to back up the storage device36to the backup data center24on a routine basis (seeFIG. 1).

Furthermore, it should be understood that the computer22can be implemented as a general purpose computer which is augmented with special software and/or circuitry as described above. In other arrangements, the computer22is a computerized device which not just an augmented general purpose computer such as a laptop device, a smart phone, a smart pad, a server, etc. Such alternatives and enhancements are intended to belong to various embodiments of the invention.