Patent application title: METHOD AND APPARATUS FOR ANALYZING A MASS DATA STORAGE DEVICE, SUCH AS FOR TROUBLESHOOTING A CARTRIDGE TAPE DRIVE
Inventors:
Roderick B. Wideman (Shakopee, MN, US)
Carsten H. Prigge (Parker, CO, US)
Roger B. Cook (Highlands Ranch, CO, US)
IPC8 Class: AG06F1200FI
USPC Class:
711111
Class name: Storage accessing and control specific memory composition accessing dynamic storage device
Publication date: 2009-06-25
Patent application number: 20090164714
analyzing a mass data storage device, such as for
troubleshooting a cartridge tape drive device. In one embodiment, the
method comprises: physically associating non-volatile memory with a
removable media storage device, storing information in the non-volatile
memory regarding characteristics of the removable media storage device,
and providing the non-volatile memory and the removable media storage
device for service. Information stored in the non-volatile memory is
available for use by a service technician. This information includes at
least a first data structure associated with a state of the removable
media storage device before servicing and at least a second data
structure associated with historical information regarding operation of
the removable media storage device.Claims:
1. A method associated with a removable media data storage device, the
method comprising:physically associating non-volatile memory with the
removable media storage device;storing information in the non-volatile
memory regarding characteristics of the removable media storage device;
andproviding the non-volatile memory and the removable media storage
device for service, wherein the information stored in the non-volatile
memory is available for use by a servicing technician.
2. The method of claim 1 further comprising:storing information associated with a state of the removable media storage device before servicing of the removable media storage device.
3. The method of claim 1 further comprising:storing information associated with historical information regarding operation of the removable media storage device.
4. Them method of claim 3 wherein said historical information is selected from the group consisting of: a fan speed, a temperature, a number of read and write errors, and a use time of the removable media storage device.
5. The method of claim 1 further comprising:storing information associated with status conditions of a storage library from which the removable media storage device was previously associated.
6. The method of claim 1 wherein said physically associating comprises:mounting said non-volatile memory and said removable media storage device on a tray.
7. A removable media data storage troubleshooting system comprising:a removable media storage device,a non-volatile memory unit physically associated with but separate from the removable media storage device, said non-volatile memory unit external to a housing associated with the removable media storage device;a log information stored in the non-volatile memory unit, wherein the log information relates to operation or performance of the removable media storage device for troubleshooting the removable media storage device.
8. The removable media data storage troubleshooting system of claim 7 wherein said log information further comprising:at least a first data structure storing a state of the removable media storage device.
9. The removable media data storage troubleshooting system of claim 7 wherein said log information further comprising:at least a second data structure storing cumulative information regarding operation and performance of the removable media storage device.
10. Them removable media data storage troubleshooting system of claim 9 wherein said cumulative information is selected from the group consisting of: a fan speed, a temperature, a number of read and write errors, and a use time of the removable media storage device.
11. The removable media data storage troubleshooting system of claim 7 wherein said log information further comprising:at least a third data structure storing commands associated with said removable media storage device.
12. Them removable media data storage troubleshooting system of claim 11 wherein said commands are selected from the group consisting of: load, unload, read tape motion status and read cartridge information.
13. The removable media data storage troubleshooting system of claim 7 further comprising:a sled for mounting said non-volatile memory and said removable media storage device thereon.
14. A method associated with a removable media data storage device, the method comprising:physically associating non-volatile memory with the removable media storage device;storing information in the non-volatile memory regarding characteristics of the removable media storage device; andproviding the non-volatile memory and the removable media storage device for service, wherein the information stored in the non-volatile memory is available for use by a servicing technician, andwherein the stored information includes:at least a first data structure associated with a state of the removable media storage device before servicing of the removable media storage device, andat least a second data structure associated with historical information regarding operation of the removable media storage device.
15. The method of claim 14 wherein the stored information includes a data structure representing information regarding status conditions of a storage library from which the removable media storage device was previously associated.
16. Them method of claim 14 wherein said historical information is selected from the group consisting of: a fan speed, a temperature, a number of read and write errors, and a use time of the removable media storage device.
17. The method of claim 14 further comprising:storing information associated with status conditions of a storage library from which the removable media storage device was previously associated.
18. The method of claim 14 wherein said physically associating comprises:mounting said non-volatile memory and said removable media storage device on a tray.
19. The method of claim 14 further comprising:storing in the non-volatile memory unit at least a third data structure associated with commands associated with said removable media storage device.
20. Them method of claim 19 wherein said commands are selected from the group consisting of: load, unload, read tape motion status and read cartridge information.Description:
CROSS-REFERENCE TO RELATED APPLICATION(S)
[0001]This patent application is a divisional of and Claims the benefit of co-pending U.S. patent application Ser. No. 10/413,867 filed on Apr. 14, 2003 entitled "Method and Apparatus for Analyzing a Mass Data Storage Device, Such as for Troubleshooting a Cartridge Tape Drive Device" by Rod Wideman et al., which is assigned to the assignee of the present invention, and is hereby incorporated by reference in its entirety herein.
[0002]Further, co-pending U.S. patent application Ser. No. 10/413,867 filed on Apr. 14, 2003 entitled "Method and Apparatus for Analyzing a Mass Data Storage Device, Such as for Troubleshooting a Cartridge Tape Drive Device" by Rod Wideman et al., is related to and claims the benefit of U.S. provisional application entitled "MASS DATA STORAGE LIBRARY, SUCH AS AN AUTOMATED TAPE LIBRARY," No. 60/434,268, filed on Dec. 17, 2002, and incorporated herein by reference.
BACKGROUND
[0003]A mass data storage device ("Storage Device") is a device used for storing large amounts of data. Storage Devices come in a variety of forms. One type of Storage Device uses removable mass data-storage media ("Removable Media"). Examples of Storage Devices that use Removable Media are floppy disk drives, compact disk read-only memory ("CD-ROM") drives, digital video disk read-only memory ("DVD-ROM") drives, and cartridge tape drives. Examples of Removable Media types used by such devices include floppy disks, CD-ROM disks, DVD-ROM disks, and Digital Linear Tape ("DLT") cartridges. An example of a type of Storage Device that does not use removable media includes a conventional hard disk drive.
[0004]Multiple Storage Devices may be used concurrently by a coupled computer system to store or retrieve very large amounts of data. Multiple Storage Devices may be found in an array configuration or other "library" type of configuration. When used in such a manner, Storage Devices that fail or need servicing may be configured for easy removal and replacement. As an example, a Storage Device may be coupled to a "sled" or tray with a handle on one side such that the Storage Device can be easily removed or added to an array or library of other Storage Devices. In such a configuration, an operator merely slides a Storage Device out of or into a "slot" capable of housing one or more Storage Devices for coupling to a computing device.
[0005]A Storage Device that fails to function as expected may be removed for analysis or troubleshooting. A service technician may then attempt to diagnose what caused the failure or unexpected behavior of the removed Storage Device. Another Storage Device or the same Storage Device that was previously removed for analysis or troubleshooting may fill the slot position left vacant by the removed Storage Device.
[0006]The inventors have discovered several limitations in the relevant art. For example, when a Storage Device is removed for analysis or troubleshooting, a service technician generally has extremely limited means to determine what problems occurred during operation of the Storage Device. The service technician must analyze or troubleshoot a removed Storage Device without the benefit of information related to the Storage Device that may be used for analysis or troubleshooting. Examples of such information related to the removed Storage Device include: a sequence of commands issued to it, its internal operating environment (such as fan speed or temperature), errors it detected before failure, amount of data written or read between cleanings, or what Removable Media brands were used. This problem is exacerbated when the service technician is not physically located in the same operating premises as the Storage Device. As an example, an operator may remove and send a Storage Device for servicing by a manufacturer of the Storage Device and the manufacturer would typically not be able to determine such information remotely. The Storage Device, if it stores any information locally, is limited to static information, such as information regarding the vendor, product ID, and other identifiers, such as the serial number, and may include a count of the number of removable media loaded on to the drive.
[0007]There are presently limited means to anticipate operating problems in Storage Devices before they occur. As an example, by storing information such as the type, number, and frequency of errors experienced with each brand of Removable Media used in a device, and periodically retrieving and analyzing the stored information, it becomes possible to select Removable Media brands causing the fewest errors. Further, a service technician troubleshooting a removed Storage Device may not be aware of additional information available from the external operating environment of the Storage Device that may be useful for analysis or troubleshooting. As an example, it may be useful for the service technician to have access to information from a Storage Device array controller or other library unit such as a robotic arm that removes or inserts Removable Media.
BRIEF DESCRIPTION OF THE DRAWINGS
[0008]FIG. 1 is a block diagram drawing showing a Storage Device utilizing a tape drive in one embodiment of the invention ("tape drive device").
[0009]FIG. 2 is a flow chart of a Log Events Method for use by the tape drive device illustrated in FIG. 1.
[0010]FIG. 3 is a flow chart of a Log Commands Method for use by the tape drive device illustrated in FIG. 1.
[0011]FIGS. 4A and 4B together are schematic diagrams illustrating a table indicating under what circumstances fields and data records are updated according to the embodiment of FIG. 1.
[0012]FIG. 5 is a data diagram illustrating a Persistent Storage Information Structure record according to the embodiment illustrated in FIG. 1.
[0013]FIG. 6 is a data diagram showing a Storage Device Tape Information Structure record according to the embodiment illustrated in FIG. 1.
[0014]FIG. 7 is a data diagram illustrating a Storage Device Information Structure record according to the embodiment illustrated in FIG. 1.
[0015]FIG. 8 is a data diagram illustrating a Storage Device Static Information Structure record according to the embodiment illustrated in FIG. 1.
[0016]FIG. 9 is a data diagram illustrating a Storage Device State Information Structure record according to the embodiment illustrated in FIG. 1.
[0017]FIG. 10 is a data diagram illustrating a Storage Device Cumulative Information Structure record according to the embodiment illustrated in FIG. 1.
[0018]FIG. 11 is a data diagram illustrating a Storage Device History Information Structure record according to the embodiment illustrated in FIG. 1.
[0019]FIG. 12 is a data diagram illustrating a Storage Device Event Log Information Structure record according to the embodiment illustrated in FIG. 1.
[0020]FIG. 13 is a data diagram illustrating a Storage Device Command Log Information Structure record according to the embodiment illustrated in FIG. 1.
[0021]In the drawings, the same reference numbers identify identical or substantially similar elements or acts. To easily identify the discussion of any particular element or act, the most significant digit or digits in a reference number refer to the figure number in which that element is first introduced and discussed (e.g., element 102 is first introduced and discussed with respect to FIG. 1).
[0022]Note: The headings provided herein are for convenience and do not necessarily affect the scope or interpretation of the invention.
DETAILED DESCRIPTION
[0023]An embodiment of the invention described below permits analysis or troubleshooting of Storage Devices. In one embodiment, a Storage Device is coupled to persistent storage that does not form a part of the storage normally associated with that Storage Device, such as nonvolatile random access memory coupled to a cartridge tape drive. In the persistent storage, the Storage Device stores device analysis information. Examples of device analysis information include static and historical information that may assist in the analysis or troubleshooting of the Storage Device when the Storage Device is removed from operation. When a Storage Device is removed from operation, the persistent storage remains coupled or physically associated with the removed Storage Device. As a result, a service technician is able to retrieve the stored device analysis information from the coupled persistent storage anywhere and anytime it may be convenient to analyze or troubleshoot the Storage Device. As an example, an operator can remove a Storage Device from operation and send it to a manufacturer of that Storage Device. A service technician can then analyze or troubleshoot the Storage Device several days or weeks later using the device analysis information stored in the persistent storage that is coupled to the removed Storage Device.
[0024]Described below is one embodiment of the present invention. It provides for a thorough understanding of, and enabling description for, the depicted embodiment. However, one skilled in the relevant art will understand that the invention may be practiced without many of these details. In other instances, well known structures and functions have not been shown or described in detail to avoid unnecessarily obscuring the description of the embodiments of the invention.
Depicted Embodiment
[0025]FIG. 1 shows a block diagram of a mass data storage device 101 utilizing a tape drive (hereafter, "tape drive device"). The tape drive device 101 may form part of an automated tape library system (not shown). A tape drive 103, a processor 105, a persistent storage 107, and additional elements 113 are all connected to a bus 111. Examples of additional elements include a fan and a temperature sensor. Examples of persistent storage include nonvolatile random access memory, battery-backed random access memory, static random access memory, flash memory, electronically erasable programmable read-only memory (EEPROM) and so forth, "smartcard," solid state disk, hard disk, etc.
[0026]The processor 105 is also connected to communications ports 109. The communications ports 109 may be connected to other mass data storage devices similar to or different from the tape drive device 101, host computers, and other devices needing to communicate with the tape drive device 101. The processor 105 communicates with these other devices via the communications ports 109. The processor 105 may react to commands issued from these other devices and command other elements of the tape drive device 101 via the communications bus 111. For example, reacting to an UNLOAD command from a host computer, the processor 105 may issue an unload command to the tape drive 103 via the communications bus 111. The processor 105 may also read and write a historical log of commands it has issued or that were issued to it in the persistent storage 107. When the processor 105 detects errors, such as may occur in the tape drive 103, the processor 105 may store such error conditions in the persistent storage 107. The processor 105 may also collect other information from the tape drive device 101 or its additional elements, including temperatures, fan speeds, serial numbers, and other attributes that may be useful in analyzing or troubleshooting the tape drive device 101. After collecting this information, the processor 105 stores the information in the persistent storage 107. Although such additional elements of the tape drive device 101 are not shown or further described, one skilled in the relevant art will understand what other elements could be found coupled to a mass data storage device and how a processor 105 would detect and collect such information.
[0027]One feature of a tape drive device 101 as described above is that the information gathered and stored in the persistent storage 107 is not lost when the tape drive device 101 loses power or is removed for servicing. After the tape drive device 101 is removed for servicing, it will be appreciated that information stored in the persistent storage 107 can still be read, modified, and erased by an operator. For example, as shown in FIG. 1, the tape drive 103 is physically associated with the persistent storage 107 because both are secured to the tray 115. The tray (and the components physically associated with it) may be readily removed and provided for servicing. Of course, other ways of physically associating the persistent storage 107 with the tape drive 103 are possible, such as providing the persistent storage on or within the tape drive. As a result, a service technician may connect a computer to the tape drive device 101 via the communications ports 109 to retrieve, modify, or erase stored information. This information may be used to analyze or troubleshoot the tape drive device 101.
[0028]Elements of the tape drive device 101 described above are carried by a "sled" or tray 115. Several such trays together comprise a library of mass data storage devices (not shown). A tray 115 can be removed from the library for analysis or troubleshooting by using a handle 117.
[0029]Alternate embodiments of a tape drive device 101 include additional elements 113 including fans, motors for automated removal of the tray 115, and additional buses 111. An alternate embodiment omits the processor 105 coupled to the tray 115; the tape drive device 101 is instead commanded by a processor located outside the tray 115.
[0030]In another embodiment, additional buses are used, such as a first bus for directly coupling the drive 103 and a host or automated tape library system to receive commands (e.g., via the communications port(s) 109, a second bus (not shown) to provide a direct data path from/to the drive 103, a third bus between the persistent storage 107 and a component outside the tray 115, or any combination of such buses.
[0031]FIG. 2 shows a method for logging events. Examples of events include Tape Loaded, Tape Unloaded, Read Error, Write Error, and Timer, as explained below. When an event occurs at block 201, the method determines at block 202 whether the event is a Timer event. The event is logged at block 203 if it is not a Timer event. Information that is being collected is then updated at block 205. Examples of information that may be collected include speed of a fan, current temperature of a drive, number of read and write errors that may have occurred, and how much time a tape has been in a drive or has been used. Other examples of information that may be collected include those listed in FIG. 4A, and FIG. 4B (described below). After this information has been collected, it is updated in the persistent storage 107 at block 205. The method then ends at block 207.
[0032]Some information is collected on a periodic basis. A Timer event triggers the periodic collection of this information. If the event at block 201 is a Timer event, information is updated in the persistent storage 107 at block 205, but block 203 to log the event is bypassed. One familiar with the relevant art will recognize that the frequency with which a Timer event occurs can be varied during development, operation, or both. One familiar with the relevant art will also recognize that a Timer event does not need to be logged because its frequency is predetermined. Not all stored information is updated after every event. Which information is updated upon the occurrence of a given event depends on the type of event. FIG. 4A and FIG. 4B (described below) will describe under what circumstances information is updated.
[0033]FIG. 3 shows a method for logging commands. The method waits for a command to be issued. Commands may arrive through the communications ports 109, when issued by, for example, a host computer. Examples of commands may include UNLOAD, LOAD, READ TAPE MOTION STATUS, and READ CARTRIDGE INFO. The method waits for a command at block 301. At block 303, the method loops back to block 301 when no command has been received. After a command is received, the command is logged in the persistent storage 107 at block 305 and is then operationalized at block 307. Examples of commands that may be operationalized at block 307 include UNLOAD and LOAD. Some commands may be operationalized at block 307 or may be issued directly to the tape drive 103. Examples of such commands are READ DATA and WRITE DATA. It is commonly understood in the relevant art how commands are operationalized in a tape drive device 101. Information that is being collected is then updated in persistent storage 107 at block 309. Information updated at block 309 is not necessarily the same as that updated at block 205. While some of the updated information is identical at both blocks 205 and 309, examples of information that may be updated at block 309 and not at block 205 include the amount of data read or written.
[0034]Referring to FIG. 4A and FIG. 4B, fields are updated in the depicted embodiment after various events. Events are shown as column headings: Manufacturing of Tape Drive Device 402, Tape Load 404, Tape Unload 406, Tape Drive Device Powered On 408, Tape Drive Device Brought On Line 410, Tape Drive Device Taken Off Line 412, Tape Drive Power On/Off 414, Error 416, and Timer 418. The column headings also indicate whether information is updated before, during, or after the event. As an example, some information is updated after a Tape Load event. Information field names are shown as row headings: CartridgeLabel 602, CartridgeManufacturer 604, etc. These information fields are described in subsequent figures. The following examples illustrate how the table illustrated in FIG. 4A and FIG. 4B is used.
[0035]CartridgeLabel 602, CartridgeManufacturer 604, TapeLoadCount 606, and TapeLength 608 fields are updated after a Tape Load event 404. TapeWriteRetries 610 and TapeReadRetries 612 after a Tape Load event 404, before a Tape Unload event 406, or after a Timer event 418. TapeUnrecoveredWriteErrors 614 and TapeUnrecoveredReadErrors 616 fields are updated after a Tape Load event 404, before a Tape Unload event 406, or after an Error event 416. One familiar with the relevant art will understand how to read and understand the remainder of the table illustrated. One familiar with the relevant art will appreciate that not all Events or Information fields appear in the table but can deduce described Events or Information fields nonetheless. For example, a MultiCartridgeVendors field 822 is updated to TRUE only when more than one vendor (or brand) of a tape is used in the tape drive. As another example, Checksum information fields do not appear in this or subsequent tables. One familiar with the relevant art will appreciate that a Checksum field is used to check the integrity of an information record, and is updated whenever any field in the record is updated.
[0036]FIG. 5 through FIG. 13 describe data structures used to store the collected information in the persistent storage 107.
[0037]Referring to FIG. 5, multiple fields comprise a record used to store information about the tape drive device 101 in the depicted embodiment. Each field is a data structure as described below in FIG. 6 through FIG. 13. An info field 502 stores a Storage Device Information Structure record. A data field 504 stores a Storage Device Static Information Structure record. A state field 506 stores a Storage Device State Information Structure record. A counters field 508 stores a Storage Device Cumulative Information Structure record. A history field 510 stores a Storage Device History Information Structure record. An eventlog field 512 stores a Storage Device Event Log Information Structure. A cmdlog field 514 stores a Storage Device Command Log Information Structure. A reserved field 516 is reserved for future use.
[0038]Referring to FIG. 6, a Storage Device Tape Information Structure record is comprised of multiple fields in the depicted embodiment. A CartridgeLabel field 602 is an array of characters representing a label assigned to a tape. A CartridgeManufacturer field 604 is an array of characters representing the manufacturer of the tape. A TapeLoadCount field 606 is an integer representing the number of times a tape cartridge has been loaded. A TapeLength field 608 is an integer representing a length or size of a tape. As an example, when the Removable Media is a cartridge tape, this field may store the length of the cartridge tape in meters. A TapeWriteRetries field 610 is an integer representing the number of times a write command resulted in errors that were recovered from. A TapeReadRetries field 612 is an integer representing the number of times a read command resulted in errors that were recovered from. A TapeUnrecoveredWriteErrors field 614 is an integer representing the number of times a write command resulted in failures. A TapeUnrecoveredReadErrors field 616 is an integer representing the number of times a read command resulted in failures. A TapeMotionTime field 622 is an integer representing the amount of time the tape moved while loaded. A TapeResidencyTime field 624 is an integer representing the amount of time a tape has been loaded.
[0039]Referring to FIG. 7, a Storage Device Information Structure record is comprised of a SledInfo field 702. This field is an array of integers representing information required for "booting" the tape drive device 101. As an example, the SledInfo field 702 may contain the board type and version number.
[0040]Referring to FIG. 8, a Storage Device Static Information Structure is comprised of several fields in the depicted embodiment. A SledBootCode field 802 is an array of characters representing a boot strap code level for the tape drive device 101. A SledApplCode field 804 is a character array representing the application code level for the tape drive device 101. A DriveVendor field 806 is a character array representing the vendor of the tape drive 103. A DriveProductId field 808 is a character array representing the product identification number of the tape drive 103. A DriveSerialNumber field 810 is a character array representing the serial number of the tape drive 103. A DriveWWN field 812 is a character array representing the fibre channel worldwide name of the tape drive 103. A DriveSCSIId field 814 is an integer representing the SCSI ID of the tape drive 103. A DriveLoopId1 field 816 is an integer representing the fibre channel port 1 loop ID of the tape drive 103. The DriveLoopId2 field 818 is an integer representing the fibre channel port 2 loop ID of the tape drive 103. A DriveFwRev field 820 is a character array representing the firmware revision number of the firmware currently in the tape drive device 101. A MultiCartridgeVendors field 822 is an integer representing whether multiple tape vendors are used in the tape drive device 101. A TAFlagCount field 824 is an array of integers representing a count of the tape alert flag occurrences. A MBBeforeFirstClean field 826 is an integer representing the megabytes of data that were read or written before the first cleaning of the tape drive device 101. A DriveLocation field 828 is an array of integers representing an identifier of the location within an array or library in which the tape drive device 101 is located. A LibrarySerialNumber field 830 is an array of characters representing a serial number of an array or library within which the tape drive device 101 is presently located. A reserved field 832 is reserved for future use.
[0041]Referring to FIG. 9, a Storage Device State Information Structure record is comprised of several fields in the depicted embodiment. A SledFanSpeed field 902 is an integer representing the speed of a fan coupled to the tape drive device 101. A SledTemperature field 904 is an integer representing the temperature of the tape drive device 101. A SledOnline field 906 is an integer representing whether the tape drive device 101 is online. A DrivePowerOn field 908 is an integer representing whether the tape drive 103 is powered on. A DriveTemperature field 910 is an integer representing the temperature of the tape drive 103. A DriveCleanStatusOn field 912 is an integer representing whether tape drive 103 has detected that cleaning is required. A DrivePreventRemoval field 914 is an integer representing whether the flag to prevent removal of a tape from the tape drive 103 has been set. A DriveCompressionOn field 916 is an integer representing whether the tape drive 103 has data compression enabled. A DriveTAFlags field 918 is an array of integers representing the tape alert flag settings. A TapePresence field 920 is an integer representing whether a tape is in the tape drive device 101. A TapeWriteProtectOn field 922 is an integer representing whether the tape in the tape drive device 101 is set to disable writing. A TapeMotionStatus field 924 is an integer representing a type of motion detected on the tape drive device including READ, WRITE, and REWIND. A CartridgeInfo field 926 is a Storage Device Tape Information Structure record as previously described in FIG. 6.
[0042]An RCUmessage field 928 is an array of characters representing information provided by the external operating environment of the tape drive device. The RCUmessage field 928 may be used as a scratchpad to store information about the external environment of the tape drive device 101 that would be useful for analysis or troubleshooting. As an example, this information may be provided by a tape drive device array controller or other library unit, such as a robotic arm. The RCUmessage field 928 may store any information related to systems or operations external to the tape drive device 101, such as information that a servicing technician or third party may wish to obtain. Since the tape drive device 101 may be regularly sent for servicing, this data then becomes available to such third parties. A reserved field 930 is reserved for future use.
[0043]Referring to FIG. 10, a Storage Device Cumulative Information Structure record is comprised of several fields in the depicted embodiment. A DrivePowerUps field 1002 is an integer representing the number of times the tape drive device has been powered up. A DriveMounts field 1004 is an integer representing the number of times a tape has been loaded into the tape drive device 101. A DriveCleans field 1006 is an integer representing the number of times the tape drive 103 has been cleaned. An MBSinceLastCleaning field 1008 is an integer representing the number of megabytes read or written since the tape drive 103 was last cleaned. An MBRead field 1010 is an integer representing the number of megabytes read. An MBWritten field 1012 is an integer representing the number of megabytes written. A DriveReadErrors field 1014 is an integer representing the number of read errors. A DriveWriteErrors field 1016 is an integer representing the number of write errors. A DriveRecoveredReads field 1018 is an integer representing the number of reads that were successful after detection of an error. A DriveRecoveredWrites field 1020 is an integer representing the number of writes that were successful after detection of an error. A DriveMotionSeconds field 1022 is an integer representing the amount of time a tape was in motion. A DriveErrorCode field 1024 is an integer representing a code for the last error that was detected. A reserved field 1026 is reserved for future use.
[0044]Referring to FIG. 11, a Storage Device History Information Structure record is comprised of several fields in the depicted embodiment. A SledFanSpeed field 1102 is an array of integers representing a list of fan speeds collected over time in relation to a fan coupled to the tape drive device 101. A SledTemperature field 1104 is an array of integers representing a list of temperatures collected over time for the tape drive device 101. A DriveFwRevs field 1106 is an array of strings (i.e., array of character arrays) representing a list of firmware revisions that have been used with the tape drive device 101. A DriveErrorCodes field 1108 is an array of integers representing a list of error codes detected from the tape drive 103. A DriveTAFlags field 1110 array of is an integer array representing a list of tape alert flags. A CartridgeInfo field 1112 is an array of Storage Device Tape Information Structures representing a list of Tapes used with the tape drive device 101. A reserved field 1114 is reserved for future use.
[0045]Referring to FIG. 12, a Storage Device Event Log Information Structure record is comprised of an event field 1202. This field is an array of integer arrays representing a list of events.
[0046]Referring to FIG. 13, a Storage Device Command Log Information Structure record is comprised of a command field 1302. This field is an array of character arrays representing a list of commands issued to the tape drive device 101.
[0047]Various other records or data structures are possible. For example, data structures may also include a Checksum field. A Checksum field may be used for data integrity validation. Some or all of the above data structures may be reset following servicing of the drive.
[0048]While the above embodiment emphasizes the use of a tape drive in a Storage Device, and a tape cartridge as a Removable Media, it will be appreciated by those familiar with the relevant art that the above embodiment also applies to other forms of Storage Devices. As examples, the disclosed method and apparatus can be used with recordable and non-recordable varieties of CD-ROM drives, DVD-ROM drives, and hard disk drives. Aspects of the invention can be embodied not only in a Storage Device, but also in other aspects of computing systems and associated peripheral devices. For example, it is anticipated that a method or apparatus as described herein may be used to analyze or troubleshoot digital cameras, printers, and photocopiers. Although the only example of persistent storage given above is nonvolatile random access memory, it is anticipated that other forms of persistent storage can also be used instead of, or in addition to, such persistent physical memory. Data structures described herein may also be modified by changing the types of data collected, the amount of data collected, the data types used, and the order in which the data elements appear in the structures herein described. As an example, when the method described herein is practiced with Storage Devices using read-only media types such as digital video disk drives, the data elements relating to the number of megabytes written may not be used. In general, while specific hardware is described herein, aspects of the invention are equally applicable to other forms of data processing hardware.
[0049]While the above embodiment emphasizes the use of physical coupling between a Storage Device and a host or automated library system, it will be appreciated by one familiar with the relevant art that the above embodiment also applies to other forms of coupling, such as via a wireless link.
[0050]Unless the context clearly requires otherwise, throughout the description and the claims, the words "comprise," "comprising," and the like are to be construed in an inclusive as opposed to exclusive or exhaustive sense; that is to say, in a sense of "including, but not limited to." Words using the singular or plural number also include the plural or singular number respectively. The words "herein," "above," "below," and words of similar import, when used in this application, shall refer to this application as a whole and not to any particular portion of this application. The word "information" relates to any form of data that is capable of being stored in digital form. The word "update" in its various forms as used above relates to storing information for the first time, modifying information already stored, or removing previously stored information. The word "service" in its various forms as used herein relating to a Storage Device includes removing a Storage Device for analysis or troubleshooting.
[0051]The above detailed descriptions of embodiments of this invention are not intended to be exhaustive or to limit the invention to the precise form disclosed above. While specific embodiments of, and examples for, the invention are described above for illustrative purposes, various equivalent modifications are possible within the scope of the invention, as those skilled in the relevant art will recognize. For example, while steps or blocks are presented in a given order, alternative embodiments may perform routines having steps or blocks in a different order. The teachings of the invention provided herein can be applied to other systems, and not necessarily just to tape drives as described herein. The various embodiments described herein can be combined to provide further embodiments. These and other changes can be made to the invention in light of the detailed description.
[0052]In general, the terms used in the following claims should not be construed to limit the invention to the specific embodiments disclosed in the specification, unless the above detailed description explicitly defines such terms. Accordingly, the actual scope of the invention encompasses the disclosed embodiments and all equivalent ways of practicing or implementing the invention under the claims. While certain aspects of the invention are presented below in certain claim forms, the inventors contemplate the various aspects of the invention in any number of claim forms. Accordingly, the inventors reserve the right to add additional claims after filing the application to pursue such additional claim forms for other aspects of the invention.
Claims:
1. A method associated with a removable media data storage device, the
method comprising:physically associating non-volatile memory with the
removable media storage device;storing information in the non-volatile
memory regarding characteristics of the removable media storage device;
andproviding the non-volatile memory and the removable media storage
device for service, wherein the information stored in the non-volatile
memory is available for use by a servicing technician.
2. The method of claim 1 further comprising:storing information associated with a state of the removable media storage device before servicing of the removable media storage device.
3. The method of claim 1 further comprising:storing information associated with historical information regarding operation of the removable media storage device.
4. Them method of claim 3 wherein said historical information is selected from the group consisting of: a fan speed, a temperature, a number of read and write errors, and a use time of the removable media storage device.
5. The method of claim 1 further comprising:storing information associated with status conditions of a storage library from which the removable media storage device was previously associated.
6. The method of claim 1 wherein said physically associating comprises:mounting said non-volatile memory and said removable media storage device on a tray.
7. A removable media data storage troubleshooting system comprising:a removable media storage device,a non-volatile memory unit physically associated with but separate from the removable media storage device, said non-volatile memory unit external to a housing associated with the removable media storage device;a log information stored in the non-volatile memory unit, wherein the log information relates to operation or performance of the removable media storage device for troubleshooting the removable media storage device.
8. The removable media data storage troubleshooting system of claim 7 wherein said log information further comprising:at least a first data structure storing a state of the removable media storage device.
9. The removable media data storage troubleshooting system of claim 7 wherein said log information further comprising:at least a second data structure storing cumulative information regarding operation and performance of the removable media storage device.
10. Them removable media data storage troubleshooting system of claim 9 wherein said cumulative information is selected from the group consisting of: a fan speed, a temperature, a number of read and write errors, and a use time of the removable media storage device.
11. The removable media data storage troubleshooting system of claim 7 wherein said log information further comprising:at least a third data structure storing commands associated with said removable media storage device.
12. Them removable media data storage troubleshooting system of claim 11 wherein said commands are selected from the group consisting of: load, unload, read tape motion status and read cartridge information.
13. The removable media data storage troubleshooting system of claim 7 further comprising:a sled for mounting said non-volatile memory and said removable media storage device thereon.
14. A method associated with a removable media data storage device, the method comprising:physically associating non-volatile memory with the removable media storage device;storing information in the non-volatile memory regarding characteristics of the removable media storage device; andproviding the non-volatile memory and the removable media storage device for service, wherein the information stored in the non-volatile memory is available for use by a servicing technician, andwherein the stored information includes:at least a first data structure associated with a state of the removable media storage device before servicing of the removable media storage device, andat least a second data structure associated with historical information regarding operation of the removable media storage device.
15. The method of claim 14 wherein the stored information includes a data structure representing information regarding status conditions of a storage library from which the removable media storage device was previously associated.
16. Them method of claim 14 wherein said historical information is selected from the group consisting of: a fan speed, a temperature, a number of read and write errors, and a use time of the removable media storage device.
17. The method of claim 14 further comprising:storing information associated with status conditions of a storage library from which the removable media storage device was previously associated.
18. The method of claim 14 wherein said physically associating comprises:mounting said non-volatile memory and said removable media storage device on a tray.
19. The method of claim 14 further comprising:storing in the non-volatile memory unit at least a third data structure associated with commands associated with said removable media storage device.
20. Them method of claim 19 wherein said commands are selected from the group consisting of: load, unload, read tape motion status and read cartridge information.
Description:
CROSS-REFERENCE TO RELATED APPLICATION(S)
[0001]This patent application is a divisional of and Claims the benefit of co-pending U.S. patent application Ser. No. 10/413,867 filed on Apr. 14, 2003 entitled "Method and Apparatus for Analyzing a Mass Data Storage Device, Such as for Troubleshooting a Cartridge Tape Drive Device" by Rod Wideman et al., which is assigned to the assignee of the present invention, and is hereby incorporated by reference in its entirety herein.
[0002]Further, co-pending U.S. patent application Ser. No. 10/413,867 filed on Apr. 14, 2003 entitled "Method and Apparatus for Analyzing a Mass Data Storage Device, Such as for Troubleshooting a Cartridge Tape Drive Device" by Rod Wideman et al., is related to and claims the benefit of U.S. provisional application entitled "MASS DATA STORAGE LIBRARY, SUCH AS AN AUTOMATED TAPE LIBRARY," No. 60/434,268, filed on Dec. 17, 2002, and incorporated herein by reference.
BACKGROUND
[0003]A mass data storage device ("Storage Device") is a device used for storing large amounts of data. Storage Devices come in a variety of forms. One type of Storage Device uses removable mass data-storage media ("Removable Media"). Examples of Storage Devices that use Removable Media are floppy disk drives, compact disk read-only memory ("CD-ROM") drives, digital video disk read-only memory ("DVD-ROM") drives, and cartridge tape drives. Examples of Removable Media types used by such devices include floppy disks, CD-ROM disks, DVD-ROM disks, and Digital Linear Tape ("DLT") cartridges. An example of a type of Storage Device that does not use removable media includes a conventional hard disk drive.
[0004]Multiple Storage Devices may be used concurrently by a coupled computer system to store or retrieve very large amounts of data. Multiple Storage Devices may be found in an array configuration or other "library" type of configuration. When used in such a manner, Storage Devices that fail or need servicing may be configured for easy removal and replacement. As an example, a Storage Device may be coupled to a "sled" or tray with a handle on one side such that the Storage Device can be easily removed or added to an array or library of other Storage Devices. In such a configuration, an operator merely slides a Storage Device out of or into a "slot" capable of housing one or more Storage Devices for coupling to a computing device.
[0005]A Storage Device that fails to function as expected may be removed for analysis or troubleshooting. A service technician may then attempt to diagnose what caused the failure or unexpected behavior of the removed Storage Device. Another Storage Device or the same Storage Device that was previously removed for analysis or troubleshooting may fill the slot position left vacant by the removed Storage Device.
[0006]The inventors have discovered several limitations in the relevant art. For example, when a Storage Device is removed for analysis or troubleshooting, a service technician generally has extremely limited means to determine what problems occurred during operation of the Storage Device. The service technician must analyze or troubleshoot a removed Storage Device without the benefit of information related to the Storage Device that may be used for analysis or troubleshooting. Examples of such information related to the removed Storage Device include: a sequence of commands issued to it, its internal operating environment (such as fan speed or temperature), errors it detected before failure, amount of data written or read between cleanings, or what Removable Media brands were used. This problem is exacerbated when the service technician is not physically located in the same operating premises as the Storage Device. As an example, an operator may remove and send a Storage Device for servicing by a manufacturer of the Storage Device and the manufacturer would typically not be able to determine such information remotely. The Storage Device, if it stores any information locally, is limited to static information, such as information regarding the vendor, product ID, and other identifiers, such as the serial number, and may include a count of the number of removable media loaded on to the drive.
[0007]There are presently limited means to anticipate operating problems in Storage Devices before they occur. As an example, by storing information such as the type, number, and frequency of errors experienced with each brand of Removable Media used in a device, and periodically retrieving and analyzing the stored information, it becomes possible to select Removable Media brands causing the fewest errors. Further, a service technician troubleshooting a removed Storage Device may not be aware of additional information available from the external operating environment of the Storage Device that may be useful for analysis or troubleshooting. As an example, it may be useful for the service technician to have access to information from a Storage Device array controller or other library unit such as a robotic arm that removes or inserts Removable Media.
BRIEF DESCRIPTION OF THE DRAWINGS
[0008]FIG. 1 is a block diagram drawing showing a Storage Device utilizing a tape drive in one embodiment of the invention ("tape drive device").
[0009]FIG. 2 is a flow chart of a Log Events Method for use by the tape drive device illustrated in FIG. 1.
[0010]FIG. 3 is a flow chart of a Log Commands Method for use by the tape drive device illustrated in FIG. 1.
[0011]FIGS. 4A and 4B together are schematic diagrams illustrating a table indicating under what circumstances fields and data records are updated according to the embodiment of FIG. 1.
[0012]FIG. 5 is a data diagram illustrating a Persistent Storage Information Structure record according to the embodiment illustrated in FIG. 1.
[0013]FIG. 6 is a data diagram showing a Storage Device Tape Information Structure record according to the embodiment illustrated in FIG. 1.
[0014]FIG. 7 is a data diagram illustrating a Storage Device Information Structure record according to the embodiment illustrated in FIG. 1.
[0015]FIG. 8 is a data diagram illustrating a Storage Device Static Information Structure record according to the embodiment illustrated in FIG. 1.
[0016]FIG. 9 is a data diagram illustrating a Storage Device State Information Structure record according to the embodiment illustrated in FIG. 1.
[0017]FIG. 10 is a data diagram illustrating a Storage Device Cumulative Information Structure record according to the embodiment illustrated in FIG. 1.
[0018]FIG. 11 is a data diagram illustrating a Storage Device History Information Structure record according to the embodiment illustrated in FIG. 1.
[0019]FIG. 12 is a data diagram illustrating a Storage Device Event Log Information Structure record according to the embodiment illustrated in FIG. 1.
[0020]FIG. 13 is a data diagram illustrating a Storage Device Command Log Information Structure record according to the embodiment illustrated in FIG. 1.
[0021]In the drawings, the same reference numbers identify identical or substantially similar elements or acts. To easily identify the discussion of any particular element or act, the most significant digit or digits in a reference number refer to the figure number in which that element is first introduced and discussed (e.g., element 102 is first introduced and discussed with respect to FIG. 1).
[0022]Note: The headings provided herein are for convenience and do not necessarily affect the scope or interpretation of the invention.
DETAILED DESCRIPTION
[0023]An embodiment of the invention described below permits analysis or troubleshooting of Storage Devices. In one embodiment, a Storage Device is coupled to persistent storage that does not form a part of the storage normally associated with that Storage Device, such as nonvolatile random access memory coupled to a cartridge tape drive. In the persistent storage, the Storage Device stores device analysis information. Examples of device analysis information include static and historical information that may assist in the analysis or troubleshooting of the Storage Device when the Storage Device is removed from operation. When a Storage Device is removed from operation, the persistent storage remains coupled or physically associated with the removed Storage Device. As a result, a service technician is able to retrieve the stored device analysis information from the coupled persistent storage anywhere and anytime it may be convenient to analyze or troubleshoot the Storage Device. As an example, an operator can remove a Storage Device from operation and send it to a manufacturer of that Storage Device. A service technician can then analyze or troubleshoot the Storage Device several days or weeks later using the device analysis information stored in the persistent storage that is coupled to the removed Storage Device.
[0024]Described below is one embodiment of the present invention. It provides for a thorough understanding of, and enabling description for, the depicted embodiment. However, one skilled in the relevant art will understand that the invention may be practiced without many of these details. In other instances, well known structures and functions have not been shown or described in detail to avoid unnecessarily obscuring the description of the embodiments of the invention.
Depicted Embodiment
[0025]FIG. 1 shows a block diagram of a mass data storage device 101 utilizing a tape drive (hereafter, "tape drive device"). The tape drive device 101 may form part of an automated tape library system (not shown). A tape drive 103, a processor 105, a persistent storage 107, and additional elements 113 are all connected to a bus 111. Examples of additional elements include a fan and a temperature sensor. Examples of persistent storage include nonvolatile random access memory, battery-backed random access memory, static random access memory, flash memory, electronically erasable programmable read-only memory (EEPROM) and so forth, "smartcard," solid state disk, hard disk, etc.
[0026]The processor 105 is also connected to communications ports 109. The communications ports 109 may be connected to other mass data storage devices similar to or different from the tape drive device 101, host computers, and other devices needing to communicate with the tape drive device 101. The processor 105 communicates with these other devices via the communications ports 109. The processor 105 may react to commands issued from these other devices and command other elements of the tape drive device 101 via the communications bus 111. For example, reacting to an UNLOAD command from a host computer, the processor 105 may issue an unload command to the tape drive 103 via the communications bus 111. The processor 105 may also read and write a historical log of commands it has issued or that were issued to it in the persistent storage 107. When the processor 105 detects errors, such as may occur in the tape drive 103, the processor 105 may store such error conditions in the persistent storage 107. The processor 105 may also collect other information from the tape drive device 101 or its additional elements, including temperatures, fan speeds, serial numbers, and other attributes that may be useful in analyzing or troubleshooting the tape drive device 101. After collecting this information, the processor 105 stores the information in the persistent storage 107. Although such additional elements of the tape drive device 101 are not shown or further described, one skilled in the relevant art will understand what other elements could be found coupled to a mass data storage device and how a processor 105 would detect and collect such information.
[0027]One feature of a tape drive device 101 as described above is that the information gathered and stored in the persistent storage 107 is not lost when the tape drive device 101 loses power or is removed for servicing. After the tape drive device 101 is removed for servicing, it will be appreciated that information stored in the persistent storage 107 can still be read, modified, and erased by an operator. For example, as shown in FIG. 1, the tape drive 103 is physically associated with the persistent storage 107 because both are secured to the tray 115. The tray (and the components physically associated with it) may be readily removed and provided for servicing. Of course, other ways of physically associating the persistent storage 107 with the tape drive 103 are possible, such as providing the persistent storage on or within the tape drive. As a result, a service technician may connect a computer to the tape drive device 101 via the communications ports 109 to retrieve, modify, or erase stored information. This information may be used to analyze or troubleshoot the tape drive device 101.
[0028]Elements of the tape drive device 101 described above are carried by a "sled" or tray 115. Several such trays together comprise a library of mass data storage devices (not shown). A tray 115 can be removed from the library for analysis or troubleshooting by using a handle 117.
[0029]Alternate embodiments of a tape drive device 101 include additional elements 113 including fans, motors for automated removal of the tray 115, and additional buses 111. An alternate embodiment omits the processor 105 coupled to the tray 115; the tape drive device 101 is instead commanded by a processor located outside the tray 115.
[0030]In another embodiment, additional buses are used, such as a first bus for directly coupling the drive 103 and a host or automated tape library system to receive commands (e.g., via the communications port(s) 109, a second bus (not shown) to provide a direct data path from/to the drive 103, a third bus between the persistent storage 107 and a component outside the tray 115, or any combination of such buses.
[0031]FIG. 2 shows a method for logging events. Examples of events include Tape Loaded, Tape Unloaded, Read Error, Write Error, and Timer, as explained below. When an event occurs at block 201, the method determines at block 202 whether the event is a Timer event. The event is logged at block 203 if it is not a Timer event. Information that is being collected is then updated at block 205. Examples of information that may be collected include speed of a fan, current temperature of a drive, number of read and write errors that may have occurred, and how much time a tape has been in a drive or has been used. Other examples of information that may be collected include those listed in FIG. 4A, and FIG. 4B (described below). After this information has been collected, it is updated in the persistent storage 107 at block 205. The method then ends at block 207.
[0032]Some information is collected on a periodic basis. A Timer event triggers the periodic collection of this information. If the event at block 201 is a Timer event, information is updated in the persistent storage 107 at block 205, but block 203 to log the event is bypassed. One familiar with the relevant art will recognize that the frequency with which a Timer event occurs can be varied during development, operation, or both. One familiar with the relevant art will also recognize that a Timer event does not need to be logged because its frequency is predetermined. Not all stored information is updated after every event. Which information is updated upon the occurrence of a given event depends on the type of event. FIG. 4A and FIG. 4B (described below) will describe under what circumstances information is updated.
[0033]FIG. 3 shows a method for logging commands. The method waits for a command to be issued. Commands may arrive through the communications ports 109, when issued by, for example, a host computer. Examples of commands may include UNLOAD, LOAD, READ TAPE MOTION STATUS, and READ CARTRIDGE INFO. The method waits for a command at block 301. At block 303, the method loops back to block 301 when no command has been received. After a command is received, the command is logged in the persistent storage 107 at block 305 and is then operationalized at block 307. Examples of commands that may be operationalized at block 307 include UNLOAD and LOAD. Some commands may be operationalized at block 307 or may be issued directly to the tape drive 103. Examples of such commands are READ DATA and WRITE DATA. It is commonly understood in the relevant art how commands are operationalized in a tape drive device 101. Information that is being collected is then updated in persistent storage 107 at block 309. Information updated at block 309 is not necessarily the same as that updated at block 205. While some of the updated information is identical at both blocks 205 and 309, examples of information that may be updated at block 309 and not at block 205 include the amount of data read or written.
[0034]Referring to FIG. 4A and FIG. 4B, fields are updated in the depicted embodiment after various events. Events are shown as column headings: Manufacturing of Tape Drive Device 402, Tape Load 404, Tape Unload 406, Tape Drive Device Powered On 408, Tape Drive Device Brought On Line 410, Tape Drive Device Taken Off Line 412, Tape Drive Power On/Off 414, Error 416, and Timer 418. The column headings also indicate whether information is updated before, during, or after the event. As an example, some information is updated after a Tape Load event. Information field names are shown as row headings: CartridgeLabel 602, CartridgeManufacturer 604, etc. These information fields are described in subsequent figures. The following examples illustrate how the table illustrated in FIG. 4A and FIG. 4B is used.
[0035]CartridgeLabel 602, CartridgeManufacturer 604, TapeLoadCount 606, and TapeLength 608 fields are updated after a Tape Load event 404. TapeWriteRetries 610 and TapeReadRetries 612 after a Tape Load event 404, before a Tape Unload event 406, or after a Timer event 418. TapeUnrecoveredWriteErrors 614 and TapeUnrecoveredReadErrors 616 fields are updated after a Tape Load event 404, before a Tape Unload event 406, or after an Error event 416. One familiar with the relevant art will understand how to read and understand the remainder of the table illustrated. One familiar with the relevant art will appreciate that not all Events or Information fields appear in the table but can deduce described Events or Information fields nonetheless. For example, a MultiCartridgeVendors field 822 is updated to TRUE only when more than one vendor (or brand) of a tape is used in the tape drive. As another example, Checksum information fields do not appear in this or subsequent tables. One familiar with the relevant art will appreciate that a Checksum field is used to check the integrity of an information record, and is updated whenever any field in the record is updated.
[0036]FIG. 5 through FIG. 13 describe data structures used to store the collected information in the persistent storage 107.
[0037]Referring to FIG. 5, multiple fields comprise a record used to store information about the tape drive device 101 in the depicted embodiment. Each field is a data structure as described below in FIG. 6 through FIG. 13. An info field 502 stores a Storage Device Information Structure record. A data field 504 stores a Storage Device Static Information Structure record. A state field 506 stores a Storage Device State Information Structure record. A counters field 508 stores a Storage Device Cumulative Information Structure record. A history field 510 stores a Storage Device History Information Structure record. An eventlog field 512 stores a Storage Device Event Log Information Structure. A cmdlog field 514 stores a Storage Device Command Log Information Structure. A reserved field 516 is reserved for future use.
[0038]Referring to FIG. 6, a Storage Device Tape Information Structure record is comprised of multiple fields in the depicted embodiment. A CartridgeLabel field 602 is an array of characters representing a label assigned to a tape. A CartridgeManufacturer field 604 is an array of characters representing the manufacturer of the tape. A TapeLoadCount field 606 is an integer representing the number of times a tape cartridge has been loaded. A TapeLength field 608 is an integer representing a length or size of a tape. As an example, when the Removable Media is a cartridge tape, this field may store the length of the cartridge tape in meters. A TapeWriteRetries field 610 is an integer representing the number of times a write command resulted in errors that were recovered from. A TapeReadRetries field 612 is an integer representing the number of times a read command resulted in errors that were recovered from. A TapeUnrecoveredWriteErrors field 614 is an integer representing the number of times a write command resulted in failures. A TapeUnrecoveredReadErrors field 616 is an integer representing the number of times a read command resulted in failures. A TapeMotionTime field 622 is an integer representing the amount of time the tape moved while loaded. A TapeResidencyTime field 624 is an integer representing the amount of time a tape has been loaded.
[0039]Referring to FIG. 7, a Storage Device Information Structure record is comprised of a SledInfo field 702. This field is an array of integers representing information required for "booting" the tape drive device 101. As an example, the SledInfo field 702 may contain the board type and version number.
[0040]Referring to FIG. 8, a Storage Device Static Information Structure is comprised of several fields in the depicted embodiment. A SledBootCode field 802 is an array of characters representing a boot strap code level for the tape drive device 101. A SledApplCode field 804 is a character array representing the application code level for the tape drive device 101. A DriveVendor field 806 is a character array representing the vendor of the tape drive 103. A DriveProductId field 808 is a character array representing the product identification number of the tape drive 103. A DriveSerialNumber field 810 is a character array representing the serial number of the tape drive 103. A DriveWWN field 812 is a character array representing the fibre channel worldwide name of the tape drive 103. A DriveSCSIId field 814 is an integer representing the SCSI ID of the tape drive 103. A DriveLoopId1 field 816 is an integer representing the fibre channel port 1 loop ID of the tape drive 103. The DriveLoopId2 field 818 is an integer representing the fibre channel port 2 loop ID of the tape drive 103. A DriveFwRev field 820 is a character array representing the firmware revision number of the firmware currently in the tape drive device 101. A MultiCartridgeVendors field 822 is an integer representing whether multiple tape vendors are used in the tape drive device 101. A TAFlagCount field 824 is an array of integers representing a count of the tape alert flag occurrences. A MBBeforeFirstClean field 826 is an integer representing the megabytes of data that were read or written before the first cleaning of the tape drive device 101. A DriveLocation field 828 is an array of integers representing an identifier of the location within an array or library in which the tape drive device 101 is located. A LibrarySerialNumber field 830 is an array of characters representing a serial number of an array or library within which the tape drive device 101 is presently located. A reserved field 832 is reserved for future use.
[0041]Referring to FIG. 9, a Storage Device State Information Structure record is comprised of several fields in the depicted embodiment. A SledFanSpeed field 902 is an integer representing the speed of a fan coupled to the tape drive device 101. A SledTemperature field 904 is an integer representing the temperature of the tape drive device 101. A SledOnline field 906 is an integer representing whether the tape drive device 101 is online. A DrivePowerOn field 908 is an integer representing whether the tape drive 103 is powered on. A DriveTemperature field 910 is an integer representing the temperature of the tape drive 103. A DriveCleanStatusOn field 912 is an integer representing whether tape drive 103 has detected that cleaning is required. A DrivePreventRemoval field 914 is an integer representing whether the flag to prevent removal of a tape from the tape drive 103 has been set. A DriveCompressionOn field 916 is an integer representing whether the tape drive 103 has data compression enabled. A DriveTAFlags field 918 is an array of integers representing the tape alert flag settings. A TapePresence field 920 is an integer representing whether a tape is in the tape drive device 101. A TapeWriteProtectOn field 922 is an integer representing whether the tape in the tape drive device 101 is set to disable writing. A TapeMotionStatus field 924 is an integer representing a type of motion detected on the tape drive device including READ, WRITE, and REWIND. A CartridgeInfo field 926 is a Storage Device Tape Information Structure record as previously described in FIG. 6.
[0042]An RCUmessage field 928 is an array of characters representing information provided by the external operating environment of the tape drive device. The RCUmessage field 928 may be used as a scratchpad to store information about the external environment of the tape drive device 101 that would be useful for analysis or troubleshooting. As an example, this information may be provided by a tape drive device array controller or other library unit, such as a robotic arm. The RCUmessage field 928 may store any information related to systems or operations external to the tape drive device 101, such as information that a servicing technician or third party may wish to obtain. Since the tape drive device 101 may be regularly sent for servicing, this data then becomes available to such third parties. A reserved field 930 is reserved for future use.
[0043]Referring to FIG. 10, a Storage Device Cumulative Information Structure record is comprised of several fields in the depicted embodiment. A DrivePowerUps field 1002 is an integer representing the number of times the tape drive device has been powered up. A DriveMounts field 1004 is an integer representing the number of times a tape has been loaded into the tape drive device 101. A DriveCleans field 1006 is an integer representing the number of times the tape drive 103 has been cleaned. An MBSinceLastCleaning field 1008 is an integer representing the number of megabytes read or written since the tape drive 103 was last cleaned. An MBRead field 1010 is an integer representing the number of megabytes read. An MBWritten field 1012 is an integer representing the number of megabytes written. A DriveReadErrors field 1014 is an integer representing the number of read errors. A DriveWriteErrors field 1016 is an integer representing the number of write errors. A DriveRecoveredReads field 1018 is an integer representing the number of reads that were successful after detection of an error. A DriveRecoveredWrites field 1020 is an integer representing the number of writes that were successful after detection of an error. A DriveMotionSeconds field 1022 is an integer representing the amount of time a tape was in motion. A DriveErrorCode field 1024 is an integer representing a code for the last error that was detected. A reserved field 1026 is reserved for future use.
[0044]Referring to FIG. 11, a Storage Device History Information Structure record is comprised of several fields in the depicted embodiment. A SledFanSpeed field 1102 is an array of integers representing a list of fan speeds collected over time in relation to a fan coupled to the tape drive device 101. A SledTemperature field 1104 is an array of integers representing a list of temperatures collected over time for the tape drive device 101. A DriveFwRevs field 1106 is an array of strings (i.e., array of character arrays) representing a list of firmware revisions that have been used with the tape drive device 101. A DriveErrorCodes field 1108 is an array of integers representing a list of error codes detected from the tape drive 103. A DriveTAFlags field 1110 array of is an integer array representing a list of tape alert flags. A CartridgeInfo field 1112 is an array of Storage Device Tape Information Structures representing a list of Tapes used with the tape drive device 101. A reserved field 1114 is reserved for future use.
[0045]Referring to FIG. 12, a Storage Device Event Log Information Structure record is comprised of an event field 1202. This field is an array of integer arrays representing a list of events.
[0046]Referring to FIG. 13, a Storage Device Command Log Information Structure record is comprised of a command field 1302. This field is an array of character arrays representing a list of commands issued to the tape drive device 101.
[0047]Various other records or data structures are possible. For example, data structures may also include a Checksum field. A Checksum field may be used for data integrity validation. Some or all of the above data structures may be reset following servicing of the drive.
[0048]While the above embodiment emphasizes the use of a tape drive in a Storage Device, and a tape cartridge as a Removable Media, it will be appreciated by those familiar with the relevant art that the above embodiment also applies to other forms of Storage Devices. As examples, the disclosed method and apparatus can be used with recordable and non-recordable varieties of CD-ROM drives, DVD-ROM drives, and hard disk drives. Aspects of the invention can be embodied not only in a Storage Device, but also in other aspects of computing systems and associated peripheral devices. For example, it is anticipated that a method or apparatus as described herein may be used to analyze or troubleshoot digital cameras, printers, and photocopiers. Although the only example of persistent storage given above is nonvolatile random access memory, it is anticipated that other forms of persistent storage can also be used instead of, or in addition to, such persistent physical memory. Data structures described herein may also be modified by changing the types of data collected, the amount of data collected, the data types used, and the order in which the data elements appear in the structures herein described. As an example, when the method described herein is practiced with Storage Devices using read-only media types such as digital video disk drives, the data elements relating to the number of megabytes written may not be used. In general, while specific hardware is described herein, aspects of the invention are equally applicable to other forms of data processing hardware.
[0049]While the above embodiment emphasizes the use of physical coupling between a Storage Device and a host or automated library system, it will be appreciated by one familiar with the relevant art that the above embodiment also applies to other forms of coupling, such as via a wireless link.
[0050]Unless the context clearly requires otherwise, throughout the description and the claims, the words "comprise," "comprising," and the like are to be construed in an inclusive as opposed to exclusive or exhaustive sense; that is to say, in a sense of "including, but not limited to." Words using the singular or plural number also include the plural or singular number respectively. The words "herein," "above," "below," and words of similar import, when used in this application, shall refer to this application as a whole and not to any particular portion of this application. The word "information" relates to any form of data that is capable of being stored in digital form. The word "update" in its various forms as used above relates to storing information for the first time, modifying information already stored, or removing previously stored information. The word "service" in its various forms as used herein relating to a Storage Device includes removing a Storage Device for analysis or troubleshooting.
[0051]The above detailed descriptions of embodiments of this invention are not intended to be exhaustive or to limit the invention to the precise form disclosed above. While specific embodiments of, and examples for, the invention are described above for illustrative purposes, various equivalent modifications are possible within the scope of the invention, as those skilled in the relevant art will recognize. For example, while steps or blocks are presented in a given order, alternative embodiments may perform routines having steps or blocks in a different order. The teachings of the invention provided herein can be applied to other systems, and not necessarily just to tape drives as described herein. The various embodiments described herein can be combined to provide further embodiments. These and other changes can be made to the invention in light of the detailed description.
[0052]In general, the terms used in the following claims should not be construed to limit the invention to the specific embodiments disclosed in the specification, unless the above detailed description explicitly defines such terms. Accordingly, the actual scope of the invention encompasses the disclosed embodiments and all equivalent ways of practicing or implementing the invention under the claims. While certain aspects of the invention are presented below in certain claim forms, the inventors contemplate the various aspects of the invention in any number of claim forms. Accordingly, the inventors reserve the right to add additional claims after filing the application to pursue such additional claim forms for other aspects of the invention.
User Contributions:
Comment about this patent or add new information about this topic: