PARALLEL ACCESS VIRTUAL TAPE LIBRARY AND DRIVES
First Claim
1. A virtual tape library (VTL) system for storing data, wherein the VTL receives sequential access read commands and sequential access write commands from two or more client computers, and wherein the VTL reads data from or writes data to at least two non-sequential access data storage devices associated with the VTL, the system comprising:
- two or more non-sequential access data storage devices;
at least one data storage device driver coupled to communicate with the two or more non-sequential access data storage devices, wherein the at least one data storage device driver is configured to provide read commands and write commands to the two or more non-sequential access data storage devices;
a disk subsystem coupled to communicate with the at least one data storage device driver; and
,an interface coupled to receive sequential access read commands from the two or more client computers, and to receive sequential access write commands from the two or more client computers,wherein the interface is configured to pass to the disk subsystem a non-sequential access read command in response to a received sequential access read command from one of the client computers, even if a sequential data storage device identified by the received sequential access read command is currently occupied with a read or write operation, and even if a removable, sequential access, data storage medium identified in the received sequential access read command is currently being read from or written to by the VTL system,wherein the interface is also configured to pass to the disk subsystem a non-sequential access write command in response to a received sequential access write command from one of the client computers, even if a sequential data storage device identified by the received sequential access write command is currently occupied with a read or write operation, and even if a removable, sequential access, data storage medium identified in the received sequential access write command is currently being read from or written to by the VTL system,wherein the disk subsystem is further configured to provide to the at least one data storage device driver a read command in response to the non-sequential access read command received from the interface, and wherein the disk subsystem is also configured to provide to the at least one data storage device driver a write command in response to the non-sequential access write command received from the interface, andwherein the interface is configured to store and manage a data structure, wherein the data structure tracksreceived sequential access read commands from the two or more client computers,received sequential access write commands from the two or more client computers,non-sequential access read commands passed to the disk subsystem, andnon-sequential access write commands passed to the disk subsystem.
4 Assignments
0 Petitions
Accused Products
Abstract
A system and method described herein allows a virtual tape library (VTL) to perform multiple simultaneous or parallel read/write or access sessions with disk drives or other storage media, particularly when subject to a sequential SCSI-compliant layer or traditional limitations of VTLs. In one embodiment, a virtualizing or transaction layer can establish multiple sessions with one or more clients to concurrently satisfy the read/write requests of those clients for physical storage resources. A table or other data structure tracks or maps the sessions associated with each client and the location of data on the physical storage devices.
-
Citations
23 Claims
-
1. A virtual tape library (VTL) system for storing data, wherein the VTL receives sequential access read commands and sequential access write commands from two or more client computers, and wherein the VTL reads data from or writes data to at least two non-sequential access data storage devices associated with the VTL, the system comprising:
-
two or more non-sequential access data storage devices; at least one data storage device driver coupled to communicate with the two or more non-sequential access data storage devices, wherein the at least one data storage device driver is configured to provide read commands and write commands to the two or more non-sequential access data storage devices; a disk subsystem coupled to communicate with the at least one data storage device driver; and
,an interface coupled to receive sequential access read commands from the two or more client computers, and to receive sequential access write commands from the two or more client computers, wherein the interface is configured to pass to the disk subsystem a non-sequential access read command in response to a received sequential access read command from one of the client computers, even if a sequential data storage device identified by the received sequential access read command is currently occupied with a read or write operation, and even if a removable, sequential access, data storage medium identified in the received sequential access read command is currently being read from or written to by the VTL system, wherein the interface is also configured to pass to the disk subsystem a non-sequential access write command in response to a received sequential access write command from one of the client computers, even if a sequential data storage device identified by the received sequential access write command is currently occupied with a read or write operation, and even if a removable, sequential access, data storage medium identified in the received sequential access write command is currently being read from or written to by the VTL system, wherein the disk subsystem is further configured to provide to the at least one data storage device driver a read command in response to the non-sequential access read command received from the interface, and wherein the disk subsystem is also configured to provide to the at least one data storage device driver a write command in response to the non-sequential access write command received from the interface, and wherein the interface is configured to store and manage a data structure, wherein the data structure tracks received sequential access read commands from the two or more client computers, received sequential access write commands from the two or more client computers, non-sequential access read commands passed to the disk subsystem, and non-sequential access write commands passed to the disk subsystem. - View Dependent Claims (2, 3, 4)
-
-
5. A computer-implementable method of processing commands for a virtual tape library (VTL), wherein the VTL receives sequential access read commands and sequential access write commands from two or more host computers, and wherein the VTL reads data from or writes data to at least two random access data storage devices within the VTL, the method comprising:
-
intercepting sequential access read commands and sequential access write commands from the two or more host computers, wherein the sequential access read commands and the sequential access write commands from the two or more host computers are commands to read data from or write data to sequential data storage media, wherein each sequential access read command and each sequential access write command includes associated parameters, and wherein the associated parameters specify a particular sequential access data storage drive and a piece of removable, sequential access, data storage media; in response to each intercepted sequential access read command and each intercepted sequential access write command from the two or more host computers, returning a session identifier to each host computer, wherein if the same piece of removable, sequential access, data storage media is requested by two different host computers, then a different session handle is provided to each of the two different host computers, and wherein if the same sequential access data storage drive is requested by two different host computers, then a different session handle is provided to each of the two different host computers; tracking, via a data structure, the session identifiers, the parameters, the at least two random access data storage devices within the VTL, and each intercepted sequential access read command and each intercepted sequential access write command from the two or more host computers; in response to each intercepted sequential access read command and each intercepted sequential access write command from the two or more host computers, performing read or write commands with respect to the at least two random access data storage devices within the VTL; determining whether any of the intercepted sequential access read commands or the intercepted sequential access write commands have been completed; and
,if any one of the intercepted sequential access read commands or intercepted sequential access write commands has been completed, then releasing a session associated with a completed sequential access read command or a completed sequential access write command. - View Dependent Claims (6, 7, 8, 9)
-
-
10. A tangible computer-readable medium containing code, which when executed by a computer causes a virtual tape library (VTL) to perform a method to permit parallel access to two or more drives associated with the VTL, the method comprising:
-
intercepting sequential access read commands and sequential access write commands from two or more host computers, wherein the sequential access read commands and the sequential access write commands from the two or more host computers are commands to read data from or write data to sequential data storage media, wherein each sequential access read command and each sequential access write command includes associated parameters, and wherein the associated parameters specify a particular sequential access data storage drive and a piece of removable, sequential access, data storage media; in response to each intercepted sequential access read command and each intercepted sequential access write command from the two or more host computers, returning a session identifier to each host computer, wherein if the same piece of removable, sequential access, data storage media is requested by two different host computers, then providing a different session handle to each of the two different host computers, and wherein if the same sequential access data storage drive is requested by two different host computers, then providing a different session handle to each of the two different host computers. - View Dependent Claims (11)
-
-
12. In a virtual tape library (VTL) system for storing data, wherein the VTL receives sequential access read commands and sequential access write commands from at least first and second client computers, and wherein the VTL reads data from or writes data to at least one random access data storage device associated with the VTL, a system comprising:
-
a transaction layer coupled to receive sequential access read commands and sequential access write commands from the at least first and second client computers, wherein the transaction layer is configured to establish a first read/write session with the first client computer, and a second read/write session with the second client computer, wherein the first and second read/write sessions are substantially concurrently implemented, and wherein the first and second read/write sessions satisfy read/write requests for the at least one random access data storage device associated with the VTL. - View Dependent Claims (13)
-
-
14. A system of processing commands with respect to a virtual tape library (VTL), wherein the VTL receives sequential access read commands and sequential access write commands from two or more host computers, and wherein the VTL reads data from or writes data to at least one random access data storage device within the VTL, the system comprising:
-
means for receiving sequential access read commands and sequential access write commands, wherein the sequential access read commands and the sequential access write commands are commands to read data from or write data to sequential data storage media, wherein each sequential access read command and each sequential access write command includes associated parameters, and wherein the associated parameters specify a particular sequential access data storage drive and a piece of removable, sequential access, data storage media; means for performing read commands and write commands with respect to the at least one random access data storage device within the VTL, wherein the means for performing read command and write commands is configured to permit substantially concurrent reads of the at least one random access data storage device within the VTL, to permit substantially concurrent writes to the at least one random access data storage device within the VTL, and to permit substantially concurrent reads of and writes to the at least one random access data storage device within the VTL. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. A data storage apparatus, wherein the data storage apparatus is coupled to a network and receives sequential access read commands and sequential access write commands from at least first and second client computers, the apparatus comprising:
-
at least one random access data storage device; a file system for tracking locations of data on the at least one random access data storage device, wherein the file system is configured to receive the sequential access read commands and sequential access write commands from the at least first and second client computers; a data storage subsystem configured to receive commands from the file system and in response thereto, to read data from or write data to the at least one random access data storage device; and
,a single enclosure for carrying the at least one random access data storage device, the file system for tracking locations of data on the at least one random access data storage device, and the data storage subsystem; wherein the file system is configured to establish a first read/write session with the first client computer, and a second read/write session with the second client computer, and wherein the least one random access data storage device and the data storage subsystem are configured to perform substantially concurrent read/write operations in response to the established first and second read/write sessions. - View Dependent Claims (21)
-
-
22. A method or accessing data on a virtual tape library, the method comprising:
-
obtaining and storing multiple snapshots of the virtual tape library, wherein each of the multiple snapshots represent virtual tape, and wherein the multiple snapshots are taken sequentially over a period of time and are associated with a point in time at which a snapshot was taken; maintaining a list of the multiple snapshots; presenting a user interface with the list of the multiple snapshots; receiving a user selection of one of the multiple snapshots associated with a selected point in time; identify data blocks associated with the selected snapshot from the virtual tape library; and
,presenting, to the user, data from the virtual tape library, wherein the data reflects a state of the virtual tape library at the selected point in time. - View Dependent Claims (23)
-
Specification