Methods and apparatus for backing-up and restoring files using multiple trails
First Claim
1. A method for backing up a file comprising the steps of:
- determining which respective data portions of the file are stored upon which respective storage devices of a plurality of storage devices;
designating individual respective backup devices of a plurality of backup devices to be used for backing-up respective individual ones of the data portions of the file that are stored on respective storage devices, the data portions stored on each of the respective storage devices being designated to be backed up to corresponding respective backup devices; and
concurrently backing-up at least two respective data portions of the file to different respective backup devices for which those data portions are designated, such that the at least two respective data portions of the file are backed-up to respective backup devices in parallel.
8 Assignments
0 Petitions
Accused Products
Abstract
Mechanisms and techniques are disclosed that provide the ability to backup and restore a file between a backup server and a data storage system using multiple trails of data for the same file. Within the data storage system, the file is generally stored as a series of data portions spread across multiple storage devices such as disk. The file may be stored, for example, within a volume. In the backup operation of the invention, a discover phase determines which respective data portions of the file (e.g., partitions) are stored upon which respective storage devices (e.g., disks) of a plurality of storage devices. The system then designates individual respective backup devices (e.g., tapes) of a plurality of backup devices to be used for backing-up respective individual ones of the data portions of the file that are stored on respective storage devices. Next, the system concurrently backs up at least two respective data portions of the file to different respective backup devices for which those data portions are designated, such that at least two respective data portions of the file are backed-up to respective backup devices in parallel. The restore operation operates in a similar manner by determining which respective data portions (e.g., backup images) of the file are stored upon which respective backup devices (e.g., tapes) of a plurality of backup devices. The system then designates individual respective portions of storage devices of a plurality of storage devices to be used for storing respective individual ones of the data portions of the file that are stored on respective backup devices. Next, the system concurrently restores at least two respective data portions of the file to different respective storage devices for which those data portions are designated, such that at least two respective data portions of the file are restored to respective storage devices from respective backup devices in parallel. By treating portions of a file as separate backup work items, each portion may be provided as an independent stream or trail of data to or from the backup server, thus decreasing the time required to backup or restore a file.
303 Citations
28 Claims
-
1. A method for backing up a file comprising the steps of:
-
determining which respective data portions of the file are stored upon which respective storage devices of a plurality of storage devices;
designating individual respective backup devices of a plurality of backup devices to be used for backing-up respective individual ones of the data portions of the file that are stored on respective storage devices, the data portions stored on each of the respective storage devices being designated to be backed up to corresponding respective backup devices; and
concurrently backing-up at least two respective data portions of the file to different respective backup devices for which those data portions are designated, such that the at least two respective data portions of the file are backed-up to respective backup devices in parallel. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
obtaining an identity of a volume that stores the respective data portions of the file;
obtaining, from the volume, disk extent information for each respective data portion of the file, the disk extent information identifying, for each respective data portion, a respective storage device that stores the data portion and a size and placement of the data portion on the storage device; and
creating a list of backup work items, each backup work item in the list corresponding to one of the respective data portions of the file to be backed-up and including the disk extent information for that respective data portion.
-
-
3. The method of claim 2, wherein the step of creating a list of backup work items includes the steps of:
-
assigning a unique respective backup file name for each respective data portion of the file to be backed up; and
associating the disk extent information for each respective data portion of the file to be backed up to the unique respective backup file name assigned to that respective data portion.
-
-
4. The method of claim 2, wherein the step of designating further includes the step of:
sequentially selecting and assigning backup work items from the list of backup work items to a backup device sequentially selected from the plurality of backup devices, wherein backup work items corresponding to data portions that reside on a common storage device are assigned to the same backup device.
-
5. The method of claim 4, wherein the step of sequentially selecting and assigning backup work items to a backup device includes the step of:
-
determining if a data portion corresponding to a currently selected backup work item is stored on the same storage device as a backup work item that has been previously selected and assigned to a backup device, and if so, assigning the currently selected backup work item to the same backup device as the backup work item previously; and
wherein the step of designating further includes the step of;
repeating the steps of sequentially selecting and assigning and determining in a round-robin manner until all backup work items have been assigned to a specific respective backup device.
-
-
6. The method of claim 4, wherein the step of concurrently backing-up at least two respective data portions of the file to different respective backup devices concurrently backs up a plurality of data portions of the file in parallel to a plurality of respectively assigned backup devices, while ensuring that no two data portions that exist on a common storage device are backed up in parallel at the same time.
-
7. The method of claim 4, further including the step of:
detecting if a tuning file is available which specifies which data portions are to be backed-up to which backup devices, and if so, using assignments between backup work items and backup devices as specified in the tuning file, and if not, performing the steps of sequentially selecting and assigning and determining until all backup work items have been assigned to a respective backup device.
-
8. The method of claim 1, wherein the step of designating includes the step of:
assigning respective data portions of the file that are stored on different storage devices to different respective backup devices, such that during the step of concurrently backing-up the at least two respective data portions of the file, no two data portions that reside on a common storage device are read at the same time and such that data portions that reside on different.
-
9. The method of claim 1, wherein the step of concurrently backing-up the at least two respective data portions of the file concurrently backs up a plurality of data portions of the file in parallel to a plurality of respectively assigned backup devices, such that no two data portions that exist on a common storage device are backed up in parallel.
-
10. The method of claim 1, wherein the step of concurrently backing-up includes the steps of:
-
concurrently performing, for each respective backup device having at least one designated data portion to backup, a backup operation of one data portion designated to be backed-up by that backup device; and
detecting completion of the backup operation of each respective backup device and determining if other designated data portions remain to be backed up, and if so, repeating the steps of concurrently performing a backup operation and detecting completion of the backup operation for any remaining designated data portions that remain to be backed up.
-
-
11. The method of claim 1, wherein the step of concurrently backing-up includes the steps of:
-
receiving a first stream of data from a first data portion of the file stored within a first data storage device within the data storage system;
writing the first stream of data to a first respective backup device for which the first data portion is designated;
receiving a second stream of data from a second data portion of the file stored within a second data storage device within the data storage system;
writing the second stream of data to a second respective backup device for which the second data portion is designated; and
wherein the steps of receiving the first stream of data and receiving the second stream of data are performed concurrently such that different respective data portions of the file are simultaneously received and written as input to different backup devices in the data backup system.
-
-
12. The method of claim 1, further comprising the step of:
detecting if the file to be backed-up meets predetermined criteria which indicate that a multiple trail file backup is to be performed, and if so, performing the steps of determining, designating and concurrently backing-up.
-
13. The method of claim 12, further comprising the step of:
intercepting a list of files to be backed up by the backup server and performing the step of detecting for each file within the list of files.
-
14. The method of claim 12, wherein the predetermined threshold is an amount of time required to completely backup the file using a non-multiple trail file backup method.
-
15. The method of claim 12, wherein the predetermined criteria is that the file exceeds a minimum size threshold.
-
16. A method of preparing a list of backup work items for a backup server, the list containing a list of files to be backed-up, the method comprising the steps of:
-
retrieving a list of files to be backed up; and
for each single file in the list of files, determining if the single file exceeds a predetermined size threshold, and if so, determining if the single file meets criteria for a multiple trail file backup, and if so, performing the steps of;
obtaining an identity of a volume that stores respective data portions of the file;
obtaining, from the volume, disk extent information for each respective data portion of the file, the disk extent information identifying, for each respective data portion, a respective storage device that stores the data portion and a size and placement of the data portion on the storage device; and
creating a list of backup work items, each backup work item in the list corresponding to one of the respective data portions of the file to be backed-up and including the disk extent information for that respective data portion, such that each data portion of the file is treated as a separate work item during a backup process and such that the data portions stored on each of the respective storage devices are designated to be backed up to corresponding respective backup devices.
-
-
17. A method of providing data from a data storage system to a backup server, the method comprising the steps of:
-
providing, as output from the data storage system, a first stream of data from a first portion of a file stored on a first data storage device within the data storage system;
providing, as output from the data storage system, a second stream of data from a second portion of the file stored on a second data storage device within the data storage system, the data stored on each of the respective storage devices being designated to be backed up to corresponding respective backup devices; and
wherein the steps of providing a first stream of data and providing a second stream of data are performed concurrently between a backup client program and a backup server program such that different respective data portions of the file are simultaneously provided as output from the data storage system to the backup server.
-
-
18. A method for restoring a file comprising the steps of:
-
determining which respective data portions of the file are stored upon which respective backup devices of a plurality of backup devices;
designating individual respective portions of storage devices of a plurality of storage devices to be used for storing respective individual ones of the data portions of the file that are stored on respective backup devices, the data portions stored on each of the respective backup devices being designated to be restored to corresponding respective storage devices; and
concurrently restoring at least two respective data portions of the file to different respective storage devices for which those data portions are designated, such that the at least two respective data portions of the file are restored to respective storage devices from respective backup devices in parallel. - View Dependent Claims (19, 20)
obtaining catalog information for the file produced as a result of a backup operation formerly performed on the file, the catalog information indicating which data portions of the file from which storage devices were backed up to which backup devices.
-
-
20. The method of claim 19, wherein the step of designating further includes the steps of:
-
querying a volume to which the file is to be restored for restore space layout information indicating the portions of the storage devices that are available within the volume to receive the individual ones of the data portions of the file to be restored;
determining the type of volume to which the data portion are to be restored; and
ensuring that the type of volume and the restore space layout information are compatible to accept the individual ones of the data portions of the file to be restored.
-
-
21. A backup server computer system comprising:
-
a backup client interface;
a backup device interface coupled to a plurality of backup devices;
a processor;
an interconnection mechanism coupled to the backup client interface, the storage device interface and the processor; and
a memory coupled to the interconnection mechanism, the memory storing a backup server program, the backup server program being executable on the processor to cause the processor to;
(i) determine which respective data portions of a file to be backed-up are stored upon which respective storage devices of a plurality of storage devices accessible by a host backup client;
(ii) designate individual respective backup devices of the plurality of backup devices to be used for backing-up respective individual ones of the data portions of the file that are stored on respective storage devices, the data portions stored on each of the respective storage devices being designated to be backed up to corresponding respective backup devices; and
(iii) concurrently back-up at least two respective data portions of the file to different respective backup devices for which those data portions are designated, such that the at least two respective data portions of the file are backed-up to respective backup devices in parallel via the backup server computer system.
-
-
22. A backup server computer system comprising:
-
a backup client interface coupled to a host backup client, the host backup client having access to a plurality of storage devices;
a backup device interface coupled to a plurality of backup devices;
a processor;
an interconnection mechanism coupled to the backup client interface, the backup device interface and the processor; and
a memory coupled to the interconnection mechanism, the memory storing a backup server program, the backup server program being executable on the processor to cause the processor to;
(i) determine which respective data portions of a file are stored upon which respective backup devices of the plurality of backup devices;
(ii) designate individual respective portions of storage devices of the plurality of storage devices accessible via the host backup client to be used for storing respective individual ones of the data portions of the file that are stored on respective backup devices, the data portions stored on each of the respective backup devices being designated to be restored to corresponding respective storage devices; and
(iii) concurrently restore at least two respective data portions of the file to different respective storage devices for which those data portions are designated, such that the at least two respective data portions of the file are restored to respective storage devices accessible to the host backup client from respective backup devices interfaced to the backup server in parallel.
-
-
23. A backup server comprising:
-
a plurality of storage devices;
a backup client interface to couple the backup server to at least one host backup client; and
a processor coupled to the plurality of storage devices and to the backup client interface, the processor executing a series of instructions to allow the backup server to backup a single file that is stored as a plurality of data portions across a plurality of storage devices accessible to the host backup client, each data portion being backed up as a stream of data to a respective backup device and at least two streams of data being received for backup in parallel to the backup server from the host backup client, the data portions stored on each of the respective storage devices being designated to be backed up to corresponding respective backup devices.
-
-
24. A computer program product having a computer-readable medium including computer program logic encoded thereon as a backup server program for backing up a file, such that the computer program logic, when executed on at least one processing unit with a backup server, causes the at least one processing unit to perform the steps of:
-
determining which respective data portions of the file are stored upon which respective storage devices of a plurality of storage devices;
designating individual respective backup devices of a plurality of backup devices to be used for backing-up respective individual ones of the data portions of the file that are stored on respective storage devices, the data portions stored on each of the respective storage devices being designated to be backed up to corresponding respective backup devices; and
concurrently backing-up at least two respective data portions of the file to different respective backup devices for which those data portions are designated, such that the at least two respective data portions of the file are backed-up to respective backup devices in parallel.
-
-
25. A computer program product having a computer-readable medium including computer program logic encoded thereon for preparing a list of backup work items for a backup server, such that the computer program logic, when executed on at least one processing unit with a backup server, causes the at least one processing unit to perform the steps of:
-
retrieving a list of files to be backed up; and
for each single file in the list of files, determining if the single file exceeds a predetermined size threshold, and if so, determining if the single file meets criteria for a multiple trail file backup, and if so, performing the steps of;
obtaining an identity of a volume that stores respective data portions of the file;
obtaining, from the volume, disk extent information for each respective data portion of the file, the disk extent information identifying, for each respective data portion, a respective storage device that stores the data portion and a size and placement of the data portion on the storage device; and
creating a list of backup work items, each backup work item in the list corresponding to one of the respective data portions of the file to be backed-up and including the disk extent information for that respective data portion, such that each data portion of the file is treated as a separate work item during a backup process and such that the data portions stored on each of the respective storage devices are designated to be backed up to corresponding respective backup devices.
-
-
26. A computer program product having a computer-readable medium including computer program logic encoded thereon for providing data from a data storage system to a backup server, such that the computer program logic, when executed on at least one processing unit with a host backup client interfaced to the data storage system, causes the at least one processing unit to perform the steps of:
-
providing, as output from the data storage system, a first stream of data from a first portion of a file stored on a first data storage device within the data storage system;
providing, as output from the data storage system, a second stream of data from a second portion of the file stored on a second data storage device within the data storage system, the data stored on each of the respective storage devices being designated to be backed up to corresponding respective backup devices; and
wherein the steps of providing the first stream of data and providing the second stream of data are performed concurrently such that different respective data portions of the file are simultaneously provided as output from the data storage system to the backup server by the processor of the host backup client.
-
-
27. A computer program product having a computer-readable medium including computer program logic encoded thereon as a backup server program for restoring a file, such that the computer program logic, when executed on at least one processing unit with a backup server, causes the at least one processing unit to perform the steps of:
-
determining which respective data portions of the file are stored upon which respective backup devices of a plurality of backup devices;
designating individual respective portions of storage devices of a plurality of storage devices to be used for storing respective individual ones of the data portions of the file that are stored on respective backup devices, the data portions stored on each of the respective backup devices being designated to be restored from corresponding respective storage devices; and
concurrently restoring at least two respective data portions of the file to different respective storage devices for which those data portions are designated, such that the at least two respective data portions of the file are restored to respective storage devices from respective backup devices in parallel.
-
-
28. A method of transferring a file stored across a first set of storage devices to a second set of storage devices, the method comprising the steps of:
-
determining distinct portions of the file that are stored on the first set of storage devices;
designating each of the distinct portions of the file as unique work items to be transferred independently in relation to other distinct portions of the file designated as other work items, the portions of the file stored on each of the respective storage devices being designated to be backed up to corresponding respective backup devices; and
concurrently transferring from the first set of storage devices to the second set of storage devices, at least two distinct portions of the file as unique work items, such that at least two distinct portions of the file are transferred in parallel from the first set of storage devices to the second set of storage devices thus minimizing an amount of time required to transfer the file between from the first set of storage devices to the second set of storage devices.
-
Specification