Virtual non-volatile memory express drive
First Claim
Patent Images
1. A method comprising:
- receiving, by a processing device, an input/output (I/O) command generated by a process, the I/O command directed to a virtual storage provided to a host executing the process, wherein the virtual storage comprises a virtual non-volatile memory express (NVMe) drive that is mapped to a first set of remote NVMe storage devices managed by a first storage controller and a second set of NVMe storage devices managed by a second storage controller;
generating a first new I/O command for the first storage controller based on the received I/O command;
generating a second new I/O command for the second storage controller based on the received I/O command;
encapsulating the first new I/O command into a first message;
encapsulating the second new I/O command into a second message;
sending, by the processing device, the first message to the first storage controller; and
sending, by the processing device, the second message to the second storage controller.
1 Assignment
0 Petitions
Accused Products
Abstract
A processing device receives an input/output (I/O) command generated by a process, the I/O command directed to a virtual storage provided to a host executing the process, wherein the virtual storage comprises a virtual non-volatile memory express (NVMe) drive. The processing device generates a new I/O command based on the received I/O command and encapsulates the new I/O command into a message. The processing device sends the message to at least one of a remote NVMe storage device or a storage server comprising one or more remote NVMe storage devices.
150 Citations
18 Claims
-
1. A method comprising:
-
receiving, by a processing device, an input/output (I/O) command generated by a process, the I/O command directed to a virtual storage provided to a host executing the process, wherein the virtual storage comprises a virtual non-volatile memory express (NVMe) drive that is mapped to a first set of remote NVMe storage devices managed by a first storage controller and a second set of NVMe storage devices managed by a second storage controller; generating a first new I/O command for the first storage controller based on the received I/O command; generating a second new I/O command for the second storage controller based on the received I/O command; encapsulating the first new I/O command into a first message; encapsulating the second new I/O command into a second message; sending, by the processing device, the first message to the first storage controller; and sending, by the processing device, the second message to the second storage controller. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A non-transitory computer readable storage medium comprising instructions that, when executed by a processing device of a host, cause the processing device to perform operations comprising:
-
receiving a write command generated by a process, wherein the write command is a command to write data to a virtual storage provided to a host executing the process, and wherein the virtual storage comprises a virtual non-volatile memory express (NVMe) drive that is mapped to a plurality of remote storage devices; generating, by the processing device, a plurality of new commands based on the received write command, the plurality of new commands comprising; a new write command specifying a size of the data; and one or more additional commands, each of the one or more additional commands containing a portion of the data; encapsulating the new write command into a first message; for each additional command of the one or more additional commands, encapsulating the additional command into a corresponding additional message of one or more additional messages; sending, by the processing device, the first message to a storage server comprising the plurality of remote storage devices; and subsequently sending the one or more additional messages to the storage server. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A computing device comprising:
-
a memory to store instructions for a remote non-volatile memory express (NVMe) driver; and a processing device, coupled to the memory, to execute the instructions, wherein the instructions cause the processing device to; receive a write command generated by a process, wherein the write command is a command to write data to a virtual storage provided to a host executing the process, and wherein the virtual storage comprises a virtual non-volatile memory express (NVMe) drive that is mapped to a plurality of remote storage devices; generate a plurality of new commands based on the received write command, the plurality of new commands comprising; a new write command specifying a size of the data; and one or more additional commands, each of the one or more additional commands containing a portion of the data; encapsulate the new write command into a first message; for each additional command of the one or more additional commands, encapsulate the additional command into a corresponding additional message of one or more additional messages; send the first message to a storage server comprising the plurality of remote storage devices; and subsequently send the one or more additional messages to the storage server. - View Dependent Claims (16, 17, 18)
-
Specification