Network-displaced direct storage
First Claim
Patent Images
1. A device, comprising:
- a memory; and
network storage circuitry coupled to the memory, the network storage circuitry comprising a network interface, the network storage circuitry configured to;
map a block command data PUSH to a remote direct memory access over converged ethernet (RoCE) SEND work queue;
send a read PUSH via the RoCE SEND work queue;
receive a mapped block storage command at the network interface;
based on a mapping between an RoCE protocol and a block storage command set, determine a primary block storage command from the mapped block storage command;
process the primary block storage command to determine a memory operation;
execute the memory operation on the memory; and
generate a responsive communication based on the execution of the memory operation, wherein the responsive communication includes sending a command completion code to a host, from which the received mapped block storage command originated, via a network-displaced direct storage (NDSS) layer in the host configured to provide storage commands for direct storage to the NDSS, and wherein the command completion code uses a same queue pair as an initiating PUSH command.
2 Assignments
0 Petitions
Accused Products
Abstract
A network-displaced direct storage architecture transports storage commands over a network interface. In one implementation, the architecture maps, at hosts, block storage commands to remote direct memory access operations (e.g., over converged Ethernet). The mapped operations are communicated across the network to a network storage appliance. At the network storage appliance, network termination receives the mapped commands, extracts the operation and data, and passes the operation and data to a storage device that implements the operation on a memory.
14 Citations
17 Claims
-
1. A device, comprising:
-
a memory; and network storage circuitry coupled to the memory, the network storage circuitry comprising a network interface, the network storage circuitry configured to; map a block command data PUSH to a remote direct memory access over converged ethernet (RoCE) SEND work queue; send a read PUSH via the RoCE SEND work queue; receive a mapped block storage command at the network interface; based on a mapping between an RoCE protocol and a block storage command set, determine a primary block storage command from the mapped block storage command; process the primary block storage command to determine a memory operation; execute the memory operation on the memory; and generate a responsive communication based on the execution of the memory operation, wherein the responsive communication includes sending a command completion code to a host, from which the received mapped block storage command originated, via a network-displaced direct storage (NDSS) layer in the host configured to provide storage commands for direct storage to the NDSS, and wherein the command completion code uses a same queue pair as an initiating PUSH command. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A non-transitory computer readable medium having instructions that when executed by a processor implement a network storage device coupled to a memory, the device comprising:
network storage circuitry configured by the executed instructions to; map a block command data PUSH to a remote direct memory access over converged ethernet (RoCE) SEND work queue; send a read PUSH via the RoCE SEND work queue; receive a mapped block storage command at a network interface; based on a mapping between an RoCE protocol and a block storage command set, determine a primary block storage command from the mapped block storage command; process the primary block storage command to determine a memory operation; execute the memory operation on the memory; and generate a responsive communication based on the execution of the memory operation, wherein the responsive communication includes sending a command completion code to a host, from which the received mapped block storage command originated, via a network-displaced direct storage (NDSS) layer in the host configured to provide storage commands for direct storage to the NDSS, and wherein the command completion code uses a same queue pair as an initiating PUSH command.
Specification