The following is intended to provide a detailed description of an example of the invention and should not be taken to be limiting of the invention itself. Rather, any number of variations may fall within the scope of the invention which is defined in the claims following the description.
The data storage library 100 includes one or more data storage drives, which comprises one data storage drive 101 in the illustrated example. The data storage drive conducts commands that require tape movement, including read and/or write operations, with data storage media cartridges in the library 100. The data storage drive 101 may be a magnetic tape drive, or an optical disk drive, or another type of data storage drive as are used to read and/or write data with respect to the data storage media.
The data storage drive 101 is coupled to one or more hosts, including a first host 102a, and a second host 102b in the illustrated example. The first host 102a and the second host 102b supply data to the data storage library 100 for storage on the cartridges, and send requests to the library 100 to retrieve data from the cartridges. The host systems such as host servers may communicate with the data storage drives directly, (e.g. on communication links 103a and 103b), or through the data storage library 100. Through these communication links, first host 102a and the second host 102b can provide commands to access particular data storage media, perform read and/or write commands or to move the media. Communication links 103a and 103b may be a serial interconnection, such as an RS-232 cable or an RS-432 cable, or Ethernet interconnection, a SCSI interconnection, a Fibre Channel interconnection, or ESCON interconnection, a FICON interconnection, a Local Area Network (LAN), a private Wide Area Network (WAN), a public wide area network, Storage Area Network (SAN), Transmission Control Protocol/Internet Protocol (TCP/IP), the Internet, and/or combinations thereof.
The first host 102a and/or the second host 102b may be a computer system, such as a mainframe, personal computer, workstation, etc., including an operating system such as Windows®, AIX®, Unix®, MVS™ etc. The first host 102a and/or the second host 102b may also be coupled to an interface and a host catalog (not shown). The interface enables the first host 102a and/or the second host 102b to exchange information of with a human operator, and may comprise a control panel, video monitor, computer keyboard/mouse, or another appropriate human/machine interface.
The first host 102a and the second host 102b manage data in the data storage library 100 using “location-centric” commands and may utilize the small computer system interface (“SCSI”) medium changer protocol as one example.
The data storage drive 100 also comprises one or more non-volatile memory 104 such an NVRAM, EEPROM, EPROM, PROM, FRAM, MRAM, flash memory, or bubble memory that is capable of storing commands issued from the host 102a and/or the second host 102b.
The data storage library 200 includes one or more data storage drives, which comprises one data storage drive 201 in the illustrated example. The data storage drive conducts commands that require tape movement, including read and/or write operations, with data storage media cartridges in the library 200. The data storage drive 201 may be a magnetic tape drive, or an optical disk drive, or another type of data storage drive as are used to read and/or write data with respect to the data storage media.
The data storage drives 201 are coupled to a plurality of hosts 202a, 202b . . . , 202n through data storage library 200. The plurality of hosts 202a, 202b . . . , 202n supply data to the data storage library 200 for storage on the cartridges, and send requests to the library 200 to retrieve data from the cartridges. The host systems such as host servers may communicate with the data storage drives directly, (e.g. on communication links 203a, 203b, . . . 203n), or through the data storage library 200. Through these communication links the plurality of hosts 202a, 202b . . . , 202n can provide commands to access particular data storage media, perform read and/or write commands or to move the media. Communication links 203a, 203b . . . , 203n comprises a serial interconnection, such as an RS-232 cable or an RS-432 cable, and Ethernet interconnection, a SCSI interconnection, a Fibre Channel interconnection, and ESCON interconnection, a FICON interconnection, a Local Area Network (LAN), a private Wide Area Network (WAN), a public wide area network, Storage Area Network (SAN), Transmission Control Protocol/Internet Protocol (TCP/IP), the Internet, and combinations thereof.
It will be noted that the variable identifier “n” is used in several instances in
The plurality of hosts 202a, 202b . . . , 202n may be a computer system, such as a mainframe, personal computer, workstation, etc., including an operating system such as Windows®, AIX®, Unix®, MVS™ etc. The plurality of hosts 202a, 202b . . . , 202n may also be coupled to an interface and a host catalog (not shown). The interface enables the plurality of hosts 202a, 202b . . . , 202n to exchange information of with a human operator, and may comprise a control panel, video monitor, computer keyboard/mouse, or another appropriate human/machine interface.
The plurality of hosts 202a, 202b . . . , 202n manage data in the data storage library 200 using “location-centric” commands and may utilize the small computer system interface (“SCSI”) medium changer protocol as one example.
One embodiment of the present invention is described as embodied in a magnetic tape storage system for use in a data processing environment. However, one skilled in the art will recognize the invention equally applies to optical disk cartridges or other removable storage media and the use of either different types of cartridges or cartridges of the same type having different characteristics. Furthermore, the description of a magnetic tape storage system is not meant to limit the invention to magnetic tape data processing application as the invention herein can be applied to any media storage and cartridge systems in general.
The tape drive 101 may have certain operation parameters with predefined ranges for each parameter. In one embodiment of the present invention the customer can determine the parameters that are to be monitored or checked. Moreover, the customer can define a predetermined range for each parameter. Optionally, in another embodiment of the present invention the parameters and the predetermined ranges for the parameters may be defined by the manufacturer of the tape drive 101. In yet another embodiment, both options may be present. When the tape drive 101 is operating outside of the predetermined range for one or more parameters then the tape drive is said to be operating outside of its normal threshold.
The first or the second host 102a, 102b may check or monitor the environment of the tape drive 101 in a number of ways to determine if the drive is operating outside of its normal threshold. For example, the host (for example 102a) may check or monitor the drive and subsequently determine whether the drive is operating within normal threshold by requesting a health status inquiry from the tape drive 101, querying the tape drive 101, or by a set update of the status of the tape drive 101 at mount or demount time.
The possible parameters that may be monitored when checking the environment of the tape drive 101 include the time to complete a command, the age of the drive, the temperature of the drive, the number of errors the drive has returned, the humidity within the drive, presence of excessive time-outs, the lack of motion within the drive, etc.
For example, one indication of that the tape drive 101 may need to be fenced is the failure of the tape drive 101 to properly perform a command issued by one of the first or second hosts 102a, 102b. In this case an error status may be returned to the host 102a indicating that the command has failed. If the host 102a determines that the error is severe enough (e.g. the tape cartridge is jammed in the tape drive 101, the tape is loose on the reel, or the tape has broken) or that the tape drive 101 has exceeded a number of errors beyond the customer defined predetermined range the host 102a may determine that the tape drive 101 needs to be fenced.
As mentioned above, the customer can define a predetermined range for each parameter. For example, one customer may determine that the tape drive 101 should be fenced when the tape drive 101 returns more than 1 servo error, while another customer may determine that tape drive 101 should be fenced when tape drive 101 returns more than 10 servo errors. Similarly, the customer may determine that the tape drive 101 needs to be fenced when the tape drive exceeds the customer defined time-outs. In one example, the customer may choose to fence after 100 time-outs.
The customer may also define a predetermined number of operating hours the tape drive 101 may operate or an age of the tape drive at which the tape drive should be fenced. For example the customer may determine after 1000 hours of operation or after 6 months of age that the tape drive 101 should be fenced. In addition, the customer may also determine to fence the tape drive based on the time that the tape drive takes to complete a command request. For example a customer may determine that a tape drive taking more than 60 minutes should be fenced. Moreover, the customer may define a predetermined operating temperature of the tape drive 101. For example, the customer may determine that if the temperature deviates more then 3% from the defined 43.0 degree Celsius the tape drive 101 should be fenced. In another example, the customer may define a predetermined operating humidity within the tape drive 101. For example, the customer may determine that above 25% the tape drive 101 should be fenced.
By allowing the customer to independently define and configure the threshold for fencing, the customer can adjust the settings based on their own tolerances for possible unreliable data. It is noted that the above defined predetermined ranges are merely exemplary and may be defined by each individual customer to suit their individual needs.
In step 302 if the tape drive 101 is operating within its normal threshold and it is determined that the there is no need to fence the tape drive 101 then the tape drive 101 continues with normal operations and/or the operations that the tape drive 101 was previously performing before the check in step 301.
In step 303, if the host (for example the first host 102a) determines that the tape drive 101, needs to be fenced, the first host 102a issues a command to fence the tape drive 101 as seen in step 303. The fence command may be accomplished by a mode select command or a send diagnostic command, or any other appropriate command that can create a setting on the drive as understood by one of ordinary skill in the art. The tape drive 101 receives the command to fence, and in step 304, in response to the host issued command to fence the tape drive 101 fences. As used herein, to fence a data storage drive (e.g. tape drive) generally means to prevent the data storage drive from performing any commands that require tape movement. In one embodiment of the present invention, tape drive 101 fences in accordance with standard SCSI protocol. Once the tape drive 101 is fenced it is unable to perform any commands that require tape movement that are issued not only by the host that issued the fence command (for example first host 102a), but also by all other hosts connected to the tape drive 101 by the communication links 103a and 103b (for example second host 102b).
It is important to note that the tape drive 101 is still connected by communication links 103 and 103b to the first and second hosts 102a and 102b, and as such, the tape drive 101 still may provide health status data upon an inquiry of at least one of first and second hosts 102a and 102b, as well as other commands that do not require tape movement issued by at least one of first and second hosts 102a and 102b.
Each of the blocks of the flow diagram of
Those skilled in the art will also recognize that the boundaries between modules and operations depicted herein are merely illustrative and alternative embodiments may merge such modules or operations, or impose an alternative decomposition of functionality thereon. For example, the actions discussed herein may be decomposed into sub-operations to be executed as multiple computer processes. Moreover, alternative embodiments may combine multiple instances of a particular operation or sub-operation. Furthermore, those skilled in the art will recognize that the operations described in exemplary embodiment are for illustration only. Operations may be combined or the functionality of the operations may be distributed in additional operations in accordance with the invention. As will also be apparent to those of skill in the art, methods for determining delay and jitter described herein may employ other techniques (similar in effect to those described herein) to make such determinations, and such alternative techniques are intended to be comprehended by the methods and apparati discussed herein.
In one aspect of the invention the command to fence is stored in non-volatile memory such an NVRAM, EEPROM, EPROM, PROM, FRAM, MRAM, flash memory, or bubble memory within tape drive 101. Therefore, when power to the drive is lost in some way, for example power-cycled, the fenced state is retained in the non-volatile memory 104, thus, the fenced state remains and is persistent when the tape drive is power cycled. This aspect of the invention prevents an operator or someone without knowledge or understanding of the reason the drive is fenced to power cycle the drive and thus remove the fence. As known by one skilled in the art a power cycle comprises turning the electrical power off to the drive and then restoring the electrical power.
In step 401 shown in
In step 402 the tape drive 101 may be repaired or replaced or other appropriate intervention may have taken place. If the tape drive 101 has been repaired or replaced or some other appropriate invention has taken place in step 402 then the tape drive 101 receives the command and performs the issued command and/or return to normal operations as seen in step 403. It is advantageous for the tape drive 101 to be repaired or replaced or some other appropriate intervention to take place immediately so that the valuable resources of the tape drive 101 can be placed online and operational. However, it is not always possible to repair or replace or perform some other appropriate intervention on the fenced tape drive 101 immediately.
In the case where the tape drive 101 has not been repaired or replaced, or there has been no other appropriate intervention in step 402, the tape drive 101 receives the issued command in step 401. As seen in step 404, in response to the command issued in step 401 the tape drive returns a message to the host that issued the command (for example 102a) informing the host of the status of the fenced tape drive.
The fenced tape drive 101 continues to be fenced and return a message informing the host that sends the commands that require tape movement of the fenced status until the tape drive 101 is repaired or replaced, or there has been some other appropriate intervention. The fence remains permanent and understood by all hosts in this manner until the tape drive 101 is repaired or replaced, or there has been some other appropriate intervention.
While it has been explained in the present embodiment that all of the hosts have the same capability and all oversee the drive, in another embodiment, there could be a more intelligent host that oversees the drives and other host dedicated to perform the everyday storage processes or reads and/or writes.
While
Further, while the above embodiments were described with respect to a data storage library, one of ordinary skill in the art will understand that the data storage drive 101 could be outside of a library and be a stand-alone drive that is connected to one or more hosts.
The described techniques may be implemented as a method, system or article of manufacture involving software, firmware, micro-code, hardware and/or any combination thereof. The term “article of manufacture” as used herein refers to code or logic implemented in a medium, where such medium may comprise hardware logic [e.g., an integrated circuit chip, Programmable Gate Array (PGA), Application Specific Integrated Circuit (ASIC), etc.] or a computer readable medium, such as magnetic storage medium (e.g., hard disk drives, floppy disks, tape, etc.), optical storage (CD-ROMs, optical disks, etc.), volatile and non-volatile memory devices [e.g., Electrically Erasable Programmable Read Only Memory (EEPROM), Read Only Memory (ROM), Programmable Read Only Memory (PROM), Random Access Memory (RAM), Dynamic Random Access Memory (DRAM), Static Random Access Memory (SRAM), flash, firmware, programmable logic, etc.]. Code in the computer readable medium is accessed and executed by a processor. The medium in which the code or logic is encoded may also comprise transmission signals propagating through space or a transmission media, such as an optical fiber, copper wire, etc. The transmission signal in which the code or logic is encoded may further comprise a wireless signal, satellite transmission, radio waves, infrared signals, Bluetooth, etc. The transmission signal in which the code or logic is encoded is capable of being transmitted by a transmitting station and received by a receiving station, where the code or logic encoded in the transmission signal may be decoded and stored in hardware or a computer readable medium at the receiving and transmitting stations or devices. Additionally, the “article of manufacture” may comprise a combination of hardware and software components in which the code is embodied, processed, and executed. Of course, those skilled in the art will recognize that many modifications may be made without departing from the scope of embodiments, and that the article of manufacture may comprise any information bearing medium. For example, the article of manufacture comprises a storage medium having stored therein instructions that when executed by a machine results in operations being performed.
Certain embodiments can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. In a preferred embodiment, the invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, etc.
Furthermore, certain embodiments can take the form of a computer program product accessible from a computer usable or computer readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk—read only memory (CD-ROM), compact disk—read/write (CD-R/W) and DVD.
The terms “certain embodiments”, “an embodiment”, “embodiment”, “embodiments”, “the embodiment”, “the embodiments”, “one or more embodiments”, “some embodiments”, and “one embodiment” mean one or more (but not all) embodiments unless expressly specified otherwise. The terms “including”, “comprising”, “having” and variations thereof mean “including but not limited to”, unless expressly specified otherwise. The enumerated listing of items does not imply that any or all of the items are mutually exclusive, unless expressly specified otherwise. The terms “a”, “an” and “the” mean “one or more”, unless expressly specified otherwise.
Devices that are in communication with each other need not be in continuous communication with each other, unless expressly specified otherwise. In addition, devices that are in communication with each other may communicate directly or indirectly through one or more intermediaries. Additionally, a description of an embodiment with several components in communication with each other does not imply that all such components are required. On the contrary a variety of optional components are described to illustrate the wide variety of possible embodiments.
Further, although process steps, method steps, algorithms or the like may be described in a sequential order, such processes, methods and algorithms may be configured to work in alternate orders. In other words, any sequence or order of steps that may be described does not necessarily indicate a requirement that the steps be performed in that order. The steps of processes described herein may be performed in any order practical. Further, some steps may be performed simultaneously, in parallel, or concurrently.
When a single device or article is described herein, it will be apparent that more than one device/article (whether or not they cooperate) may be used in place of a single device/article. Similarly, where more than one device or article is described herein (whether or not they cooperate), it will be apparent that a single device/article may be used in place of the more than one device or article. The functionality and/or the features of a device may be alternatively embodied by one or more other devices which are not explicitly described as having such functionality/features. Thus, other embodiments need not include the device itself.
Certain embodiments may be directed to a method for deploying computing instruction by a person or automated processing integrating computer-readable code into a computing system, wherein the code in combination with the computing system is enabled to perform the operations of the described embodiments.
At least certain of the operations illustrated in
Furthermore, many of the software and hardware components have been described in separate modules for purposes of illustration. Such components may be integrated into a fewer number of components or divided into a larger number of components. Additionally, certain operations described as performed by a specific component may be performed by other components.
The data structures and components shown or referred to in
The present invention allows for a method to fence a storage drive that overcomes the disadvantages of the prior art. The method provides a fence of a tape drive at the tape drive level such that the fence is understood by all hosts that are interconnected with the tape drive despite the fact that the hosts may use different software, have a different platform, or utilize a different language. Therefore, this method provides that advantage that the fenced drive is prevented from performing any commands that require tape movement, such as read and/or write requests, from all hosts, thus protecting the valuable data. Further, the method of the present invention prevents the fence from being removed from the drive in a power cycle of the drive so that the fence is permanent. Finally, while traditionally only the tape drive manufacturers or vendors had the ability to fence a tape drive, the present invention gives the customers the ability to fence the tape drive, and to determine, according to their needs, when to fence the tape drive.
While particular embodiments of the present invention have been shown and described, it will be obvious to those skilled in the art that, based upon the teachings herein changes and modifications may be made without departing from this invention and its broader aspects and, therefore, the appended claims are to encompass within their scope all such changes and modifications as are within the true spirit and scope of this invention. Furthermore, it is to be understood that the invention is solely defined by the appended claims.