Method and system for restoring information from backup storage media

First and second partial files are read from first and second storage media, respectively, irrespective of a sequence in which the first and second storage media were originally written relative to one another. The first partial file forms a first portion of a complete file. The second partial file forms a second portion of the complete file. The first and second partial files are combined to extract and form the complete file, without dependence on re-reading the first and second storage media.

TECHNICAL FIELD

The disclosures herein relate in general to computer systems, and in particular to a method and system for restoring information from backup storage media.

SUMMARY

First and second partial files are read from first and second storage media, respectively, irrespective of a sequence in which the first and second storage media were originally written relative to one another. The first partial file forms a first portion of a complete file. The second partial file forms a second portion of the complete file. The first and second partial files are combined to extract and form the complete file, without dependence on re-reading the first and second storage media.

DETAILED DESCRIPTION

FIG. 1is a block diagram of an information handling system, indicated generally at100, according to the illustrative embodiment. In the example ofFIG. 1, the system100operates in association with a human user102. The system100is formed by various electronic circuitry components, including: (a) a general purpose computer104, such as a workstation or server, for executing and otherwise processing instructions, and for performing additional operations (e.g., communicating information) in response thereto, as discussed further hereinbelow; (b) input devices106for receiving information from the user102; (c) a display device108(e.g., a conventional flat panel monitor) for displaying information to the user102; (d) a print device110(e.g., a conventional electronic printer or plotter) for printing visual images on paper; (e) a computer-readable medium (or apparatus)112(e.g., a hard disk drive or other nonvolatile storage device) for storing information; (f) a portable computer-readable medium (or apparatus)114(e.g., a portable hard disk drive, flash memory card, CD-ROM, or magnetic tape) for storing information; and (g) various other electronic circuitry for performing other operations of the system100.

Accordingly, in the example ofFIG. 1, the computer104is connected to the input devices106, the display device108, the print device110, the computer-readable medium112, and the computer-readable medium114, as shown inFIG. 1. Also, for example, the computer104includes a memory device (e.g., random access memory (“RAM”) device and/or read only memory (“ROM”) device) for storing information (e.g., instructions of software executed by the computer104, and data processed by the computer104in response to such instructions).

In response to signals from the computer104, the display device108displays visual images, which represent information, and the user102views such visual images. Moreover, the user102operates the input devices106to output information to the computer104, and the computer104receives such information from the input devices106. Also, in response to signals from the computer104, the print device110prints visual images on paper, and the user102views such visual images.

The input devices106include, for example, a conventional electronic keyboard (or keypad) and a pointing device, such as a conventional electronic “mouse,” rollerball or light pen. The user102operates the keyboard (or keypad) to output alphanumeric text information to the computer104, which receives such alphanumeric text information. The user102operates the pointing device to output cursor-control information to the computer104, and the computer104receives such cursor-control information. The input devices106also include, for example, touch-sensitive circuitry of a liquid crystal display (“LCD”) device.

The computer104is coupled through a network to various other devices (not shown inFIG. 1). Through such network, the computer104outputs information (e.g., instructions, data, signals) to such devices, which receive and operate in response to such information. In one example, such information is specified by the user102to the computer104through the input devices106. Also, through such network, such devices output information to the computer104, which receives and operates in response to such information. In one example, such information is output by the computer104for display to the user102through the display device108and the print device110, in response to command(s) from the user102.

In one embodiment: (a) the computer-readable medium (or apparatus)114includes a backup tape storage medium (e.g., magnetic tape for storing digital information); and (b) the computer104(and/or such apparatus in response to signals from the computer104) includes circuitry for writing information to, and reading information from, such backup tape(s). For clarity, inFIG. 2,FIG. 3andFIG. 4, and in the detailed description hereinbelow, various references are made to one or more backup tape storage media (or “backup tapes” or “tapes”), but such references likewise apply to the computer-readable medium114generally, in any of its various embodiments (e.g., a portable hard disk drive, flash memory card, CD-ROM, or other persistent data storage medium). For example, the user112may operate the system100to copy an image from one or more backup tape storage media to the computer-readable medium114(e.g., embodied as a hard disk drive), so that the system100restores information (as discussed further hereinbelow in connection withFIG. 2,FIG. 3andFIG. 4) in response to the image on the computer-readable medium114.

FIG. 2is a first flow diagram of information restored from backup storage media by the system100, according to the illustrative embodiment. In the example ofFIG. 2, the backup storage media are shown as a set of tapes, namely a Tape 1 and a Tape 2. In another example, the backup storage media include one or more other embodiments of the computer-readable medium114(e.g., embodied as a hard disk drive), onto which an image was copied from one or more backup tape storage media.

