The present invention relates to library systems for dynamic information storage or retrieval. More particularly, the invention concerns a system to provide accurate time information for the operation of an automated data storage library.
Automated data storage libraries provide a means for storing large quantities of data in data storage media that are not permanently mounted on data storage drives, and that are stored in a readily available form on storage shelves. One or more robot accessors retrieve selected data storage media from storage shelves and provide them to data storage drives. Typically, data stored on data storage media of an automated data storage library, once requested, is needed quickly.
Automated data storage libraries typically include Real-Time Clocks (RTC) to provide a time/date source for library operations. A real-time clock is a clock that maintains time and/or date information continuously despite changes in power supplied to the library. Real-time clocks are typically powered by a special battery that is not connected to the library power supply. In contrast, non-real time clocks do not function when power is removed from the library. The RTC may be used to schedule periodic drive cleaning, to schedule periodic maintenance operations such as accessor rezero or library calibration, for creating log time stamps, etc. A problem with prior art Real-Time clocks is the requirement of a power source to provide power to the RTC when the library is powered off. Capacitors may be used as a power source for the RTC; however, a very large capacitor may be required to store sufficient energy to maintain RTC operation for an extended period of time. Batteries are commonly used for RTC power; however, hazardous chemicals are often used in modern batteries resulting in potential disposal problems; also a battery failure may result in a service action. Another problem with prior art real-time clocks is the need to manually set the date and time by an operator or repair person. The time may not be set correctly or never set when required. Therefore, there is need to improve the supply of accurate time information in an automated data storage library.
Generally a Global Positioning System (GPS) provides an accurate time source with four atomic clocks in each GPS satellite. It also provides accurate ranging information. The ranging information can be used for relative and absolute positioning measurements, as well as attitude (roll, pitch and yaw) measurements. Sub-millimeter accuracy can be obtained with the GPS system.
In order to benefit from a very large wireless telephone market, GPS manufactures have been working on techniques to improve the indoor characteristics of GPS receivers. One approach that has shown remarkable success is a design that uses massively parallel correlators. This can improve the effective receiver sensitivity to about −158 dBm. Another approach uses a technique called A-GPS (Assisted GPS) which receives the GPS data stream from an additional source, such as a cellular telephone network. This improves indoor operation reduces the time to determining a position from seconds or minutes, to hundreds of milliseconds. In one product example, Motorola manufactures an OEM GPS sensor, called “FS Oncore” with an approximate size of 200 square millimeters. This is a complete GPS solution that only requires an antenna and a serial interface to receive location and time information. Another Motorola product called “Instant GPS”, is a single chip GPS receiver that is manufactured by IBM. This device requires minimum additional circuitry and Motorola provides reference designs for easy integration into products. In addition to the electrical integration, this solution only requires an antenna and a serial interface to receive location and time information. This new generation of single chip GPS receivers results in the availability of a low power and compact GPS system. In another product example, Global Locate manufactures a two chip GPS solution that requires a relatively small amount of electrical integration to operate in a product.
An automated data storage library typically comprises one or more controllers to direct the operation of the library. The controller may take many different forms and may comprise an embedded system, a distributed control system, a personal computer, workstation, etc.
Broadly defined, the present invention provides a system and a method for obtaining time information in an automated data storage library. In exemplary embodiments, the system includes a library controller for operating the automated data storage library and a receiver for receiving time information from various sources.
In system embodiments the present invention also provides a receiver coupled to the library controller, wherein the library controller obtains time information from the receiver and uses the time information for library operations. In another exemplary system embodiment the automated data storage library further comprises an external interface for interfacing to at least one external system to provide time information to at least one external system.
In method form, exemplary embodiments include a method for obtaining time information in an automated data storage library. The method comprises the steps of receiving a first signal using a first receiver; providing information derived from the first signal to a library controller; obtaining time information from the information; and the library controller using the time information for library operations.
In still another exemplary method of the present invention, a method for obtaining time information in an automated data storage library that further comprises an external interface for interfacing to at least one external system is presented. The method comprises the steps of receiving a first signal using a first receiver; providing information derived from the first signal to a library controller; obtaining time information from the information; using the time information for library operations; and the automated data storage library providing the time information to at least one external system via the external interface.
It will be appreciated by those skilled in the art that although the following detailed description will proceed with reference being made to preferred embodiments and methods of use, the present invention is not intended to be limited to these preferred embodiments and methods of use. Rather, the present invention is intended to be limited only as set forth in the accompanying claims.
For a more detailed understanding of the present invention, reference may be made to the following detailed description taken in conjunction with the accompanying drawings.
This invention is described in preferred embodiments in the following description. The preferred embodiments are described with reference to the Figures. While this invention is described in conjunction with the preferred embodiments, it will be appreciated by those skilled in the art that it is intended to cover alternatives, modifications, and equivalents as may be included within the spirit and scope of the invention as defined by the appended claims.
The left hand service bay 13 is shown with a first accessor 18. As discussed above, the first accessor 18 comprises a gripper assembly 20 and may include a reading system 22 to “read” identifying information about the data storage media. The right hand service bay 14 is shown with a second accessor 28. The second accessor 28 comprises a gripper assembly 30 and may include a reading system 32 to “read” identifying information about the data storage media. In the event of a failure or other unavailability of the first accessor 18, or its gripper 20, etc., the second accessor 28 may perform all of the functions of the first accessor 18. The two accessors 18, 28 may share one or more mechanical paths or they may comprise completely independent mechanical paths. In one example, the accessors 18, 28 may have a common horizontal rail with independent vertical rails. The first accessor 18 and the second accessor 28 are described as first and second for descriptive purposes only and this description is not meant to limit either accessor to an association with either the left hand service bay 13, or the right hand service bay 14. In addition, the present invention may operate with fewer or more than two accessors.
In the exemplary library, first accessor 18 and second accessor 28 moves their grippers in at least two directions, called the horizontal “X” direction and vertical “Y” direction, to retrieve and grip, or to deliver and release the data storage media at the storage shelves 16 and to load and unload the data storage media at the data storage drives 15.
The exemplary library 10 receives commands from one or more host systems 40, 41 or 42. The host systems, such as host servers, communicate with the library directly, e.g., on path 80, through one or more control ports (not shown), or through one or more data storage drives 15 on paths 81, 82, providing commands to access particular data storage media and move the media, for example, between the storage shelves 16 and the data storage drives 15. The commands are typically logical commands identifying the media and/or logical locations for accessing the media.
The exemplary library is controlled by a distributed control system receiving the logical commands from hosts, determining the required actions, and converting the actions to physical movements of first accessor 18 and/or second accessor 28.
In the exemplary library, the distributed control system comprises a plurality of processor nodes, each having one or more processors. In one example of a distributed control system, a communication processor node 50 may be located in a storage frame 11. The communication processor node provides a communication link for receiving the host commands, either directly or through the drives 15, via at least one external interface, e.g., coupled to line 80.
The communication processor node 50 may additionally provide a communication link 70 for communicating with the data storage drives 15. The communication processor node 50 may be located in the frame 11, close to the data storage drives 15. Additionally, in an example of a distributed processor system, one or more additional work processor nodes are provided, which may comprise, e.g., a work processor node 52 that may be located at first accessor 18 and that is coupled to the communication processor node 50 via a network 60, 157. A second work processor node 252 that may be located at second accessor 28 and that is coupled to the communication processor node 50 via a network 60, 200 may also be provided. Each work processor node may respond to received commands that are broadcast to the work processor nodes from any communication processor node, and the work processor node may also direct the operation of first accessor 18, providing move commands. An XY processor node 55 may be provided and may be located at an XY system of first accessor 18. The XY processor node 55 is coupled to the network 60, 157, and is responsive to the move commands, operating the XY system to position the gripper 20.
Also, an operator panel processor node 59 may be provided at the optional operator panel 23 for providing an interface for communicating between the operator panel and the communication processor node 50, the work processor node 52, and the XY processor node 55.
A network, for example comprising a common bus 60, is provided, coupling the various processor nodes. The network may comprise a robust wiring network, such as the commercially available CAN (Controller Area Network) bus system, which is a multi-drop network, having a standard access protocol and wiring standards, for example, as defined by CiA, the CAN in Automation Association, Am Weich Selgarten 26, D-91058 Erlangen, Germany. Other networks, such as Ethernet, or a wireless network system, such as RF or infrared, may be employed in the library as is known to those of skill in the art. In addition, multiple independent networks may also be used to couple the various processor nodes.
The communication processor node 50 is coupled to each of the data storage drives 15 of a storage frame 11, via lines 70, communicating with the drives and with host systems 40, 41 and 42. Alternatively, the host systems may be directly coupled to the communication processor node 50, at input 80 for example, or to control port devices (not shown) which connect the library to the host system(s) with a library interface similar to the drive/library interface. As is known to those of skill in the art, various communication arrangements may be employed for communication with the host(s) and with the data storage drives. In the example of
The data storage drives 15 may be in close proximity to the communication processor node 50, and may employ a short distance communication scheme, such as SCSI, or a serial connection, such as RS-422. The data storage drives 15 are thus individually coupled to the communication processor node 50 by means of lines 70. Alternatively, the data storage drives 15 may be coupled to the communication processor node 50 through one or more networks, such as a common bus network.
Additional storage frames 11 may be provided and each is coupled to the adjacent storage frame. Any of the storage frames 11 may comprise communication processor nodes 50, storage shelves 16, data storage drives 15, and networks 60.
Further, the automated data storage library 10 may additionally comprise a second accessor 28, for example, shown in a right hand service bay 14 of
In
In a first embodiment of the present invention a receiver is coupled to automated data storage library 10 to enable automated data storage library 10 to receive accurate time information from various sources. This is an advantage over prior art methods, for example battery powered real-time clocks as described above, for maintaining accurate time in an automated data storage library. Once coupled, a receiver may receive accurate time and/or date information from a GPS satellite, the Internet, an intranet or other network, a broadcast radio station or other source of radio signal, a broadcast TV station, a cellular telephone network, a paging system, a central service location during a “Call Home” service action, etc. By use of the present invention precise time information may be obtained by automated data storage library 10. Herein, time information may comprise time and/or date information.
The method of the first embodiment can be better understood by referring to flowchart 700 shown in
In a second embodiment, the automated data storage library receives time information from a device on a network. In this embodiment, antenna 605 may not be present and receiver 610 comprises a network interface to provide a connection to at least one network device. The network interface may comprise telephone lines, a wireless link such as RF or Infrared, a communication interface such as Ethernet or Token Ring, a data interface such as Fibre Channel or SCSI, a dedicated interface such as RS-232, a serial interface such as CAN or USB, or any other interface for connecting two or more devices for the purpose of exchanging information, as is known to those of skill in the art. Receiver 610 is coupled to at least one network device to receive a signal from the network device. Receiver 610 may be coupled to the network device using a dedicated connection, a LAN (Local Area Network), a WAN (Wide Area Network), a SAN (Storage Area Network), an intranet, the Internet, or any other connection that may be used to couple two or more devices, as is known to those of skill in the art. The network device may comprise a computer or workstation, a computer peripheral, a network appliance, or any other computing device, as is known to those of skill in the art. As described above receiver 610 provides information derived from the signal to library controller 100. Library controller 100 receives information derived from the signal from receiver 610, and obtains time information from the information. The time information may be obtained using an Internet protocol such as SNTP (Simple Network Time Protocol), HTTP (Hyper Text Transfer Protocol), UDP (User Datagram Protocol), or any other network protocol known to those of skill in the art. Alternatively, the time information may be obtained using any protocol, including a proprietary protocol.
In one example of the second embodiment, the automated data storage library receives time information from another computer or network appliance that provides a time service using the SNTP (Simple Network Time Protocol). In another example, a remote computer provides time information by simply passing the date and time in an ASCII or binary form.
In yet another example, a remote computer provides time information as a secondary function. In this example receiver 610 comprises a remote computer interface to provide the connection to at least one remote computer. Receiver 610 is coupled to at least one remote computer to receive a signal from the remote computer. Receiver 610 may be coupled to at least one remote computer using any interface or connection described above. The remote computer may comprise a host computer, personal computer, workstation, etc. As described above receiver 610 provides information derived from the signal to library controller 100. Library controller 100 receives information derived from the signal from receiver 610, and obtains time information from the received information. For example, a feature often referred to as “Call-Home” is used to expedite service and repair of an automated data storage library. Call-Home is a feature where the library will call a service or repair center when it detects an operational error. Another feature, called “Heartbeat Call-Home” involves a periodic call to a service or repair center as a watchdog function. In one example of a call-home facility, the library comprises a modem. The modem is connected to a telephone line and the library uses the modem to dial the telephone number of a public or private network. After authenticating the library access to the network, a network connection to a remote computer is established to transfer information to/from the library. For example, the library may transfer error logs to the remote computer. Automated data storage library 10 may obtain time information from a remote computer during the call-home operation. This may occur periodically, or automated data storage library 10 may initiate a call-home when it needs to update time information. For example, upon power up, automated data storage library 10 may initiate a call-home to update time information.
The time information obtained for any embodiment or implementation described herein may be used for library operation. The library may use this time information to schedule events, such as drive cleaning operations. The library may also use this information for time and/or date stamps in error logs, etc. As described above, automated data storage libraries typically includes a Real-Time Clock (RTC) to provide time information for library operations. The RTC may be completely eliminated by using the time information obtained by use of the present invention. With the elimination of the RTC, the need for batteries or other power sources to supply energy to the RTC is also eliminated. The chance of operator error is also eliminated as the library time will be automatically maintained.
The time information obtained through the present invention may also be used in conjunction with a real-time clock (RTC). In one implementation, the RTC provides a backup to the received time such that a failure to properly receive time information will result in the RTC providing the time information. In another implementation the received time provides a backup to the RTC such that a failure of the RTC or its battery results in the receiver providing the time information. In another implementation, the received time of the present invention may be used to set the RTC at an interval. In one variation of this implementation, the interval is the time between power cycles or resets. In this variation, the received time may be used to set the RTC time after a power on or reset. The library controller 100 may detect that it has cycled through a reset by reading a processor register, hardware register, power supply status, or any other method of determining that a device has cycled through a reset or power cycle, as is known to those of skill in the art. Alternatively, the library controller may detect that it has gone through a reset through some other means, such as an RTC time that appears to be invalid. The RTC time may appear to be invalid if the date or time appears as an unrealistic value. For example, the firmware that implements this invention may have a compile date of 2004. The date from the RTC after a power loss may appear as 1980. This would result in a possible invalid RTC time because the date should be sometime on or after 2004. In another variation of this implementation, the interval is the time between a loss of RTC backup power. In this variation, the received time may be used to set the RTC time after it has lost its backup power source. The backup power source may comprise a capacitor, battery, or any other power source independent from the library controller 100 power source. The library controller may detect that the RTC has lost its backup power source by reading status from the RTC, by monitoring the backup power source voltage, etc. Alternatively, the library controller may detect that the RTC has lost its backup power source by some other means, such as an RTC time that appears to be invalid as described above. In another variation of this implementation, the interval is some periodic interval of time. In this variation, the received time would be used to periodically synchronize the RTC. This would compensate for any potential time drift that is common among real-time clocks. For example, the library controller may use the received time to set the RTC once every day. There may be rules that will only allow the RTC time to be corrected or set if the RTC time differs from the received time by a predetermined maximum amount of time. This would prevent incorrectly setting the RTC time when the received time is incorrect. The received time could also be used to compensate for daylight savings time, leap year, or other time differences that are not always compensated for by real-time clocks. The periodic interval may range from seconds to many months or more. Any of the implementations that use the received time to assist with proper operation of an RTC have the advantage of a backup to time and/or date information while eliminating the need for operator intervention for failures and time changes, such as daylight savings time, loss of backup power, etc. In addition, potential operator errors that may occur from incorrectly setting the time and/or date of the RTC are eliminated.
In a third embodiment, automated data storage library 10 obtains and also provides time information to/from various external systems using an external interface. In this embodiment, automated data storage library 10 further comprises an external interface for interfacing to one or more external systems. Automated data storage library 10 may also provide time information that it has obtained through receiver 610 to external systems. The external interface may comprise telephone lines, a wireless link such as RF or Infrared, a data link such as SCSI or Fibre Channel, a communication link such as Ethernet, a dedicated link such as RS-232, or any other interface as is known to those of skill in the art. In one implementation of this embodiment, automated data storage library 10 provides time information to an external system that comprises one or more storage subsystems. The storage subsystems may comprise RAID (Redundant Array of Independent Drives), other automated data storage libraries, virtual tape systems, or any other storage subsystem as is known to those of skill in the art. In another implementation of this embodiment, automated data storage library 10 provides time information to an attached host computer. For example, automated data storage library 10 and any associated host computers may use the time information to synchronize each other to the same time. In another implementation of this embodiment, automated data storage library 10 provides time information to one or more devices on a network. The network device may comprise a computer, a computer peripheral, a network appliance, or any other network device as is known to those of skill in the art. The method of the third embodiment can be better understood by referring to flowchart 800 shown in
The invention disclosed herein may be implemented as a method, apparatus or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof. The term “article of manufacture” as used herein refers to code or logic implemented in hardware logic (e.g., an integrated circuit chip, Programmable Gate Array (PGA), Application Specific Integrated Circuit (ASIC), etc.) or a computer readable medium (e.g., 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., EEPROMs, ROMs, PROMs, RAMs, DRAMs, SRAMs, firmware, programmable logic, etc.). Code in the computer readable medium is accessed and executed by a processor. The code may further be accessible through a transmission media or from a file server over a network. In such cases, the article of manufacture in which the code is implemented may comprise a transmission media, such as a network transmission line, wireless transmission media, signals propagating through space, radio waves, infrared signals, etc. Of course, those skilled in the art will recognize that many modifications may be made to this configuration without departing from the scope of the present invention, and that the article of manufacture may comprise any information bearing medium known in the art.
While the preferred embodiments of the present invention have been illustrated in detail, the skilled artisan will appreciate that modifications and adaptations to those embodiments may be made without departing from the scope of the present invention as set forth in the following claims.
The present application is related to application Ser. No. ______, entitled “Global Positioning System Location Information for an Automated Data Storage Library” Docket # TUC9-2003-0088 filed on an even date herewith, the disclosure of which is hereby incorporated by reference in its entirety.