VIRTUAL TAPE LIBRARY
An embodiment of the invention relates to a virtual tape library apparatus providing a plurality of emulated tape storage elements. The apparatus comprises local, non-tape based storage, a store storing a data structure which associates the emulated tape storage elements with the local or a remote storage, a first interface to provide access to the local storage, in response to tape library commands identifying emulated tape storage elements associated with the local storage, a second interface to provide access to the remote storage, in response to tape library commands identifying emulated tape storage elements associated with the remote storage, and a command processor, which receives tape library commands relating to emulated storage elements, and generates respective commands for the remote storage when received library commands relate to the remote storage.
The present invention relates to data storage, and, more particularly, to virtual or emulated tape libraries.
BACKGROUNDMedia for large scale data storage can generally be classified as either tape-based sequential access media or disk-based random access media. Storage devices which utilise tape-based media are typically used for backup and archival storage of large datasets. Data stored on a tape medium typically comprises backed up data files, which are structured in sequential records or blocks and delimited by file mark data. Due to its sequential nature, a tape must be wound past all preceding data and file marks in order to read from or write to any particular location or file, a process which inevitably leads to severe speed penalties compared with systems employing disk-based random access media. Nevertheless, where a primary requirement is for data archiving, the high capacity, longevity and relative low cost of tape media has meant that systems based on tape-based sequential access media, for example conventional tape libraries, have remained a popular choice for many users.
A conventional tape library typically stores data on tape media, in the form of tape cartridges, and can be defined in terms of its geometry. Generally, a geometry comprises a number of addressable ‘elements’ namely: storage elements (slots), for storing inactive cartridges; one or more data transfer elements (tape drives), for reading and writing data respectively from and to loaded cartridges; and one or more medium transport elements (robot pickers), for moving cartridges between designated slots and drives. Some conventional tape libraries may have additional geometry elements such as one or more import/export elements (mailslots), for receiving new cartridges into the library or delivering existing cartridges out from the library.
Conventional tape libraries are typically accessed and controlled by storage application software running on a host computer, which is attached (either directly, or indirectly via a network) to a library. The application software typically maintains a record of where in a library particular data has been stored, typically by reference to a particular cartridge in a particular slot. The application software also controls the library to store and retrieve data using commands identifying the associated geometry elements. For example, a read operation typically involves a move medium command followed by a read command. The move medium command controls a picker to move a selected cartridge (e.g. tape cartridge number 0001) stored in a particular slot to a specified drive so that particular data may be read from the cartridge and returned to the host.
Advances in hard disk storage technology have over the years reduced the density and cost per megabyte differential between disk media and tape media, thus promoting disk media as a viable alternative to tape media in some circumstances. However, there still exist legacy data storage software applications that are designed to operate with sequential-access tape devices and libraries conforming to a defined geometry. Often, an organisation may have invested significantly in application software, skills and management processes for tape-based backup and restore activities. In some such circumstances, it has proved beneficial to utilise disk-based random-access storage technologies in storage systems that remain compatible with legacy tape-based sequential access storage applications. Storage systems of this type are known as Virtual Tape Libraries (VTL) and emulate conventional tape libraries such that storage application software is unaware that an expected physical tape library has been replaced with an emulation thereof. Such storage systems typically replace physical tape media with one or more random access hard disks or disk arrays (which will hereinafter be referred to generally as “disk storage”), translating commands based on library elements into commands suitable for storing data on disk.
According to a first aspect, the present invention provides a virtual tape library apparatus providing a plurality of emulated tape storage elements, the apparatus comprising: local, non-tape based storage; a store storing a data structure which associates the emulated tape storage elements with the local or remote storage; a first interface to provide access to the local storage, in response to tape library commands identifying emulated tape storage elements associated with the local storage; a second interface to provide access to the remote storage, in response to tape library commands identifying emulated tape storage elements associated with the remote storage; and a command processor, which receives tape library commands relating to emulated storage elements, and generates respective commands for the remote storage when received library commands relate to the remote storage.
According to a second aspect, the present invention provides a virtual tape library apparatus providing a plurality of emulated tape storage elements, the apparatus comprising: local, non-tape based storage; a store storing a data structure which associates emulated tape storage elements with the local storage and indicates which, if any, of the emulated tape storage elements are readable from and/or writable to by a remote storage device; a first interface to provide access to the local storage in response to tape library commands received from a host and identifying emulated tape storage elements associated with the local storage; and a second interface to provide access by a remote storage device to emulated tape library elements that, according to the data structure, can be read from and/or written to by a remote storage device.
According to a third aspect, the present invention provides a storage system comprising local non-tape based storage means, means for mapping a plurality of emulated storage elements of the system to either the local storage means or a remote storage means, means for accessing the local or remote storage means according to the mapping for reading and writing data from and to the emulated storage elements.
Various embodiments of the present invention will now be described, by way of example only, with reference to the accompanying drawings, of which:
Various embodiments of the present invention will now be described in more detail with reference to the accompanying figures. It will be appreciated that the invention is not limited in its application, to the details of construction and the arrangement of components as set forth in the following description or illustrated in the drawings. It will be understood by a person skilled in the art that additional embodiments of the present invention not detailed in the description are possible without departing from the scope or intention of the present invention. Accordingly, the following description should not be interpreted as limiting in any way, and all such embodiments are intended to fall within scope of the present invention.
As used herein, the term “host” refers to any computer comprising at least one processor—such as a personal computer, a workstation, a mainframe or a networked client—which is capable of executing storage application software and communicating with other devices, such as a storage system or other computers. In addition, within this disclosure, the term “networked computer environment” includes any computing environment in which a plurality of hosts are mutually connected via a network connection using, for example, TCP/IP over Ethernet, or Fibre Channel protocol layers or other suitable network technology or combination of network technologies. Moreover, embodiments of the present invention may also be used in conjunction with at least one higher level protocol layer using, for example, SCSI commands, or any other suitable commands for communicating with a target.
As used herein, the terms “emulated” and “virtual” are used interchangeably. An “emulated” device, apparatus, element, geometry or system denotes a device, apparatus, element, geometry or system implemented in software or hardware, or a combination thereof, such that the emulated device, apparatus, element or system behaves in substantially the same functional manner to that of a conventional (that is, a non-emulated) equivalent, from the point of view of a host. For example, whilst being implemented using different technology, a virtual tape cartridge is functionally the same as a conventional tape cartridge from the perspective of a connected host.
Prior art VTLs suffer from the drawback that they are often constrained, at least to some extent, by the geometry “expected” by the storage application software running on a host; where the expected geometry may be referred to as a target geometry. Legacy storage application software running on one or more hosts may be tailored to specifically access a legacy tape library. Consequently, if a known VTL or a conventional tape library with a different geometry is connected to the host(s), the storage application software may require time consuming reconfiguration. For example, the “expected” number of drive and picker/robotics elements may be constrained, whereas the number of slot elements may not. In addition, configuration of a prior art VTL can be a lengthy process requiring configuration of each element forming the emulated library, and expansion of the storage may not be possible without reconfiguring respective host storage application software. Embodiments of the present invention therefore facilitate linking between a first, or local VTL—that is, the VTL that presents an emulated tape library to a host—and a second, or remote VTL, such that remote emulated slots and media on the remote VTL can be accessed via the first VTL seamlessly (that is, without any indication by the first VTL of whether elements are local or remote) by a host that is connected only to the first VTL.
To facilitate this, linking functionality is provided such that the local VTL may be linked to a remote VTL in order to obtain access to the additional emulated storage elements. Linking of one or more remote storage devices is performed within the constraints of the target geometry (albeit an extended target geometry) presented to the host by the local VTL, in order to obviate reconfiguration of the host(s)' storage application software.
A host 301 is operably connected to the local VTL 300, which comprises an emulation module 302, a link module 304, a file system module 305, disk storage 306 and a map 307. According to the present embodiment, the emulation module 302 contains a router 303a and a command processor 303b. The link module 304 comprises a control interface 308, and a data interface 309 for communicating with a remote VTL 310, as will be described below. The host 301 runs conventional storage application software configured to interact with a conventional tape library of defined target geometry. When a read or write operation is executed, the host 301 sends respective commands to the local VTL 300, for example, using a SCSI protocol; though, in principle, other suitable protocols, such as Fibre Channel, SATA or iSCSI, may be used. Hereafter, unless stated otherwise, it will be assumed that the protocol referred to for communications between the host 301 and local VTL 300 is a standard SCSI protocol.
In common with the local VTL 300, the remote VTL 310 comprises an emulation module 312, a link module 314, a file system module 315, disk storage 316 and a map 317. According to the present embodiment, the emulation module 312 of the remote VTL 310 contains a router 313a and a command processor 313b, and the link module 314 comprises a control interface 318 and a data interface 319 for communicating with the local VTL 300.
The disk storage 306 and 316 comprises one or more disk drives and/or arrays, which may comprise a plurality of commercial-off-the-shelf (COTS) disk products (and may be relatively inexpensive compared to conventional storage array products).
The host 301 communicates with the local VTL 300 using a variety of standard tape library commands, which may include: moving a cartridge from a slot to a drive (a MOVE_MEDIUM command), and reading status information of the storage device (a READ_ELEMENT_STATUS command, which reports (among other things), which elements are present at which address).
With reference to the local VTL 300, the file system module 315 provides a first functional interface between the storage application software running on the host 301 and (via the emulation module 302) the disk storage 306. The emulated library is represented in the map 307, which is accessible to the emulation module 302. The map 307 is a data structure that represents the emulated library in terms of one or more addressable elements. According to the present embodiment, the map 307 contains data providing two levels of associations (or mappings) 307a and 307b. The map 307 provides first associations 307a indicating whether emulated slots are local emulated slots, which reside on the local VTL 300, or remote emulated slots, which reside on the remote VTL 310. Where appropriate, the mapping 307b provides second associations between data stored on local emulated cartridges of the local VTL 300 and respective logical locations in the file system of the disk storage 306. By ‘logical locations’ we mean, for example, disk volume, directory name, file name etc. Optional mappings 307c, details of which will be discussed below, define which local emulated slots can be accessed for read and/or write access by the remote VTL 310. The file system module 305 is responsible for mapping between logical file system designations and physical locations in the disk storage 306 in a known way.
Thus, the emulation module 302 can, in response to appropriate commands from the host 301, and with reference to the map 307, render or present the emulated library to the host as one or more addressable elements of a conventional tape-based library.
The link module 304 provides a second functional interface between the host 301 and (via the emulation module 302) the remote VTL 310. The link module 304 provides a data interface 308, for connecting the VTL 300 to the remote VTL 310, such that commands and data can be communicated back and forth between the local VTL 300 and the remote VTL 310. The link module 304 also provides a control interface 308, which provides access to the VTL 300 for configuration purposes, as will be described below. When linked to a remote VTL 310 via the data interface 309, commands for accessing emulated storage elements of the remote VTL 310 are communicated by the link module 304 to the remote storage device using an appropriate protocol. The access commands may be standard tape library access commands or may, instead, be bespoke commands provided for communicating between VTLs, as will be described in more detail hereafter.
The router 303a of the emulation module 302 contains logic that determines, by reference to the first associations 307a of the map 307, whether commands received from the host 301 relate to emulated slots of the local VTL 300 or to emulated slots of the remote VTL 310. By virtue of the first associations 307a and the router 303a, the emulation module 302 can appropriately route commands to the local disk storage 306 or to the remote VTL 310.
If no remote VTL is linked via data interface 309 to the local VTL 300, the map 307 reflects this by omitting (or in some other way rendering the elements inaccessible) all associations with the remote VTL 310. In this way, the emulation module 302 presents to the host 301 only the emulated storage elements that are currently associated with the storage medium 306 of the local VTL 300. It is possible, therefore, that emulated storage elements that are available to the host 301 on one day (when the remote VTL 310 is attached) may not be available at another time (for example, if the remote VTL 310 is subsequently detached or goes off-line).
Configuration of the VTL 300 is performed via the control interface 308. The control interface 308 typically comprises a separate physical connection, for example a USB connection, between the local VTL 300 and a management system 320 executing a management software application 321. In some embodiments, configuration of the local VTL 300 may be performed by a management software application running on the (or another) host 301. According to the present embodiment, a user (who manages the local VTL 300) is presented by the management software application 321 with a graphical user interface (GUI) such that linking parameters may be specified, including but not limited to specification of which remote storage devices are linked, which media are linked, etc. Further details of the management software application 321 will be provided below.
In order to facilitate routing of commands from the host 301 attached to the local VTL 300, an emulated library is represented, in terms of one or more addressable storage elements, by a dataset forming part of the data structure stored in the map 307 of the local VTL 300. In this example, the dataset defines a mapping from the addressable storage elements of the emulated tape library to respective emulated elements of the local VTL 300 and elements of the remote VTL 310.
The local emulated library 421 comprises emulated elements including a drive 422, a picker 423 and six cartridge slots 424-429. The remote emulated library 441 comprises emulated elements including two drives 442 and 443, a picker 444 and four cartridge slots 445-448. In
In
It will be appreciated that the emulated library has a geometry that conforms to the target geometry of the local emulated library, by having one drive 402 and one picker 423. This is despite the fact that the remote VTL 310 would normally expect to receive commands with reference to a specified emulated slot, cartridge, drive and picker. In the present embodiment, the command processor 303b of the emulator 302 in the local VTL 300 is arranged to convert a command that is associated with a local emulated picker and drive, and a remote emulated slot, into a command (intended for the remote VTL 310) referring to a remote emulated picker, drive and slot. The command processor 303b uses the map to re-write the commands, or generate new commands, destined for the remote VTL 310, such that the commands make sense to the remote VTL 310 for its emulated geometry.
The local VTL 300 may communicate with the remote VTL 310, for data read and write operations, using standard tape library commands, whereby the remote VTL 310 can treat the local VTL as if it were a normal host. As shown in
One example of the mapping function described in the preceding paragraphs is illustrated in the flow diagram in
In the present embodiment, optional mapping 307c of the map 307 provides data defining which emulated slots of the local VTL 300 are linkable to the remote VTL 310. This feature dictates whether linking between the local VTL 300 and remote VTL 310 is uni-directional (so that the local VTL can link to the remote VTL but not vice versa) or bi-directional (so that each VTL can link to the other). A sub-set of zero or more of the local emulated slots can be defined in mapping 307c as linkable to a remote VTL 310, such that a command associated with a local emulated slot received from the remote VTL 310 will be routed to the appropriate emulated slot on the local VTL 300 by emulation module 302 and router 303a.
According to the present embodiment, mapping 307c also contains data defining a lock status (“L” designating locked and “U” designating unlocked) of each linkable slot. In response to a command to access a particular slot received from the host 301 or the remote VTL 310, the lock status of the associated local emulated slot is changed by the emulator 302 from unlocked to locked, during the period of the access, so that no other access request is permitted on the emulated slot. In other words, the host is not permitted to access a local emulated slot if the remote VTL 310 is already accessing it and, likewise, the remote VTL 310 is not permitted to access a local emulated slot if the host is already accessing it.
As discussed, the emulated slots shown in
For example, in the present embodiment, when the local VTL 300 requests access to an emulated cartridge in a linked emulated slot (for example using a MOVE_MEDIUM command to move the emulated cartridge to an emulated drive) of the remote VTL 310, the respective emulated slot is locked such that it can only be accessed by the local host 301 and not by any other host. Alternatively, if the required emulated slot is already locked when a command is received, then it will not be available for access by the requesting host. In general, according to the present embodiment, once locked, any emulated slot will not appear as available to other hosts (for example in response to a READ_ELEMENT_STATUS command), and the respective cartridge may be reported as being absent from the slot, for example due to its being loaded in an emulated drive.
A method of routing an access request from a local host 301 in accordance with an embodiment of the present invention is illustrated in the flow diagram in
Alternatively, if the emulated slot is determined [step 602] to be a remote emulated slot in the remote VTL 310, the local VTL 300 sends a MOVE_MEDIUM request to the remote VTL [step 608]. The remote VTL 310 receives the request [step 609] and, in response, determines if the identified emulated slot is locked [step 610]. If the emulated slot is locked, then the remote VTL 310 reports back to the local VTL [step 611], which in turn notifies the local host 301 that the requested cartridge and associated slot are currently unavailable [step 605]. If the emulated slot is not locked then the remote VTL 310 locks the emulated slot, by updating the respective lock status to “L” [step 612]. Next, the remote VTL 310 notifies the local VTL 300 [step 613], and the local VTL 300 notifies the local host 301 [step 607], that the emulated cartridge has been moved as requested, and is ready for a next operation by the host 301. The emulated slot, whether it is local or remote, remains locked until the local host 301 has finished carrying out the intended read or write operation and has subsequently returned the emulated cartridge to its emulated slot, at which point the lock status is changed to unlocked and the cartridge and associated slot become accessible by other hosts. In effect, according to the present embodiment, a READ_ELEMENT_STATUS command or a MOVE_MEDIUM command can only be successful if the target emulated cartridge is resident in its emulated slot.
According to the present embodiment, the VTLs represented functionally in
The functional elements of, for example, the local VTL 300 illustrated in
An example of a GUI for configuring a local VTL to link with a remote VTL will now be described with reference to the diagram in
A second, optional aspect of the GUI 800, according to the present embodiment, is the ability to dictate whether or not local emulated cartridges (424-429) of the local VTL can be accessed by the remote VTL. This feature dictates whether linking is uni-directional (so that the local VTL can link to the remote VTL but not vice versa) or bi-directional (so that each VTL can link to the other). As shown, the user has an option, in the form of a tick box 806, to select whether the remote VTL can link to the local VTL: a tick meaning “yes”. In no tick is added then, although not illustrated, the remainder of the GUI below the tick box 806 would remain inoperative to the user. However, as shown, the tick box 806 includes a tick and the GUI below remains operative. Each local emulated media has three associated tick boxes: a Link tick box 807, a Read tick box 808 and a Write tick box 809. These three tick boxes have the same purpose as the tick boxes associated with the remote emulated slots. As shown in
The configuration specified by the GUI 800 is used by the management system to configure the respective local VTL 300 by generating an extended emulated target geometry comprising addressable storage elements 401 for the local VTL 300, which is stored in the respective map 307. A similar GUI would be provided for each remote VTL (or other storage device) that is attached to (or can be addressed by) the local VTL. As such, individual storage elements of remote storage devices can be selectively linked to the local VTL, in order to extend the emulated target geometry of the emulated library. In addition, selected storage elements of the local VTL can be linked to (that is, made available for access by) remote storage devices.
In principle, the second, optional aspect of the GUI 800 may in fact be the only configurable option of a VTL. For example, the remote VTL 310 in
The above embodiments are to be understood as illustrative examples only. Further embodiments of the invention are envisaged. For example, the local and remote emulated libraries can be housed within the same device and/or the same non-tape-based storage media. It will be understood that the disk storage 306 and 316 may be replaced or augmented by non-disk technologies and/or alternative non-sequential storage technologies (e.g. optical or solid state semiconductor based storage). According to the embodiments described herein, a local VTL is linked to a remote VTL. However a person skilled in the art will understand that the present invention can be adapted to interface with any suitable remote storage device, including (but not limited) to a conventional VTL or even a tape library. Moreover, embodiments of the present invention encompass arrangements with more than two storage devices being mutually linked such that a host device connected to a local VTL can seamlessly access storage elements stored on a plurality of remote storage devices. In such an arrangement, the plurality of devices may be connected in a known way, for example via an Ethernet network using an iSCSI protocol, to facilitate exchange of data between devices. Furthermore, according to other embodiments of the invention, storage elements on a local device can be duplicated to a remote device without any necessary change in process at the host originating without any necessary change in process at the originating host.
Thus, according to some embodiments, it is possible to share an emulated cartridge stored on a VTL such that it can effectively exist in one or more remote emulated libraries, and be accessed by multiple remote hosts that are attached to the remote emulated libraries. In alternative scenarios, it may be favoured to dedicate an emulated cartridge to use by only one host (which could be a local or a remote host), but permit multiple hosts to access different emulated cartridges. Looking at this in another way, a single host can be attached to a local VTL, according to an embodiment, and the VTL has flexibility to access emulated cartridges located in other VTLs, for example, in remote locations, whereby the apparent expansion capability of the VTL is, within theoretical bounds, limitless. This kind of solution presents a way to deal with short term storage requirement increases, which may arise until a local VTL has been upgraded with additional physical storage. In addition, or alternatively, such an arrangement can provide a way to balance storage requirements across an enterprise, which has multiple VTLs at different sites, but where each site has different and, perhaps, variable storage requirements. In this case, if the combined storage capacity of the VTLs is sufficient for the needs of the enterprise, but some sites consume more storage than others, it may be more cost-efficient to share remote emulated cartridges with those storage-hungry sites than to meet the actual capacity requirements thereof. A significant advantage of embodiments of the invention is the ability for a VTL to act as a slave device, by permitting access to its storage by another VTL, while, at the same time, remain active as a master (or primary) device to hosts that interact therewith. In any event, advantageously, embodiments of the invention provide significantly increased flexibility when optimising access to storage distributed across a plurality linked VTL devices.
It is to be understood that any feature described in relation to any one embodiment may be used alone, or in combination with other features described, and may also be used in combination with one or more features of any other of the embodiments, or any combination of any other of the embodiments. Furthermore, equivalents and modifications not described above may also be employed without departing from the scope of the invention, which is defined in the accompanying claims.
Claims
1. A virtual tape library apparatus providing a plurality of emulated tape storage elements, the apparatus comprising:
- local, non-tape based storage;
- a store storing a data structure which associates the emulated tape storage elements with the local or remote storage;
- a first interface to provide access to the local storage, in response to tape library commands identifying emulated tape storage elements associated with the local storage;
- a second interface to provide access to the remote storage, in response to tape library commands identifying emulated tape storage elements associated with the remote storage; and
- a command processor, which receives tape library commands relating to emulated storage elements, and generates respective commands for the remote storage in response to received library commands relating to the remote storage.
2. Apparatus according to claim 1, wherein the data structure includes associations between each emulated tape storage element and either a local tape storage element, data associated with which is stored on the local storage, or a remote tape storage element, data associated with which is stored on the remote storage.
3. Apparatus according to claim 2, wherein the command processor generates commands relating to remote storage elements when received library commands relate to the remote storage.
4. Apparatus according to claim 2, wherein the data structure includes associations between the data associated with local emulated tape storage elements and logical locations on the local storage.
5. Apparatus according to claim 3, comprising a file system module for associating logical locations of the local storage to physical locations of the local storage.
6. Apparatus according to claim 2, comprising a router to route commands associated with local tape storage elements, via the first interface, to the local storage and route commands associated with the remote tape storage elements, via the second interface, to the remote storage.
7. Apparatus according to claim 1, comprising an emulator to receive a tape library command relating to an emulated tape storage element, and associate the tape storage element, according to the data structure, with the respective local or remote storage.
8. Apparatus according to claim 7, wherein the emulator associates a tape library command, identifying the location of data in terms of emulated tape storage elements that are associated with the local storage, with the location of the data in terms of logical locations on the local storage.
9. Apparatus according to claim 1, wherein the local non-tape based storage comprises disk storage.
10. Apparatus according to claim 1, comprising a data structure to indicate which, if any, of the emulated tape storage elements that are associated with the local storage can be read from or written to by a remote storage device.
11. Apparatus according to claim 10, wherein the data structure includes lock data, which is set to prevent access to an emulated tape storage element if that element is already being accessed.
12. Apparatus according to claim 2, wherein the data structure is configurable to comprise more or fewer emulated tape storage elements for use by a host in dependence upon a number of remote emulated tape storage elements that are made accessible to the apparatus.
13. A virtual tape library apparatus providing a plurality of emulated tape storage elements, the apparatus comprising:
- local, non-tape based storage;
- a store storing a data structure which associates emulated tape storage elements with the local storage and indicates which, if any, of the emulated tape storage elements are readable from and/or writable to by a remote storage device;
- a first interface to provide access to the local storage in response to tape library commands received from a host and identifying emulated tape storage elements associated with the local storage; and
- a second interface to provide access by a remote storage device to emulated tape library elements that, according to the data structure, can be read from and/or written to by a remote storage device.
14. Apparatus according to claim 13, wherein the data structure includes lock data, which is set to prevent access to an emulated tape storage element if that element is already being accessed.
15. A storage system comprising local non-tape based storage means, means for mapping a plurality of emulated storage elements of the system to either the local storage means or a remote storage means, means for accessing the local or remote storage means according to the mapping for reading and writing data from and to the emulated storage elements.
Type: Application
Filed: Jan 9, 2009
Publication Date: Jul 15, 2010
Patent Grant number: 9323473
Inventors: ALASTAIR SLATER (Chepstow Monmouthshire), Simon Pelly (Bristol)
Application Number: 12/351,164
International Classification: G06F 12/00 (20060101); G06F 9/455 (20060101);