Vast amounts of active and archived electronic information may exist on backup tape storage media. Conventional methods of restoring such information from large quantities of backup tapes are difficult to implement, cost prohibitive, or both. Restoring such information is especially difficult for companies that have multiple systems with different backup tape environments.

In a first mode of operation, the system100restores such information by replicating (and operating in) a native environment with which the backup tapes were originally written (“NE”), so that the system100: (a) restores such information from the backup tapes; and (b) after restoring such information, writes such information to a target storage device (e.g., the computer-readable medium112) for storage and further processing (e.g., analysis) by the system100. Nevertheless, such replication of the NE is challenging if the NE becomes outdated by new technology (e.g., if the NE's hardware or software is lost or malfunctions and is difficult to repair or replace), or if key parameters of the NE become lost.

In a second mode of operation, the system100operates with a non-native environment (“NNE”) that is significantly different from the NE, yet the system100still: (a) restores such information from the backup tapes; and (b) after restoring such information, writes such information to a target storage device (e.g., the computer-readable medium112) for storage and further processing (e.g., analysis) by the system100. In that manner, the system100operates with more speed and efficiency, because it operates without replicating the NE. For example, by operating in the NNE, the system100restores such information from backup tapes of various NEs, in a manner that achieves more parallel processing.

For operating in the NNE, the system100communicates with the backup tapes' hardware and restores information from the backup tapes, according to specified protocols and formats of: (a) such hardware; and (b) other significant aspects of the NE (e.g., specified protocols and formats of the NE's software and information stored therewith). Accordingly, the system100is programmed to: (a) read information from the backup tapes; (b) analyze patterns within such information (e.g., sequences, byte signatures, and other identifiers); (c) in response to such analysis, identify such hardware and other significant aspects of the NE; and (d) in response to such identification, read (e.g., from a memory of the system100) and execute the specified protocols and formats (e.g., metadata formats) for restoring information from the backup tapes.

Frequently, the backup storage media include many tapes that store large amounts of information. A particular file's information may, or may not, be stored at contiguous addresses on one or more tapes. Accordingly, a particular file's location on the tape(s) may be specified by: (a) starting, ending, or intermediate address(es) for the information; (b) potentially starting, ending, or intermediate address(es) for discontinuous portions of the information; or (c) any combination thereof.

The system100restores information from the backup storage media, even if: (a) the backup storage media include many tapes that store large amounts of information; and (b) any particular file's information is potentially stored at contiguous addresses on multiple ones of those tapes; and (c) a sequential order of such tapes is unknown. In either of the first or second modes of operation (as selected by the user102), which are discussed further hereinabove, the system100restores information from all such tapes, according to the techniques discussed further hereinbelow in connection withFIG. 2,FIG. 3andFIG. 4. The tapes store information as one or more files. In the example ofFIG. 2, the Tape 1 stores information as a File 1, a File 2, and a File 3-A. The File 1 and the File 2 are complete files. The File 3-A is a partial file, so that it forms a first portion of a File 3. At least one additional portion of the File 3 is stored by at least one additional tape.

As shown inFIG. 2, the Tape 2 stores information as a File 3-B, a File 4, and a File 5-A. The File 4 is a complete file. The File 3-B is a partial file, so that it forms a second portion of the File 3. Together, the File 3-A and the File 3-B form the complete File 3.

The File 5-A is a partial file, so that it forms a portion of a File 5. However, in this example, either: (a) at least one additional portion of the File 5 is stored by at least one additional tape, which is lost or malfunctioning; or (b) the File 5-A itself has an error, so that it contains insufficient information for completing the File 5 (e.g., insufficient information for linking to another File 5-B on another tape).

As shown inFIG. 2, the system100reads the set of tapes (e.g., one tape at a time, or multiple tapes in parallel with one another), irrespective of an original sequence of the tapes relative to one another (e.g., irrespective of a sequence in which the tapes were originally written relative to one another). For instance, in the example ofFIG. 2, the system100is adaptable to preferences of the user102, so that the system100is suitable for reading: (a) the Tape 1 before the Tape 2; (b) the Tape 2 before the Tape 1; or (c) the Tape 1 and the Tape 2 in parallel with one another.

In response to reading a tape, the system100: (a) generates and temporarily stores an image of such tape, such as the temporary tape images shown inFIG. 2; and (b) identifies, extracts and writes (to a target storage device, such as the computer-readable medium112) complete files that exist on such tape, so that the target storage device stores such complete files. For instance, in the example ofFIG. 2, the system100identifies, extracts and writes (to the target storage device): (a) the complete File 1 and the complete File 2 that exist on the Tape 1; and (b) the complete File 4 that exists on the Tape 2.

