Storage management system with file aggregation6098074Abstract A data storage subsystem employs managed files, each comprising one or an aggregation of multiple individual, constituent user files, to reduce file management overhead costs. After receiving user files from a client station, the subsystem creates a contiguous managed file by aggregating selected ones of the received user files according to certain predetermined criteria. Managed file creation and use are transparent to the client stations. To aid in file management, the subsystem provides a mapping table that lists, for each user file, a corresponding location of that user file within a managed file. With this hardware and table structure, the system conducts file management with reduced overhead. For example, internal data management operations include an improved copy operation where a managed file is copied as a contiguous unit between first and second locations in the data storage subsystem. In addition to internal data management operations, the subsystem satisfies client output requests, including retrieve operations initiated when the subsystem receives a retrieval request and identified user file from a client station. In response, the subsystem employs the mapping table to find the identified user file's location in the managed file. Referencing the identified user file's location in the managed file enables the subsystem to obtain a copy of the identified user file, which is ultimately provided to the requesting client station. Claims What is claimed is: Description BACKGROUND OF THE INVENTION
TABLE 1
______________________________________
Inventory Table
POLICY
USER CLIENT DATA
FILE- CLIENT CLIENT RETENTION
NAME NUMBER
TYPE SOURCE
. . .
TIME . . .
______________________________________
a 1 Unix /usr 30 days
b Unix
/usr
30 days
c Unix
/usr
30 days
d Unix
/usr
30 days
e Unix
/usr
30 days
. . . 1 Unix
/usr
30 days
p Unix
/usr
30 days
aa 27
OS/2
d:.backslash.data
90 days
ab 27
OS/2
d:.backslash.data
90 days
ac 27
OS/2
d:.backslash.data
90 days
ad 27
OS/2
d:.backslash.data
90 days
ae 27
OS/2
d:.backslash.data
90 days
. . . 27 OS/2
d:.backslash.data
90 days
aj 27
OS/2
d:.backslash.data
90 days
ba 3
Windows
c:.backslash.data
365 days
'95
bh 3
Windows
c:.backslash.data
365 days
'95
bn 3
Windows
c:.backslash.data
365 days
'95
bx 3
Windows
c:.backslash.data
365 days
'95
______________________________________
Storage Table Another table in the database 113 is the storage table, an example of which is depicted in Table 2 (below). In contrast to the inventory table (described above), the storage table contains information about where each managed file is stored in the storage hierarchy 114. The storage table contains a single row for each managed file. In the illustrated example, the storage table includes "managed filename", "storage pool", "volume", "location", and other columns. The "managed filename" column lists all managed file's filenames. Like the user files, each managed file has a filename that comprises a unique alphabetic, alphanumeric, numeric, or other code. For each managed file, the "storage pool" identifies a subset of the storage hierarchy 114 where the managed file resides. As mentioned above, each "storage pool" is a group of storage devices of the storage hierarchy 114 having similar performance characteristics. For instance, each of the DASDs 402, DASDs 404, optical disks 406, tapes 408, and tapes 410 may be divided into one or more storage pools. Identification of each storage pool may be made by numeric, alphabetic, alphanumeric, or another unique code. In the illustrated example, numeric codes are used. The "volume" column identifies a sub-part of the identified storage pool. In the data storage arts, data is commonly grouped, stored, and managed in "volumes", where a volume may comprise a tape or a portion of a DASD. The "location" column identifies the corresponding managed file's location within the volume. As an example, this value may comprise a track/sector combination (for DASDs or optical disks), a tachometer reading (for magnetic or optical tape), etc.
TABLE 2
______________________________________
Storage Table
MANAGED STORAGE
FILENAME POOL
VOLUME LOCATION
. . .
______________________________________
A 1 39 1965
B 1967
C 16495
D 1818
______________________________________
Mapping Table Another table in the database 113 is the mapping table, an example of which is depicted in Table 3 (below). Generally, this table operates to bidirectionally cross-reference between managed files and user files. The mapping table identifies, for each managed file, all constituent user files. Conversely, for each user file, the mapping table identifies one or more managed files containing that user file. In this respect, the specific implementation of Table 3 includes a "managed.fwdarw.user" column and a "user.fwdarw.managed" column. The "managed.fwdarw.user" column contains multiple rows for each managed file, each row identifying one constituent user file of that managed file. Each row identifies a managed/user file pair by the managed filename ("managed filename" column) and the user filename ("user filename"). Conversely, each row of the "user.fwdarw.managed" column lists a single user file by its name ("user filename" column), cross-referencing this user file to one managed file containing the user file ("managed filename"). If the user file is present in additional managed files, the mapping table contains another row for each additional such managed file. In each row, identifying one user/managed file pair, the row's user file is also cross-referenced to the user file's length ("length" column) and its offset within the aggregated file of that pair ("offset" column). In this example, the length and offset are given in bytes.
TABLE 3
______________________________________
Mapping Table
(MANAGED .fwdarw. USER)
(USER .fwdarw. MANAGED)
USER USER
MANAGED FILE-
FILE-
MANAGED
FILENAME NAME
FILENAME
LENGTH
OFFSET
______________________________________
A a a A 10 0
10
20
30
40
. . .
. . .
J
0
B 10
20
30
40
B
. . .
. . .
aj
K
0
0
C 20
10
40
20
. . .
10
. . .
L
D M
bh
bn
. . .
bx
______________________________________
Managed File Attributes Table Another table in the database 113 is the managed file attributes table, an example of which is depicted in Table 4 (below). This table accounts for the fact that, after time, a managed file may contain some empty space due to deletion of one or more constituent user files. As explained below, the subsystem 102 generally does not consolidate a managed file upon deletion of one or more constituent user files. This benefits the efficient operation of the subsystem 102, by minimizing management of the aggregate files. Instead, to conserve storage space, the invention performs "reclamation" to remove unused space between and within managed files. This procedure, discussed below, relies upon knowledge of managed file attributes, as maintained in the managed file attributes table. Each row of the managed file attributes table represents a different managed file, identified by its managed filename ("managed filename" column). A row's managed file is cross-referenced to columns specifying the managed file's original size upon creation ("original size"), present size not including deleted user files ("active size"), and number of non-deleted user files ("active files"). Other Tables The database 113 may also be implemented to include a number of other tables, if desired, the content and structure being apparent to those of ordinary skill in the art (having the benefit of this disclosure). Some or all of these tables, for instance, may be added or incorporated into various existing tables discussed above. In a preferred embodiment, the database 113 includes a backup directory table (not shown) that indicates whether, for storage pool backup operations, each device or medium in the storage hierarchy 114 is designated as a primary device, designated as a backup device, or has no designation yet.
TABLE 4
______________________________________
Managed File Attributes Table
MANAGED ORIGINAL ACTIVE ACTIVE
FILENAME SIZE FILES
______________________________________
A J + 10 J + 10 16
B K + 10 K + 10
10
C L + 10
M + 10
13
D M + 10
M + 10 13
______________________________________
OPERATION In addition to the various hardware embodiments described above, a different aspect of the invention concerns a method of storing and using "managed" files, implemented using hardware components such as those disclosed above. As discussed below, each managed file comprises an aggregation of one or multiple individual "user" files, thus reducing file management overhead costs. Signal-Bearing Media More specifically, in the context of FIGS. 1-2 the method aspect of the invention may be implemented, for example, by operating the data processing apparatus 108 (embodied by a digital data processing apparatus 200), to execute a sequence of machine-readable instructions. These instructions may reside in various types of signal-bearing media. In this respect, one aspect of the present invention concerns a programmed product, comprising signal-bearing media tangibly embodying a program of machine-readable instructions executable by a digital data processor to perform a method of storing and using "managed" files, each comprising an aggregation of one or multiple individual "user" files, in order to reduce file management overhead costs. Illustratively, this signal-bearing media may comprise RAM (not shown) contained within the data processing apparatus 108, as represented by the fast-access storage 206 for example. Alternatively, the instructions may be contained in another signal-bearing media, such as a magnetic data storage diskette 300 (FIG. 3), directly or indirectly accessible by the processing unit 202. Whether contained in the digital data processing apparatus 200 or elsewhere, the instructions may be stored on a variety of machine-readable data storage media, such as DASD storage (e.g., a conventional "hard drive" or a RAID array), magnetic tape, electronic read-only memory (e.g., ROM, EPROM, or EEPROM), an optical storage device (e.g. CD-ROM, WORM, DVD, digital optical tape), paper "punch" cards, or other suitable signal-bearing media including transmission media such as digital and analog and communication links and wireless. In an illustrative embodiment of the invention, the machine-readable instructions may comprise software object code, compiled from a language such as C, C++, PLX, etc. File Aggregation: General Sequence FIG. 6 shows an operational sequence 600 to broadly illustrate the method aspect of the invention, according to one example of the invention. For ease of explanation, but without any limitation intended thereby, the sequence 600 of FIG. 6 is described in the context of the hardware of FIGS. 1-5, described above. After the sequence 600 is initiated in step 602, the subsystem 102 receives a user file from one of the client stations 106 in step 604. Next, in step 606, the data processing apparatus 108 asks whether, having received the user file, predetermined criteria necessary to complete a managed file are now satisfied. These predetermined criteria, details of which are discussed below, determine how many user files go into the current aggregate file being created. If the criteria are satisfied, the processing apparatus 108 in step 608 creates a managed file. Otherwise, control returns to step 604 to receive another user file. The predetermined criteria of step 606 may be implemented in a number of different ways, depending upon the needs of the application. For example, the criteria may comprise receipt (step 604) of a predetermined number of user files. For instance, a managed file may be created by including every ten user files received. In another example, the criteria may be specified by a client station 106, which manually identifies desired user files for inclusion into a managed file. In another example, the criteria may specify a target managed file size; when enough user files have been received to provide the desired size of managed file, the managed file is completed. In still another example, the criteria may be established to coincide with a "commit transaction". Namely, the subsystem 102 may be implemented, aside from file aggregation, to delay commitment of data storage operations in the hierarchy 114 for a group of received user files until occurrence of a predetermined "commit" event. In this case, the predetermined criteria of step 606 may be designed to make managed files coincide with each group of user files together committed to storage. Under this arrangement, user files may be written to the storage hierarchy 114 upon receipt, with commitment being effectuated by representing the file in the database 113. The criteria may also consider other factors, for example grouping received user files according to their location within a client station 106. As a further enhancement, the predetermined criteria of step 606 may recognize certain types of user files as being appropriate for being the sole user file in a managed file. Moreover, ordinarily skilled artisans (having the benefit of this disclosure) will recognize many completely different criteria suitable for step 606, without departing from the scope of this invention. Such criteria may further involve combinations and/or variations of such different criteria as well as the criteria discussed above. When the predetermined criteria are satisfied, step 608 creates a managed file from the user files meeting the criteria. This step is performed by updating the database 113 to recognize the constituent user files (meeting the criteria) as a single managed file. In particular, the subsystem 102 in step 608 enters a representation of the newly created managed file and its constituent user files in the database 113. This involves entering: (1) the user files in the inventory table (e.g., Table 1, shown above), (2) the managed file in the storage table (e.g., Table 2, shown above), (3) the managed file and its constituent user files in the mapping table (e.g., Table 3, shown above), and (4) the managed file in the managed file attributes table (e.g., Table 4, shown above). After step 610, the newly created managed file is available to participate in internal data management operations, and to satisfy client requests. More particularly, the managed file (and the previously created managed files), may be used to satisfy client requests as shown in step 616. Client requests may include many operations, such as user file delete, client retrieve, and client restore. These operations are discussed in greater detail below. A representative client request is a "user file retrieve". This operation is initiated when the subsystem 102 receives a retrieval request from a client station 106, identifying a desired user file. In response, the subsystem 102 employs the mapping table to determine the identified user file's location within its managed file. Then, referencing the identified user file's location in the managed file, the subsystem 102 obtains a copy of the identified user file from the storage hierarchy 114. Finally, the subsystem 102 provides a copy of the sought user file to the requesting client station 106. After step 616, step 618 is performed. Namely, if a client request renders the database 113 incomplete or incorrect, step 618 updates the database 113. For example, if a client request deletes a user file, step 618 deletes the user file from the inventory and mapping tables, and updates the managed file attributes table to show updated "active size" and "active files" data. After step 618, step 616 repeats to satisfy the next client request. In contrast to the client requests (step 616), new and previously created managed files may also be involved in internal data management operations (step 612). A representative example of internal data management operations is an internal managed file copy operation, which may be performed as part of various other operations, such as data migration, reclamation, storage pool backup, and storage pool restore, each discussed in greater detail below. Particularly, in an internal managed file copy operation a managed file is copied as a contiguous unit from a first location in the data storage hierarchy 114 to a second location in the data storage hierarchy 114. After step 612, step 614 is performed. Namely, if an internal data management operation renders the database 113 incomplete or incorrect, step 614 updates the database 113. For example, if a management operation consolidates a managed file, step 614 updates the storage table, mapping table, and managed file attributes table. After step 612, step 614 repeats to satisfy the next internal data management operation. Satisfying Client Requests As mentioned above, managed files may be used to satisfy various client requests, as shown in step 616 (FIG. 6). These processes are further illuminated with the following specific examples. FIG. 7 shows a broadly applicable operational sequence 700 to illustrate these examples. For ease of explanation, but without any limitation intended thereby, the sequence 700 of FIG. 7 is described in the context of FIGS. 1-6, described above. Although these operations analogously apply to managed files composed of a singly stored user file, the following discussions are aimed primarily at managed files composed of aggregated user files to illustrate some of the features and advantages of the invention. Client Archive In this operation, a client station 106 sends one or more user files for storage by the subsystem 102. As shown in FIG. 7, the interface 112 in step 704 receives a client request comprising an archive request. Also in step 704, the interface 112 receives a user file for archival. Next, in step 706 the subsystem 102 performs the requested archival action by storing the user file in the storage hierarchy 114. As discussed above, various techniques may be employed to determine where files are stored in the storage hierarchy 114/400 (FIG. 4). In step 708, the subsystem 102 determines whether receipt of the user file satisfies predetermined criteria (as discussed above). If so, the processing apparatus 108 proceeds to create a managed file, as discussed above. Specifically, step 708 enters a representation of the newly created managed file and its constituent user files in the database 113. More particularly, step 708 enters: (1) the user files in the inventory table (e.g., Table 1, shown above), (2) the managed file in the storage table (e.g., Table 2, shown above), (3) the managed files and its constituent user files in the mapping table (e.g., Table 3, shown above), and (4) the managed file in the managed file attributes table (e.g., Table 4, shown above). After step 708, the client archive operation is complete, and the routine 700 ends in step 710. Client Retrieve ("User File Retrieve") In this operation, a client station 106 requests the subsystem 102 to retrieve a user file archived on the subsystem 102. Referring to FIG. 7, the operation is initiated in step 704 when the subsystem 102 receives a retrieval request from a client station 106, identifying a desired user file. In response, the subsystem 102 in step 706 employs the mapping table to determine the identified user file's location within one of the managed files; the subsystem 102 also employs the storage table to find where the managed file is stored in the hierarchy 114. Also in step 706, the subsystem 102 obtains a copy of the identified user file from the storage hierarchy 114. Continuing in step 706, the subsystem 102 provides a copy of the requested user file to the requesting client station 106. As no action is required by step 708, the routine 700 ends in step 710. Client Delete In this operation, a client station 106 requests the subsystem 102 to delete an individual user file stored on the subsystem 102. Referring to FIG. 7, the operation begins in step 704 when the subsystem 102 receives a client delete request from a client station 106, identifying a desired user file. No action involving the requested file is performed in the storage hierarchy 114 (step 706). However, in step 708 the subsystem 102 deletes appearance of the user file from the inventory table (e.g., Table 1) and mapping table (e.g., Table 3). Following this, the data processing apparatus 108 must also access the mapping table to determine whether the recently deleted user file was the managed file's last remaining file. If so, the data processing apparatus 108 also updates the database 113 by deleting appearance of the managed file in the storage table, mapping table, and managed file attributes table. In contrast, if other user files still remain in the managed file, the data processing apparatus 108 updates the managed file attributes table (e.g., Table 4). This involves computing the active size and number of active files of the managed file affected by the deletion. The computed numbers are input into the managed file attributes table in step 708. After step 708, the client delete operation is complete, and the routine 700 ends in step 710. Despite deletion of user files from an aggregate file, the remaining (non-deleted) user files retain their same relative order. Client Backup In this operation, a client station 106 supplies data for the subsystem 102 to maintain and also manage as a "backup" copy. This is in contrast to the archive operation, in which client stations 106 generally use the subsystem 102 as a remote data storage device. With client backup, the routine 700 (FIG. 7) involves nearly the same steps as client archive operation (discussed above). However, in addition to the routine 700, the subsystem 102 conducts further operations to automatically maintain and manage multiple backup versions of data. The maintenance of such data may involve, for example, considerations such as the selection of separately fault-tolerant sections of the storage hierarchy 400 for storage of different "versions" of the data. The management of backup data may also involve, for example, automatically determining when to trigger a delete operation to remove client backup copies. This determination, for example, may be made in consideration of the data's age, version number, etc. Client Restore In this operation, a client station 106 requests the subsystem 102 to restore one or more user files from a backup copy maintained on the storage hierarchy 114. Presumably, a client station initiates a client restore operation as a result of destruction, loss, or other damage to user files. With client restore, the routine 700 (FIG. 7) involves nearly the same steps as client retrieve operation (discussed above). However, since multiple versions may exist, the subsystem 102 must automatically identify the optimal version from which to conduct restoration. As an example, the subsystem 102 may select a most recent backup version to use as a restoration source. Cache Use The subsystem 102 may include one or more cache units (not shown), preferably comprising fast-access memory such as RAM. In such implementations, one application of the cache is to expedite updates to the database 113 (e.g., step 708, FIG. 7). For example, the data processing apparatus 108 may cache a storage table entry for a managed file whenever a client requests access to any user file within that managed file. Such client access may include, for example, client delete, client retrieve, and other operations. This cache operation anticipates future operations performed upon other user files in the same managed file. A different application of the cache is to cache managed files themselves to expedite access to these files. Internal Data Management Operations In addition to their involvement in satisfying user requests, managed files may also be involved in various internal data management operations (e.g., step 612, FIG. 6). These processes are further illuminated with the following specific examples, explained with the aid of the broadly applicable operational sequence 700 (FIG. 7). For ease of explanation, but without any limitation intended thereby, the following references to FIG. 7 are described in the context of FIGS. 1-6, described above. Although these operations analogously apply to singly stored user files, the following discussions are aimed primarily at aggregate files to illustrate some of the features and advantages of the invention. Managed File Copy This operation involves copying a managed file from one location to another in the storage hierarchy 114. This operation is a necessary part of many other operations, such as migration, reclamation, storage pool backup, and storage pool restore. Advantageously, managed file copy is performed with drastically reduced file management overhead costs because many constituent user files are treated as a single aggregate file. This is possible because, in a managed file copy operation, a managed file is copied as a contiguous unit from a source location in the data storage hierarchy 114 to a second target in the data storage hierarchy 114. This operation is facilitated by the structure of the database 113, which permits treatment of the managed file as a single file. Referring to FIG. 7, a managed file copy operation 700 starts in response to various conditions (step 704), such as the need to copy files during migration, storage pool restoration, storage pool backup, etc. Accordingly, in step 706 the subsystem 102 copies the designated managed files from a source location to a target location in the storage hierarchy 114. In some cases, this copy operation may be followed by a deletion of the original managed files, thereby effecting a "move" operation. After step 706, the subsystem 102 updates the database 113 in step 708 to reflect certain new information regarding the managed files. Particularly, updates are made to the storage table to add the managed file's new storage location After step 708, the managed file copy operation is complete, and the routine 700 ends in step 710. User File Identification This operation involves identifying all constituent user files of a managed file. This operation may be performed as a subset of various operations conducted in the subsystem 102. Referring to FIG. 7, a user file identification operation 700 starts in response to an internal request from a sub-process occurring in the subsystem 102. This request submits a managed file for which identification of all constituent user files is desired. (Optionally, the request may emanate from a client station 106, however the use of managed files are invisible to the client stations 106 in the illustrated embodiment.) In step 706 the subsystem 102 performs action by accessing the database 113. In particular, the data processing apparatus 108 accesses the "managed.fwdarw.user" section of the mapping table (e.g., Table 3). Inputting the desired managed file yields all cross-referenced user files. Also in step 706, the data processing apparatus 108 provides the identified user files as an output to the requesting process. After step 706, no action is needed in step 708. Accordingly, the user file identification operation is complete, and the routine 700 ends in step 710. Managed File Move This operation involves moving an entire managed file from one location to another in the storage hierarchy 114, and updating the database 113 accordingly. This operation is a necessary part of other operations, such as migration, reclamation, etc. Advantageously, managed file move involves significantly reduced file management overhead costs, due to the treatment of all constituent user files as a single aggregate file. Referring to FIG. 7, a managed file move operation 700 may start in response to (1) receiving a request, e.g. from a sub-process being performed by the subsystem 102, or (2) detecting a condition, e.g. as a result of analysis determining when file movement is proper, such as automatic data migration (discussed below) based on criteria such as data age, level of use, etc. In step 706, the subsystem 102 copies the designated managed file from one location to another in the storage hierarchy 114. Next, the database 113 is updated to remove reference to the original location of the managed file. Particularly, updates are made to the storage table to add the managed file's new storage location and delete the old location. After step 708, the managed file move operation is complete, and the routine 700 ends in step 710. Internal Delete This operation deletes a user file in the same way that the client delete operation works, as discussed above. However, this operation starts in response to an internal subsystem 102 request rather than a client request. Managed File Delete To delete an entire managed file, each constituent user file is identified with the user file identification operation, discussed above. Then, each user file is deleted individually with a separate internal delete operation, as discussed above. Migration Referring to FIG. 4, this operation moves files from higher levels (e.g. 402, 404) to lower levels (e.g., 408, 410) in the storage hierarchy 400. Migration movement is preferably "downward" relative to FIG. 4, thereby moving files from more expensive to less expensive storage devices. In some cases, however, migration movement may be "upward" relative to FIG. 4. This may occur, for example, in response to recent, frequent, or anticipated use of the files. Referring to FIG. 7, a migration operation 700 preferably starts automatically in response to the existence of a predetermined condition (step 704). As an example, this condition may be related to the data's recency of use, frequency of use, age, etc. Step 704 identifies each managed file to be migrated. In response to the condition of step 704, subsystem 102 in step 706 copies the identified managed files from their original locations to various target locations in the storage hierarchy 114. The target locations may be selected under many different techniques, considering factors such as the size of the data, availability of potential target locations, etc. After step 706, the subsystem 102 updates the database 113 to reflect the new locations of the managed files. Particularly, updates are made to the storage table to add the managed file's new storage location and delete the old location. Since the number or relative arrangement of user files is not changed during the move, updates are not needed to the mapping table or the managed file attributes table. After step 708, the migration operation is complete, and the routine 700 ends in step 710. Reclamation This operation is automatically performed by the subsystem 102 to more compactly rewrite a unit of data storage, such as a volume, eliminating unused storage space between managed files and also consolidating aggregate files that contain unused space due to previously deleted user files. The consolidation of an aggregate file is called "reconstruction". Referring to FIG. 7, a reclamation operation starts in step 704 when the subsystem 102 detects existence of certain conditions. As an example, these conditions may include the presence of a threshold amount of wasted space among managed files in a particular data storage unit, volume, device, etc. After step 704, the subsystem 102 consolidates the inefficiently stored managed files. As shown below, this is best implemented by moving the managed files to adjacent locations in the storage hierarchy 114, and concurrently consolidating managed files containing unused space. Next, in step 708 the subsystem 102 updates the database to reflect the results of this reclamation. This update involves changes to (1) the storage table, to indicate where each new managed file is now stored; (2) the mapping table, to accurately display the new user file offsets within their managed files; and (3) the managed file attributes table, to show each managed file's new "original size" and matching "active size". After step 708, the reclamation process 700 is complete, and it ends in step 710. Despite reconfiguration of the aggregate file during reclamation, its user files always retain their same relative order. Storage Pool Backup This operation is performed by the subsystem 102, invisible to the client stations 106, to backup its own data. Each storage pool backup operation is performed for one of the "storage pools" of the storage hierarchy 114. As mentioned above, each "storage pool" preferably identifies a different group of storage devices with similar performance characteristics. For instance, referring to FIG. 4, the level 404 may be comprised of several storage pools, each pool including one or more similar DASDs. The storage pools are preferably assigned when the system 100 is originally installed or subsequently reconfigured. Referring to FIG. 7, a storage pool backup operation 700 is performed in response to various conditions (step 704). These conditions may be linked to characteristics of data stored in the pool (e.g., age, frequency of use, age of most recent backup, etc.), and serve to identify a storage pool ready for backup. Storage pool backup may also be initiated based upon a predetermined time schedule. In response to these conditions, the subsystem 102 in step 706 incrementally copies all managed files of the storage pool into a different "target" location in a completely separate storage pool of the storage hierarchy 114. After step 706, the subsystem 102 updates the database 113 to reflect the newly created backup copy. This involves updating the storage table with entry of the new backup data. Also, the backup directory table is updated to designate the devices of the target location as backup devices. After step 708, the storage pool backup operation is complete, and the routine 700 ends in step 710. Storage Pool Restore This operation is performed by the subsystem 102, invisible to the client stations 106, to restore its own data upon a failure. A storage pool restore operation is performed for a failed one of the "storage pools" of the storage hierarchy 114. As mentioned above, each "storage pool" identifies a different group of storage devices with similar performance characteristics. Referring to FIG. 7, a storage pool restore operation 700 is performed in response to various conditions (step 704). Broadly, these conditions are related to the complete or partial failure of data stored in the pool. Accordingly, these conditions also serve to identify a storage pool suitable for restoration. In response to these conditions, the subsystem 102 in step 706 identifies a backup copy of the storage pool, formed during a previous storage pool backup operation. This identification is performed using the backup directory table and storage table. Using this backup copy, the subsystem 102 copies all managed files of the backup copy into a different location in a completely separate storage pool of the storage hierarchy 114. The new files will ultimately replace the files of the original storage pool, which has failed. In particular, after step 706 the subsystem 102 updates the database 113 to reflect the newly restored copy. This is achieved by updating the storage table with entry of the restored data in place of the failed data. After step 708, the storage pool restore operation is complete, and the routine 700 ends in step 710. OTHER EMBODIMENTS While there have been shown what are presently considered to be preferred embodiments of the invention, it will be apparent to those skilled in the art that various changes and modifications can be made herein without departing from the scope of the invention as defined by the appended claims.
|
Same subclass Same class Consider this |
||||||||||
