IP Library Granted Patent US 7,505,980
Granted Patent B2
US 7,505,980 · App. 10/704,265 · Granted Mar 17, 2009

System and method for controlling access to multiple physical media libraries

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 7,505,980
App. No.
10/704,265
Granted
Mar 17, 2009
Kind
B2
Abstract

Embodiments of the present invention provide a media library controller that can communicate with multiple physical libraries that are physically separate from each other (i.e., that cannot pass media back and forth). The media library controller can maintain a virtualized aggregate media library representing the physical media libraries with which it is in communication. From the physical media libraries, the media library controller can establish a virtual media library and associate a host with the virtual media library. The virtual media library can represent the portions of a physical media library to which the host is allowed access.

Claims (69)

1. A controller for aggregating multiple physically separate media libraries, said controller comprising:

a computer processor;

a computer memory electronically connected to the computer processor, the computer memory storing a set of computer instructions executable by the computer processor to:

maintain a virtualized aggregate media library representing a plurality of physical media libraries including a first physical media library and a second physical media library, wherein a physical media library comprises computer-readable media and one or more drives for performing operations on said computer-readable media;

communicate with at least the first physical media library and the second physical media library, wherein said first physical media library and said second physical media library are physically separate;

associate a first virtual media library with a first host, wherein the first virtual media library represents a first portion of the first physical media library to which the first host has access wherein the first portion of the first physical media library comprises at least two non-contiguous slots;

associate a second virtual media library with a second host, wherein the second virtual library represents a second portion of the first physical media library to which the second host has access wherein the first virtual media library and the second virtual media library are non-overlapping;

store the associations between the first host and the second host and the first virtual media library and the second virtual media library, wherein the associations control access to the first portion of the first physical library represented by said first virtual media library and to the second portion of the first physical library represented by the second virtual media library, wherein the first host is allowed access to the first virtual media library and is not allowed access to the second virtual media library and wherein the second host is allowed access to the second virtual media library and is not allowed access to the first virtual media library; and

present said first virtual media library to at least one of said first and second hosts.

2. The controller of claim 1 , wherein the computer instructions are further executable to:

determine if a received command from a first host is directed to a portion of the first physical media library with which the first host is associated through the first virtual media library;

if the received command is directed to a portion of the first physical media library with which the first host is associated through the first virtual media library, forward the received command to the first physical media library;

if the received command is not directed to a portion of the first physical media library with which the first host is associated through the first virtual media library, reject the received command.

3. The controller of claim 1 , wherein the computer instructions are further executable to:

receive a command from a host to perform a data operation corresponding to the first virtual media library:

map the command to the first physical media library; and

forward the command to the first physical media library.

4. The controller of claim 1 , wherein the computer instructions are executable to present the first virtual media library by presenting a virtual drive, a virtual robot and a plurality of virtual slots to the one or more hosts.

5. The controller of claim 1 , wherein the computer instructions are further executable to associate a plurality of virtual media libraries to a plurality of hosts, wherein each virtual media library corresponds to one physical media library.

6. The controller of claim 5 , wherein each virtual media library comprises a pool of slots corresponding to physical slots.

7. The controller of claim 6 , wherein the plurality of virtual media libraries comprise non-overlapping pools.

8. The controller of claim 1 , wherein the computer instructions are further executable to present a single virtual media library to multiple hosts.

9. The controller of claim 1 , wherein said computer instructions are further executable to map the first physical media library and the second physical media library to the virtualized aggregate media library.

10. A system for providing access to multiple physically separate media libraries comprising computer instructions stored on a computer readable memory, executable to:

maintain a virtualized aggregate media library representing a plurality of physical media libraries including a first physical media library and a second physical media library, wherein a physical media library comprises computer-readable media and one or more drives for performing operations on said computer-readable media;

communicate with at least the first physical media library and the second physical media library, wherein said first physical media library and said second physical media library are physically separate;

associate a first virtual media library with a first host, wherein the first virtual media library represents a first portion of the first physical media library to which the first host has access wherein the first portion of the first physical media library comprises at least two non-contiguous slots;

associate a second virtual media library with a second host, wherein the second virtual library represents a second portion of the first physical media library to which the second host has access wherein the first virtual media library and the second virtual media library are non-overlapping;

store the associations between the first host and the second host and the first virtual media library and the second virtual media library, wherein the associations control access to the first portion of the first physical library represented by said first virtual media library and to the second portion of the first physical library represented by the second virtual media library, wherein the first host is allowed access to the first virtual media library and is not allowed access to the second virtual media library and wherein the second host is allowed access to the second virtual media library and is not allowed access to the first virtual media library; and

present said first virtual media library to at least one of said first and second hosts.

11. The system of claim 10 , wherein the computer instructions are further executable to:

determine if a received command from a first host is directed to a portion of the first physical media library with which the first host is associated through the first virtual media library;

if the received command is directed to a portion of the first physical media library with which the first host is associated through the first virtual media library, forward the received command to the first physical media library;

if the received command is not directed to a portion of the first physical media library with which the first host is associated through the first virtual media library, reject the received command.

12. The system of claim 10 , wherein the computer instructions are further executable to:

receive a command from a host to perform a data operation corresponding to the first virtual media library;

map the command to the first physical media library; and

forward the command to the first physical media library.