Moreover, in response to the temporary tape image of such tape, the system100identifies and temporarily stores (in partial images, or “imagettes”) partial files that exist on such tape. For instance, in the example ofFIG. 2, the system100identifies and temporarily stores: (a) an Imagette 1 of the partial File 3-A that exists on the Tape 1; (b) an Imagette 2 of the partial File 3-B that exists on the Tape 2; and (c) an Imagette 3 of the partial File 5-A that exists on the Tape 2.

After the system100stores all imagettes of a complete file, the system100: (a) executes join & extract instructions (e.g., software instructions) for combining such imagettes to extract and form the complete file; and (b) writes the complete file to the target storage device, so that the target storage device stores such complete file. For instance, in the example ofFIG. 2, after the system100stores the Imagette 1 (of the partial File 3-A) and the Imagette 2 (of the partial File 3-B), the system100: (a) executes the join & extract instructions for combining the Imagette 1 and the Imagette 2 to extract and form the complete File 3; and (b) writes the complete File 3 to the target storage device.

As discussed hereinabove, with respect to the File 5-A, either: (a) at least one additional portion of the File 5 is stored by at least one additional tape, which is lost or malfunctioning; or (b) the File 5-A itself has an error, so that it contains insufficient information for completing the File 5 (e.g., insufficient information for linking to another File 5-B on another tape). In response to this situation, the system100writes the Imagette 3 (of the File 5-A) to the target storage device for storage and further processing (e.g., analysis) by the system100to potentially recover information from the Imagette 3.

FIG. 3is a second flow diagram of information restored from backup storage media by the system100, according to the illustrative embodiment. The example ofFIG. 3is identical to the example ofFIG. 2, except that the set of tapes inFIG. 3includes an additional Tape 3, which stores information as a File 5-B. The File 5-B is a partial file, so that it forms a second portion of the File 5. Together, the File 5-A and the File 5-B form the complete File 5.

In the example ofFIG. 3, as in the example ofFIG. 2, the system100is adaptable to preferences of the user102, so that the system100is suitable for reading the Tape 1, the Tape 2, and the Tape 3 in any order, or in parallel with one another, irrespective of an original sequence of the tapes relative to one another (e.g., irrespective of a sequence in which the tapes were originally written relative to one another). Likewise, in the example ofFIG. 3, as in the example ofFIG. 2, the system100identifies, extracts and writes (to the target storage device): (a) the complete File 1 and the complete File 2 that exist on the Tape 1; and (b) the complete File 4 that exists on the Tape 2.

Similarly, in the example ofFIG. 3, the system100identifies and temporarily stores respective imagettes of: (a) the partial File 3-A that exists on the Tape 1; (b) the partial File 3-B and the partial File 5-A that exist on the Tape 2; and (c) the partial File 5-B that exists on the Tape 3. After the system100stores such imagettes, the system100executes the join & extract instructions for: (a) combining the imagette of the partial File 3-A and the imagette of the partial File 3-B to extract and form the complete File 3; and (b) combining the imagette of the partial File 5-A and the imagette of the partial File 5-B to extract and form the complete File 5.

After forming the complete File 3, the system100writes it to the target storage device. Likewise, after forming the complete File 5, the system100writes it to the target storage device.

FIG. 4is a third flow diagram of information restored from backup storage media by the system100, according to the illustrative embodiment. The example ofFIG. 4is identical to the example ofFIG. 3, except that: (a) the Tape 1 stores more information as an additional File 6, an additional File 7, and an additional File 8-A; (b) the Tape 2 stores more information as an additional File 8B; and (c) the Tape 3 stores more information as an additional File 8-C and an additional File 9. The File 6, the File 7, and the File 9 are complete files. The File 8-A, the File 8-B, and the File 8-C are partial files, which together form the complete File 8.

As shown inFIG. 4: (a) the File 1, the File 2, the File 3-A, the File 3-B and the File 4 were written onto the backup storage media (Tape 1, Tape 2) in a first backup session; (b) the File 5-A and the File 5-B were written onto the backup storage media (Tape 2, Tape 3) in a second backup session; and (c) the File 6, the File 7, the File 8-A, the File 8-B, the File 8-C and the File 9 were written onto the backup storage media (Tape 1, Tape 2, Tape 3) in a third backup session.

