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 trim commands to invalidate data blocks stored in a physical solid-state memory device, the method comprising:
- receiving at the hypervisor, a first trim 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, the first trim command conforming to a first interface standard comprising serial advanced technology attachment (SATA);
translating by the hypervisor, the received first trim command into an interim command to release the virtual data block, the interim command conforming to a second interface standard that is different from the first interface standard, the second interface standard comprising small computer system interface (SCSI);
translating by the hypervisor, 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; and
issuing by a host bus adapter of the computer system, a second trim command to invalidate the physical data block to the physical solid-state memory device based on the block operation, the second trim command conforming to the first interface standard and informing the physical solid-state memory device that the physical data block is no longer in use and can be reclaimed internally through garbage collection.
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.
-
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 trim commands to invalidate data blocks stored in a physical solid-state memory device, the method comprising:
-
receiving at the hypervisor, a first trim 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, the first trim command conforming to a first interface standard comprising serial advanced technology attachment (SATA); translating by the hypervisor, the received first trim command into an interim command to release the virtual data block, the interim command conforming to a second interface standard that is different from the first interface standard, the second interface standard comprising small computer system interface (SCSI); translating by the hypervisor, 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; and issuing by a host bus adapter of the computer system, a second trim command to invalidate the physical data block to the physical solid-state memory device based on the block operation, the second trim command conforming to the first interface standard and informing the physical solid-state memory device that the physical data block is no longer in use and can be reclaimed internally through garbage collection. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A non-transitory computer readable storage medium comprising instructions executable by a computer system having a virtual machine executed therein and a hypervisor supporting execution of the virtual machine, to carry out a method of issuing trim commands to invalidate data blocks stored in a physical solid-state memory device, the method comprising:
-
receiving at the hypervisor, a first trim 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, the first trim command conforming to a first interface standard comprising serial advanced technology attachment (SATA); translating by the hypervisor, the received first trim command into an interim command to release the virtual data block, the interim command conforming to a second interface standard that is different from the first interface standard, the second interface standard comprising small computer system interface (SCSI); translating by the hypervisor, 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; and issuing by a host bus adaptor of the computer system, a second trim command to invalidate the physical data block to the physical solid-state memory device based on the block operation, the second trim command conforming to the first interface standard and informing the physical solid-state memory device that the physical data block is no longer in use and can be reclaimed internally through garbage collection. - View Dependent Claims (11, 12, 13, 14)
-
-
15. A computer system having virtual machines executed therein and a hypervisor supporting execution of the virtual machines, the computer system comprising:
-
a processor; memory; and a host bus adaptor, wherein the computer system is programmed to issue trim commands to invalidate data blocks stored in a physical solid-state memory device by performing the steps of; receiving at the hypervisor, a first trim 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, the first trim command conforming to a first interface standard comprising serial advanced technology attachment (SATA); translating by the hypervisor, the received trim command into an interim command to release the virtual data block, the interim command conforming to a second interface standard that is different from the first interface standard, the second interface standard comprising small computer system interface (SCSI); translating by the hypervisor, 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; and issuing by the host bus adapter of the computing system, a second trim command to invalidate the physical data block to the physical solid-state memory device based on the block operation, the second trim command conforming to the first interface standard and informing the physical solid-state memory device that the physical data block is no longer in use and can be reclaimed internally through garbage collection. - View Dependent Claims (16, 17, 18)
-
-
19. In a computer system having a virtual machine executed therein and a hypervisor supporting execution of the virtual machine, a method of issuing trim commands to invalidate data blocks stored in a physical solid-state memory device, the method comprising:
-
receiving at the hypervisor, one of an unmap block operation and a first trim 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, from the virtual machine; upon receiving the first trim command, generating, by the hypervisor, a second trim command conforming to a first interface standard comprising serial advanced technology attachment (SATA), and then translating, by the hypervisor, the second trim command into an interim command conforming to a second interface standard that is different from the first interface standard, the second interface standard comprising small computer system interface (SCSI); upon receiving the unmap block operation, generating by the hypervisor, the interim command conforming to the second interface standard; translating by the hypervisor, the translated interim command or the generated 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; when the block operation is translated from the translated interim command, issuing by a host bus adapter of the computer system, a third trim command to invalidate the physical data block to the physical solid-state memory device based on the block operation based on the block operation translated from the translated interim command, the third trim command conforming to the first interface standard and informing the physical solid-state memory device that the physical data block is no longer in use and can be reclaimed internally through garbage collection; and when the block operation is translated from the generated interim command, issuing by the host bus adaptor of the computer system, an unmap command conforming to the second interface standard. - View Dependent Claims (20)
-
Specification