Source: http://www.google.com/patents/US5911148?dq=7,468,661
Timestamp: 2016-07-01 11:55:13
Document Index: 42602551

Matched Legal Cases: ['application No. 08', 'application No. 08', 'Application No. 08', 'Application No. 08', 'Application No. 08', 'Application No. 08']

Patent US5911148 - Automated message processing system configured for automated tape device ... - Google PatentsSearch Images Maps Play YouTube News Gmail Drive More »Sign inPatentsReplacing a human operator, an automated message processing system communicates with a data storage subsystem that includes a tape library and a storage controller. The automated message processing system receives messages from a data storage subsystem concerning the availability of tape drives in the...http://www.google.com/patents/US5911148?utm_source=gb-gplus-sharePatent US5911148 - Automated message processing system configured for automated tape device managementAdvanced Patent SearchPublication numberUS5911148 APublication typeGrantApplication numberUS 08/865,444Publication dateJun 8, 1999Filing dateMay 29, 1997Priority dateMay 29, 1997Fee statusPaidPublication number08865444, 865444, US 5911148 A, US 5911148A, US-A-5911148, US5911148 A, US5911148AInventorsMatthew Joseph Anglin, Gregory Tad KishiOriginal AssigneeInternational Business Machines CorporationExport CitationBiBTeX, EndNote, RefManPatent Citations (26), Non-Patent Citations (16), Referenced by (24), Classifications (18), Legal Events (7) External Links: USPTO, USPTO Assignment, EspacenetAutomated message processing system configured for automated tape device management
US 5911148 AAbstract
Replacing a human operator, an automated message processing system communicates with a data storage subsystem that includes a tape library and a storage controller. The automated message processing system receives messages from a data storage subsystem concerning the availability of tape drives in the tape library. Such messages are selectively routed to one of many specialized expert local facilities (ELFs) for performance of a designated function, such as generation of an appropriate output messages. The ELFs receive input messages and transmit output to the data storage subsystem in order to oversee allocation and use of data storage drives in the data storage subsystem.
1. A method of monitoring allocation of storage drives in a data storage subsystem that includes:a storage controller; a library including multiple storage drives to access removable media, said library including multiple items of said removable media and a library manager coupled to the storage controller; and an automated storage administrator coupled to the library manager and the storage controller, said automated storage administrator including:a plurality of expert local facilities (ELFs), each ELF performing predetermined actions responsive to each message routed thereto; a message director to receive input messages from the storage controller and library manager and route each of the received input messages to at least one ELF; a command generator to receive output messages from the ELFs, place the output messages into a predetermined format and dispatch the formatted output messages to a destination including at least one of the storage controller and the library manager;wherein said method comprises: allocating the drives between the storage controller and the library manager; the automated storage administrator receiving a message including a request to re-allocate the drives among the storage controller and the library manager; the message director routing the received message to a first one of the ELFs; the first ELF, in response to the routed message, performing the predetermined actions associated with the ELF, said predetermined actions including generation of an output message summarizing the requested re-allocation of the drives among the storage controller and the library manager; the command generator modifying the output message into a predetermined format to create a formatted output message; selecting a destination in the data storage subsystem from a group including: the library manager and the storage controller; and the command generator dispatching the formatted output message to the selected destination. 2. The method of claim 1, the selecting of the destination comprising:if the request to re-allocate the drives originated from the storage controller, selecting both the storage controller and the library manager as destinations. 3. The method of claim 1, the selecting of the destination comprising:if the request to re-allocate the drives originated from the library manager, selecting both the storage controller as a destination. 4. The method of claim 1, the first ELF, in response to the routed message, further:counting all drives allocated to the storage controller to yield a number; and determining whether the number of drives allocated to the storage controller exceed a predetermined number. 5. The method of claim 4, further comprising:if the number of drives allocated to the storage controller is less than a predetermined number: the first ELF generating a second output message; the command generator modifying the second output message into a predetermined format to create a formatted second output message; the command generator dispatching the formatted second output message to the storage controller; and in response to the formatted second output message, the storage controller entering a semi-dormant state by abstaining from at least one predetermined type of operation. 6. The method of claim 5, the data storage subsystem being coupled to a host, the at least one predetermined type of operation including the storage controller initiating mounting of removal media to one of the tape drives in response to requests from the host.
7. The method of claim 5, the at least one predetermined type of operations including:loading removable media into one of the tape drives for the purpose of reading data therefrom. 8. The method of claim 4, further comprising:if the number of drives allocated to the storage controller is not less than the predetermined number:the ELF generating a third output message stating the number of allocated drives; the command generator modifying the third output message into a predetermined format to create a formatted third output message; and the command generator dispatching the formatted third output message to the storage controller. 9. The method of claim 4, further comprising:if the number of drives allocated to the storage controller is not less than the predetermined number:the ELF generating a warning message cautioning the storage controller against simultaneous read operations using at least a predetermined number of drives; the command generator modifying the warning message into a predetermined format to create a formatted warning message; and the command generator dispatching the formatted warning message to the storage controller. 10. A signal-bearing medium tangibly embodying a program of machine-readable instructions executable by a digital processing apparatus to perform a method for monitoring allocation of storage drives in a data storage subsystem that includes a storage controller, a library including multiple storage drives to access removable media and multiple items of said removable media and a library manager coupled to the storage controller, and an automated storage administrator coupled to the library manager and the storage controller, said automated storage administrator including: a plurality of expert local facilities (ELFs), each ELF performing predetermined actions responsive to each messages routed thereto, a message director to receive input messages from the storage controller and library manager and route each of the received input messages to one or more ELFs, a command generator to receive output messages from the ELFs, place the output messages into a predetermined format, and dispatch the formatted output messages to a destination including at least one of the storage controller and the library manager,said method for monitoring allocation of storage drives comprising: allocating the drives between the storage controller and the library manager; the automated storage administrator receiving a message including a request to re-allocate the drives among the storage controller and the library manager; the message director routing the received message to a first one of the ELFs; the first ELF, in response to the routed message, performing the predetermined actions associated with the ELF, said predetermined actions including generation of an output message summarizing the requested re-allocation of the drives among the storage controller and the library manager; the command generator modifying the output message into a predetermined format to create a formatted output message; selecting a destination in the data storage subsystem from a group including: the library manager and the storage controller; and the command generator dispatching the formatted output message to the selected destination. 11. The medium of claim 10, the selecting of the destination comprising:if the request to re-allocate the drives originated from the storage controller, selecting both the storage controller and the library manager as destinations. 12. The medium of claim 10, the selecting of the destination comprising:if the request to re-allocate the drives originated from the library manager, selecting the storage controller as a destination. 13. The medium of claim 10, the first ELF, in response to the routed message, further:counting all drives allocated to the storage controller to yield a number; and determining whether the number of drives allocated to the storage controller exceed a predetermined number. 14. The medium of claim 13, further comprising:if the number of drives allocated to the storage controller is less than a predetermined number:the first ELF generating a second output message; the command generator modifying the second output message into a predetermined format to create a formatted second output message; the command generator dispatching the formatted second output message to the storage controller; and in response to the formatted second output message, the storage controller entering a semi-dormant state by abstaining from at least one predetermined type of operation. 15. The medium of claim 14, the at least one predetermined type of operations including:loading removable media into one of the tape drives for the purpose of reading data therefrom. 16. The medium of claim 13, further comprising:if the number of drives allocated to the storage controller is not less than the predetermined number:the ELF generating a third output message stating the number of allocated drives; the command generator modifying the third output message into a predetermined format to create a formatted third output message; and the command generator dispatching the formatted third output message to the storage controller. 17. The medium of claim 13, further comprising:if the number of drives allocated to the storage controller is not less than the predetermined number:the ELF generating an output message generating a warning message cautioning the storage controller against simultaneous read operations using at least a predetermined number of drives; the command generator modifying the warning message into a predetermined format to create a formatted warning message; and the command generator dispatching the formatted warning message to the storage controller. 18. An automated storage administration apparatus for monitoring allocation of removable media drives in a data storage subsystem that includes a storage controller, a library including multiple storage drives to access removable media and multiple items of said removable media and a library manager coupled to the storage controller, said drives being allocated between the storage controller and the library manager, said automated storage admininstration apparatus comprising:a message director, programmed to receive a request to re-allocate the drives among the storage controller and library manager and to route the received message to a first one of a plurality of expert local facilities (ELFs); the plurality of ELFs, each programmed to perform predetermined actions in response to each message routed thereto, the first ELF programmed to generate an output message summarizing the requested re-allocation of the drives among the storage controller and the library manager; and a command generator programmed to receive the output message from the first ELF means, place the output message in a predetermined format, and dispatch the formatted output message to a destination including at least one of the storage controller and the library manager. 19. The apparatus of claim 18, the command generator being further programmed to select a destination in the data storage subsystem from a group including: the library manager and the storage controller.
20. The apparatus of claim 19, the command generator being programmed such that selection of the destination comprises:if the request to re-allocate the drives originated from the storage controller, selecting the storage controller and the library manager as destinations. 21. The apparatus of claim 18, the command generator being programmed such that selection of the destination comprises:if the request re-allocate the drives originated from the library manager, selecting the storage controller as a destination. 22. The apparatus of claim 18, the first ELF being further programmed to, in response to the routed message, further:count all drives allocated to the storage controller to yield a number; and determine whether the number of drives allocated to the storage controller exceed a predetermined number. 23. The apparatus of claim 22, the apparatus being programmed such that the process further comprises:if the number of drives allocated to the storage controller is not less than the predetermined number: the ELF generating a third output message stating the number of allocated drives; the command generator modifying the third output message into a predetermined format to create a formatted third output message; and the command generator dispatching the formatted output message to the storage controller. 24. The apparatus of claim 22, the processing apparatus being programmed such that the process further comprises:if the number of drives allocated to the storage controller is not less than the predetermined number:the ELF generating a warning message cautioning the storage controller against simultaneous read operations using at least a predetermined number of drives; the command generator modifying the warning message into a predetermined format to create a formatted warning message; and the command generator dispatching the formatted warning message to the storage controller. 25. An automated storage administration apparatus for monitoring allocation of removable media drives in a data storage subsystem that includes a storage controller, a library including multiple storage drives to access removable media and multiple items of said removable media and a library manager coupled to the storage controller, said drives being allocated between the storage controller and the library manager, said automated storage administration apparatus comprising:a message directing means for receiving a request to re-allocate the drives among the storage controller and library manager and for routing the received message to a first one of a plurality of expert local facility (ELF) means; the plurality of ELF means each for performing predetermined actions in response to each message routed thereto, the first ELF means for generating an output message summarizing the requested re-allocation of the drives among the storage controller and the library manager; and a command generating means for receiving the output message from the first ELF means, placing the output message in a predetermined format, and dispatching the formatted output message to a destination including at least one of the storage controller and the library manager. 26. A data storage subsystem, comprising:a data storage facility, comprising:a storage controller; and a library including multiple storage drives to access removable media and multiple items of said removable media and a library manager coupled to the storage controller; and an automated storage administrator coupled to the library manager and the storage controller, to monitor allocation of removable media drives in the data storage facility, the automated storage administrator comprising:a message director, programmed to receive a request to re-allocate the drives among the storage controller and library manager and to route the received message to a first one of a plurality of expert local facilities (ELFs); the plurality of ELFs, each programmed to perform predetermined actions in response to each message routed thereto, the first ELF programmed to generate an output message summarizing the requested re-allocation of the drives among the storage controller and the library manager; and a command generator programmed to receive the output message from the first ELF means, place the output message in a predetermined format, and dispatch the formatted output message to a destination including at least one of the storage controller and the library manager. 27. The data storage subsystem of claim 26, the storage drives comprise magnetic data storage tape drives.
28. The data storage subsystem of claim 26, the storage drives comprising magnetic data storage disk drives.
29. The data storage subsystem of claim 26, the data storage facility comprising a virtual tape server.
The present invention relates to a system that processes and responds to messages generated by a digital data processing machine. More particularly, the invention concerns an apparatus, article of manufacture, and method for receiving both immediate-response and delayed-response messages from a data storage subsystem, selectively routing the messages to specialized expert local facilities (ELFs), performing designated functions at the ELFs, generating an appropriate output message, and transmitting the output message to the data storage subsystem. According to the invention, these messages concern the management of data storage devices such as tape drives in the data storage subsystem.
As a further example, one particularly important yet difficult operator task involves reconciling tape drive availability in a mass storage system. Many mass storage systems include tape libraries supervised by a library manager that oversees a plurality of tape media and along with multiple tape drives. Frequently, the tape library is managed by a storage controller. The human operator must ensure that the storage controller and tape library both accurately monitor tape drive availability in the tape library. This may be achieved, for example, by sending update messages to the storage controller and tape library, as needed. If a disagreement occurs between storage controller and tape library accounting of the drives' availability, there may be an improper attempt to allocate an already-busy tape drive.
Without careful tracking, the accounting of which drives are busy can differ between the storage controller and the library manager. This can easily occur, since no central authority renders a tape drive "available" or "unavailable" in some systems. A drive can become occupied, or free up, due to actions of the library manager, the storage controller, or even a service technician.
Another important reason to accurately track the number of available drives involves cache management. In some systems, data read from tape at tape drives is read into a cache to expedite access to the data. If all tape drives are reading simultaneously, with none writing, the cache may quickly fill, ultimately overflowing and causing an error. Therefore, it may be desirable to reserve one or more tape drives for writing data out from the cache. The benefits of such tape drive management underscore the need to accurately track tape drive availability, both in the storage controller and also in the library manager. However, as discussed previously, the use of a human operator has a number of limitations.
Broadly, the present invention concerns an automated message processing system for communicating with a data storage subsystem. In short, the automated message processing system receives messages from a data storage subsystem concerning the availability of tape drives in a tape library of the data storage subsystem. These messages are selectively routed to one of many specialized ELFs for performance of a designated function, such as the generation of an appropriate output message for subsequent transmission to the data storage subsystem. The ELFs receive input messages and transmit output messages for the purpose of overseeing allocation and use of data storage drives in the data storage subsystem. The automated message processing system of the invention may be implemented, for example, by programming a computer.
As a more detailed example, the automated message processing system includes a sorting and transmitting administrator (SANTA) coupled to the data storage subsystem to receive messages therefrom. The SANTA selectively routes each message to one of a plurality of expert local facilities (ELFs) according to the content of the received message. The messages include, for example, immediate-response messages and delayed-response messages. The SANTA includes a command response unit coupled to the data storage subsystem, which receives immediate-response messages from the data storage subsystem and routes each immediate-response message to an appropriate one of the ELFs in response to routing criteria received at a routing input. The SANTA also includes a message console coupled to the data storage subsystem to receive delayed-response messages and route all delayed-response messages to a predetermined one of the ELFs.
Each of the plurality of ELFs includes one or more inputs each coupled to the command response unit, the message console, or an activating source such as a timer, an external source, or another ELF. Each ELF "activates" in response to signals, "stimuli" responsively performing certain predetermined functions. These functions include generating an output message, and may also include processing of messages received from the SANTA.
In one embodiment, the invention may be implemented to provide a method for communicating with a data storage subsystem. In contrast, another embodiment of the invention may be implemented to provide an apparatus such as an automated message processing system. In still another embodiment, the invention may be implemented to provide a signal-bearing media tangibly embodying a program of machine-readable instructions executable by a digital data processing apparatus to perform method steps for communicating with a data storage subsystem.
The invention affords its users with a number of distinct advantages. Chiefly, the invention facilitates automated processing of messages generated by a data storage subsystem, in replacement of a human operator, in order to manage and track tape devices of the storage subsystem. Thus, the invention is especially advantageous because it avoids the cost of paying a highly trained person to monitor the data storage system, avoids the possibility of human errors, and guarantees nonstop mechanized supervision of the system. The invention also provides a number of other advantages and benefits, which should be apparent from the following description of the invention.
FIG. 4 is an exemplary signal-bearing medium according to the invention.
FIG. 6A-6C comprise a flowchart depicting an illustrative operational sequence for tape device management according to the invention.
The system 100 includes a SANTA 106, which is coupled to the ELFs 104, the data storage subsystem 102, and a command generator 108. The SANTA 106, which may also be referred to as a "message director", includes a command response unit 110 and a message console 112. In the illustrated embodiment, the command response unit 110 and message console 112 are coupled multiple ELFs 104. Generally, the SANTA 106 orchestrates forwarding of messages received from the data storage subsystem 102 to the appropriate one of the ELFs 104.
"Delayed-response" messages are also received by a processor in response to an output of that processor, however, the processor does not wait for that message after sending the original output. In the illustrated example, the command generator 108 sends a message to the data storage subsystem 102, then proceeds to other operations. At some later time, the SANTA 106 eventually receives the delayed-response message. In the mean time, the command generator 108 has been performing other tasks.
Each ELF includes one or more inputs for receiving messages and stimuli. Each input is coupled to the command response unit 110, the message console 112, a timer, or an external source. For example, in the case of the ELF 116, a first input 116a is coupled to a timer 124, a second input 116b is coupled to an external source 126, a third input 116d is coupled to the message console 112, and a fourth input 116d is coupled to the command response unit 110. The external source 126 may comprise a component external to the system 100, or even another ELF.
In an alternative embodiment, the SANTA 106 may be coupled to one or more external sources, permitting the ELFs to additionally receive external stimuli via the SANTA 106 rather than a directly coupled external source such as 126.
In addition to the ELFs 104, the command generator 108 is also coupled to the routing input 114 of the command response unit 110. The command generator 108 generates routing criteria specifying one or more ELFs 104 for the command response unit 110 to route each immediate-response message received by the unit 110 from the data storage subsystem 102. The command generator 108 forwards the routing criteria to the command response unit 110.
Despite the specific foregoing description, ordinarily skilled artisans (having the benefit of this disclosure) will recognize that the system 100 may be still implemented in a computer of different construction, without departing from the scope of the invention. As a specific example, one of the storage units 204/206 may be eliminated; furthermore, the processing unit 202 may be provided with on-board storage, even though the storage unit 203 is shown separate from the processing unit 202. Moreover, some or all of the components 202/204/206 may be shared by other hardware devices (not shown), such as the data storage subsystem 102 itself.
As one particularly useful application of the system 100, the system 100 may be used in the data storage subsystem 300 (FIG. 3), serving as an automated system administrator, in substitution for a human storage administrator. The subsystem 300 includes one or more hosts 302, a storage interface 304, and an automated tape library 308. Optionally, for reasons explained below, the subsystem 300 may also include a cache 306. In the illustrated embodiment, the automated message processing system 100 is implemented within a storage interface 304, where it is coupled to a storage controller 310 and the tape library 308.
The automated tape library 308 is an apparatus that manages the storage, loading, unloading, movement, writing, and reading of tape cartridges ("tapes"), such as the tape 324. The tapes 324 are stored in bins 320. A picker 322, such as robotic arm, selectively collects tapes 324 from an input facility 316, carries tapes to an output facility 318, and exchanges tapes as required with tape drives 326. The input facility 316, for example, may include one or more tape storage slots along with a batch loading mechanism (not shown) for receiving tapes from an operator. Similarly, the output facility 318 may include one or more tape storage slots along with a batch output mechanism (not shown) for transferring tapes from the library 308 to an operator.
In an exemplary implementation, the hosts 302 may be embodied by a variety of types and numbers of units, such as: mainframe or personal computers; workstations; user consoles such as keyboards, terminals, or other input devices; application programs; etc. Also as an example, the storage interface 304 may be implemented by executing appropriate software programming with a processing unit such as an IBM model RS6000 RISC microprocessor. The storage interface 304 and cache 306 may be embodied, for example, in an IBM model 3494 B16 virtual tape server. In one exemplary embodiment, the automated tape library 308 may comprise an IBM model 3494 tape library.
Additional information about VTSs, some of which are well known in the art, is provided by the following references: (1) U.S. Pat. No. 4,467,421, entitled "Virtual Storage System & Methods", issued Aug. 21, 1984, (2) U.S. patent application No. 08/707,891, entitled "Virtual Integrated Cartridge Loader for Virtual Tape Storage System", filed on Sep. 10, 1996 in the names of Carlson et al, and (3) U.S. patent application No. 08/778,118, entitled "Outboard Data Migration in a Volume Stacking Library", filed on Jan. 2, 1997, in the name of J. W. Peake. The contents of the foregoing references are incorporated by reference.
Initiating stimulus may be received at any of the inputs 116a-116d. Thus, the stimulus may comprise a timing event received from the timer 124, a signal from the external source 126, or a message from the data storage subsystem forwarded via the message console 112. Initiating stimuli may also be received from another ELF, in various ways. For instance, a second ELF may generate an initiating message and transmit back around to the first ELF, via the command generator 108, machine data storage subsystem 102, and SANTA 106. Or, the second ELF may constitute an external source (such as 126), in which case the second ELF sends the stimulus directly to the first ELF.
If step 514 expects a delayed-response message, however, step 516 waits until the expected delayed-response message is actually received. Then, after step 516, the message console 112 in step 518 routes the delayed-response message to an appropriate one of the ELFs 104. This routing is performed based on the content of the message. Following step 518, the ELF receiving the message takes appropriate action in step 520. Step 520 may involve doing nothing, performing a computation, invoking another process, or any other appropriate action. Furthermore, step 520 may involve generating another message, in which case, control is effectively returned to step 506.
As one particular application, the data storage subsystem 102 may be provided by the storage interface 304 and the automated tape library 308, as mentioned above. In this example, the messages received by the SANTA 106 comprise ASCII messages normally sent by an IBM model 3494 B16 Virtual Tape Server (the storage interface 304) or an IBM model 3494 Tape Library (the tape library 308) to a human system administrator. Some examples of these messages are shown in Table 1, where "NNNN" represents a numerical code.
TABLE 1______________________________________ANSNNNN STORAGE POOL UPDATEDBACKGROUND PROCESS NNNN STARTEDBACKGROUND PROCESS NNNN FAILEDBACKGROUND PROCESS NNNN SUCCEEDEDANSNNNN DEVICE CLASS UPDATED______________________________________
In response to the stimulus, the ELF 116 in step 506 generates an output message such as "UPDATE STORAGE POOL RECLAMATION=90%". The command generator 108 sends the message to the storage controller 310 in step 508. Then, in step 510, the SANTA 106 receives an immediate-response message from the storage controller 310. In this example, the immediate-response message may be "ANSNNNN STORAGE POOL UPDATED", where "NNNN" refers to a message number from the data storage subsystem 300. This being an immediate-response message, the command response unit 110 in step 512 routes the received message to the appropriate ELF, preferably the same ELF 116 that originated the procedure in step 506.
In another example, one or more ELFs may be implemented to perform a media volume check-in function, which receives a new tape into the library 308. In this embodiment, the ELF 116 in step 504 detects a stimulus comprising a message from an external source 126, which in this case is another ELF. This stimulus is received on the input 116b of the ELF. In this example, the source 126 issues a "CHECK-IN LIBRARY VOLUME NNNN AS SCRATCH" message, which asks the system 100 to introduce a new volume of media into the data storage subsystem 300.
As still another example, one or more ELFs may be specifically implemented to assist with management of the tape drives 326. This function may be implemented using multiple ELFs, where each ELF contributes toward the overall job, or by using a single ELF. For ease of explanation, the illustrated example references a single ELF 116, called the "drive availability ELF". The presently described tape management function is carried out using the general model illustrated by the sequence 500 (FIG. 5). However, the tape management function involves many different messages, and thus -multiple passes through the routine 500. Therefore, a more comprehensive explanation is made using FIGS. 6A-6C, which illustrate a routine 600 involving multiple passes through the sequence 500. To fully explain the features of the routine 600, the following description refers to the data storage subsystem 300 (FIG. 3) as an example, although other systems (not shown) may be used instead.
In the subsystem 300, the tape drives 326 are "allocated" to the storage controller 310 or the library manager 314. Ordinarily skilled artisans (having the benefit of this disclosure) will recognize that, in an alternative embodiment, the tape drives 326 may also be allocated to another component or process without departing from the scope of the invention. Tape drives are allocated to the storage controller 310 for various procedures, such as: (1) Recall, where data is staged from tape to the cache 306 under direction of the storage controller 310, (2) Reclamation, where the storage controller 310 oversees a tape-to-tape transfer using two (or more) tape drives 326, (3) Retry, where a read or write operation fails at one tape drive 326 and is subsequently reattempted on a different one of the tape drives 326, and (4) Migration, where data is moved from the cache 306 onto tape. In the illustrated embodiment, all data transfers involving the cache 306 are managed by the storage controller 310. The library manager, on the other hand, manages operations local to the library 308, including any data exchanges between the tape drives 326 and components other than the cache 306 and storage interface 304.
After the routine 600 begins in step 602, the drive availability ELF 116 in step 604 detects a stimulus comprising a request to change allocation of the tape drives 326. This is done by "adding" or "deleting" drives to drive status lists separately maintained by the storage controller 310 and the library manager 314. If a formerly busy drive is freed up, it is desirable to "add" the drive to both drive status lists, marking its availability. Conversely, if a free drive is allocated for a data exchange with a tape, the drive is optimally deleted from both drive status lists. The present routing 600, among other things, helps ensure that the drive availability lists of the storage controller 310 and library manager 314 are both kept current, preventing errors that would otherwise result from an inconsistency.
The stimulus message may comprise, for example, a known drive availability request including a drive identifier, the new status for the drive (e.g., unavailable/available), a requesting source ID, and various other information. The stimulus may originate from a number of different sources, arriving at the ELF 116 in a number of different ways. In the particular arrangement shown in the example of FIG. 3, the stimulus may originate from the storage controller 310 or library manager 314, arriving through the SANTA 106. Or, the stimulus may originate from a service technician (not shown), who communicates with the ELF 116 using a service console (not shown) that constituting an external source 126. The stimulus may also originate with another one of the ELFs 104, ultimately being conveyed to the ELF 116 via the command generator 108, subsystem data storage subsystem 102, and SANTA 106, or alternatively being conveyed to the ELF 116 directly via an inter-ELF connection (not shown).
If the stimulus is received from the storage controller 310, path 606 is taken, leading to steps 610-624. Otherwise, path 608 is taken, leading to steps 626-632.
B. Stimulus from Storage Controller
In step 610, the ELF 116 responds to the stimulus by generating an output message advising the storage controller 310 to add/delete the requested drive in its drive status-list. An exemplary add request, for example, may be: "DEFINE DRIVE 1 DEVICE=/dev/rmto."In step 612, the command generator 108 formats and sends the message to the storage controller 310. Next, in step 614 the command response unit 110 receives an immediate-response message from the storage controller 310, confirming receipt of the message sent in step 612. An example of this message is "ANRNNNN DRIVE DRIVE 1 DEFINED IN LIBRARY". The command response unit 110 routes this message to the drive availability ELF 116 in step 616.
Recognizing that no delayed-response message is expected, the drive availability ELF 116 proceeds to take appropriate action in step 618. In particular, the ELF 116 in step 618 generates a message instructing the library manager 314 to add/delete the requested drive in its drive status-list. This message, as an example, may comprise an encoded binary data structure including embedded instruction and parameter codes. In step 620, the command generator 108 formats and sends the message to the library manager 314. Next, in step 622 the command response unit 110 receives an immediate-response message from the library manager 314, confirming receipt of the message sent in step 620. This message, as an example, may comprise an encoded binary data structure. The command response unit 110 routes this message to the drive availability ELF 116 in step 624.
Thus, steps 610-624 advantageously ensure that drive status lists are updated in both the storage controller 310 and the library manager 314.
C. Stimuli From Other Sources
Instead of steps 610-624, steps 626-632 are performed if the stimulus originates from a different source, such as the library manager 314 or a service technician working on the library 308. Steps 626-632 repeat steps 610-616, omitting steps 618-624. This is appropriate due to the source of the add/delete drive request.
Namely, in the illustrated example, it is unnecessary to advise the library manager 314 of the added or deleted drive because the library manager 314 of the IBM model 3494 tape library maintains accurate records of the allocation of the drives 326. Similarly, with add/delete requests originating from a service technician, it is desirable for library manager 314 continue to operate normally to enable proper testing and full operation of the drives 326. Thus, the library manager 314 is not advised of the added or deleted drive, fooling the library manager 314 into operating normally while the service technician tests or repairs the library using the added or deleted drive. Accordingly, with add/delete requests coming from a service technician, the modified sequence 626-632 is performed, omitting steps corresponding to steps 618-624.
Ordinarily skilled artisans, however, will recognize other schemes for informing different components of add/delete requests, in contrast to the specific example given in FIG. 6. For example, even in response to add/delete requests from the library manager 314, the entire sequence 610-624 may be performed if desired. Or, add/delete requests from the storage controller 310 may result in steps 616-624, skipping steps 610-614, if the storage controller 310 accurately maintains its own records of drive allocation.
D. Assess Current Drive Allocation
After step 624 or step 632, recognizing that no delayed-response message is expected, the drive availability ELF 116 proceeds to take appropriate action in step 634. Since the storage controller 310 and library manager 314 have been informed of the drive availability change, the ELF 116 proceeds to determine whether the current allocation is acceptable or not for the storage controller 310. This is critical because, as explained below, certain drive allocation schemes are disruptive to normal operations of the storage controller 310, which supervises data exchanges involving the cache 306. One disruptive condition may occur when the storage controller 310 uses too many drives 326 to read data into the cache 306, with too few drives 326 being used to store and thereby remove data from the cache 306. This may result in a disruptive cache overrun condition. This condition could be avoided by having more drives available to the storage controller 310 for migration of data from the cache 306 to tape. Another problematic situation occurs when only one tape drive is available, preventing the storage controller 310 from performing a Reclamation operation, which necessarily requires at least two drives. Similarly disruptive is a Retry operation, stalled when a failed operation cannot be carried out on a different drive because no other drives are available. Therefore, a number of error-prone conditions can arise when there are too few drives allocated to the storage controller 310.
Accordingly, in step 634, the ELF 116 counts the drives allocated to the storage controller 310. This can be achieved by accessing the storage controller's drive status list. Next, step 636 compares the number of allocated drives to a predetermined desired threshold of allocated drives. Preferably, this threshold is set empirically, based on the total number of drives and other characteristics of the subsystem 300. If the number of drives allocated to the storage controller falls short of the threshold, the ELF 116 generates a message instructing appropriate components of the subsystem 300 to enter semi-dormant state, preventing any new tape cartridge mounts in response to requests by the host 302. As an example, this message may comprise an encoded binary data structure including embedded instruction and parameter codes. In step 655, the command generator 108 formats and sends the message to the designated components of the storage subsystem 300. Next, in step 657, the command response unit 110 receives an immediate-response message from these affected components of the subsystem 300, confirming receipt of the message sent in step 655. This message, like the message of step 653, may comprise an encoded binary data structure including appropriate embedded instruction and parameter codes. The command response unit 110 routes this message to the drive availability ELF 116 in step 659.
In step 654, the affected components of the subsystem 300 enter a semi-dormant state. In the illustrated embodiment, these components include the storage controller 310 along with the library manager 314. However, either of these components may enter the semi-dormant states separately, if desired. In this state, as illustrated, the storage controller 310 and library manager 314 prevent new tape cartridge mounts in response to requests by the host 302. Thus, no data is permitted to be read into the cache 306 from tape in response to any new host requests. Operations already in progress, however, are preferably carried out. Also, any ongoing or future data migration operations are permitted, to help ease congestion of the cache 306. The semi-dormant state prevents the cache 306 from overrunning, and also helps avoid failed Retry and Reclamation operations. After step 654, the tape management routine 600 is finished, and control returns to step 604.
On the other hand, if the number of allocated drives meets or exceeds the threshold, control advances to step 638, where the ELF 116 generates a message informing the storage controller 310 of the number of tape drives allocated thereto. An example of this message is "UPDATE DEVCLASS MOUNTLIMIT=NN". In step 640, the command generator 108 formats and sends the message to the storage controller 310. Next, in step 642 the command response unit 110 receives an immediate-response message from the storage controller 310, confirming receipt of the message sent in step 640. An example of this message is "ANRNNNN DEVICE CLASS UPDATED". The command response unit 110 routes this message to the drive availability ELF 116 in step 644.
Next, the ELF 116 in step 646 generates a command message, advising the storage controller 310 not to use more than a selected number of drives simultaneously. Preferably, this selected number equals the number of available drives minus N, where N is an empirically-determined integer such as one or two. As an example, if ten drives are available and N is preset to one, the command message of step 646 warns the storage controller not to use more than nine (i.e., ten minus one) drives simultaneously. An example of this message is "DYNOSET 9", which constitutes a system call to the storage controller 310. This prevents overrunning the cache 306. In step 648, the command generator 108 formats and sends the message to the storage controller 310. Next, in step 650 the command response unit 110 receives an immediate-response message from the storage controller 310, confirming receipt of the message sent in step 648. In the present example, where the message of step 646 is a system call, the immediate-response message of step 650 is a return code. The command response unit 110 routes this message to the drive availability ELF 116 in step 652. After step 652, the tape management routine 600 is finished, and control returns to step 604.
Patent CitationsCited PatentFiling datePublication dateApplicantTitleUS4467421 *Jun 2, 1982Aug 21, 1984Storage Technology CorporationVirtual storage system and methodUS4638424 *Jan 12, 1984Jan 20, 1987International Business Machines CorporationManaging data storage devices connected to a digital computerUS4755928 *Mar 5, 1984Jul 5, 1988Storage Technology CorporationOutboard back-up and recovery system with transfer of randomly accessible data sets between cache and host and cache and tape simultaneouslyUS4769782 *Jul 20, 1983Sep 6, 1988Hitachi, Ltd.Automatic system for prioritized selection of a magnetic tape device from a group of tape devices based on the not-busy status and the dynamic status of the drive mechanismUS5088026 *Feb 9, 1990Feb 11, 1992International Business Machines CorporationMethod for managing a data cache using virtual external storage addresses as argumentsUS5121483 *May 21, 1990Jun 9, 1992International Business Machines CorporationVirtual drives in an automated storage libraryUS5129076 *Mar 20, 1989Jul 7, 1992International Business Machines CorporationOptical disk library control system providing an enhanced initialization techniqueUS5155835 *Nov 19, 1990Oct 13, 1992Storage Technology CorporationMultilevel, hierarchical, dynamically mapped data storage subsystemUS5247638 *Jun 18, 1990Sep 21, 1993Storage Technology CorporationApparatus for compressing data in a dynamically mapped virtual data storage subsystemUS5287459 *Oct 3, 1991Feb 15, 1994International Business Machines CorporationMethod and apparatus for reducing response time in automated library data retrieval systemsUS5386545 *Sep 25, 1992Jan 31, 1995Archive CorporationTarget management method for data backup to a shared transfer station, multiple media element deviceUS5408630 *Aug 20, 1993Apr 18, 1995Iii G.I. Ltd.Three-state virtual volume system for managing document storage to permanent mediaUS5410697 *Oct 6, 1993Apr 25, 1995International Business Machines CorporationConcurrency management using version identification of shared data as a supplement to use of locksUS5418971 *Apr 20, 1992May 23, 1995International Business Machines CorporationSystem and method for ordering commands in an automatic volume placement libraryUS5491810 *Mar 1, 1994Feb 13, 1996International Business Machines CorporationMethod and system for automated data storage system space allocation utilizing prioritized data set parametersUS5513336 *Dec 12, 1994Apr 30, 1996Emc CorporationSystem and method for determining when and what position in cache memory to store data elements utilizing least and last accessed data replacement methodUS5519844 *Mar 21, 1994May 21, 1996Emc CorporationLogical partitioning of a redundant array storage systemUS5537568 *Dec 12, 1994Jul 16, 1996Emc CorporationSystem for dynamically controlling cache manager maintaining cache index and controlling sequential data accessUS5546557 *Jun 14, 1993Aug 13, 1996International Business Machines CorporationSystem for storing and managing plural logical volumes in each of several physical volumes including automatically creating logical volumes in peripheral data storage subsystemUS5566348 *Oct 22, 1995Oct 15, 1996International Business Machines CorporationSystem for adaptively optimizing automated optical library managementUS5584008 *Sep 11, 1992Dec 10, 1996Hitachi, Ltd.External storage unit comprising active and inactive storage wherein data is stored in an active storage if in use and archived to an inactive storage when not accessed in predetermined time by the host processorUS5598528 *Oct 19, 1994Jan 28, 1997Fujitsu LimitedChecking for proper locations of storage device in a storage device arrayUS5613154 *Dec 20, 1994Mar 18, 1997International Business Machines CorporationSystem and method for management of transient data storage mediums in an automated data storage libraryUS5659440 *Mar 14, 1995Aug 19, 1997International Business Machines CorporationData cartridge magazine with interface to automatic cartridge accessing devicesUS5675736 *Jul 24, 1996Oct 7, 1997International Business Machines CorporationMulti-node network with internode switching performed within processor nodes, each node separately processing data and control messagesUS5809511 *Jan 2, 1997Sep 15, 1998International Business Machines CorporationOutboard data migration in a volume stacking library* Cited by examinerNon-Patent CitationsReference1"Automatic Cartridge Facility Usage in a 3495 Library", IBM Technical Disclosure Bulletin, vol. 39, No. 10, Oct. 1996, pp. 55-56.2"Logical Grouping of Data Storage Media in a Library System", IBM Technical Disclosure Bulletin, vol. 35, No. 5, Oct. 1992, pp. 17-20.3"Multitasking Volume Backup in a Space Management Program", T.W. Beglin, IBM Technical Disclosure Bulletin, vol. 24, No. 5, Oct. 1981, pp. 2418-2419.4"Requesting Operator to Preload Integrated Cartridge Loader in Managed Manual Mode Library", IBM Technical Disclosure Bulletin, vol. 39, No. 04, Apr. 1996, p. 271.5"Scratch Tape Drive Allocation Algorithm for Multiple Tape Libraries", IBM Technical Disclosure Bulletin, vol. 36, No. 11, Nov. 1993, pp. 249-251.6 *Automatic Cartridge Facility Usage in a 3495 Library , IBM Technical Disclosure Bulletin, vol. 39, No. 10, Oct. 1996, pp. 55 56.7IBM Technical Disclosure Bulletin, vol. 37, No. 06A, Jun. 1994, "High Capacity DASD Dual-Copy Secondary to Multiple 3390 Primary Devices", pp. 493-497.8 *IBM Technical Disclosure Bulletin, vol. 37, No. 06A, Jun. 1994, High Capacity DASD Dual Copy Secondary to Multiple 3390 Primary Devices , pp. 493 497.9 *Logical Grouping of Data Storage Media in a Library System , IBM Technical Disclosure Bulletin, vol. 35, No. 5, Oct. 1992, pp. 17 20.10 *Multitasking Volume Backup in a Space Management Program , T.W. Beglin, IBM Technical Disclosure Bulletin, vol. 24, No. 5, Oct. 1981, pp. 2418 2419.11 *Requesting Operator to Preload Integrated Cartridge Loader in Managed Manual Mode Library , IBM Technical Disclosure Bulletin, vol. 39, No. 04, Apr. 1996, p. 271.12 *Scratch Tape Drive Allocation Algorithm for Multiple Tape Libraries , IBM Technical Disclosure Bulletin, vol. 36, No. 11, Nov. 1993, pp. 249 251.13U.S. Patent Application No. 08/707,891, Filed Sep. 10, 1996, entitled "Virtual Integrated Cartridge Loader for Virtual Tape Storage System", in the names of Carlson et al.14 *U.S. Patent Application No. 08/707,891, Filed Sep. 10, 1996, entitled Virtual Integrated Cartridge Loader for Virtual Tape Storage System , in the names of Carlson et al.15U.S. Patent Application No. 08/778,118, Filed Jan. 2, 1997, entitled "Outboard Data Migration in a Volume Stacking Library", in the names of J. W. Peake et al.16 *U.S. Patent Application No. 08/778,118, Filed Jan. 2, 1997, entitled Outboard Data Migration in a Volume Stacking Library , in the names of J. W. Peake et al.* Cited by examinerReferenced byCiting PatentFiling datePublication dateApplicantTitleUS6026468 *Jan 26, 1998Feb 15, 2000Fujitsu LimitedMethod of controlling magnetic tape unitUS6041329 *May 29, 1997Mar 21, 2000International Business Machines CorporationAutomated message processing system configured to automatically manage introduction of removable data storage media into media libraryUS6085123 *Apr 1, 1998Jul 4, 2000International Business Machines CorporationPass through and load/unload for automated data storage librariesUS6105037 *Dec 12, 1997Aug 15, 2000International Business Machines CorporationApparatus for performing automated reconcile control in a virtual tape systemUS6269423 *May 13, 1998Jul 31, 2001International Business Machines CorporationMethod and apparatus for providing improved caching for a virtual tape serverUS6339778Mar 24, 2000Jan 15, 2002International Business Machines CorporationMethod and article for apparatus for performing automated reconcile control in a virtual tape systemUS6502165Dec 3, 1999Dec 31, 2002International Business Machines CorporationBalanced access to data volumes with redundant copies stored in data storage librariesUS6513074Jan 6, 2000Jan 28, 2003International Business Machines CorporationSCSI bus intelligent listening device and methodUS6848037 *Aug 27, 2002Jan 25, 2005International Business Machines CorporationData processing arrangement and methodUS7047286 *Jun 13, 2002May 16, 2006International Business Machines CorporationMethod of modifying a logical library configuration from a remote management applicationUS7418562Aug 29, 2002Aug 26, 2008International Business Machines CorporationApparatus and method to assign one or more storage construct names to a logical volumeUS7779110 *Jul 10, 2008Aug 17, 2010International Business Machines CorporationApparatus, system, and method for communicating control messages between a first device and a second deviceUS7877544 *Aug 20, 2007Jan 25, 2011International Business Machines CorporationStoring redundant segments and parity information for segmented logical volumesUS7975100 *Aug 20, 2007Jul 5, 2011International Business Machines CorporationSegmentation of logical volumes and movement of selected segments when a cache storage is unable to store all segments of a logical volumeUS8055839Aug 20, 2007Nov 8, 2011International Business Machines CorporationMaintaining reserved free space at the end of a physical volume for creating new segments of segmented logical volumes in the reserved free spaceUS8255738Aug 28, 2012International Business Machines CorporationRecovery from medium error on tape on which data and metadata are to be stored by using medium to medium data copyUS8516297May 29, 2012Aug 20, 2013International Business Machines CorporationRecovery from medium error on tape on which data and metadata are to be stored by using medium to medium data copyUS20030233430 *Jun 13, 2002Dec 18, 2003International Business Machines CorporationMethod of modifying a logical library configuration from a remote management applicationUS20040044825 *Aug 29, 2002Mar 4, 2004Fisher James A.Apparatus and method to assign one or more storage construct names to a logical volumeUS20090055582 *Aug 20, 2007Feb 26, 2009International Business Machines CorporationSegmentation of logical volumesUS20090055583 *Aug 20, 2007Feb 26, 2009International Business Machines CorporationStoring redundant segments and parity information for segmented logical volumesUS20090055616 *Aug 20, 2007Feb 26, 2009International Business Machines CorporationMaintaining reserved free space for segmented logical volumesUS20090292798 *Nov 26, 2009Robert Beverley BashamApparatus, system, and method for communicating control messages between a first device and a second deviceCN101373419BAug 4, 2008Oct 5, 2011国际商业机器公司Method and system of storing subsection logical volume redundant segments and parity information for segmented logical volumes* Cited by examinerClassifications U.S. Classification711/111, G9B/27.021, G9B/27.001International ClassificationG11B15/68, G11B27/11, G11B27/00, G06F3/06Cooperative ClassificationG06F3/0686, G11B27/002, G06F3/0653, G11B15/68, G11B27/11, G06F3/0605European ClassificationG06F3/06A4M, G06F3/06A6L4L, G06F3/06A2A2, G11B27/00A, G11B27/11Legal EventsDateCodeEventDescriptionAug 22, 1997ASAssignmentOwner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW YFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ANGLIN, MATTHEW JOSEPH;KISHI, GREGORY TAD;REEL/FRAME:008747/0932Effective date: 19970528Sep 19, 2002FPAYFee paymentYear of fee payment: 4Sep 26, 2006FPAYFee paymentYear of fee payment: 8Jan 10, 2011REMIMaintenance fee reminder mailedMay 12, 2011SULPSurcharge for late paymentYear of fee payment: 11May 12, 2011FPAYFee paymentYear of fee payment: 12Jul 12, 2011ASAssignmentOwner name: GOOGLE INC., CALIFORNIAEffective date: 20110503Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INTERNATIONAL BUSINESS MACHINES CORPORATION;REEL/FRAME:026664/0866RotateOriginal ImageGoogle Home - Sitemap - USPTO Bulk Downloads - Privacy Policy - Terms of Service - About Google Patents - Send FeedbackData provided by IFI CLAIMS Patent Services