In the example ofFIG. 4, as in the example ofFIG. 3, the system100identifies, extracts and writes (to the target storage device): (a) the complete File 1 and the complete File 2 that exist on the Tape 1; and (b) the complete File 4 that exists on the Tape 2. Moreover, in the example ofFIG. 4, the system100identifies, extracts and writes (to the target storage device): (a) the complete File 6 and the complete File 7 that exist on the Tape 1; and (b) the complete File 9 that exists on the Tape 3. The system100is operable to perform subsequent operations in response to such File 1, File 2, File 4, File 6, File 7 and File 9 that are stored by the target storage device.

Similarly, in the example ofFIG. 4, the system100identifies and temporarily stores respective imagettes of: (a) the partial File 3-A and the partial File 8-A that exist on the Tape 1; (b) the partial File 3-B, the partial File 5-A, and the partial File 8-B that exist on the Tape 2; and (c) the partial File 5-B and the partial File 8-C that exist on the Tape 3.

After the system100stores such imagettes, the system100executes the join & extract instructions for: (a) combining the imagette of the partial File 3-A and the imagette of the partial File 3-B to extract and form the complete File 3; (b) combining the imagette of the partial File 5-A and the imagette of the partial File 5-B to extract and form the complete File 5; and (c) combining the imagette of the partial File 8-A, the imagette of the partial File 8-B, and the imagette of the partial File 8-C to extract and form the complete File 8.

After forming the complete File 3, the system100writes it to the target storage device. Likewise: (a) after forming the complete File 5, the system100writes it to the target storage device; and (b) after forming the complete File 8, the system100writes it to the target storage device. The system100is operable to perform subsequent operations in response to such File 3, File 5 and File 8 that are stored by the target storage device.

According to the techniques ofFIG. 2,FIG. 3andFIG. 4, the system100reads the set of tapes in a single pass to restore the information from such tapes, irrespective of an original sequence of such tapes relative to one another (e.g., irrespective of a sequence in which the tapes were originally written relative to one another), and without dependence on re-reading such tapes in a subsequent pass, and even if such tapes have various media types that differ from one another (e.g., even if such tapes have various media types that differ from one another on a tape-by-tape basis). This single pass technique is superior to previous techniques that: (a) in a first pass, read the set of tapes to determine an original sequence of such tapes relative to one another; and (b) in a second pass, re-read such tapes in such original sequence to restore the information from such tapes. Such previous techniques consume more time and human effort in loading and unloading the various tapes during the first and second passes.

In the illustrative embodiment, the system100stores the imagettes in a non-native format that is (a) different from a native format in which such imagettes were originally written to the tapes, yet (b) more efficient for subsequent operations of the system100. In one version of the illustrative embodiment, such non-native format is substantially similar to (yet different from) the native format. In an alternative embodiment, the system100stores the imagettes in the native format.

Referring again toFIG. 1, the computer104and the computer-readable medium114are structurally and functionally interrelated with one another, as described further hereinbelow. In that regard, the computer-readable medium114is a representative one of the computer-readable media of the system100(including, but not limited to, the computer-readable medium112). The computer-readable medium114stores (or encodes, or records, or embodies) functional descriptive material (including, but not limited to, software and data structures). Such functional descriptive material imparts functionality when encoded on the computer-readable medium114.

Also, such functional descriptive material is structurally and functionally interrelated to the computer-readable medium114.

Within such functional descriptive material, data structures define structural and functional interrelationships between such data structures and the computer-readable medium114(and other aspects of the computer104and the system100). Such interrelationships permit the data structures' functionality to be realized. Also, within such functional descriptive material, software (also referred to as computer programs or applications) defines structural and functional interrelationships between such software and the computer-readable medium114(and other aspects of the computer104and the system100). Such interrelationships permit the software's functionality to be realized.

For example, the computer104reads (or accesses, or copies) such functional descriptive material from the computer-readable medium114into the memory device of the computer104, and the computer104performs its operations (as described elsewhere herein) in response to such material, which is stored in the memory device of the computer104. More particularly, the computer104performs the operation of processing software (which is stored, encoded, recorded or embodied on a computer-readable medium) for causing the computer104to perform additional operations (as described elsewhere herein). Accordingly, such functional descriptive material exhibits a functional interrelationship with the way in which the computer104executes its processes and performs its operations.

Further, the computer-readable media of the system100are apparatus from which the software is accessible by the computer104, and the software is processable by the computer104for causing the computer104to perform such additional operations. In addition to reading such functional descriptive material from the computer-readable medium114, the computer104is capable of reading such functional descriptive material from (or through) a network, which is also a computer-readable medium (or apparatus) of the system100. Moreover, the memory device of the computer104is itself a computer-readable medium (or apparatus) of the system100.

Although illustrative embodiments have been shown and described, a wide range of modification, change and substitution is contemplated in the foregoing disclosure. In some instances, various features of the embodiments may be used without a corresponding use of other features.