IP Library Granted Patent US 11,249,937
Granted Patent B1
US 11,249,937 · App. 16/226,529 · Granted Feb 15, 2022

Storage adapter device for communicating with network storage

Inventors: Nafea Bshara (San Jose, CA); Alexander Matushevsky (Haifa, IL); Georgy Machulsky (San Jose, CA); Leah Shalev (Zichron Yaakov, IL); Saar Gross (Binyamina, IL)
Assignee: Amazon Technologies, Inc.
G06F15/17331G06F12/0238G06F13/4221G06F13/4234G06F13/4282H04L67/1097H04L69/16G06F2212/7201
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,249,937
App. No.
16/226,529
Granted
Feb 15, 2022
Kind
B1
Abstract

Provided are systems and methods for a storage adapter device for communicating with network storage. In some implementations, the storage adapter device comprises a host interface. In these implementations, the host interface may be configured to communicate with a host device using a local bus protocol. In some implementations, the storage adapter device also includes a network interface. In these implementations, the network interface may communicate with a network using a network protocol. In some implementations, the storage adapter device may be configured to communicate with a remote storage device. In some implementations, the storage adapter device may also be configured to translate a request from the host interface from the local bus protocol to the network protocol. The storage adapter device may further be configured to transmit the translated request to the remote storage device.

Claims (31)

1. A storage adapter device, comprising:

a first interface operable to communicate with a storage device driver; and

a second interface operable to communicate with a network, the network including remote storage devices;

wherein the storage adapter device is operable to:

receive, at the first interface, a request for reading or writing data of a storage device, wherein the request is associated with a virtual machine executing on a host device, and wherein the request includes the data and a local virtual address for reading or writing the data;

determine that the request is directed to at least one remote storage device on the network, wherein the storage adapter device is capable of determining that a given request is directed to a plurality of remote storage devices;

determine, using an address map stored on the storage adapter device, at least one remote address on the at least one remote storage device that corresponds to the local virtual address of the request,

wherein the address map includes a first plurality of remote addresses on respective remote storage devices that map to a same local virtual address, and a second plurality of remote addresses on respective remote storage devices that each map to a different local virtual address;

for each remote storage device of the at least one remote storage device:

generate a packet including the request and the corresponding remote address for the remote storage device; and

transmit the packet using the second interface, wherein, when the remote storage device receives the packet, the remote storage device accesses the corresponding remote address to write the data to the corresponding remote address or read the data from the corresponding remote address.

2. The storage adapter device of claim 1 , wherein each of a plurality of virtual machines executing on the host device is associated with a different virtual function from a plurality of virtual functions implemented by a storage protocol driver of the first interface.

3. The storage adapter device of claim 2 , wherein the plurality of virtual functions represent the remote storage devices to each of the plurality of virtual machines as a local storage device.

4. The storage adapter device of claim 1 , wherein the second interface is implemented as a physical function associated with a virtual function.

5. The storage adapter device of claim 1 , wherein the second interface further includes a Remote Direct Memory Access (RDMA) module, and wherein the storage adapter device is further operable to:

generate an RDMA transaction for the request, wherein the RDMA module manages transfer of data associated with the request, and wherein, while the RDMA module manages the transfer, the storage adapter device is available to receive additional requests.

6. The storage adapter device of claim 1 , wherein the first interface implements one of Peripheral Component Interconnect Express (PCIe), Small Computer System Interface (SCSI), Serial Attached SCSI (SAS), Serial Advanced Technology Attachment (SATA), or Parallel Advanced Technology Attachment (PATA).

7. The storage adapter device of claim 1 , wherein the second interface implements one of Transmission Control Protocol/Internet Protocol (TCP/IP), User Datagram Protocol/Internet Protocol (UDP/IP), Infiniband, Internet Small Computer System Interface (iSCSI) protocol, NVMe (Non-Volatile Memory Express) over fabric (NVMf), Remote Direct Memory Access (RDMA) over Converged Ethernet (RoCE), or Storage RDMA Protocol (SRP).

8. A computer-implemented method performed by a storage adapter device, comprising:

receiving a request for reading or writing data of a storage device associated with a virtual machine executing on a host device, wherein the request includes the data and a local virtual address for reading or writing the data, wherein the host device includes a first interface operable to communicate with a storage device driver;

determining that the request is directed to at least one remote storage device on a network, wherein the storage adapter device is capable of determining that a given request is directed to a plurality of remote storage devices;

determining, using an address map stored on the storage adapter device, at least one remote address on the at least one remote storage device that corresponds to the local virtual address of the request,

wherein the address map includes a first plurality of remote addresses on respective remote storage devices that map to a same local virtual address, and a second plurality of remote addresses on respective remote storage devices that each map to a different local virtual address;

for each remote storage device of the at least one remote storage device:

generating a packet including the request and the corresponding remote address for the remote storage device; and

transmitting the packet using a second interface, wherein the second interface is operable to communicate with the network, wherein, when the remote storage device receives the packet, the remote storage device accesses the corresponding remote address to write the data to the corresponding remote address or read the data from the corresponding remote address.

9. The computer-implemented method of claim 8 , wherein each of a plurality of virtual machines executing on the host device is associated with a different virtual function from a plurality of virtual functions implemented by a storage protocol driver of the first interface.

10. The computer-implemented method of claim 9 , wherein the plurality of virtual functions represent the remote storage device to each of the plurality of virtual machines as a local storage device.

11. The computer-implemented method of claim 8 , wherein the second interface is implemented as a physical function associated with a virtual function.

12. The computer-implemented method of claim 8 , wherein the second interface further includes a Remote Direct Memory Access (RDMA) module, and wherein the computer-implemented method further comprises:

generating an RDMA transaction for the request, wherein the RDMA module manages transfer of data associated with the request, and wherein, while the RDMA module manages the transfer, the remote storage device is available to receive additional requests.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2018
From: BSHARA, NAFEA; MATUSHEVSKY, ALEXANDER; MACHULSKY, GEORGY; SHALEV, LEAH; GROSS, SAAR
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 047822/0156 →
Continuity (1)
Continuation 14869700 · Sep 29, 2015
Cited By (1)
US 12,367,171