NVM express controller for remote access of memory and I/O over ethernet-type networks
First Claim
Patent Images
1. An extended NVMe storage network comprising:
- an Ethernet network;
a plurality of extended NVMe controllers, each respective extended NVMe controller of the plurality of extended NVMe controllers comprising;
a host interface adapted to couple the extended NVMe controller to a host processor;
a direct network interface adapted to couple the extended NVMe controller to the Ethernet network;
hardware logic configured to receive from the host processor NVMe commands directed to a remote namespace with remote non-volatile memory that is coupled to the external network, and to convert the NVMe commands to a format suitable for transmission over the Ethernet network to a remote extended NVMe controller coupled to the remote namespace, wherein the converted NVMe commands are passed to the direct network interface to be transmitted over the Ethernet network; and
a directory server comprising;
a network interface adapted to couple the directory server to the Ethernet network;
a memory adapted to store a mapping between network addresses and assigned NVMe identifiers that identify extended NVMe controllers of the plurality of extended NVMe controllers;
a processor adapted to assign an available NVMe identifier to an extended NVMe controller that requests an NVMe identifier and store the assignment as a mapping in the memory; and
wherein the hardware logic in the extended NVMe controllers is further configured to transmit requests for NVMe identifiers to the directory server via the direct network interface in the extended NVMe controllers, and the processor in the directory server is configured to receive requests for NVMe identifiers from the plurality of extended NVMe controllers via the network interface in the directory server.
3 Assignments
0 Petitions
Accused Products
Abstract
A method and system for enabling Non-Volatile Memory express (NVMe) for accessing remote solid state drives (SSDs) (or other types of remote non-volatile memory) over the Ethernet or other networks. An extended NVMe controller is provided for enabling CPU to access remote non-volatile memory using NVMe protocol. The extended NVMe controller is implemented on one server for communication with other servers or non-volatile memory via Ethernet switch. The NVMe protocol is used over the Ethernet or similar networks by modifying it to provide a special NVM-over-Ethernet frame.
86 Citations
25 Claims
-
1. An extended NVMe storage network comprising:
-
an Ethernet network; a plurality of extended NVMe controllers, each respective extended NVMe controller of the plurality of extended NVMe controllers comprising; a host interface adapted to couple the extended NVMe controller to a host processor; a direct network interface adapted to couple the extended NVMe controller to the Ethernet network; hardware logic configured to receive from the host processor NVMe commands directed to a remote namespace with remote non-volatile memory that is coupled to the external network, and to convert the NVMe commands to a format suitable for transmission over the Ethernet network to a remote extended NVMe controller coupled to the remote namespace, wherein the converted NVMe commands are passed to the direct network interface to be transmitted over the Ethernet network; and a directory server comprising; a network interface adapted to couple the directory server to the Ethernet network; a memory adapted to store a mapping between network addresses and assigned NVMe identifiers that identify extended NVMe controllers of the plurality of extended NVMe controllers; a processor adapted to assign an available NVMe identifier to an extended NVMe controller that requests an NVMe identifier and store the assignment as a mapping in the memory; and wherein the hardware logic in the extended NVMe controllers is further configured to transmit requests for NVMe identifiers to the directory server via the direct network interface in the extended NVMe controllers, and the processor in the directory server is configured to receive requests for NVMe identifiers from the plurality of extended NVMe controllers via the network interface in the directory server. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. An extended Non-Volatile Memory Express (NVMe) directory server, comprising:
-
a network interface adapted to couple the directory server to an Ethernet network; a memory adapted to store a mapping between network addresses and assigned NVMe identifiers that identify extended NVMe controllers; and a processor adapted to send one or more messages via the Ethernet network to assign an available NVMe identifier to an extended NVMe controller and to store the assignment as a mapping in the memory, wherein the extended NVMe controller is configured to transmit a request for an NVMe identifier to the directory server. - View Dependent Claims (12, 13, 14, 15, 16)
-
-
17. A computer-implemented method in an extended Non-Volatile Memory Express (NMVe) directory server, comprising:
-
receiving a broadcasted discovery message from an extended NVMe controller via an Ethernet network; responsive to receiving the broadcasted discovery message, sending an offer message to the extended NVMe controller with an available NVMe identifier via the Ethernet network; receiving a request message from the extended NVMe controller requesting the available NVMe identifier via the Ethernet network; and storing a mapping between a network address of the extended NVMe controller and the available NVMe identifier. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25)
-
Specification