Abstract:
In one embodiment, a method of recording an error in a tape drive, comprises receiving, in a tape library controller, an internal identifier associated with a tape cartridge; recording, in a memory medium associated with the tape library controller, the internal identifier; associating, in the memory medium, the internal identifier with an external identifier associated with the tape cartridge; and providing information in the memory medium to identify the tape cartridge in a subsequent error analysis routine.

Description:
BACKGROUND 
   The described subject matter relates to electronic computing, and more particularly to error management in tape libraries. 
   Tape libraries may be used as one component of a data storage architecture. A conventional tape library comprises a plurality of tape drives, the operations of which are controlled by one or more tape drive controllers, and a separate controller that controls the operations of the library. 
   Periodically, errors occur in tape drives. Some tape drives maintain a log of drive events that occur to facilitate analysis and correction of technical problems with the drive. The event log records information about the nature of errors and operations of the drive, and may also include information about the operating hardware and software. 
   SUMMARY 
   In one embodiment, a method of recording an error in a tape drive, comprises receiving, in a tape library controller, an internal identifier associated with a tape cartridge; recording, in a memory medium associated with the tape library controller, the internal identifier; associating, in the memory medium, the internal identifier with an external identifier associated with the tape cartridge; and providing information in the memory medium to identify the tape cartridge in a subsequent error analysis routine. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
       FIG. 1  is a schematic illustration of an exemplary embodiment of a tape library. 
       FIG. 2  is a schematic illustration of an exemplary embodiment of a tape library. 
       FIG. 3  is a flowchart illustrating operations in an exemplary embodiment of a method for recording an external identifier associated with a tape. 
       FIG. 4  is a flowchart illustrating operations in an exemplary embodiment of a method for reporting a previously logged external identifier associated with a tape. 
       FIG. 5  is a flowchart illustrating operations in an exemplary embodiment of a method for reporting a tape identifier log. 
   

   DETAILED DESCRIPTION 
   Described herein are exemplary tape library architectures, and methods for recording an error in a tape drive. The methods described herein may be embodied as logic instructions on a computer-readable medium. When executed on a processor, the logic instructions cause a general purpose computing device to be programmed as a special-purpose machine that implements the described methods. The processor, when configured by the logic instructions to execute the methods recited herein, constitutes structure for performing the described methods. 
   In exemplary embodiments, the architectures and methods may be implemented in tape storage libraries such as the tape storage libraries described in U.S. Pat. Nos. 5,926,341; 6,028,733; or 6,421,306, commonly assigned to the assignee of the present application, the disclosures of which are incorporated by reference herein in their entirety. 
     FIG. 1  is a schematic illustration of an exemplary embodiment of a tape library  100 . The tape library  100  includes a library controller module  110 , including a processor  114  which is coupled to a memory medium  112 , and one or more tape drive controllers  120 , which are coupled to (or contained within) a plurality of tape drives  130   a – 130   b  via one or more interface buses, such as a small computer system interface (SCSI) bus. The library controller  110  is coupled to the tape drive controllers  120  via one or more interface buses such as, e.g., an RS422 bus or an inter-integrated circuit (I 2 C) bus. It is noted that the library controller  110  can be embodied as a separate component (as shown), or can be co-located with one or more of the driver controllers  120 , or within a separate host computer  150 . The library controller  110  may be implemented as a software module that runs on a general purpose processing unit of the tape library, or as a special-purpose chipset. In some embodiments the host computer  150  may be connected to the drive controllers and the library controller by another bus. By way of example, the host computer  150  may be connected to the library and drives using SCSI and the library may be connected to the drives using RS422. 
   The tape drive controllers  120  coordinate data transfer to and from the one or more tape drives  130   a – 130   b.  In one embodiment, the library includes two tape drive controllers: a first tape drive controller  122   a  and a second tape drive controller  122   b.  The controllers may operate independently or may be configured to operate in parallel to enhance reliability by providing continuous backup and redundancy in the event that one controller becomes inoperable. Tape drive controllers  122   a  and  122   b  have respective processors  128   a  and  128   b  and respective memories  124   a  and  124   b.  Processors  128   a,    128   b  may be implemented as general purpose processors that may be configured to execute logic instructions in the respective memories  124   a,    124   b,  or as special purpose processors adapted to implement logic instructions embodied as firmware, or as ASICs. The memories  124   a  and  124   b  may be implemented as battery-backed, non-volatile RAMs (NVRAMs). Although only two controllers  122   a  and  122   b  are shown and discussed generally herein, aspects of this invention can be extended to other multi-controller configurations where more than two controllers are employed. 
   The controller&#39;s memories  122   a  and  122   b  may be physically coupled via a communication interface  126  such as, e.g., a PCI bus or another suitable communication bus. Controllers  122   a  and  122   b  may monitor data transfers between them to ensure that data is accurately transferred and that transaction ordering is preserved (e.g., read/write ordering). 
   In one embodiment, the tape drives  130   a,    130   b  are configured to receive a tape cartridge  132   a,    132   b,  respectively. Input/Output (I/O) operations requested by host computer  150  may be executed against the respective tape cartridges  132   a,    132   b.  The tape cartridges  132   a,    132   b  may include respective unique external identifiers  134   a,    134   b,  which may be implemented as a bar code or other external identifying indicia associated with the respective tape cartridge  132   a,    132   b.  The external identifiers  134   a,    134   b  need not be readable by human operators. For example, a radio frequency identification (RFID) tag may be used as an identifier. In addition, optical identifiers such as holograms, diffraction patterns, and the like may be used as external identifiers  134   a,    134   b.    
     FIG. 2  is a schematic illustration of an exemplary embodiment of a tape library. Referring to  FIG. 2 , the tape library includes a library controller  210  and a plurality of tape controllers  220 ,  230 ,  240  communicatively connected to the library controller  210  by a suitable communication bus  250 . The particular embodiment of the communication bus  250  is not critical. In one embodiment the communication bus may be implemented as a backplane and the respective tape controllers  220 ,  230 ,  240  may be implemented as cards that connect to the backplane. In alternate embodiments the communication bus may be implemented by a bus such as a PCI bus, or by a point-to-point connection such as an RS422 connection. 
   In one embodiment one or more of the tape controllers  220 ,  230 ,  240  maintain one or more event logs. Among other things, errors that occur in the tape drive are recorded in the tape drive&#39;s event log. In the embodiment illustrated in  FIG. 2  each tape controller  220 ,  230 ,  240  maintains a separate event log  222 ,  232 ,  242 , respectively, in a memory location associated with the controller. In addition, the library controller  210  maintains a separate tape log  224 . In alternate embodiments the separate controllers may maintain a single event log in a memory location shared between the controllers. 
   The respective event logs  222 ,  232 ,  242  may include information identifying, among other things, hardware and software packages operating on the respective tape drive controllers  220 ,  230 ,  240 , the version number(s) of firmware executing on the controller, and other information associated with the controller. The event logs  222 ,  232 ,  242  may also log information regarding an error, including an error number  222   a,    232   a,    242   a  assigned to the error, a internal identifier such as, e.g., a tape serial number  222   b,    232   b,    242   b  and an error identifier  222   c,    232   c,    242   c  associated with the error. The tape serial number is not necessarily associated with a human-readable identifier on the tape cartridge. 
   In one embodiment, tape log  224  may be stored in a suitable memory location such as, e.g., a non-volatile memory module, associated with the library controller  210 . Tape log  224  may include fields for storing information identifying, among other things, the respective internal identifiers  224   a  and external identifiers  224   b  associated with each tape inserted into the drive. Optionally the tape log  224  may also include an identifier associated with one or more drives in which the tape was previously inserted. In an alternate embodiment, the respective event logs  222 ,  232 ,  242  may include a field for recording the external identifier  134   a,    134   b  of a tape cartridge  132   a,    132   b  that resides in a tape drive  130   a,    130   b.    
   Operations for recording errors in tape drives will be explained with reference to  FIGS. 3–4 .  FIG. 3  is a flowchart illustrating operations in one embodiment of a method for recording an external identifier associated with a tape. Referring to  FIG. 3 , at operation  310  a library controller such as library controller  210  records in memory an external identifier associated with a tape cartridge. In one embodiment the external identifier may be implemented as a bar code or other external identifying indicia associated with the tape cartridge. The library controller may read the barcode using a conventional optical scanner and associated software, for example, when the library controller is picking the cartridge for delivery to a tape drive controller. 
   At operation  315  the library controller may verify the format of the external identifier. In one embodiment the format of the external identifier is encoded into a multi-character symbol, which may be verified by comparing the external identifier against one or more templates for external identifiers. If the format is incorrect, then an error routine may be invoked. 
   At operation  320  the library controller transfers the tape to a tape drive, such as one of the tape drives  130 A,  130 B, depicted in  FIG. 1 . When the tape cartridge is loaded into the tape drive, the tape drive controller may read the internal identifier associated with the tape cartridge from the medium on which the internal identifier is stored. At operation  325  the library controller issues a request to the tape drive controller for the internal identifier associated with the tape. 
   At operation  330  the tape drive controller receives the request from the library controller. Optionally, at operation  335 , the tape drive controller determines whether there is a tape cartridge in the drive, and if not an error routine may be invoked, at operation  350 . In one embodiment the error routine may include transmitting a reply to the library controller, wherein the reply indicates that a tape cartridge is not properly installed in the drive. In response to the reply, the library controller may initiate a routine to locate the tape cartridge and insert the cartridge into the drive. Alternatively, or in addition, the error routine may involve generating an alert to notify a user or administrator of the system of a malfunction. 
   By contrast, if there is a tape cartridge in the drive at operation  335 , then control passes to operation  340 , in which the drive controller determines whether the format of the internal identifier is correct. In one embodiment the format of the internal identifier is encoded into a multi-character symbol, which may be verified by comparing the internal identifier against one or more templates for identifiers. If the format is incorrect, then an error routine may be invoked at operation  350 . In one embodiment the error routine may include logging an error in a memory associated with the drive controller and/or transmitting a reply to the library controller, wherein the reply indicates that a received internal identifier is incorrectly formatted. In response to the reply, the library controller may record the error in a memory medium. Alternatively, or in addition, the error routine may involve generating an alert to notify a user or administrator of the system of the error. 
   By contrast, if at operation  340  the internal identifier is formatted correctly, then the drive controller transmits the internal identifier to the library controller (operation  345 ). In one embodiment, the drive controller transmits the internal identifier to the library controller using a read_attribute command using the Automation/Drive Interface (ADI) protocol. The internal identifier is recorded in a suitable memory medium (operation  355 ) associated with the library controller. In one embodiment, the internal identifier may be recorded in the tape log  224  in association with the external identifier associated with the tape cartridge. 
     FIG. 4  is a flowchart illustrating operations in an exemplary embodiment of a method for managing errors in a tape library. At operation  410  the library controller receives a request from a diagnostic utility for managing errors in a tape library. In one embodiment the request includes an internal identifier associated with a tape cartridge. The request may be generated by an administrator or other user of the diagnostic utility. In alternate embodiments the diagnostic utility may generate the request. The diagnostic utility may be embodied as any suitable diagnostic utility for evaluating errors in a tape library. Particulars operational aspects of the diagnostic utility are beyond the scope of this disclosure. In one embodiment, the diagnostic utility may issue a SCSI Log Sense request to the library controller. 
   At operation  415  the library controller determines whether the internal identifier associated with the request received from the diagnostic utility is recorded in the tape log  224 . If not, then an error routine may be invoked at operation  425 . The error routine may involve communicating with the diagnostic utility and/or generating notices or warnings for users of the system. 
   If, at operation  415 , the internal identifier is recorded in tape log  224 , then control passes to operation  420 , and the library controller reads the external identifier from tape log. At operation  430  the library controller passes the external identifier to the diagnostic utility. 
     FIG. 5  is a flowchart illustrating operations in an exemplary embodiment of a method for managing errors in a tape library. At operation  510  the library controller receives a request from a diagnostic utility for managing errors in a tape library. The request may be generated by an administrator or other user of the diagnostic utility. In alternate embodiments the diagnostic utility may generate the request. The diagnostic utility may be embodied as any suitable diagnostic utility for evaluating errors in a tape library. Particulars operational aspects of the diagnostic utility are beyond the scope of this disclosure. In one embodiment, the diagnostic utility may issue a SCSI Log Sense request to the library controller. 
   At operation  515  the library controller determines whether the library controller is adapted to support a tape log function. If not, then an error routine may be invoked at operation  525 . The error routine may involve communicating with the diagnostic utility and/or generating notices or warnings for users of the system. 
   If, at operation  515 , the library controller determines that the tape log function is supported, then control passes to operation  520 , and the library controller returns at least a portion of the tape log to the diagnostic utility. In one embodiment the library controller may transmit the entire tape log to the diagnostic utility. In an alternate embodiment, the diagnostic utility may request only a portion of the tape log, and the library controller may transmit the requested portion. At operation  530  the diagnostic utility analyzes the tape log. 
   The operations of  FIGS. 3–5  permit a tape library controller to manage a tape log that records an external identifier associated with tapes in the tape library. The external identifier may be provided to a diagnostic utility for error management purposes. Further, specialized firmware is not required on the tape drives. Not all operations depicted in  FIGS. 3–5  are required. For example, the operations  335  and  340  may be omitted. 
   Although the described arrangements and procedures have been described in language specific to structural features and/or methodological operations, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or operations described. Rather, the specific features and operations are disclosed as preferred forms of implementing the claimed present subject matter. 
   Reference in the specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least an implementation. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment. 
   Thus, although embodiments have been described in language specific to structural features and/or methodological acts, it is to be understood that claimed subject matter may not be limited to the specific features or acts described. Rather, the specific features and acts are disclosed as sample forms of implementing the claimed subject matter.