Parallel access virtual tape library and drives
First Claim
Patent Images
1. A virtual tape library (VTL) system for storing data, the system comprising:
- at least one data storage device driver to communicate with 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 to communicate with the at least one data storage device driver; and
,an interface to receive sequential access read commands from 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 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,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,wherein 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;
wherein the interface is further configured to;
generate multiple snapshots of the data structure, wherein each of the multiple snapshots is generated at a different time; and
provide a user interface for displaying and permitting user access to data associated with each of the multiple snapshots.
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
16 Claims
-
1. A virtual tape library (VTL) system for storing data, the system comprising:
-
at least one data storage device driver to communicate with 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 to communicate with the at least one data storage device driver; and
,an interface to receive sequential access read commands from 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 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, 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, 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; wherein the interface is further configured to; generate multiple snapshots of the data structure, wherein each of the multiple snapshots is generated at a different time; and provide a user interface for displaying and permitting user access to data associated with each of the multiple snapshots. - View Dependent Claims (2, 3, 4)
-
-
5. At least one non-transitory computer-readable memory carrying instructions, which when executed by at least one data processor, provides commands for a virtual tape library (VTL), comprising:
-
receiving sequential access write commands from two or more host computers, wherein the sequential access write commands from the two or more host computers are commands to write data to sequential data storage media, wherein the VTL reads data from, or writes data to, at least two random access data storage devices within the VTL, wherein 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 received 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 identifier 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 identifier 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 received sequential access write command from the two or more host computers; in response to each received sequential access write command from the two or more host computers, performing write commands with respect to the at least two random access data storage devices within the VTL; releasing a corresponding session associated with a completed sequential access write command after any one of the received sequential access write commands has been completed; causing multiple snapshots of the data structure to be created, wherein each of the multiple snapshots is to be created at a different time; and providing a user interface for displaying and permitting user access to data associated with each of the multiple snapshots. - View Dependent Claims (6, 7, 8)
-
-
9. A computer-implementable method, comprising:
-
intercepting sequential access write commands from two or more host computers, wherein the sequential access write commands from the two or more host computers are commands to write data to sequential data storage media, and wherein each sequential access write command includes associated parameters; in response to each received 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 identifier 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 identifier to each of the two different host computers; in response to each received sequential access write command from the two or more host computers, causing write commands to be performed with respect to the at least two random access data storage devices within a virtual tape library (VTL); releasing a session associated with a completed sequential access write command after any one of the received sequential access write commands has been completed; and generating multiple snapshots of the data structure, wherein each of the multiple snapshots is generated at a different time; and providing a user interface for displaying and permitting user access to data associated with each of the multiple snapshots. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
Specification