A method for making host-side flash storage capacity accessible 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; and 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 block-based device corresponding to the flash storage space allocation; receiving an inquiry command from the VM during a boot-up procedure of theVM; and in response to the inquiry command, sending an inquiry response to the VM, wherein the inquiry response identifies the virtual block-based 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 block-based device is configured to behave as a nonvolatile memory device or as a volatile memory device; and reading and writing, by applications running in the VM, to the virtual block-based device which is identified as being a flash-based device and is indicated as being configured to behave either as a volatile memory device which will not persist beyond a power cycle of the VM or as a nonvolatile memory device which appears to the VM as a persistent flash-based device which will persist beyond a power cycle of the VM; freeing, by the host system, the flash storage space allocation for the VM when the VM is suspended or powered off, including: where the virtual block-based 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; and where the virtual block-based device is configured to behave as a nonvolatile memory device, saving data stored in the flash storage space allocation to a backend storage device, and freeing the flash storage space allocation after the saving. 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; and 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 block-based device corresponding to the flash storage space allocation; receiving an inquiry command from the VM during a boot-up procedure of theVM; and in response to the inquiry command, sending an inquiry response to the VM, wherein the inquiry response identifies the virtual block-based 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 block-based device is configured to behave as a nonvolatile memory device or as a volatile memory device; and creating a virtual block-based device corresponding to the flash storage space allocation; receiving an inquiry command from the VM during a boot-up procedure of theVM; and in response to the inquiry command, sending an inquiry response to the VM, wherein the inquiry response identifies the virtual block-based 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 block-based device is configured to behave as a nonvolatile memory device or as a volatile memory device; and reading and writing, by applications running in the VM, to the virtual block-based device which is identified as being a flash-based device and is indicated as being configured to behave either as a volatile memory device which will not persist beyond a power cycle of the VM or as a nonvolatile memory device which appears to the VM as a persistent flash-based device which will persist beyond a power cycle of the VM; freeing, by the host system, the flash storage space allocation for the VM when the VM is suspended or powered off, including: where the virtual block-based 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; and where the virtual block-based device is configured to behave as a nonvolatile memory device, saving data stored in the flash storage space allocation to a backend storage device, and freeing the flash storage space allocation after the saving. where the virtual block-based 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; and where the virtual block-based device is configured to behave as a nonvolatile memory device, saving data stored in the flash storage space allocation to a backend storage device, and freeing the flash storage space allocation after the saving.