IP Library Granted Patent US 9,195,585
Granted Patent B2
US 9,195,585 · App. 13/748,247 · Granted Nov 24, 2015

Techniques for allocating and surfacing host-side storage capacity to virtual machines

Inventors: Thomas A. Phelan (San Francisco, CA); Mayank Rawat (Sunnyvale, CA); Kiran Madnani (Santa Clara, CA); Wei Zhang (San Jose, CA); Deng Liu (Mountain View, CA); Sambasiva Bandarupalli (Sunnyvale, CA)
Assignee: VMware, Inc.
G06F12/0246G06F3/0605G06F3/0631G06F3/0679G06F12/023G06F9/45558G06F12/0842
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 9,195,585
App. No.
13/748,247
Granted
Nov 24, 2015
Kind
B2
Abstract

Techniques for surfacing host-side flash storage capacity to a plurality of VMs running on a host system are provided. In one embodiment, the host system creates, for each VM in the plurality of VMs, a flash storage space allocation in a flash storage device that is locally attached to the host system. The host system then causes the flash storage space allocation to be readable and writable by the VM as a virtual flash memory device.

Claims (49)

1. A method for surfacing host-side flash storage capacity to a plurality of virtual machines (VMs) configured to run on a host system, the method comprising:

creating, by the host system for each VM in the plurality of VMs, a flash storage space allocation in a flash storage device that is locally attached to the host system;

causing, by the host system, the flash storage space allocation to be readable and writable by the VM as a virtual flash memory device, the causing comprising:

creating a virtual Small Computer System Interface (SCSI) device corresponding to the flash storage space allocation;

receiving, from the VM upon initialization, an inquiry command; and

in response to the inquiry command, sending an inquiry response to the VM, wherein the inquiry response identifies the virtual SCSI device as being a flash-based device that is readable and writable by the VM, and wherein the inquiry response includes information indicating whether the virtual SCSI device is configured to behave as a nonvolatile memory device or as a volatile memory device; and

freeing, by the host system, the flash storage space allocation for the VM when the VM is suspended or powered off.

2. The method of claim 1 further comprising:

creating, for the VM, a new flash storage space allocation in the flash storage device when the VM is resumed or powered back on.

3. The method of claim 2 wherein freeing the flash storage space allocation for the VM when the VM is suspended comprises:

saving data stored in the flash storage space allocation to a backend storage device; and

freeing the flash storage space allocation after the saving.

4. The method of claim 3 where the data is saved to a VM image file resident on the backend storage device.

5. The method of claim 3 wherein creating, for the VM, the new flash storage space allocation in the flash storage device when the VM is resumed comprises:

restoring the data previously saved to the backend storage device to the new flash storage space allocation.

6. The method of claim 1 wherein freeing the flash storage space allocation for the VM when the VM is powered off comprises, if the information included in the inquiry response indicates that the virtual SCSI device is configured to behave as a volatile memory device:

freeing the flash storage space allocation without saving data stored in the flash storage space allocation to a backend storage device.

7. The method of claim 1 further comprising:

freeing the flash storage space allocation for the VM when the VM is migrated to another host system.

8. The method of claim 7 further comprising, prior to freeing the flash storage space allocation when the VM is migrated to said another host system:

copying data stored in the flash storage space allocation to a new flash storage allocation that is resident on a flash storage device locally attached to the another host system.

9. The method of claim 1 wherein the size of the flash storage space allocation for the VM is defined by a user at a time of provisioning the VM.

10. The method of claim 1 wherein the flash storage space allocation for the VM corresponds to a file resident on the flash storage device.

11. A non-transitory computer readable storage medium having stored thereon computer software executable by a processor, the computer software embodying a method for surfacing host-side flash storage capacity to a plurality of VMs configured to run on a host system, the method comprising:

creating, for each VM in the plurality of VMs, a flash storage space allocation in a flash storage device that is locally attached to the host system;

causing the flash storage space allocation to be readable and writable by the VM as a virtual flash memory device, the causing comprising:

creating a virtual Small Computer System Interface (SCSI) device corresponding to the flash storage space allocation;

receiving, from the VM upon initialization, an inquiry command; and

in response to the inquiry command, sending an inquiry response to the VM, wherein the inquiry response identifies the virtual SCSI device as being a flash-based device that is readable and writable by the VM, and wherein the inquiry response includes information indicating whether the virtual SCSI device is configured to behave as a nonvolatile memory device or as a volatile memory device; and

freeing the flash storage space allocation for the VM when the VM is suspended or powered off.

12. The non-transitory computer readable storage medium of claim 11 wherein the method further comprises:

creating, for the VM, a new flash storage space allocation in the flash storage device when the VM is resumed or powered back on.

13. The non-transitory computer readable storage medium of claim 12 wherein freeing the flash storage space allocation for the VM when the VM is suspended comprises saving data stored in the flash storage space allocation to a backend storage device, and

wherein creating, for the VM, the new flash storage space allocation in the flash storage device when the VM is resumed comprises restoring the data saved to the backend storage device to the new flash storage space allocation.

14. The non-transitory computer readable storage medium of claim 11 wherein freeing the flash storage space allocation for the VM when the VM is powered off comprises, if the information included in the inquiry response indicates that the virtual SCSI device is configured to behave as a volatile memory device, freeing the flash storage space allocation without saving the data stored in the flash storage space allocation to a backend storage device.

15. A host system comprising:

a locally attached flash storage device; and

a processor configured to:

create, for each VM in a plurality of VMs, a flash storage space allocation in the flash storage device;

cause the flash storage space allocation to be readable and writable by the VM as a virtual flash memory device, the causing comprising:

creating a virtual Small Computer System Interface (SCSI) device corresponding to the flash storage space allocation;

receiving, from the VM upon initialization, an inquiry command; and

in response to the inquiry command, sending an inquiry response to the VM, wherein the inquiry response identifies the virtual SCSI device as being a flash-based device that is readable and writable by the VM, and wherein the inquiry response includes information indicating whether the virtual SCSI device is configured to behave as a nonvolatile memory device or as a volatile memory device; and

free the flash storage space allocation for the VM when the VM is suspended or powered off.

16. The host system of claim 15 wherein the processor is further configured to

create, for the VM, a new flash storage space allocation in the flash storage device when the VM is resumed or powered back on.

17. The host system of claim 16 wherein freeing the flash storage space allocation for the VM when the VM is suspended comprises saving data stored in the flash storage space allocation to a backend storage device, and

wherein creating, for the VM, the new flash storage space allocation in the flash storage device when the VM is resumed comprises restoring the data saved to the backend storage device to the new flash storage space allocation.

18. The host system of claim 16 wherein freeing the flash storage space allocation for the VM when the VM is powered off comprises, if the information included in the inquiry response indicates that the virtual SCSI device is configured to behave as a volatile memory device, freeing the flash storage space allocation without saving the data stored in the flash storage space allocation to a backend storage device.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 23, 2013
From: PHELAN, THOMAS A.; RAWAT, MAYANK; MADNANI, KIRAN; ZHANG, WEI; LIU, DENG; BANDARUPALLI, SAMBASIVA
To: VMWARE, INC.
Reel/Frame 029680/0983 →
Continuity (1)
Related Publication 20140208000A1 · Jul 24, 2014