An automated storage library is a computer data storage device capable of mounting units of storage media (e.g., disks or tape cartridges) on a drive in response to access requests from a host computer system. The diagram of FIG. 1 illustrates a typical computer configuration in which a host computer system 100 is attached to multiple storage libraries 108. The computer 100 includes buffers 106 stored in main memory or on nonvolatile secondary storage devices (e.g., fixed disks) and one or more interface controllers 104. Each controller 104 is attached to one or more data storage libraries 108 by an interface bus 110. The buffers 106 store the results of recent library access requests so that some future requests can be resolved without accessing the libraries. Some buffers 106 are also used to reorganize data as it moves between the array of libraries and the computer 100. Computer software 102 runs on the computer 100 and accepts access requests for a storage device and translates those requests into one or more access requests to a library in the system. The requests for data in a library are typically put into a queue accessible by the library, its controller, the host, or any combination of them depending on the computer configuration.
A data storage library 108 usually includes a set of removable data media, one or more storage drives capable of writing data to or reading data from the media, a storage rack for storing the media when they are not in use, and a robot picker mechanism (possibly more than one) for moving the media between the storage rack and the drives. The storage rack typically has multiple slots or cells, each holding a data medium. Each data medium may be contained in a cassette or cartridge housing for easier handling by the picker. The picker operates on command to transfer the data media between the storage slots and the storage drives without manual assistance. Once a data medium is loaded (or mounted) in a drive, data may be written to or read out from that medium for as long as the host system so requires. Libraries range in physical size from that of a room containing 1,000 or more media units to a desk top unit containing as few as 8 media units. The storage capacity of the largest library systems is in the terabyte range, while the smallest libraries may have capacities of only 1 gigabyte.
Several automated storage libraries are known. IBM Corporation introduced the 3850 Mass Storage System for the storage and retrieval of magnetic modules in the 1970's. More recently, several firms have introduced automated storage libraries for magnetic tape cartridges and optical disks. For instance, magnetic tape cartridge libraries are described in U.S. Pat. No. 4,654,727, while optical disk libraries are described in U.S. Pat. Nos. 4,614,474 and 4,766,581. The robotic picker mechanisms of these libraries include one or more grippers, each gripper capable of handling one or more storage media at a time. The '474 patent discloses a robotic picker having a single gripper, while the '727 and '581 patents disclose robotic pickers having multiple grippers.
FIG. 2 is a block diagram of a simple prior art library system 108 having a fixed storage rack 202, a fixed drive 208, and a movable picker 210. The storage rack 202 has multiple slots (or cells) 204 for storing the removable media 206 when the media are not in use, each of the slots 204 holding a medium. In FIG. 2, the rack 202 is shown as having nine slots 204, designated as slots S1 through S9. The slot S7 is empty because its medium has been moved by picker 210 to the drive 208. In an actual storage library, there may be multiple racks 202 and the number of slots 204 in each rack 202 may be much higher. The picker 210 is movable by a transport mechanism 200 for shuttling the media 206 between the storage slots 204 and the drive 208.
FIG. 3 is a flow chart showing the main tasks performed by the library 108 in servicing a host request for accessing a data medium in the library. At step 300, drive 208 unloads (or demounts) any medium 206 currently in the drive. Normally, this is the medium that was last accessed by drive 208. At step 302, picker 210 returns the unloaded medium 206 to its original slot 204 in rack 202. The picker 210 then travels to a slot in rack 202 where another medium 206, which will be accessed next by drive 208, is stored, as shown by step 304. In the library system of FIG. 2, this would be slot S7 before its medium was moved to drive 208. In step 306, the picker 210 delivers the medium from slot S7 to drive 208. Drive 208 then loads and accesses the new medium in steps 308 and 310, respectively. If another data medium is to be accessed by drive 208 after the medium from slot S7, as determined by step 312, the steps of FIG. 3 are repeated starting with step 300, where drive 208 would unload the medium currently in the drive. The unloaded medium is then returned to its original slot in rack 202, which is slot S7 in this case, according to step 302.
FIG. 4 is a time line showing a chronology of activities of the library 108 in servicing a request from the host computer 100, for accessing a data medium 206. Assuming the medium 206 has not been loaded by drive 208, the response time of the library is the sum of the time for drive 208 to unload the medium 206 currently in the drive (t1), time for picker 210 to return the unloaded medium 206 to its original slot 204 (t2), time for picker 210 to travel to a slot in rack 202 to pick up the next medium (t3), time for picker 210 to move the new medium from its slot to drive 208 (t4), time for drive 208 to load the new medium (t5), and time for drive 208 to access the media (t6).
For tape storage media, once a tape medium 206 is delivered to drive 208, it is also necessary to mount the tape cartridge, read its table-of-contents (TOC), and fast-forward the tape until the desired record on the tape is reached. These actions, which are part of the time period t5 of FIG. 4, for loading the medium 206, typically take minutes to complete. For disk storage media, the loading time is shorter because the disk media can be randomly accessed for writing data to or reading data from the disk. However, once the disk medium is delivered to drive 208, it is still necessary to spin the disk up to a desired speed, during time t5, before the disk is accessed. Similarly, during time t1 when drive 208 is unloading the medium, it is necessary to spin down the just accessed disk medium before it can be removed from drive 208. Still, the typical time a disk medium is in the drive 208 while it is being loaded, accessed, and unloaded by the drive is at least tens of seconds. In prior art library systems, the picker 210 is typically idle during this time period while waiting for the drive 208 to finish its operations on the medium. Since the picker 210 cannot start its tasks of putting away the last accessed medium and fetching the next medium until the drive 208 completes its operations, the picker idle time unnecessarily adds the total response time of the library.
Furthermore, as shown by the library of FIG. 2, the time required for the picker 210 to travel between a slot in the storage rack 202 and the drive 208 greatly depends on the location of the slot relative to the drive. It takes less time for the picker 210 to move to drive 208 from a slot physically closer to the drive 208 than one further away from the drive. For example, it would take less time for the picker 210 to move to drive 208 from slot S2 than from slot S6. Because of the typically large number of slots 204 in an actual storage rack 202, this time difference can be quite significant. Also, as illustrated by FIG. 4, the total library response time includes the time for the picker to return the previously accessed medium to its slot (t2), time to travel to the slot holding the new medium (t3), and time to deliver the new medium to the drive (t4). The response time thus heavily depends on the relative locations of the drive 208, the old media slot, and the new media slot. If these two slots are arranged such that they are physically close to each other and also close to the drive, the time components t2, t3, and t4 of FIG. 2 can be greatly minimized, thus reducing the total library response time.
In the assignee's U.S. Pat. No. 5,287,459 for "Method and Apparatus For Reducing Response Time In Automated Library Data Retrieval Systems," a method is disclosed for improving the access time in an automated storage library by creating multiple copies of data on different recording media cartridges. The original data and its copies are stored in different areas of the library, where the number of copies and their residence times depend on the usage of the original data and any copies. A library manager selects the media cartridge that can be retrieved in the shortest time based on the location of the original and the copies, the location of the requested data on each cartridge, and the availability of the drive and the picker.
This method, however, substantially reduces the storage capacity of the library because the same data is stored in numerous copies in the library, in addition to statistics on the usage of the original data and its copies. The performance of the whole computer system is also degraded due to the multiple write operations the system must perform for each data item. Furthermore, the operation of the library requires a sophisticated library manager which, among other tasks, collects usage information on each item of data such as its location in the library cartridges and the number of copies and their locations, determines the residence times of the copies, and selects the appropriate cartridge to be retrieved. The library manager thus adds significant complexity to the library system.
Another method for improving the response time in a storage library is described in the assignee's U.S. Pat. 5,197,055 for "Idle Demount In An Automated Storage Library." In this method, whenever one or more occupied storage drives of the library remain inactive for a predetermined relatively long time, their media are demounted before these drives are actually needed for the next media. Such a method of advanced media demount, however, imposes a severe performance penalty to the system since it needs to continuously monitor all the storage devices and determines whether to demount a medium based on the length of time the respective device has been idle. Also, the method does not work well if the library is busy most of the time.
In the U.S. Pat. No. 5,418,664, a storage library is described which includes a tray capable of holding multiple storage media cartridges and attached to an a robotic indexing hand of the library. The tray is used to store the media cartridges for improving the performance of the media exchange operations. Such a library, however, adds complexity to the picker design and is cumbersome in operation since the whole tray is moved together with the picker up and down the storage rack.
Still other methods have been proposed for improving the response times of storage libraries having a hierarchy of different storage devices, where the devices have different access times and capacities. For instance, data may be staged or destaged at different levels of the storage hierarchy, depending on certain predetermined criteria on the data. As an example of staging, data in a library may be prioritized based on the likelihood of being used by the host computer in the near future, wherein the data that is most likely to be requested next by the host system is moved to the level of storage devices having the shortest access time. Similarly, in the case of data destaging, the least likely used data is off-loaded to the storage level with the longest access time. An example of such methods is described in U.S. Pat. No. 4,636,946. Data staging or destaging may also be based on the age of the data, rather than the likelihood of use, such as the method described in U.S. Pat. No. 4,987,533.
The above data staging and destaging techniques, however, result in an improvement in the response time only when the libraries include several types of storage devices with significantly different access times. Furthermore, the methods typically require the constant supervision of a library manager for moving data back and forth among the various levels of the storage hierarchy, based on constantly changing parameters such as the age and usage of the data. Lastly, since the amount of data being moved in the destaging is usually larger than the amount of data processed by the host processor, the processor may be tied up during long series of destaging operations, thus degrading the performance of the whole computer system.
Therefore, there remains a need for a simple method for destaging and prestaging the library media that allows concurrent operation of the picker and the drive, and does not require a complex library management system, reduce the storage capacity of the library due to the duplication of data, or impose a performance penalty on the host computer because of storage device management tasks.