IP Library Granted Patent US 8,706,976
Granted Patent B2
US 8,706,976 · App. 12/202,916 · Granted Apr 22, 2014

Parallel access virtual tape library and drives

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,706,976
App. No.
12/202,916
Granted
Apr 22, 2014
Kind
B2
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.

Claims (35)

1. A computer-implementable method of processing commands for a virtual tape library (VTL), wherein the VTL receives 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 write commands from the 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 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 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 write command from the two or more host computers;

in response to each intercepted 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;

determining whether any of the intercepted sequential access write commands have been completed;

if any one of the intercepted sequential access write commands has been completed, then releasing a session associated with a completed sequential access write command; 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.

2. The computer-implementable method of claim 1 , further comprising:

in response to intercepted sequential access write commands, assigning one or more threads to manage different write requests from the same host computer.

3. The computer-implementable method of claim 1 , further comprising:

performing at least one additional data storage operation on data to be written to the at least two random access data storage devices within the VTL, wherein the additional data storage operation is single instancing, classifying data, load balancing, or generating snapshots.

4. The computer-implementable method of claim 1 , further comprising:

generating multiple snapshots of the at least two random access data storage devices within the VTL, 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.

5. A non-transitory 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 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 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 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;

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 write command from the two or more host computers;

in response to each intercepted 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;

determining whether any of the intercepted sequential access write commands have been completed;

if any one of the intercepted sequential access write commands has been completed, then releasing a session associated with a completed sequential access write command; 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.

6. The computer-readable medium of claim 5 , wherein the method further comprises:

in response to intercepted sequential access write commands, assigning one or more threads to manage different write requests from the same host computer.

7. The computer-readable medium of claim 5 , wherein the method further comprises:

performing at least one additional data storage operation on data to be written to the at least two random access data storage devices within the VTL, wherein the additional data storage operation is single instancing, classifying data, load balancing, or generating snapshots.

Assignments (5)
SUPPLEMENTAL CONFIRMATORY GRANT OF SECURITY INTEREST IN UNITED STATES PATENTS Recorded Apr 16, 2025
From: COMMVAULT SYSTEMS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 070864/0344 →
SECURITY INTEREST Recorded Dec 13, 2021
From: COMMVAULT SYSTEMS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 058496/0836 →
RELEASE OF SECURITY INTEREST Recorded Jan 6, 2021
From: BANK OF AMERICA, N.A.
To: COMMVAULT SYSTEMS, INC.
Reel/Frame 054913/0905 →
SECURITY INTEREST Recorded Jul 2, 2014
From: COMMVAULT SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 033266/0678 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 23, 2008
From: KOTTOMTHARAYIL, RAJIV; VIJAYAN RETNAMMA, MANOJ K.; MULLER, MARCUS S.
To: COMMVAULT SYSTEMS, INC.
Reel/Frame 021728/0135 →