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 server and a second set of NVMe storage devices managed by a second storage server;
generating a first new I/O command for the first storage server based on the received I/O command;
generating a second new I/O command for the second storage server 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 server; and
sending, by the processing device, the second message to the second storage server.
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.
121 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 server and a second set of NVMe storage devices managed by a second storage server; generating a first new I/O command for the first storage server based on the received I/O command; generating a second new I/O command for the second storage server 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 server; and sending, by the processing device, the second message to the second storage server. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. 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, by the processing device, an input/output (I/O) command directed to a virtual NVMe drive mounted on the host, wherein the virtual NVMe drive is mapped to a first set of remote NVMe storage devices managed by a first storage server and a second set of NVMe storage devices managed by a second storage server; generating a first new I/O command for the first storage server based on the I/O command; generating a second new I/O command for the second storage server based on the I/O command; encapsulating, by the processing device, 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 server; and sending, by the processing device, the second message to the second storage server. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computing device comprising:
-
a memory to store instructions for a 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 an I/O command generated by a process, the I/O command directed to a virtual NVMe drive, wherein the virtual NVMe drive maps to a first set of remote NVMe storage devices managed by a first storage server and a second set of remote NVMe storage devices managed by a second storage server; generate a first new I/O command for the first storage server based on the received I/O command; generate a second new I/O command for the second storage server based on the received I/O command; encapsulate the first new I/O command into a first message; encapsulate the second new I/O command into a second message; send the first message to the first storage server; and send the second message to the second storage server. - View Dependent Claims (16, 17, 18)
-
Specification