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 PDF

Info

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
Application number
US12/395,552
Inventor
Roderick B. Wideman
Carsten H. Prigge
Roger B. Cook
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Quantum Corp
Original Assignee
Quantum Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=38433237&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=US20090164714(A1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Quantum Corp filed Critical Quantum Corp
Priority to US12/395,552 priority Critical patent/US20090164714A1/en
Assigned to QUANTUM CORPORATION reassignment QUANTUM CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: WIDEMAN, RODERICK B., COOK, ROGER B., PRIGGE, CARTSEN H.
Publication of US20090164714A1 publication Critical patent/US20090164714A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0686Libraries, 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

    CROSS-REFERENCE TO RELATED APPLICATION(S)
  • 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.
  • BACKGROUND
  • 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.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • 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.
  • 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 to FIG. 1).
  • Note: The headings provided herein are for convenience and do not necessarily affect the scope or interpretation of the invention.
  • DETAILED DESCRIPTION
  • 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.
  • Depicted Embodiment
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • FIG. 5 through FIG. 13 describe data structures used to store the collected information in the persistent storage 107.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
US12/395,552 2002-12-17 2009-02-27 Method and apparatus for analyzing a mass data storage device, such as for troubleshooting a cartridge tape drive Abandoned US20090164714A1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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