Low level storage protocols, systems and methods
View Patent ↗Communication protocols, systems, and methods that facilitate communication between disaggregated elements, and also to devices adapted to function as such disaggregated elements, particularly across peer-to-peer (masterless) and include one or more unique features such as packet atomicity, blind ACKs, NAT bridging, locking, multicast spanning and mirroring, and authentication.
1. A method comprising:
receiving, at a network interface associated with a first storage device, a request from a requestor over a network, the requestor being different from the first storage device and the request requesting an allocation of storage that exceeds an amount of allocatable storage of the first storage device;
allocating a first storage area on the first storage device and a second storage area on a second storage device, which is different from the first storage device, to the requestor based at least in part on the request;
assigning, based on said allocating, a network address to the first storage area and the second storage area, wherein the network address comprises an Internet protocol address to facilitate routing of a packet over the network and within the first storage device;
transmitting, to the requestor, a response that includes the network address;
receiving a packet having a first address that is the network address and a second address; and
identifying the first and second storage areas based on the first address and identifying a portion within the first and second storage areas based on the second address.
2. The method of claim 1 , wherein the request is a first request and said allocating the second storage area comprises:
transmitting, to the second storage device, a second request for allocation of storage based at least in part on said receiving of the first request.
3. The method of claim 1 , wherein the first storage device includes a plurality of storage areas including the first storage area and the network address uniquely identifies the first storage area among the plurality of storage areas.
4. The method of claim 1 , wherein the network address is a multicast address directly associated with both the first storage area and the second storage area.
5. The method of claim 1 , wherein the network address is a unicast address directly associated with only the first storage area and the method further comprises:
receiving, at the first storage device, a packet from the requestor, the packet including the network address, a logical block address (LBA) that corresponds to the second storage area, and a command; and
transmitting another packet, to the second storage device, to execute the command with respect to the LBA.
6. The method of claim 1 , wherein the request includes another network address associated with a network interface of the first storage device.
7. The method of claim 1 , wherein the first storage device and the second storage device are peers.
8. An apparatus comprising:
a network interface;
a first storage medium; and
a controller coupled to the network interface and the first storage medium and configured to
receive a request from a requestor via the network interface, the request requesting an allocation of storage that exceeds an amount of allocatable storage of the first storage medium;
allocate a first storage area on the first storage medium and a second storage area on a second storage medium of a storage device to the requestor based at least in part on the request, the storage device being different from the apparatus;
assign a network address to the first storage area and the second storage area, wherein the network address comprises an Internet protocol address to facilitate routing of a packet over the network and within the first storage device;
transmit, to the requestor via the network interface, a response that includes the network address;
receive a packet having a first address that is the network address and a second address; and
identify the first and second storage areas based on the first address and identify a portion within the first and second storage areas based on the second address.
9. The apparatus of claim 8 , wherein the request is a first request and the controller is configured to allocate the second storage area by being configured to
transmit, to the storage device, a second request for allocation of storage based at least in part on said receipt of the first request.
10. The apparatus of claim 8 , wherein the first storage medium includes a plurality of storage areas including the first storage area and the network address uniquely identifies the first storage area among the plurality of storage areas.
11. The apparatus of claim 8 , wherein the network address is a multicast address directly associated with both the first storage area and the second storage area.
12. The apparatus of claim 8 , wherein the network address is a unicast address directly associated with only the first storage area and the controller is further configured
to receive, via the network interface, a packet from the requestor, the packet including the network address, a logical block address (LBA) that corresponds to the second storage area, and a command; and
to transmit another packet, to the second storage medium, to execute the command with respect to the LBA.
13. The apparatus of claim 8 , wherein the request includes another network address associated with the network interface.
14. The apparatus of claim 8 , wherein the apparatus and the storage device are peers.