IP Library Granted Patent US 9,778,847
Granted Patent B2
US 9,778,847 · App. 14/919,379 · Granted Oct 3, 2017

Techniques for surfacing host-side storage capacity to virtual machines when performing VM suspend or snapshot operations

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,778,847
App. No.
14/919,379
Granted
Oct 3, 2017
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 (66)

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

creating, for the VM, 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 accessible to the VM as a virtual flash memory device;

receiving, by the host system, a request to suspend, or create a snapshot of, the VM;

in response to the request to suspend, or create the snapshot of, the VM:

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

freeing the flash storage space allocation;

receiving, by the host system, a request to resume operation of the VM; and

in response to the request to resume operation of the VM:

creating, for the VM, a new flash storage space allocation in the flash storage device, the new flash storage space allocation having substantially the same size as the freed flash storage space allocation;

copying the data saved in the backend storage device to the new flash storage space allocation; and

subsequently to the copying, resuming the VM.

2. The method of claim 1 wherein the freeing comprises reclaiming storage space in the flash storage device corresponding to the flash storage space allocation for use by another VM.

3. The method of claim 1 further comprising, prior to creating the new flash storage space allocation:

determining whether the flash storage device has sufficient free storage space to accommodate the new flash storage space allocation; and

if the flash storage device does not have sufficient free storage space, migrating the VM to another host system that is determined to have sufficient free storage space within its locally-attached flash storage to accommodate the new flash storage space allocation.

4. The method of claim 1 wherein the virtual flash memory device is configured to act as a volatile memory device.

5. The method of claim 4 further comprising:

receiving a request to power-off the VM; and

in response to the request to power-off the VM, freeing the flash storage space allocation without saving the data in the flash storage space allocation to the backend storage device.

6. The method of claim 4 wherein the virtual flash memory device is configured to act as a volatile memory device based on a parameter that is defined by a user at a time of provisioning the VM.

7. A non-transitory computer readable medium having stored thereon program code executable by a processor of a host system, the program code embodying a method for surfacing host-side flash storage capacity to a virtual machine (VM) configured to run on the host system, the method comprising:

creating, for the VM, 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 accessible to the VM as a virtual flash memory device;

receiving a request to suspend, or create a snapshot of, the VM;

in response to the request to suspend, or create the snapshot of, the VM:

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

freeing the flash storage space allocation;

receiving a request to resume operation of the VM; and

in response to the request to resume operation of the VM:

creating, for the VM, a new flash storage space allocation in the flash storage device, the new flash storage space allocation having substantially the same size as the freed flash storage space allocation;

copying the data saved in the backend storage device to the new flash storage space allocation; and

subsequently to the copying, resuming the VM.

8. The non-transitory computer readable medium of claim 7 wherein the freeing comprises reclaiming storage space in the flash storage device corresponding to the flash storage space allocation for use by another VM.

9. The non-transitory computer readable medium of claim 8 wherein the method further comprises, prior to creating the new flash storage space allocation:

determining whether the flash storage device has sufficient free storage space to accommodate the new flash storage space allocation; and

if the flash storage device does not have sufficient free storage space, migrating the VM to another host system that is determined to have sufficient free storage space within its locally-attached flash storage to accommodate the new flash storage space allocation.

10. The non-transitory computer readable medium of claim 7 wherein the virtual flash memory device is configured to act as a volatile memory device.

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

receiving a request to power-off the VM; and

in response to the request to power-off the VM, freeing the flash storage space allocation without saving the data in the flash storage space allocation to the backend storage device.

12. The non-transitory computer readable medium of claim 10 wherein the virtual flash memory device is configured to act as a volatile memory device based on a parameter that is defined by a user at a time of provisioning the VM.

13. A host system comprising:

a processor;

a locally-attached flash storage device; and

a non-transitory computer readable storage medium having stored thereon program code that, when run by the processor, causes the processor to:

create, for a virtual machine (VM) configured to run on the host system, a flash storage space allocation in the locally-attached flash storage device;

make the flash storage space allocation accessible to the VM as a virtual flash memory device;

receive a request to suspend, or create a snapshot of, the VM;

in response to the request to suspend, or create the snapshot of, the VM:

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

free the flash storage space allocation;

receive a request to resume operation of the VM; and

in response to the request to resume operation of the VM:

create, for the VM, a new flash storage space allocation in the flash storage device, the new flash storage space allocation having substantially the same size as the freed flash storage space allocation;

copy the data saved in the backend storage device to the new flash storage space allocation; and

subsequently to the copying, resume the VM.

14. The host system of claim 13 wherein the program code that causes the processor to free the flash storage space allocation comprises program code that causes the processor to reclaim storage space in the locally-attached flash storage device corresponding to the flash storage space allocation for use by another VM.

15. The computer system of claim 13 wherein the program code further causes the processor to, prior to creating the new flash storage space allocation:

determine whether the locally-attached flash storage device has sufficient free storage space to accommodate the new flash storage space allocation; and

if the locally-attached flash storage device does not have sufficient free storage space, migrate the VM to another host system that is determined to have sufficient free storage space within its locally-attached flash storage to accommodate the new flash storage space allocation.

16. The computer system of claim 13 wherein the virtual flash memory device is configured to act as a volatile memory device.

17. The computer system of claim 16 wherein the program code further causes the processor to:

receive a request to power-off the VM; and

in response to the request to power-off the VM, free the flash storage space allocation without saving the data in the flash storage space allocation to the backend storage device.

18. The computer system of claim 16 wherein the virtual flash memory device is configured to act as a volatile memory device based on a parameter that is defined by a user at a time of provisioning the VM.

Assignments (1)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →