US20090164714A1 - Method and apparatus for analyzing a mass data storage device, such as for troubleshooting a cartridge tape drive - Google Patents
Method and apparatus for analyzing a mass data storage device, such as for troubleshooting a cartridge tape drive Download PDFInfo
- Publication number
- US20090164714A1 US20090164714A1 US12/395,552 US39555209A US2009164714A1 US 20090164714 A1 US20090164714 A1 US 20090164714A1 US 39555209 A US39555209 A US 39555209A US 2009164714 A1 US2009164714 A1 US 2009164714A1
- Authority
- US
- United States
- Prior art keywords
- storage device
- removable media
- media storage
- information
- volatile memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0686—Libraries, e.g. tape libraries, jukebox
Definitions
- a mass data 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”).
- 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.
- 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.
- Storage Devices that fail or need servicing may be configured for easy removal and replacement.
- 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.
- 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.
- a service technician 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.
- 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.
- FIG. 1 is a block diagram drawing showing a Storage Device utilizing a tape drive in one embodiment of the invention (“tape drive device”).
- FIG. 2 is a flow chart of a Log Events Method for use by the tape drive device illustrated in FIG. 1 .
- FIG. 3 is a flow chart of a Log Commands Method for use by the tape drive device illustrated in FIG. 1 .
- 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 .
- FIG. 5 is a data diagram illustrating a Persistent Storage Information Structure record according to the embodiment illustrated in FIG. 1 .
- FIG. 6 is a data diagram showing a Storage Device Tape Information Structure record according to the embodiment illustrated in FIG. 1 .
- FIG. 7 is a data diagram illustrating a Storage Device Information Structure record according to the embodiment illustrated in FIG. 1 .
- FIG. 8 is a data diagram illustrating a Storage Device Static Information Structure record according to the embodiment illustrated in FIG. 1 .
- FIG. 9 is a data diagram illustrating a Storage Device State Information Structure record according to the embodiment illustrated in FIG. 1 .
- FIG. 10 is a data diagram illustrating a Storage Device Cumulative Information Structure record according to the embodiment illustrated in FIG. 1 .
- FIG. 11 is a data diagram illustrating a Storage Device History Information Structure record according to the embodiment illustrated in FIG. 1 .
- FIG. 12 is a data diagram illustrating a Storage Device Event Log Information Structure record according to the embodiment illustrated in FIG. 1 .
- FIG. 13 is a data diagram illustrating a Storage Device Command Log Information Structure record according to the embodiment illustrated in FIG. 1 .
- 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.
- 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.
- the persistent storage remains coupled or physically associated with the removed Storage Device.
- 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.
- 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.
- 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 .
- 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.
- EEPROM electronically erasable programmable read-only memory
- 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 .
- 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 .
- 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.
- 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.
- 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.
- 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.
- 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 .
- 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 .
- 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 .
- 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.
- 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.
- 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 .
- 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.
- the frequency with which a Timer event occurs can be varied during development, operation, or both.
- 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.
- 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 .
- the method loops back to block 301 when no command has been 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.
- 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.
- 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.
- 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 .
- TapeWriteRetries 610 and TapeReadRetries 612 after a Tape Load event 404 , before a Tape Unload event 406 , or after an Error event 416 .
- 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.
- Checksum information fields do not appear in this or subsequent tables.
- a Checksum field is used to check the integrity of an information record, and is updated whenever any field in the record is updated.
- FIG. 5 through FIG. 13 describe data structures used to store the collected information in the persistent storage 107 .
- 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.
- 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.
- 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 .
- the SledInfo field 702 may contain the board type and version number.
- 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 DriveLoopId 1 field 816 is an integer representing the fibre channel port 1 loop ID of the tape drive 103 .
- the DriveLoopId 2 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.
- 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 .
- 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.
- 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.
- 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.
- 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.
- 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 .
- data structures may also include a Checksum field.
- a Checksum field may be used for data integrity validation.
- 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.
- persistent storage is nonvolatile random access memory
- 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.
- 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.
- specific hardware is described herein, aspects of the invention are equally applicable to other forms of data processing hardware.
- 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 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.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
Method and apparatus for 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.
Description
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
-
FIG. 1 is a block diagram drawing showing a Storage Device utilizing a tape drive in one embodiment of the invention (“tape drive device”). -
FIG. 2 is a flow chart of a Log Events Method for use by the tape drive device illustrated inFIG. 1 . -
FIG. 3 is a flow chart of a Log Commands Method for use by the tape drive device illustrated inFIG. 1 . -
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 ofFIG. 1 . -
FIG. 5 is a data diagram illustrating a Persistent Storage Information Structure record according to the embodiment illustrated inFIG. 1 . -
FIG. 6 is a data diagram showing a Storage Device Tape Information Structure record according to the embodiment illustrated inFIG. 1 . -
FIG. 7 is a data diagram illustrating a Storage Device Information Structure record according to the embodiment illustrated inFIG. 1 . -
FIG. 8 is a data diagram illustrating a Storage Device Static Information Structure record according to the embodiment illustrated inFIG. 1 . -
FIG. 9 is a data diagram illustrating a Storage Device State Information Structure record according to the embodiment illustrated inFIG. 1 . -
FIG. 10 is a data diagram illustrating a Storage Device Cumulative Information Structure record according to the embodiment illustrated inFIG. 1 . -
FIG. 11 is a data diagram illustrating a Storage Device History Information Structure record according to the embodiment illustrated inFIG. 1 . -
FIG. 12 is a data diagram illustrating a Storage Device Event Log Information Structure record according to the embodiment illustrated inFIG. 1 . -
FIG. 13 is a data diagram illustrating a Storage Device Command Log Information Structure record according to the embodiment illustrated inFIG. 1 . - 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 1 02 is first introduced and discussed with respect toFIG. 1 ). - Note: The headings provided herein are for convenience and do not necessarily affect the scope or interpretation of the invention.
- 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.
- 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.
-
FIG. 1 shows a block diagram of a massdata storage device 101 utilizing a tape drive (hereafter, “tape drive device”). Thetape drive device 101 may form part of an automated tape library system (not shown). Atape drive 103, aprocessor 105, apersistent storage 107, andadditional 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. - The
processor 105 is also connected tocommunications ports 109. Thecommunications ports 109 may be connected to other mass data storage devices similar to or different from thetape drive device 101, host computers, and other devices needing to communicate with thetape drive device 101. Theprocessor 105 communicates with these other devices via thecommunications ports 109. Theprocessor 105 may react to commands issued from these other devices and command other elements of thetape drive device 101 via the communications bus 111. For example, reacting to an UNLOAD command from a host computer, theprocessor 105 may issue an unload command to thetape drive 103 via the communications bus 111. Theprocessor 105 may also read and write a historical log of commands it has issued or that were issued to it in thepersistent storage 107. When theprocessor 105 detects errors, such as may occur in thetape drive 103, theprocessor 105 may store such error conditions in thepersistent storage 107. Theprocessor 105 may also collect other information from thetape drive device 101 or its additional elements, including temperatures, fan speeds, serial numbers, and other attributes that may be useful in analyzing or troubleshooting thetape drive device 101. After collecting this information, theprocessor 105 stores the information in thepersistent storage 107. Although such additional elements of thetape 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 aprocessor 105 would detect and collect such information. - One feature of a
tape drive device 101 as described above is that the information gathered and stored in thepersistent storage 107 is not lost when thetape drive device 101 loses power or is removed for servicing. After thetape drive device 101 is removed for servicing, it will be appreciated that information stored in thepersistent storage 107 can still be read, modified, and erased by an operator. For example, as shown inFIG. 1 , thetape drive 103 is physically associated with thepersistent storage 107 because both are secured to thetray 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 thepersistent storage 107 with thetape 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 thetape drive device 101 via thecommunications ports 109 to retrieve, modify, or erase stored information. This information may be used to analyze or troubleshoot thetape drive device 101. - Elements of the
tape drive device 101 described above are carried by a “sled” ortray 115. Several such trays together comprise a library of mass data storage devices (not shown). Atray 115 can be removed from the library for analysis or troubleshooting by using ahandle 117. - Alternate embodiments of a
tape drive device 101 includeadditional elements 113 including fans, motors for automated removal of thetray 115, and additional buses 111. An alternate embodiment omits theprocessor 105 coupled to thetray 115; thetape drive device 101 is instead commanded by a processor located outside thetray 115. - 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 thedrive 103, a third bus between thepersistent storage 107 and a component outside thetray 115, or any combination of such buses. -
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 atblock 201, the method determines atblock 202 whether the event is a Timer event. The event is logged atblock 203 if it is not a Timer event. Information that is being collected is then updated atblock 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 inFIG. 4A , andFIG. 4B (described below). After this information has been collected, it is updated in thepersistent storage 107 atblock 205. The method then ends atblock 207. - 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 thepersistent storage 107 atblock 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 andFIG. 4B (described below) will describe under what circumstances information is updated. -
FIG. 3 shows a method for logging commands. The method waits for a command to be issued. Commands may arrive through thecommunications 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 atblock 301. Atblock 303, the method loops back to block 301 when no command has been received. After a command is received, the command is logged in thepersistent storage 107 atblock 305 and is then operationalized atblock 307. Examples of commands that may be operationalized atblock 307 include UNLOAD and LOAD. Some commands may be operationalized atblock 307 or may be issued directly to thetape 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 atape drive device 101. Information that is being collected is then updated inpersistent storage 107 atblock 309. Information updated atblock 309 is not necessarily the same as that updated atblock 205. While some of the updated information is identical at bothblocks block 309 and not atblock 205 include the amount of data read or written. - Referring to
FIG. 4A andFIG. 4B , fields are updated in the depicted embodiment after various events. Events are shown as column headings: Manufacturing ofTape Drive Device 402,Tape Load 404, Tape Unload 406, Tape Drive Device Powered On 408, Tape Drive Device Brought OnLine 410, Tape Drive DeviceTaken Off Line 412, Tape Drive Power On/Off 414, Error 416, andTimer 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 inFIG. 4A andFIG. 4B is used. -
CartridgeLabel 602,CartridgeManufacturer 604,TapeLoadCount 606, andTapeLength 608 fields are updated after aTape Load event 404.TapeWriteRetries 610 andTapeReadRetries 612 after aTape Load event 404, before a Tape Unloadevent 406, or after aTimer event 418.TapeUnrecoveredWriteErrors 614 andTapeUnrecoveredReadErrors 616 fields are updated after aTape Load event 404, before a Tape Unloadevent 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, aMultiCartridgeVendors 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. -
FIG. 5 throughFIG. 13 describe data structures used to store the collected information in thepersistent storage 107. - Referring to
FIG. 5 , multiple fields comprise a record used to store information about thetape drive device 101 in the depicted embodiment. Each field is a data structure as described below inFIG. 6 throughFIG. 13 . Aninfo field 502 stores a Storage Device Information Structure record. Adata field 504 stores a Storage Device Static Information Structure record. Astate field 506 stores a Storage Device State Information Structure record. A countersfield 508 stores a Storage Device Cumulative Information Structure record. Ahistory field 510 stores a Storage Device History Information Structure record. Aneventlog field 512 stores a Storage Device Event Log Information Structure. Acmdlog field 514 stores a Storage Device Command Log Information Structure. Areserved field 516 is reserved for future use. - Referring to
FIG. 6 , a Storage Device Tape Information Structure record is comprised of multiple fields in the depicted embodiment. ACartridgeLabel field 602 is an array of characters representing a label assigned to a tape. ACartridgeManufacturer field 604 is an array of characters representing the manufacturer of the tape. ATapeLoadCount field 606 is an integer representing the number of times a tape cartridge has been loaded. ATapeLength 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. ATapeWriteRetries field 610 is an integer representing the number of times a write command resulted in errors that were recovered from. ATapeReadRetries field 612 is an integer representing the number of times a read command resulted in errors that were recovered from. ATapeUnrecoveredWriteErrors field 614 is an integer representing the number of times a write command resulted in failures. ATapeUnrecoveredReadErrors field 616 is an integer representing the number of times a read command resulted in failures. ATapeMotionTime field 622 is an integer representing the amount of time the tape moved while loaded. ATapeResidencyTime field 624 is an integer representing the amount of time a tape has been loaded. - Referring to
FIG. 7 , a Storage Device Information Structure record is comprised of aSledInfo field 702. This field is an array of integers representing information required for “booting” thetape drive device 101. As an example, theSledInfo field 702 may contain the board type and version number. - Referring to
FIG. 8 , a Storage Device Static Information Structure is comprised of several fields in the depicted embodiment. ASledBootCode field 802 is an array of characters representing a boot strap code level for thetape drive device 101. ASledApplCode field 804 is a character array representing the application code level for thetape drive device 101. ADriveVendor field 806 is a character array representing the vendor of thetape drive 103. ADriveProductId field 808 is a character array representing the product identification number of thetape drive 103. ADriveSerialNumber field 810 is a character array representing the serial number of thetape drive 103. ADriveWWN field 812 is a character array representing the fibre channel worldwide name of thetape drive 103. ADriveSCSIId field 814 is an integer representing the SCSI ID of thetape drive 103. ADriveLoopId1 field 816 is an integer representing thefibre channel port 1 loop ID of thetape drive 103. TheDriveLoopId2 field 818 is an integer representing thefibre channel port 2 loop ID of thetape drive 103. ADriveFwRev field 820 is a character array representing the firmware revision number of the firmware currently in thetape drive device 101. AMultiCartridgeVendors field 822 is an integer representing whether multiple tape vendors are used in thetape drive device 101. ATAFlagCount field 824 is an array of integers representing a count of the tape alert flag occurrences. AMBBeforeFirstClean field 826 is an integer representing the megabytes of data that were read or written before the first cleaning of thetape drive device 101. ADriveLocation field 828 is an array of integers representing an identifier of the location within an array or library in which thetape drive device 101 is located. ALibrarySerialNumber field 830 is an array of characters representing a serial number of an array or library within which thetape drive device 101 is presently located. Areserved field 832 is reserved for future use. - Referring to
FIG. 9 , a Storage Device State Information Structure record is comprised of several fields in the depicted embodiment. ASledFanSpeed field 902 is an integer representing the speed of a fan coupled to thetape drive device 101. ASledTemperature field 904 is an integer representing the temperature of thetape drive device 101. ASledOnline field 906 is an integer representing whether thetape drive device 101 is online. ADrivePowerOn field 908 is an integer representing whether thetape drive 103 is powered on. ADriveTemperature field 910 is an integer representing the temperature of thetape drive 103. ADriveCleanStatusOn field 912 is an integer representing whethertape drive 103 has detected that cleaning is required. ADrivePreventRemoval field 914 is an integer representing whether the flag to prevent removal of a tape from thetape drive 103 has been set. ADriveCompressionOn field 916 is an integer representing whether thetape drive 103 has data compression enabled. ADriveTAFlags field 918 is an array of integers representing the tape alert flag settings. ATapePresence field 920 is an integer representing whether a tape is in thetape drive device 101. ATapeWriteProtectOn field 922 is an integer representing whether the tape in thetape drive device 101 is set to disable writing. ATapeMotionStatus field 924 is an integer representing a type of motion detected on the tape drive device including READ, WRITE, and REWIND. ACartridgeInfo field 926 is a Storage Device Tape Information Structure record as previously described inFIG. 6 . - An
RCUmessage field 928 is an array of characters representing information provided by the external operating environment of the tape drive device. TheRCUmessage field 928 may be used as a scratchpad to store information about the external environment of thetape 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. TheRCUmessage field 928 may store any information related to systems or operations external to thetape drive device 101, such as information that a servicing technician or third party may wish to obtain. Since thetape drive device 101 may be regularly sent for servicing, this data then becomes available to such third parties. Areserved field 930 is reserved for future use. - Referring to
FIG. 10 , a Storage Device Cumulative Information Structure record is comprised of several fields in the depicted embodiment. ADrivePowerUps field 1002 is an integer representing the number of times the tape drive device has been powered up. ADriveMounts field 1004 is an integer representing the number of times a tape has been loaded into thetape drive device 101. ADriveCleans field 1006 is an integer representing the number of times thetape drive 103 has been cleaned. AnMBSinceLastCleaning field 1008 is an integer representing the number of megabytes read or written since thetape drive 103 was last cleaned. AnMBRead field 1010 is an integer representing the number of megabytes read. AnMBWritten field 1012 is an integer representing the number of megabytes written. ADriveReadErrors field 1014 is an integer representing the number of read errors. ADriveWriteErrors field 1016 is an integer representing the number of write errors. ADriveRecoveredReads field 1018 is an integer representing the number of reads that were successful after detection of an error. ADriveRecoveredWrites field 1020 is an integer representing the number of writes that were successful after detection of an error. ADriveMotionSeconds field 1022 is an integer representing the amount of time a tape was in motion. ADriveErrorCode field 1024 is an integer representing a code for the last error that was detected. Areserved field 1026 is reserved for future use. - Referring to
FIG. 11 , a Storage Device History Information Structure record is comprised of several fields in the depicted embodiment. ASledFanSpeed field 1102 is an array of integers representing a list of fan speeds collected over time in relation to a fan coupled to thetape drive device 101. ASledTemperature field 1104 is an array of integers representing a list of temperatures collected over time for thetape drive device 101. ADriveFwRevs field 1106 is an array of strings (i.e., array of character arrays) representing a list of firmware revisions that have been used with thetape drive device 101. ADriveErrorCodes field 1108 is an array of integers representing a list of error codes detected from thetape drive 103. ADriveTAFlags field 1110 array of is an integer array representing a list of tape alert flags. ACartridgeInfo field 1112 is an array of Storage Device Tape Information Structures representing a list of Tapes used with thetape drive device 101. Areserved field 1114 is reserved for future use. - Referring to
FIG. 12 , a Storage Device Event Log Information Structure record is comprised of anevent field 1202. This field is an array of integer arrays representing a list of events. - Referring to
FIG. 13 , a Storage Device Command Log Information Structure record is comprised of acommand field 1302. This field is an array of character arrays representing a list of commands issued to thetape drive device 101. - 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.
- 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.
- 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.
- 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.
- 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.
- 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 (20)
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; and
providing 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; and
providing 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, and
wherein 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, and
at 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.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/395,552 US20090164714A1 (en) | 2002-12-17 | 2009-02-27 | Method and apparatus for analyzing a mass data storage device, such as for troubleshooting a cartridge tape drive |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US43426802P | 2002-12-17 | 2002-12-17 | |
US41386703A | 2003-04-14 | 2003-04-14 | |
US50530703P | 2003-09-22 | 2003-09-22 | |
US10/738,194 US7263596B1 (en) | 2002-12-17 | 2003-12-17 | Logical library architecture for data storage applications and methods of use |
US12/395,552 US20090164714A1 (en) | 2002-12-17 | 2009-02-27 | Method and apparatus for analyzing a mass data storage device, such as for troubleshooting a cartridge tape drive |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US41386703A Division | 2002-12-17 | 2003-04-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
US20090164714A1 true US20090164714A1 (en) | 2009-06-25 |
Family
ID=38433237
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/738,194 Active 2025-08-31 US7263596B1 (en) | 2002-12-17 | 2003-12-17 | Logical library architecture for data storage applications and methods of use |
US11/780,387 Expired - Fee Related US7680979B2 (en) | 2002-12-17 | 2007-07-19 | Logical library architecture for data storage applications and methods of use |
US12/395,552 Abandoned US20090164714A1 (en) | 2002-12-17 | 2009-02-27 | Method and apparatus for analyzing a mass data storage device, such as for troubleshooting a cartridge tape drive |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/738,194 Active 2025-08-31 US7263596B1 (en) | 2002-12-17 | 2003-12-17 | Logical library architecture for data storage applications and methods of use |
US11/780,387 Expired - Fee Related US7680979B2 (en) | 2002-12-17 | 2007-07-19 | Logical library architecture for data storage applications and methods of use |
Country Status (1)
Country | Link |
---|---|
US (3) | US7263596B1 (en) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120019949A1 (en) * | 2003-06-26 | 2012-01-26 | Spectra Logic Corporation | Tape cartridge auxiliary memeory based library |
US20120044060A1 (en) * | 2010-08-17 | 2012-02-23 | Seiko Epson Corporation | Electronic Device And Data Management System |
US20150205654A1 (en) * | 2014-01-17 | 2015-07-23 | International Business Machines Corporation | Computer flight recorder with active error detection |
US9141542B1 (en) * | 2012-06-22 | 2015-09-22 | Kip Cr P1 Lp | System, method and computer program product for host system LTFS auto-adaptation |
US9323776B2 (en) | 2012-04-20 | 2016-04-26 | Kip Cr P1 Lp | System, method and computer program product for a self-describing tape that maintains metadata of a non-tape file system |
US9563365B2 (en) | 2012-04-30 | 2017-02-07 | Kip Cr P1 Lp | System and method for using a memory buffer to stream data from a tape to multiple clients |
US9760457B2 (en) | 2012-05-31 | 2017-09-12 | Kip Cr P1 Lp | System, method and computer program product for recovering stub files |
Families Citing this family (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7870218B2 (en) * | 2003-04-09 | 2011-01-11 | Nec Laboratories America, Inc. | Peer-to-peer system and method with improved utilization |
WO2005089241A2 (en) * | 2004-03-13 | 2005-09-29 | Cluster Resources, Inc. | System and method for providing object triggers |
US20070266388A1 (en) | 2004-06-18 | 2007-11-15 | Cluster Resources, Inc. | System and method for providing advanced reservations in a compute environment |
US7672753B1 (en) * | 2004-07-30 | 2010-03-02 | Symantec Operating Corporation | Optimized library device management |
US8176490B1 (en) | 2004-08-20 | 2012-05-08 | Adaptive Computing Enterprises, Inc. | System and method of interfacing a workload manager and scheduler with an identity manager |
US8271980B2 (en) | 2004-11-08 | 2012-09-18 | Adaptive Computing Enterprises, Inc. | System and method of providing system jobs within a compute environment |
US8631130B2 (en) | 2005-03-16 | 2014-01-14 | Adaptive Computing Enterprises, Inc. | Reserving resources in an on-demand compute environment from a local compute environment |
US8863143B2 (en) | 2006-03-16 | 2014-10-14 | Adaptive Computing Enterprises, Inc. | System and method for managing a hybrid compute environment |
US9231886B2 (en) | 2005-03-16 | 2016-01-05 | Adaptive Computing Enterprises, Inc. | Simple integration of an on-demand compute environment |
CA2603577A1 (en) | 2005-04-07 | 2006-10-12 | Cluster Resources, Inc. | On-demand access to compute resources |
US7979593B2 (en) * | 2005-06-08 | 2011-07-12 | International Business Machines Corporation | Non-disruptive library reset method |
US7647469B2 (en) * | 2005-07-22 | 2010-01-12 | International Business Machines Corporation | Method of assigning virtual import/export element addresses |
US8356039B2 (en) * | 2006-12-21 | 2013-01-15 | Yahoo! Inc. | Providing multiple media items to a consumer via a simplified consumer interaction |
US8074218B2 (en) * | 2007-03-29 | 2011-12-06 | International Business Machines Corporation | Method and system for constructing virtual resources |
US9880906B2 (en) * | 2007-06-27 | 2018-01-30 | Hewlett Packard Enterprise Development Lp | Drive resources in storage library behind virtual library |
US8041773B2 (en) | 2007-09-24 | 2011-10-18 | The Research Foundation Of State University Of New York | Automatic clustering for self-organizing grids |
US7752175B2 (en) * | 2007-10-29 | 2010-07-06 | Objectivity, Inc. | Method, system and computer-readable media for repairing corruption of data record references |
US8209334B1 (en) * | 2007-12-28 | 2012-06-26 | Don Doerner | Method to direct data to a specific one of several repositories |
US8650241B2 (en) * | 2008-02-01 | 2014-02-11 | Kip Cr P1 Lp | System and method for identifying failing drives or media in media library |
US7974215B1 (en) | 2008-02-04 | 2011-07-05 | Crossroads Systems, Inc. | System and method of network diagnosis |
US8948906B2 (en) * | 2008-08-14 | 2015-02-03 | Spectra Logic Corporation | Robotic storage library with queued move instructions and method of queuing such instructions |
US8457778B2 (en) * | 2008-08-15 | 2013-06-04 | Spectra Logic Corp. | Robotic storage library with queued move instructions and method of queuing such instructions |
US8666537B2 (en) * | 2008-10-31 | 2014-03-04 | Spectra Logic, Corporation | Robotic storage library with queued move instructions and method of queing such instructions |
US8340810B2 (en) * | 2008-10-31 | 2012-12-25 | Spectra Logic Corp. | Robotic storage library with queued move instructions and method of queuing such instructions |
US9866633B1 (en) | 2009-09-25 | 2018-01-09 | Kip Cr P1 Lp | System and method for eliminating performance impact of information collection from media drives |
US11720290B2 (en) | 2009-10-30 | 2023-08-08 | Iii Holdings 2, Llc | Memcached server functionality in a cluster of data processing nodes |
US8631281B1 (en) | 2009-12-16 | 2014-01-14 | Kip Cr P1 Lp | System and method for archive verification using multiple attempts |
US8682471B2 (en) * | 2010-09-27 | 2014-03-25 | Spectra Logic Corporation | Efficient magazine moves |
US8615322B2 (en) * | 2010-09-27 | 2013-12-24 | Spectra Logic Corporation | Efficient moves via dual pickers |
US8767334B2 (en) | 2010-09-30 | 2014-07-01 | International Business Machines Corporation | System, method, and computer program product for creating a single library image from multiple independent tape libraries |
US9311147B2 (en) * | 2010-10-20 | 2016-04-12 | Quantum Corporation | Method for media allocation in a partitioned removable media storage library |
JP5342086B2 (en) * | 2011-02-24 | 2013-11-13 | 株式会社日立製作所 | Computer system, management method thereof, and program |
JP5733286B2 (en) * | 2012-09-26 | 2015-06-10 | 日本電気株式会社 | Library apparatus, control method therefor, and computer program |
US9336258B2 (en) * | 2013-10-25 | 2016-05-10 | International Business Machines Corporation | Reducing database locking contention using multi-version data record concurrency control |
US9436405B2 (en) * | 2013-12-23 | 2016-09-06 | Oracle International Corporation | Complex partitioning of storage library resources |
US9948525B2 (en) * | 2014-07-28 | 2018-04-17 | Hewlett Packard Enterprise Development Lp | Storage unit priority based on configuration information |
US20160266914A1 (en) * | 2015-03-10 | 2016-09-15 | Giovanni Morelli | Systems and Methods for Selecting Between Emulated and Non-Emulated Resources for Providing an Emulation Session |
CN106548670B (en) * | 2016-08-17 | 2019-03-29 | 图灵人工智能研究院(南京)有限公司 | Online teaching platform and online teaching method |
JP6979740B2 (en) * | 2017-03-02 | 2021-12-15 | 任天堂株式会社 | Wireless communication system, communication method, information processing device, and information processing program |
JP6895273B2 (en) | 2017-03-02 | 2021-06-30 | 任天堂株式会社 | Information processing equipment, information processing programs, wireless communication systems, and communication methods |
JP6884600B2 (en) | 2017-03-02 | 2021-06-09 | 任天堂株式会社 | Wireless communication system, communication method, information processing device, and information processing program |
US10684789B2 (en) * | 2018-06-15 | 2020-06-16 | International Business Machines Corporation | Scheduled recall in a hierarchical shared storage system |
US10817207B2 (en) | 2018-08-21 | 2020-10-27 | International Business Machines Corporation | Management of a multi-library storage system |
US11928360B2 (en) * | 2020-11-20 | 2024-03-12 | Western Digital Technologies, Inc. | Command slot management for memory devices |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5488494A (en) * | 1993-10-07 | 1996-01-30 | Tamarack Storage Devices | Packaging system for holographic storage media |
US20010044730A1 (en) * | 2000-05-03 | 2001-11-22 | D'silva Joe | Method and system for using a communications network in the selection and delivery of pharmaceutical formulation information, training and products |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5931929A (en) | 1996-12-31 | 1999-08-03 | Compaq Computer Corporation | Modem for connection to a telephone line through a either portable computer connector or a docking station |
AU5929398A (en) | 1997-01-23 | 1998-08-18 | Overland Data, Inc. | Virtual media library |
US6434090B1 (en) | 1997-09-16 | 2002-08-13 | International Business Machines Corporation | Automated data storage library with control path to shared robotic device via media drive |
US7039726B2 (en) | 1997-09-16 | 2006-05-02 | International Business Machines Corporation | Dual purpose media drive providing control path to shared robotic device in automated data storage library |
US6044442A (en) | 1997-11-21 | 2000-03-28 | International Business Machines Corporation | External partitioning of an automated data storage library into multiple virtual libraries for access by a plurality of hosts |
US6356803B1 (en) | 2000-05-19 | 2002-03-12 | International Business Machines Corporation | Automated data storage library distributed control system |
US6625703B2 (en) | 2000-11-02 | 2003-09-23 | International Business Machines Corporation | Verifying primary and backup copies of vital information for a processing system employing a pseudo-fixed reference identifier |
US6487474B1 (en) | 2001-05-10 | 2002-11-26 | International Business Machines Corporation | Automated data storage library with multipurpose slots providing user-selected control path to shared robotic device |
US6757694B2 (en) | 2001-10-03 | 2004-06-29 | International Business Machines Corporation | System and method for logically assigning unique names to devices in a storage system |
US7082497B2 (en) * | 2001-12-28 | 2006-07-25 | Hewlett-Packard Development Company, L.P. | System and method for managing a moveable media library with library partitions |
US6715031B2 (en) * | 2001-12-28 | 2004-03-30 | Hewlett-Packard Development Company, L.P. | System and method for partitioning a storage area network associated data library |
US7043619B1 (en) * | 2002-01-14 | 2006-05-09 | Veritas Operating Corporation | Storage configurator for determining an optimal storage configuration for an application |
-
2003
- 2003-12-17 US US10/738,194 patent/US7263596B1/en active Active
-
2007
- 2007-07-19 US US11/780,387 patent/US7680979B2/en not_active Expired - Fee Related
-
2009
- 2009-02-27 US US12/395,552 patent/US20090164714A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5488494A (en) * | 1993-10-07 | 1996-01-30 | Tamarack Storage Devices | Packaging system for holographic storage media |
US20010044730A1 (en) * | 2000-05-03 | 2001-11-22 | D'silva Joe | Method and system for using a communications network in the selection and delivery of pharmaceutical formulation information, training and products |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120019949A1 (en) * | 2003-06-26 | 2012-01-26 | Spectra Logic Corporation | Tape cartridge auxiliary memeory based library |
US8767330B2 (en) * | 2003-06-26 | 2014-07-01 | Spectra Logic, Corp. | Tape cartridge auxiliary memory based library |
US20120044060A1 (en) * | 2010-08-17 | 2012-02-23 | Seiko Epson Corporation | Electronic Device And Data Management System |
US9323776B2 (en) | 2012-04-20 | 2016-04-26 | Kip Cr P1 Lp | System, method and computer program product for a self-describing tape that maintains metadata of a non-tape file system |
US9563365B2 (en) | 2012-04-30 | 2017-02-07 | Kip Cr P1 Lp | System and method for using a memory buffer to stream data from a tape to multiple clients |
US9760457B2 (en) | 2012-05-31 | 2017-09-12 | Kip Cr P1 Lp | System, method and computer program product for recovering stub files |
US9141542B1 (en) * | 2012-06-22 | 2015-09-22 | Kip Cr P1 Lp | System, method and computer program product for host system LTFS auto-adaptation |
US20150355859A1 (en) * | 2012-06-22 | 2015-12-10 | Kip Cr P1 Lp | System, method and computer program product for host system ltfs auto-adaptation |
US20150205654A1 (en) * | 2014-01-17 | 2015-07-23 | International Business Machines Corporation | Computer flight recorder with active error detection |
US20150205651A1 (en) * | 2014-01-17 | 2015-07-23 | International Business Machines Corporation | Computer flight recorder with active error detection |
US9910758B2 (en) * | 2014-01-17 | 2018-03-06 | International Business Machines Corporation | Computer flight recorder with active error detection |
US9996445B2 (en) * | 2014-01-17 | 2018-06-12 | International Business Machines Corporation | Computer flight recorder with active error detection |
Also Published As
Publication number | Publication date |
---|---|
US20080015734A1 (en) | 2008-01-17 |
US7680979B2 (en) | 2010-03-16 |
US7263596B1 (en) | 2007-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20090164714A1 (en) | Method and apparatus for analyzing a mass data storage device, such as for troubleshooting a cartridge tape drive | |
CN100430906C (en) | Library system, virtual library apparatus, cache restoring method, and computer readable recording medium | |
US8339721B2 (en) | Tape data assessment through medium auxiliary memory data comparison | |
US8549237B2 (en) | Method and apparatus for use in data transfer | |
JP5105797B2 (en) | Method and apparatus for storing information | |
US7075874B2 (en) | Data storage device monitoring system, method and removable data carrier use with data storage systems | |
US6412089B1 (en) | Background read scanning with defect reallocation | |
US8559124B2 (en) | Cartridge refresh and verify | |
US7444469B2 (en) | Storing information regarding operation of an automated data storage library to memory and to a reserved cartridge | |
US20050188246A1 (en) | Persistent worldwide names assigned to removable media storage | |
US8149532B2 (en) | Tape cartridge auxiliary memory containing tape drive functional status information | |
EP1684292A1 (en) | Data storage apparatus and method | |
US8976470B2 (en) | Tape cleaner drive arrangement for a tape library | |
US20100321811A1 (en) | Drive life cycle management | |
JPH1078897A (en) | Computer data storage system | |
US5894376A (en) | Apparatus and method for monitoring read/write reliability of data storage device | |
JP4099886B2 (en) | Recording medium and tape drive device | |
US7516250B2 (en) | Apparatus and method for managing component identifiers in a data storage system | |
US20060107159A1 (en) | Intelligent storage of device state in response to error condition | |
US6580576B1 (en) | Tape driving apparatus and recording medium | |
US7177108B2 (en) | Emulation of auxiliary memory | |
US7080203B2 (en) | Serial EEPROM for volume identification and drive specific information storage in a hard disk drive library | |
JP2005149699A (en) | Storage structure and associated method | |
JPH04129081A (en) | Optical disk device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: QUANTUM CORPORATION,CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:WIDEMAN, RODERICK B.;PRIGGE, CARTSEN H.;COOK, ROGER B.;SIGNING DATES FROM 20090209 TO 20090211;REEL/FRAME:022327/0745 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |