Techniques for data storage device virtualization
First Claim
1. A data storage device comprising:
- virtual storage devices that are each assigned to a subset of data sectors in a non-volatile memory of the data storage device, wherein the data storage device receives configuration metadata for configuring each of the virtual storage devices from a host operating system in a format that is not specific to a particular file system, the configuration metadata comprises a range of logical block addresses and a virtual storage device number assigned to each of the virtual storage devices, each of the virtual storage device numbers is a unique identifier used to differentiate between the virtual storage devices, the data storage device uses the virtual storage device numbers to map logical block addresses to physical addresses corresponding to data sectors in the virtual storage devices that are accessible by first and second virtual machine operating systems, the data storage device determines a set of the physical addresses to access based on the virtual storage device numbers when the first and the second virtual machine operating systems attempt to access the same one of the logical block addresses, the first virtual machine operating system accesses the subset of the data sectors of the data storage device assigned to a first one of the virtual storage devices, the second virtual machine operating system accesses the subset of the data sectors of the data storage device assigned to a second one of the virtual storage devices, and the first and the second virtual machine operating systems are part of a virtual machine.
7 Assignments
0 Petitions
Accused Products
Abstract
A data storage device comprises virtual storage devices that are each assigned to a subset of data sectors in a non-volatile memory of the data storage device. The data storage device receives configuration metadata for configuring each of the virtual storage devices from a host operating system. The configuration metadata is received in a standard format that is file system independent. The configuration metadata comprises a range of logical block addresses and a virtual storage device number assigned to each of the virtual storage devices. Each of the virtual storage device numbers is a unique identifier used by the data storage device to differentiate between the virtual storage devices. The data storage device uses the virtual storage device numbers and logical block addresses to identify data sectors in the virtual storage devices that are accessible by virtual machine operating systems.
-
Citations
20 Claims
-
1. A data storage device comprising:
virtual storage devices that are each assigned to a subset of data sectors in a non-volatile memory of the data storage device, wherein the data storage device receives configuration metadata for configuring each of the virtual storage devices from a host operating system in a format that is not specific to a particular file system, the configuration metadata comprises a range of logical block addresses and a virtual storage device number assigned to each of the virtual storage devices, each of the virtual storage device numbers is a unique identifier used to differentiate between the virtual storage devices, the data storage device uses the virtual storage device numbers to map logical block addresses to physical addresses corresponding to data sectors in the virtual storage devices that are accessible by first and second virtual machine operating systems, the data storage device determines a set of the physical addresses to access based on the virtual storage device numbers when the first and the second virtual machine operating systems attempt to access the same one of the logical block addresses, the first virtual machine operating system accesses the subset of the data sectors of the data storage device assigned to a first one of the virtual storage devices, the second virtual machine operating system accesses the subset of the data sectors of the data storage device assigned to a second one of the virtual storage devices, and the first and the second virtual machine operating systems are part of a virtual machine. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
10. A data storage device that comprises code for operating virtual storage devices, wherein the code is stored on a computer readable medium, the data storage device comprising:
-
code for configuring virtual storage devices in the data storage device by interpreting configuration metadata received from a host operating system in a format that is not specific to a particular file system, wherein the configuration metadata comprises a range of logical block addresses and a virtual storage device number for each of the virtual storage devices, each of the virtual storage device numbers is a unique identifier used to differentiate between the virtual storage devices, and each of the virtual storage devices is assigned to a subset of a non-volatile data storage capacity of the data storage device; and code for using the virtual storage device numbers to map logical block addresses to physical addresses associated with data sectors for the virtual storage devices that are accessible in response to read and write commands from first and second virtual machine operating systems, determining a set of the physical addresses to access based on the virtual storage device numbers when the first and the second virtual machine operating systems attempt to access the same one of the logical block addresses, accessing data sectors associated with a first one of the virtual storage devices in response to commands from the first virtual machine operating system, and accessing data sectors associated with a second one of the virtual storage devices in response to commands from the second virtual machine operating system, wherein the first and the second virtual machine operating systems are part of a virtual machine. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. A method for using virtual storage devices, the method comprising:
-
receiving configuration metadata in a data storage device from a host operating system, the configuration metadata being in a format that is not specific to a particular file system; configuring virtual storage devices in the data storage device by interpreting the configuration metadata, wherein the configuration metadata comprises a range of logical block addresses and a virtual storage device number for each of the virtual storage devices, and each of the virtual storage device numbers is a unique identifier used to differentiate between the virtual storage devices; assigning each of the virtual storage devices to a subset of a non-volatile data storage capacity of the data storage device; using the virtual storage device numbers to map logical block addresses to physical addresses associated with data sectors in the data storage device that are accessible in response to commands from first and second virtual machine operating systems; determining a set of the physical addresses to access based on the virtual storage device numbers when the first and the second virtual machine operating systems attempt to access the same one of the logical block addresses; accessing data sectors associated with a first one of the virtual storage devices in response to commands from the first virtual machine operating system using a first one of the virtual storage device numbers and a first set of the logical block addresses; and accessing data sectors associated with a second one of the virtual storage devices in response to commands from the second virtual machine operating system using a second one of the virtual storage device numbers and a second set of the logical block addresses, wherein the first and the second virtual machine operating systems are part of a virtual machine. - View Dependent Claims (18, 19, 20)
-
Specification