13. The system of claim 10 , wherein the computer instructions are executable to present the first virtual media library by presenting a virtual drive, a virtual robot and a plurality of virtual slots to the one or more hosts.

14. The system of claim 10 , wherein the computer instructions are further executable to associate a plurality of virtual media libraries to a plurality of hosts, wherein each virtual media library corresponds to a portion of one physical media library.

15. The system of claim 14 , wherein each virtual media library includes a pool of slots corresponding to physical slots.

16. The system of claim 15 , wherein the plurality of virtual media libraries comprise non-overlapping pools.

17. The system of claim 10 , wherein the computer instructions are further executable to map present a single virtual media library to multiple hosts.

18. The system of claim 10 , wherein said computer instructions are further executable to map the first physical media library and the second physical media library to a the virtualized aggregate media library.

19. A method of aggregating multiple media libraries comprising:

maintaining a virtualized aggregate media library representing a plurality of physical media libraries wherein said physical media libraries are physically separate and wherein each physical media library of the plurality of physical media libraries comprises computer-readable media and one or more drives for performing operations on said computer-readable media;

communicating with the plurality of physically separate media libraries;

associating a first virtual media library with a first host, wherein the first virtual media library represents a first portion of a physical media library to which the first host has access and wherein the association of the first virtual media library with the first host controls access to the first portion of the physical library represented by said first virtual media library wherein the first portion of the physical media library comprises at least two non-contiguous slots;

associating a second virtual media library with a second host, wherein the second virtual media library represents a second portion of the physical media library to which the second host has access, wherein the first portion of the physical media library and the second portion of the physical media library are non-overlapping, wherein the association of the second virtual media library with the second host controls access to the second portion of the physical library represented by said second virtual media library wherein the second portion of the physical media library comprises at least two non-contiguous slots, the first host is allowed access to the first virtual media library and is not allowed access to the second virtual media library, and the second host is allowed access to the second virtual media library and is not allowed access to the first virtual media library;

presenting at least one of said first and second virtual media libraries to at least one of said first and second hosts;

receiving a data operation command from the first host;

determining whether the received command is directed to the first portion of the physical media library represented by the first virtual media library with which the first host is associated;

if the command is directed to the first portion of the physical media library which is accessible by the first host, forwarding the received command to the physical media library accessible by the first host; and

if the command is directed to the second portion of the physical media library, rejecting the command.

20. The method of claim 19 , wherein associating a virtual media library with a host further comprises associating the host with at least one drive, at least one robot and a pool of slots at a single physical media library.

21. The method of claim 20 , wherein said pool of slots is non overlapping.

22. The method of claim 21 , further comprising presenting the first virtual media library to the hosts as a virtual drive, a virtual robot and pool of virtual slots.

23. The method of claim 22 , further comprising mapping said first virtual drive to a physical drive, mapping said virtual robot to a physical robot and mapping said virtual slots to physical slots.

24. A controller for aggregating multiple physically separate media libraries, said controller comprising:

a computer processor;

a computer memory electronically connected to the computer processor, the computer memory storing a set of computer instructions executable by the computer processor to:

maintain a mapping between physical drives, robots and slots at the physically separate media libraries to virtual drives, robots and slots;

associate a first host with a first virtual media library, wherein the first virtual media library represents a first portion of the first physical media library and wherein the association of the first virtual media library with the first host controls access to the first portion of the first physical library represented by said first virtual media library wherein the first portion of the first physical media library comprises at least two non-contiguous slots;

associate a second host with a second virtual media library, wherein the second virtual media library represents a second portion of the first physical media library, the association of the second virtual media library with the second host controls access to the a second portion of the first physical library represented by said second virtual media library, wherein the second portion of the first physical media library comprises at least two non-contiguous slots, the first host is allowed access to the first virtual media library and is not allowed access to the second virtual media library and the second host is allowed access to the second virtual media library and is not allowed access to the first virtual media library;

present the first virtual media library comprising one or more of the virtual drives, one or more of the virtual robots and one or more of the virtual slots to the first host;

receive a command from the first host based on the first virtual media library; and

transform the command according to the mapping for forwarding to the appropriate physical media library.

25. The controller of claim 24 , wherein the first virtual media library comprises a first pool of virtual slots that maps to a first set of physical slots for storing tape cartridges at a first physical media library and the second virtual media library comprises a second pool of virtual slots that map to a second set of physical slots for storing tape cartridges at the first physical media library, wherein the first set of physical slots and the second set of physical slots do not overlap.

26. The controller of claim 24 , wherein the set of computer instructions are further executable to present the second virtual media library to the second host and not to the first host and to not present the first virtual media library to the second host.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2014
From: FORTRESS CREDIT CO LLC
To: CF DB EZ LLC
Reel/Frame 033706/0340 →
SECURITY AGREEMENT Recorded Aug 1, 2013
From: CROSSROADS SYSTEMS, INC.
To: FORTRESS CREDIT CO LLC
Reel/Frame 030935/0910 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2013
From: CROSSROADS SYSTEMS, INC.
To: KIP CR P1 LP
Reel/Frame 030935/0916 →
SECURITY AGREEMENT Recorded Aug 1, 2013
From: KIP CR P1 LP
To: FORTRESS CREDIT CO LLC
Reel/Frame 030935/0937 →