IP Library Granted Patent US 12,367,171
Granted Patent B1
US 12,367,171 · App. 17/650,222 · Granted Jul 22, 2025

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 (London, GB); Saar Gross (Sunnyvale, CA)
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 12,367,171
App. No.
17/650,222
Granted
Jul 22, 2025
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 (45)

1. A storage bridge device, comprising:

a first interface operable to communicate with a host device via a network; and

a second interface operable to communicate with one or more locally attached storage devices implementing a first namespace mapped to a first network protocol and a second namespace mapped to a second network protocol that is different than the first network protocol,

wherein the storage bridge device is operable to:

receive, at the first interface, a first network protocol packet including a first request from the host device to read or write data;

select, based at least in part on which namespace is mapped to which network protocol, a namespace implemented in the one or more locally attached storage devices that is mapped to a network protocol of the first network protocol packet;

generate a bus protocol transaction including the first request according to a bus protocol of a storage device implementing the identified selected namespace; and

transmit the bus protocol transaction via the second interface to the identified selected namespace.

2. The storage bridge device of claim 1 , wherein the storage bridge device is operable to:

duplicate the bus protocol transaction including the first request; and

transmit the duplicate bus protocol transaction via the second interface to another storage device that is also mapped to the network protocol of the first network protocol packet.

3. The storage bridge device of claim 1 , wherein the storage bridge device is operable to:

duplicate the bus protocol transaction including the first request; and

transmit the duplicate bus protocol transaction via the second interface to another location in the storage device implementing the selected namespace.

4. The storage bridge device of claim 1 , wherein the storage bridge device is operable to:

receive, at the first interface via the network, a second network protocol packet including a second request to read or write data; and

transmit the second request to a remote storage device via the first interface.

5. The storage bridge device of claim 1 , wherein the first request is sent by a virtual machine executing on the host device to a virtual function implemented by the storage bridge device and assigned to the virtual machine.

6. The storage bridge device of claim 5 , wherein portions of respective locally attached storage devices are collectively represented as one namespace to the host device executing the virtual machine.

7. The storage bridge device of claim 1 , wherein the storage device is identified based on a network port on which the first network protocol packet is received.

8. The storage bridge device of claim 5 , wherein the virtual machine is one of a plurality of virtual machines executing in the host device, and each of the plurality of virtual machines is assigned a respective virtual function to access the one or more locally attached storage devices having namespaces mapped according to network protocols.

9. The storage bridge device of claim 5 , wherein the storage bridge device represents the one or more locally attached storage devices having namespaces mapped according to network protocols as a logical disk to the host device executing the virtual machine.

10. The storage bridge device of claim 5 , wherein the storage bridge device represents the storage device as a plurality of namespaces to the host device executing the virtual machine.

11. The storage bridge device of claim 1 , wherein the storage bridge device is part of first remote storage server, and

wherein the storage bridge device includes a remote direct memory access (RDMA) module to access a second remote storage device having namespaces mapped according to network protocols coupled to the network.

12. The storage bridge device of claim 1 , wherein the first network protocol is Transmission Control Protocol (TCP), and the second network protocol is User Datagram Protocol (UDP).

13. A computer-implemented method performed by a storage bridge device, comprising:

receiving, at a first interface coupled to a network, a first network protocol packet including a first request from a host device to read or write data in a set of one or more locally attached storage devices implementing a first namespace mapped to a first network protocol and a second namespace mapped to a second network protocol that is different than the first network protocol;

selecting, based at least in part on which namespace is mapped to which network protocol, a namespace in the set of one or more locally attached storage devices that is mapped to a network protocol of the first network protocol packet;

generating a bus protocol transaction including the first request according to a bus protocol of a storage device implementing the selected namespace; and

transmitting the bus protocol transaction via a second interface to the selected namespace.

14. The computer-implemented method of claim 13 , further comprising:

duplicating the bus protocol transaction including the first request; and

transmitting the duplicate bus protocol transaction via the second interface to another storage device that is also mapped to the network protocol of the first network protocol packet.

