IP Library Granted Patent US 7,886,115
Granted Patent B2
US 7,886,115 · App. 11/777,850 · Granted Feb 8, 2011

Techniques for implementing virtual storage devices

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,886,115
App. No.
11/777,850
Granted
Feb 8, 2011
Kind
B2
Abstract

Some embodiments include a storage device with a storage medium having a memory capacity. The storage device also includes virtual storage device firmware that is configured to directly respond to commands from a guest operating system in a virtual machine for accesses to a subset of the memory capacity of the storage medium when a virtual storage device is enabled.

Claims (33)

1. A storage device comprising:

a storage medium having a memory capacity; and

virtual storage device firmware configured to directly respond to commands from a first guest operating system in a virtual machine for accesses to a first subset of the memory capacity of the storage medium when a first virtual storage device is enabled, wherein the first virtual storage device comprises the first subset of the memory capacity of the storage medium, and wherein data stored in the first subset of the memory capacity of the storage medium is read-only when the first virtual storage device is disabled.

2. The storage device defined in claim 1 wherein the commands from the first guest operating system comprise commands to read data from the first subset of the memory capacity and commands to write data to the first subset of the memory capacity.

3. The storage device defined in claim 1 wherein the storage device is a hard disk drive and the first virtual storage device is a first virtual hard disk drive.

4. The storage device defined in claim 1 wherein the virtual storage device firmware is configured to directly respond to commands from the first guest operating system without intervention by a virtual machine monitor.

5. The storage device defined in claim 1 wherein control of the storage device returns to a virtual machine monitor when the first virtual storage device is disabled.

6. The storage device defined in claim 5 wherein the virtual machine monitor assigns the first virtual storage device more memory capacity in the storage device in response to a request from the virtual machine.

7. The storage device defined in claim 3 wherein the hard disk drive is configured to enable the first virtual hard disk drive and a second virtual hard disk drive concurrently, wherein the second virtual hard disk drive is assigned to a second guest operating system.

8. A storage device comprising:

a storage medium having a memory capacity; and

virtual storage device firmware configured to directly respond to commands from a first guest operating system in a virtual machine for accesses to a first subset of the memory capacity of the storage medium when a first virtual storage device is enabled, wherein the first virtual storage device comprises the first subset of the memory capacity of the storage medium, wherein the virtual storage device firmware is configured to directly respond to commands from a second guest operating system in the virtual machine for accesses to a second subset of the memory capacity of the storage medium when a second virtual storage device is enabled, wherein the second virtual storage device comprises the second subset of the memory capacity of the storage medium.

9. A computer system comprising:

a storage device having memory capacity;

code for assigning a first subset of the memory capacity of the storage device to a first virtual storage device; and

code for responding to commands from a first guest operating system in a virtual machine for accesses to the first subset of the memory capacity of the storage device without intervention by a virtual machine monitor when the first virtual storage device is enabled, wherein the code for assigning and the code for responding are stored on a computer readable medium, and wherein data stored in the first subset of the memory capacity of the storage device is read-only when the first virtual storage device is disabled.

10. The computer system defined in claim 9 wherein the code for assigning a first subset of the memory capacity of the storage device to a first virtual storage device further comprises code for assigning a second subset of the memory capacity of the storage device to a second virtual storage device, and

wherein the code for responding to commands from a first guest operating system in a virtual machine for accesses to the first subset of the memory capacity of the storage device without intervention by a virtual machine monitor when the first virtual storage device is enabled further comprises code for responding to commands from a second guest operating system in the virtual machine for accesses to the second subset of the memory capacity of the storage device without intervention by the virtual machine monitor when the second virtual storage device is enabled.

11. The computer system defined in claim 9 wherein the commands from the first guest operating system comprise commands to read data from the first subset of the memory capacity and commands to write data to the first subset of the memory capacity.

12. The computer system defined in claim 9 wherein the storage device is a hard disk drive and the first virtual storage device is a virtual hard disk drive.

13. The computer system defined in claim 12 further comprising:

code for a host operating system to access the hard disk drive through a dedicated interface when the virtual hard disk drive is enabled, wherein the code for a host operating system to access the hard disk drive is stored on the computer readable medium.

14. The computer system defined in claim 9 further comprising:

code for returning control of the storage device to the virtual machine monitor when the first virtual storage device is disabled, wherein the code for returning control of the storage device to the virtual machine monitor is stored on the computer readable medium.

15. A method for providing a virtual storage device, the method comprising:

providing a storage device having a memory capacity;

assigning a first subset of the memory capacity of the storage device to a first virtual storage device; and

responding to commands from a first guest operating system in a virtual machine for accesses to the first subset of the memory capacity of the storage device without intervention by a virtual machine monitor when the first virtual storage device is enabled, and wherein data stored in the first subset of the memory capacity of the storage device is read-only when the first virtual storage device is disabled.

16. The method in claim 15 further comprising:

assigning a second subset of the memory capacity of the storage device to a second virtual storage device; and

responding to commands from a second guest operating system in the virtual machine for accesses to the second subset of the memory capacity of the storage device without intervention by the virtual machine monitor when the second virtual storage device is enabled.

17. The method defined in claim 15 wherein the storage device is a hard disk drive and the first virtual storage device is a virtual hard disk drive.

18. The method defined in claim 15 wherein the commands from the first guest operating system comprise commands to read data from the first subset of the memory capacity and commands to write data to the first subset of the memory capacity.

Assignments (12)
SECURITY AGREEMENT (SUPPLEMENTAL) Recorded Nov 14, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 069411/0208 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2024
From: SANDISK TECHNOLOGIES, INC.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 069168/0273 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2016
From: HGST NETHERLANDS B.V.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 040821/0550 →
CHANGE OF NAME Recorded Oct 25, 2012
From: HITACHI GLOBAL STORAGE TECHNOLOGIES NETHERLANDS B.V.
To: HGST NETHERLANDS B.V.
Reel/Frame 029341/0777 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 13, 2007
From: SANVIDO, MARCO; KULKARNI, ANAND KRISHNAMURTHI
To: HITACHI GLOBAL STORAGE TECHNOLOGIES NETHERLANDS, B.V.
Reel/Frame 019557/0607 →