IP Library › Granted Patent US 8,661,436
Granted Patent B2
US 8,661,436 · App. 12/967,362 · Granted Feb 25, 2014

Dynamically controlling virtual machine access to optical disc drive by selective locking to a transacting virtual machine determined from a transaction stream of the drive

Inventors: James McKenzie (Cambridge, GB); Jean Guyader (Cambridge, GB)
Assignee: Citrix Systems, Inc.
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,661,436
App. No.
12/967,362
Granted
Feb 25, 2014
Kind
B2
Abstract

The methods and systems described herein provide for granting a virtual machine exclusive access to an optical disc drive responsive to a determination the virtual machine initiated a transaction with the optical disc drive. A drive manager maps an optical disc drive connected to the computing device to a plurality of virtual machines hosted by a hypervisor executed by the computing device. The drive manager intercepts a transaction stream generated by the optical disc drive and converts the transaction stream to a command stream. The drive manager determines, based on an analysis of the command stream, a first virtual machine of the plurality of virtual machines initiated a transaction with the optical disc drive. Responsive to the determination, the drive manager locks the optical disc drive to grant the first virtual machine exclusive access to the optical disc drive.

Claims (43)

1. In a computing device executing a hypervisor hosting a plurality of virtual machines, a method for granting by a drive manager a virtual machine exclusive access to an optical disc drive responsive to a determination the virtual machine initiated a transaction with the optical disc drive, the drive manager hosted outside of the virtual machine, comprising:

mapping, by a drive manager executed by a processor of a computing device, an optical disc drive connected to the computing device to a plurality of virtual machines hosted by a hypervisor executed by the computing device, to allow the plurality of virtual machines to initiate transactions with the optical disc drive;

intercepting, by the drive manager, a transaction stream generated by the optical disc drive comprising machine commands of the optical disc drive;

converting, by the drive manager, the transaction stream to a command stream that can be processed by an operating system;

determining, by the drive manager based on an analysis of the command stream, a first virtual machine of the plurality of virtual machines initiated a transaction with the optical disc drive;

locking, by the drive manager responsive to the determination, the optical disc drive from one or more additional transactions initiated from the plurality of virtual machines, to grant the first virtual machine exclusive access to the optical disc drive during the transaction with the first virtual machine;

determining, by the drive manager subsequent to locking the optical disc drive, the first virtual machine stopped transacting with the optical disc drive; and

unlocking, by the drive manager, the optical disc drive.

2. The method of claim 1 , further comprising:

determining, by the drive manager, a second virtual machine of the plurality of virtual machines initiated a transaction with the optical disc drive; and

locking, by the drive manager, the optical disc drive to grant the second virtual machine exclusive access to the optical disc drive.

3. The method of claim 1 , wherein mapping the optical disc drive to a plurality of virtual machines comprises updating each of the plurality of virtual machines' virtualized views of available physical resources to simultaneously include the optical disc drive.

4. The method of claim 1 , wherein locking the optical disc drive further comprises preventing, while the first virtual machine accesses the optical disc drive, a second virtual machine of the plurality of virtual machines from transacting with the optical disc drive.

5. The method of claim 1 , wherein intercepting a transaction stream further comprises intercepting a transaction stream comprising small computer system interface (SCSI) commands.

6. The method of claim 1 , wherein determining the first virtual machine initiated a transaction further comprises determining the first virtual machine began writing to a disc in the optical disc drive.

7. The method of claim 1 , wherein determining the first virtual machine initiated a transaction further comprises determining the virtual machine began reading from a disc in the optical disc drive.

8. The method of claim 1 , further comprising:

intercepting, by the drive manager, a request for access to the optical disc drive generated by a second virtual machine of the plurality of virtual machines; and

queuing the request, by the drive manager, while the optical disc drive is locked.

9. The method of claim 1 , further comprising:

intercepting, by the drive manager, a command generated by the first virtual machine and transmitted to the optical disc drive;

determining, by the drive manager and responsive to a permission policy applied to credentials of the first virtual machine, that the first virtual machine lacks permission to issue the command to the optical disc drive; and

preventing, by the drive manager, the optical disc drive from receiving the command.

10. In a computing device executing a hypervisor hosting a plurality of virtual machines, a system for granting by a drive manager a virtual machine exclusive access to an optical disc drive responsive to a determination the virtual machine initiated a transaction with the optical disc drive, the drive manager hosted outside of the virtual machine, comprising:

an optical disc drive;

a computing device, connected to the optical disc drive, comprising a processor executing a drive manager and a hypervisor hosting a plurality of virtual machines; and

wherein the drive manager is configured to:

map the optical disc drive to the plurality of virtual machines, to allow the plurality of virtual machines to initiate transactions with the optical disc drive,

intercept a transaction stream generated by the optical disc drive comprising machine commands of the optical disc drive,

convert the transaction stream to a command stream that can be processed by an operating system,

determine, based on an analysis of the command stream, a first virtual machine of the plurality of virtual machines initiated a transaction with the optical disc drive, and

lock, responsive to the determination, the optical disc drive from one or more additional transactions initiated from the plurality of virtual machines, to grant the first virtual machine exclusive access to the optical disc drive during the transaction with the first virtual machine, wherein the drive manager determines, subsequent to locking the optical disc drive, that the first virtual machine stopped transacting with the optical disc drive, and unlocks the optical disc drive.

11. The system of claim 10 , wherein the drive manager is further configured to determine a second virtual machine of the plurality of virtual machines initiated a transaction with the optical disc drive; and lock the optical disc drive to grant the second virtual machine exclusive access to the optical disc drive.

12. The system of claim 10 , wherein the drive manager is further configured to update each of the plurality of virtual machines' virtualized views of available physical resources to simultaneously include the optical disc drive.

13. The system of claim 10 , wherein the drive manager is further configured to prevent, while the first virtual machine accesses the optical disc drive, a second virtual machine of the plurality of virtual machines from transacting with the optical disc drive.

14. The system of claim 10 , wherein the drive manager is further configured to intercept a transaction stream comprising small computer system interface (SCSI) commands.

15. The system of claim 10 , wherein the drive manager is further configured to determine the first virtual machine began writing to a disc in the optical disc drive.

16. The system of claim 10 , wherein the drive manager is further configured to determine the virtual machine began reading from a disc in the optical disc drive.

17. The system of claim 10 , wherein the drive manager is further configured to intercept a request for access to the optical disc drive generated by a second virtual machine of the plurality of virtual machines; and queue the request while the optical disc drive is locked.

18. The system of claim 10 , wherein the drive manager is further configured to:

intercept a command generated by the first virtual machine and transmitted to the optical disc drive;

determine, responsive to a permission policy applied to credentials of the first virtual machine, that the first virtual machine lacks permission to issue the command to the optical disc drive; and

prevent the optical disc drive from receiving the command.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 23, 2011
From: MCKENZIE, JAMES; GUYADER, JEAN
To: CITRIX SYSTEMS, INC.
Reel/Frame 026006/0410 →
Continuity (8)
Provisional Application 61286263 · Dec 14, 2009
Provisional Application 61286266 · Dec 14, 2009
Provisional Application 61286215 · Dec 14, 2009
Provisional Application 61286216 · Dec 14, 2009
Provisional Application 61286218 · Dec 14, 2009
Provisional Application 61286636 · Dec 15, 2009
Provisional Application 61286619 · Dec 15, 2009
Related Publication 20110145819A1 · Jun 16, 2011