15. The computer-implemented method of claim 13 , further comprising:

duplicating the bus protocol transaction including the first request; and

transmitting the duplicate bus protocol transaction via the second interface to another location in the storage device implementing the selected namespace.

16. The computer-implemented method of claim 13 , further comprising:

receiving, at the first interface via a network, a second network protocol packet including a second request to read or write data; and

transmitting the second request to a remote storage device via the first interface.

17. The computer-implemented method of claim 13 ,

wherein the first request is sent by a virtual machine executing on the host device to a virtual function implemented by the storage bridge device and assigned to the virtual machine.

18. The computer-implemented method of claim 17 ,

wherein portions of respective locally attached storage devices are collectively represented as one namespace to the host device executing the virtual machine.

19. The computer-implemented method of claim 13 , wherein the first network protocol is User Datagram Protocol (UDP), and the second network protocol is Transmission Control Protocol (TCP).

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 7, 2022
From: BSHARA, NAFEA; MATUSHEVSKY, ALEXANDER; MACHULSKY, GEORGY; SHALEV, LEAH; GROSS, SAAR
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 058915/0596 →
Continuity (2)
Division 16226529 · Dec 19, 2018
Continuation 14869700 · Sep 29, 2015
References Cited (24)
US 8645508B1 · Dickinson et al. · 2014 [cited by applicant]
US 8958293B1 · Anderson · 2015 [cited by applicant]
US 9804988B1 · Ayoub et al. · 2017 [cited by applicant]
US 10075524B1 · Bshara et al. · 2018 [cited by applicant]
US 10162793B1 · Bshara et al. · 2018 [cited by applicant]
US 11249937B1 · Bshara et al. · 2022 [cited by applicant]
US 20040233910A1 · Chen et al. · 2004 [cited by applicant]
US 20050129128A1 · Chou · 2005 [cited by examiner]
US 20130133061A1 · Fainkichen · 2013 [cited by examiner]
US 20150006663A1 · Huang · 2015 [cited by applicant]
US 20150029848A1 · Jain · 2015 [cited by applicant]
US 20160246521A1 · Dewitt · 2016 [cited by examiner]
“Intel® Arria® 10 Avalon®-ST Interface with SR-IOV PCle* Solutions User Guide,” Intel, Mar. 15, 2017, 133 Pages. [cited by applicant]
Kay R., “Storage Virtualization,” Computerworld, Oct. 6, 2008, pp. 1-4. <URL: https://www.computerworld.com/article/2551439/data-center/storage-virtualization.html>. [cited by applicant]
U.S. Final Office Action dated Jan. 4, 2021 issued in U.S. Appl. No. 16/226,529. [cited by applicant]
U.S. Final Office Action mailed Jan. 19, 2018 issued in U.S. Appl. No. 14/869,700, 15 pages. [cited by applicant]
U.S. Notice of Allowance dated Aug. 15, 2018 issued in U.S. Appl. No. 14/869,700, 14 pages. [cited by applicant]
U.S. Notice of Allowance dated May 21, 2018 issued in U.S. Appl. No. 14/869,700, 19 pages. [cited by applicant]
U.S. Notice of Allowance dated Oct. 6, 2021 issued in U.S. Appl. No. 16/226,529, 14 Pages. [cited by applicant]
U.S. Office Action dated Jun. 15, 2017 issued in U.S. Appl. No. 14/869,700, 13 pages. [cited by applicant]
U.S. Office Action dated Jun. 26, 2020 issued in U.S. Appl. No. 16/226,529, 13 Pages. [cited by applicant]
U.S. Office Action dated Mar. 22, 2021 issued in U.S. Appl. No. 16/226,529, 11 Pages. [cited by applicant]
U.S. Restriction Requirement dated Apr. 29, 2020 for U.S. Appl. No. 16/226,529, 5 Pages. [cited by applicant]
13.2. “Using SR-IOV” Posted online. <URL: https://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/Virtualization_Deployment_and_Administration_Guide/sect-Virtualization_Host_Configuration_and_Guest_Inst… [cited by applicant]