TRIM SUPPORT FOR A SOLID-STATE DRIVE IN A VIRTUALIZED ENVIRONMENT
First Claim
1. In a computer system having a virtual machine executed therein and a hypervisor supporting execution of the virtual machine, a method of issuing commands to invalidate data blocks stored in a physical solid-state memory device, the method comprising:
- receiving a command to invalidate a virtual data block, which is a data block of a virtual solid-state memory device that is mapped to a portion of the physical solid-state memory device;
translating the received command into an interim command to release the virtual data block; and
translating the interim command into a block operation to invalidate a physical data block, which is a data block of the physical solid-state memory device corresponding to the virtual data block.
2 Assignments
0 Petitions
Accused Products
Abstract
A computer system that employs a solid-state memory device as a physical storage resource includes a hypervisor that is capable of supporting TRIM commands issued by virtual machines running in the computer system. When a virtual machine issues a TRIM command to its corresponding virtual storage device to invalidate data stored therein, the TRIM command is received at an interface layer in the hypervisor that translates the TRIM command to a SCSI command known as UMMAP. A SCSI virtualization layer converts the UNMAP command to a file system command to delete portions of the virtual storage device that is maintained as a file in the hypervisor'"'"'s file system. Upon receiving the delete commands, the hypervisor'"'"'s file system driver generates a TRIM command to invalidate the data stored in the solid-state memory device at locations corresponding to the portions of the file that are to be deleted.
50 Citations
20 Claims
-
1. In a computer system having a virtual machine executed therein and a hypervisor supporting execution of the virtual machine, a method of issuing commands to invalidate data blocks stored in a physical solid-state memory device, the method comprising:
-
receiving a command to invalidate a virtual data block, which is a data block of a virtual solid-state memory device that is mapped to a portion of the physical solid-state memory device; translating the received command into an interim command to release the virtual data block; and translating the interim command into a block operation to invalidate a physical data block, which is a data block of the physical solid-state memory device corresponding to the virtual data block. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A non-transitory computer readable storage medium comprising instructions executable by a virtualization software layer of a computer system having a virtual machine executed therein, to carry out a method of issuing commands to invalidate data blocks stored in a physical solid-state memory device, the method comprising:
-
receiving a command to invalidate a virtual data block, which is a data block of a virtual solid-state memory device that is mapped to a portion of the physical solid-state memory device; translating the received command into an interim command to release the virtual data block; and translating the interim command into a block operation to invalidate a physical data block, which is a data block of the physical solid-state memory device corresponding to the virtual data block. - View Dependent Claims (12, 13, 14, 15, 16)
-
-
17. A computer system having virtual machines executed therein and a hypervisor supporting execution of the virtual machines, the computer system comprising:
-
a processor and memory, wherein the hypervisor is programmed to issue commands to release storage allocated to a logical block device by a storage device by performing the steps of; receiving a command to invalidate a virtual data block, which is a data block of a virtual solid-state memory device that is mapped to a portion of the physical solid-state memory device; translating the received command into an interim command to release the virtual data block; and translating the interim command into a block operation to invalidate a physical data block, which is a data block of the physical solid-state memory device corresponding to the virtual data block. - View Dependent Claims (18, 19, 20)
-
Specification