The present invention relates to data storage systems, and more particularly, this invention relates to tape systems having fast tape pickup and delivery mechanisms.
In magnetic storage systems, data is read from and written onto magnetic recording media utilizing magnetic transducers. Data is written on the magnetic recording media by moving a magnetic recording transducer to a position over the media where the data is to be stored. The magnetic recording transducer then generates a magnetic field, which encodes the data into the magnetic media. Data is read from the media by similarly positioning the magnetic read transducer and then sensing the magnetic field of the magnetic media. Read and write operations may be independently synchronized with the movement of the media to ensure that the data can be read from and written to the desired location on the media.
In the near future, with the adoption of improved media, the cost of storing information (on a per byte basis) on tape is expected to decline rapidly with respect to magnetic disk. Also, short-term and long-term reliability will continue to favor tape-based storage. Furthermore, as more mass storage is allocated to cloud networks, most storage will be in large libraries, rather than on individual drives, which is a consideration favoring tape-based storage. One historical disadvantage of tape-based storage with respect to disk-based storage was the relatively poor access time associated with tape-based storage, with the time required to bring the tape to the tape drive and then spool the tape to the file location typically averaging about 40 seconds or more.
A system according to one embodiment includes a tape support surface configured to receive a plurality of tape spools, and a plurality of robotic accessors capable of picking the tape spools from the tape support surface, transporting the tape spools, and releasing the tape spools at a drop location. The accessors are capable of passing each other during the transporting.
A system according to another embodiment includes a first tape support surface configured to receive a plurality of tape spools, a second tape support surface facing the first tape support surface, and a plurality of robotic accessors capable of picking the tape spools from the tape support surface, transporting the tape spools, and releasing the tape spools at a drop location. At least one of the accessors is capable of picking tape spools from both tape support surfaces.
Any of these embodiments may be implemented in a magnetic data storage system such as a tape drive system, which may include a magnetic head, a drive mechanism for passing a magnetic medium (e.g., recording tape) over the magnetic head, and a controller electrically coupled to the magnetic head.
Other aspects and embodiments of the present invention will become apparent from the following detailed description, which, when taken in conjunction with the drawings, illustrate by way of example the principles of the invention.
The following description is made for the purpose of illustrating the general principles of the present invention and is not meant to limit the inventive concepts claimed herein. Further, particular features described herein can be used in combination with other described features in each of the various possible combinations and permutations.
Unless otherwise specifically defined herein, all terms are to be given their broadest possible interpretation including meanings implied from the specification as well as meanings understood by those skilled in the art and/or as defined in dictionaries, treatises, etc.
It must also be noted that, as used in the specification and the appended claims, the singular forms “a,” “an” and “the” include plural referents unless otherwise specified.
The following description discloses several preferred embodiments of magnetic storage systems, as well as operation and/or component parts thereof. Particularly, various embodiments provide mechanisms for accessing tape at high speeds using pick and place robotics, such as in a gantry arrangement. In one embodiment, a system provides multiple gantry type robotic accessors capable of fully servicing a set of tape spools, while also providing improved throughput and reliability. A further aspect is the ability to improve the volumetric density by disposing tape spools on two surfaces serviceable by one or all of the robots. Some approaches provide the advantage of the ability to have multiple robots service the same set of tape spools for improved throughput and reliability.
In one general embodiment, a system includes a tape support surface configured to receive a plurality of tape spools, and a plurality of robotic accessors capable of picking the tape spools from the tape support surface, transporting the tape spools, and releasing the tape spools at a drop location. The accessors are capable of passing each other during the transporting.
In another general embodiment, a system includes a first tape support surface configured to receive a plurality of tape spools, a second tape support surface facing the first tape support surface, and a plurality of robotic accessors capable of picking the tape spools from the tape support surface, transporting the tape spools, and releasing the tape spools at a drop location. At least one of the accessors is capable of picking tape spools from both tape support surfaces.
A basic system configuration is shown in
Picker 106 slides along the cross bar in the X direction, and can pick up and carry tape spools. The picker 106 may be driven along the cross bar by any known mechanism, such as chain drive, cable drive, actuator, motorized wheel, worm screw, etc. The picker 106 may be designed to use any of various approaches to pick the tape spools, such as using a clip, a claw, magnetic attraction, suction, etc.
An enclosure 102 may be present to enclose the system 100. Also, while not shown, the enclosure may include walls.
This approach, while adequate for some uses, is not optimal because it does not provide for scalable performance other than by increasing the speed of the robotic accessor itself. A further disadvantage is that if the robotic accessor fails, the system is unable to access the tapes on the baseplate until maintenance is performed.
Referring to
A plurality of robotic accessors 203, 204, are present, and are capable of picking the tape spools from the tape support surface, transporting the tape spools, and releasing (e.g., dropping or placing) the tape spools at one or more drop locations 209, 210. Here, the drop locations are shown on a single side of the spool set 207, but could be positioned anywhere in the system that is accessible by one or more of the pickers 205, 206 of the robotic accessors 203, 204.
As shown, the accessors are coupled to a gantry-type support structure, which in the embodiment shown, includes multiple gantry-type robotic accessors 203, 204. Each robotic accessor may have a configuration similar to that of the robotic accessor described with reference to
Preferably, the robotic accessors 203, 204 are capable of passing each other during the transporting. In one approach, the picker of one or more of the robotic accessors is rotatable about an axis oriented parallel to a plane of the tape support surface 201. In this way, the picker of one accessor can rotate out of the way of the other accessor. Rotation may be effected using any know mechanism, such as via an electrical motor, a hydraulic motor, an actuator, etc. In some approaches, at least one of the accessors is capable of picking tape spools from all portions of at least one of the tape support surfaces configured to receive tape spools.
In one approach, a second robotic accessor 204 is added above a first robotic accessor 203, as shown. If the vertical clearance between the robotic accessors is sufficient, then both robotic accessors can access all the tape spools in the system. This requires the picker of robotic accessor 204 to have sufficient Z range to access tape spools from the additional Z offset. This can be done for example via a mechanism for extending towards the tape support surface for picking the tape spools, such as a lever arm, solenoid, lead screw, a telescoping section, etc.
The pickers 205, 206 may be designed to present a low Z profile to minimize the required spacing. There is a small window where picker 206 is blocked by picker 205, and the system may be programmed to schedule accesses to avoid the blockage, the time of which, in most cases, will be insignificant.
In some embodiments, one or more of the pickers 205, 206 may accommodate multiple tape spools to improve the utilization of the accessor. In this way, accessor operations may be scheduled to improve throughput, such as by reordering drop off and pick up operations.
The approach of
An enclosure 202 may also be present.
A further improvement is shown in
With continued reference to
A plurality of robotic accessors 303, 304 are capable of picking the tape spools from the tape support surface, transporting the tape spools, and releasing (dropping) the tape spools at one or more drop locations 309, 310. Preferably, the accessors are capable of passing each other during the transporting.
In this system, one or both pickers 305, 306 can access tape spools on either surface 301, 302, such as by rotating the picker along the Y axis, which is parallel to a plane of the tape support surface. If rotation is used, the surface of a tape spool placed on tape support surface 301 is the same coinciding surface of a tape spool placed on tape support surface 302. When the picker picks a tape from the second tape support surface 302 and rotates, the tape will be inverted when placed on the spool drops, and will unwind in the same direction as tapes on the first support surface 301.
As shown in
Other accessor designs are possible as well, such as scissor arms, etc. Moreover, the system 400 may include one or more tape support surfaces, such as shown in
As shown, the robotic accessor 503 includes a linear accessing mechanism such as a linear motor, rack and pinion, capstan motor coupled to drive belts, or any accessing mechanism known to one of ordinary skill in the art of mechanical motion. Coupled to the linear accessing mechanism is one or more pickers 506, 508. This embodiment preferably enables either picker 506, 508 to access the entire spool set 504, by allowing both cross bars 505, 507 to travel along the length of the tape support surface 501 in the Y direction. In the event of a picker failure, the present embodiment enables redundancy of picker operation for accessing any one spool in spool set 504. During operation of both pickers 506, 508, the present embodiment enables rapid delivery and retrieval from the spool drops 509, 510.
In accordance with another embodiment of the present invention and in reference to
As depicted,
Moreover, two or more of the systems may be stacked together to create a high density storage system. For example, the tape support surface and accessors of
A controller of any type may control one or more functions of the various systems. Such controller may be programmed with algorithms consistent with the teachings and suggestions presented herein, in a manner that would be apparent to one skilled in the art upon reading the present disclosure.
As noted above, a tape drive and/or winder may be positioned at or near a drop location of any of the systems. A winder may operate in a similar manner as a tape drive, but without an ability to read or write.
As shown, a take-up reel 621 and a tape supply reel 620 support a tape 622. Note that either reel shown in
Guides 625 guide the tape 622 across the tape head 626. Such tape head 626 is in turn coupled to a controller 628 via a cable 630. The controller 628, may be or include a processor and/or any logic for controlling any subsystem of the drive 600. For example, the controller 628 typically controls head functions such as servo following, data writing, data reading, etc. The controller 628 may operate under logic known in the art, as well as any logic disclosed herein. The controller 628 may be coupled to a memory 636 of any known type, which may store instructions executable by the controller 628. Moreover, the controller 628 may be configured and/or programmable to perform or control some or all of the methodology presented herein. Thus, the controller may be considered configured to perform various operations by way of logic programmed into a chip; software, firmware, or other instructions being available to a processor; etc. and combinations thereof.
The cable 630 may include read/write circuits to transmit data to the head 626 to be recorded on the tape 622 and to receive data read by the head 626 from the tape 622. An actuator 632 controls position of the head 626 relative to the tape 622.
An interface 634 may also be provided for communication between the tape drive 600 and a host (integral or external) to send and receive the data and for controlling the operation of the tape drive 600 and communicating the status of the tape drive 600 to the host, all as will be understood by those of skill in the art.
As noted above, the various systems may operate with single tape spools, multiple tape spools, and/or tape cartridges.
Any type of tape threading system known in the art may be adapted for use with the systems described herein, according to various embodiments. For example, if tape reels are used individually (not as pairs), a standard threader mechanism may be used to thread the tape reel onto the tape drive, according to one embodiment. Storing the tape on pairs of reels has an advantage in that after loading, the tape is ready to be used and does not need to be wound onto another inboard reel. Also, when the tape is finished being used, both reels may be removed with the tape, and the tape does not need to be unwound from the inboard reel in order to be removed.
In one approach, where the tape is stored on one reel only, the accessor or other mechanism may move an end of the tape not on the reel to secure it to an inboard drive wheel, as described in relation to
In another embodiment, as shown in
In another embodiment, rather than moving the library reel 702 and carriage 716, the take-up reel 710 and its motor may be moved to thread the tape drive 204. In yet another embodiment, if the tape 706 is stored on a pair of reels, the robotic accessor may position the two reels directly on the tape drive 705, where the tape 706 may be located before threading.
Alternatively, as shown in
In one embodiment, each reel may be large enough (e.g., the flanges are big enough) to hold the entire length of tape that can be wound onto the reel(s), if all the tape is to be accessed. If the tape is stored in pairs of these large reels, the capacity of the library may be reduced by a factor of two from what it may be by using single reels.
In another approach, the tape may be stored on a pair of reels, where at least one reel is not large enough to accept the entire length of tape. As shown in
In another approach, a packing roller may be used to keep the tape on the reel after its diameter becomes bigger than the flange.
To assist in navigation of the robotic accessor, at least one of the tape support surfaces may include an optical pattern usable for navigation of the robotic accessor, and the robotic accessor may be configured for recognizing the optical pattern.
As shown in
The floor 1001 may be planar, as shown in
As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as “logic,” “circuit,” “module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
Aspects of the present invention are described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified herein.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
As shown in
In use, the gateway 1101 serves as an entrance point from the remote networks 1102 to the proximate network 1108. As such, the gateway 1101 may function as a router, which is capable of directing a given packet of data that arrives at the gateway 1101, and a switch, which furnishes the actual path in and out of the gateway 1101 for a given packet.
Further included is at least one data server 1114 coupled to the proximate network 1108, and which is accessible from the remote networks 1102 via the gateway 1101. It should be noted that the data server(s) 1114 may include any type of computing device/groupware. Coupled to each data server 1114 is a plurality of user devices 1116. Such user devices 1116 may include a desktop computer, lap-top computer, hand-held computer, printer or any other type of logic. It should be noted that a user device 1111 may also be directly coupled to any of the networks, in one embodiment.
A peripheral 1120 or series of peripherals 1120, e.g., facsimile machines, printers, networked and/or local storage units or systems, etc., may be coupled to one or more of the networks 1104, 1106, 1108. It should be noted that databases and/or additional components may be utilized with, or integrated into, any type of network element coupled to the networks 1104, 1106, 1108. In the context of the present description, a network element may refer to any component of a network.
According to some approaches, methods and systems described herein may be implemented with and/or on virtual systems and/or systems which emulate one or more other systems, such as a UNIX system which emulates an IBM z/OS environment, a UNIX system which virtually hosts a MICROSOFT WINDOWS environment, a MICROSOFT WINDOWS system which emulates an IBM z/OS environment, etc. This virtualization and/or emulation may be enhanced through the use of a hypervisor, in some embodiments.
In more approaches, one or more networks 1104, 1106, 1108, may represent a cluster of systems commonly referred to as a “cloud.” In cloud computing, shared resources, such as processing power, peripherals, software, data, servers, etc., are provided to any system in the cloud in an on-demand relationship, thereby allowing access and distribution of services across many computing systems. Cloud computing typically involves an Internet connection between the systems operating in the cloud, but other techniques of connecting the systems may also be used.
The workstation shown in
The workstation may have resident thereon an operating system such as the Microsoft Windows® Operating System (OS), a MAC OS, a UNIX OS, etc. It will be appreciated that a preferred embodiment may also be implemented on platforms and operating systems other than those mentioned. A preferred embodiment may be written using JAVA, XML, C, and/or C++ language, or other programming languages, along with an object oriented programming methodology. Object oriented programming (OOP), which has become increasingly used to develop complex applications, may be used.
It will be clear that the various features of the foregoing systems and/or methodologies may be combined in any way, creating a plurality of combinations from the descriptions presented above.
It will be further appreciated that embodiments of the present invention may be provided in the form of a service deployed on behalf of a customer.
While various embodiments have been described above, it should be understood that they have been presented by way of example only, and not limitation. Thus, the breadth and scope of an embodiment of the present invention should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.