Accessing remote storage devices using a local bus protocol

US9696942B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9696942-B2
Application numberUS-201414215097-A
CountryUS
Kind codeB2
Filing dateMar 17, 2014
Priority dateMar 17, 2014
Publication dateJul 4, 2017
Grant dateJul 4, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A method for data storage includes configuring a driver program on a host computer to receive commands in accordance with a protocol defined for accessing local storage devices connected to a peripheral component interface bus of the host computer. When the driver program receives, from an application program running on the host computer a storage access command in accordance with the protocol, specifying a storage transaction, a remote direct memory access (RDMA) operation is performed by a network interface controller (NIC) connected to the host computer so as to execute the storage transaction via a network on a remote storage device.

First claim

Opening claim text (preview).

The invention claimed is: 1. A method for data storage, comprising: exposing a storage interface of a network interface controller (NIC) on a peripheral component interface bus of the host computer; configuring the NIC to handle memory access commands in accordance with a protocol defined for accessing local storage devices, relating to addresses within a specific address range; receiving in the NIC, from an application program running on the host computer, a storage access command in accordance with the protocol, the command specifying a storage transaction; and responsively to the received storage access command, initiating, by the NIC, a remote direct memory access (RDMA) operation to execute the storage transaction via a network on a remote storage device. 2. The method according to claim 1 , wherein the protocol is an NVM Express protocol. 3. The method according to claim 1 , wherein the remote storage device comprises a solid-state drive (SSD). 4. The method according to claim 1 , wherein the host computer has a host memory and the remote storage device has a device memory, wherein receiving the command comprises posting the command in a submission queue in the host memory, and wherein initiating the RDMA operation comprises writing a mirror of the submission queue, via the network, to the device memory. 5. The method according to claim 4 , wherein initiating the RDMA operation comprises writing, from the NIC via the network, to a doorbell register of the remote storage device, so as to cause the remote storage device to read the command from the mirror of the submission queue and carry out the storage transaction responsively to the command. 6. The method according to claim 4 , wherein the storage access command comprises a write command to be carried out by the host computer, and wherein writing the mirror comprises selecting a buffer in the device memory and incorporating a pointer to the buffer in the write command in the mirror of the submission queue, and wherein initiating the RDMA operation comprises invoking an RDMA write operation by the NIC to the selected buffer. 7. The method according to claim 4 , and comprising after the remote storage device has committed the storage transaction, receiving via the network from the remote storage device a completion notification, written by the NIC connected to the host computer to a completion queue in the host memory, in accordance with the protocol defined for accessing local storage devices. 8. The method according to claim 7 , wherein receiving the completion notification comprises detecting, in a further NIC connected to the remote storage device, a completion entry posted by the remote storage device, and transmitting the completion notification, in response to the detected completion entry, from the further NIC connected to the remote storage device to the NIC that is connected to the host computer. 9. The method according to claim 1 , wherein the storage access command comprises a read command to be carried out by the host computer, and wherein initiating the RDMA operation comprises invoking an RDMA write operation to be performed by the remote storage device via the NIC to a host memory of the host computer. 10. The method according to claim 1 , wherein the storage access command comprises a write command to be carried out by the host computer, and wherein initiating the RDMA operation comprises invoking an RDMA read operation to be performed by the remote storage device via the NIC from a host memory of the host computer. 11. The method according to claim 1 , wherein the storage access command comprises a scatter/gather list specifying a non-contiguous set of memory ranges in a host memory of the host computer, and wherein initiating the RDMA operation comprises mapping the memory ranges to a contiguous range of virtual memory in the NIC, and causing the remote storage device to execute the storage transaction with reference to the contiguous range. 12. The method according to claim 11 , wherein causing the remote storage device to execute the storage transaction comprises invoking an RDMA operation to be performed by the remote storage device with reference to the contiguous range of the virtual memory. 13. The method according to claim 11 , wherein the host computer has a host memory and the remote storage device has a device memory, and wherein causing the remote storage device to execute the storage transaction comprises mapping the contiguous range to a buffer in the device memory, for use by the remote storage device in the storage transaction. 14. Computing apparatus, comprising: a host memory; a central processing unit (CPU); a peripheral component interface bus connecting the host CPU to peripheral components; and a network interface controller (NIC), which is configured to expose a storage interface on the peripheral component interface bus, configured to receive, from processes running on the CPU, commands in accordance with a protocol defined for accessing local storage devices connected to the peripheral component interface bus, relating to addresses within a specific address range, and upon receiving a storage access command in accordance with the protocol defined for accessing local storage devices, to initiate a remote direct memory access (RDMA) operation instructing a storage server, via the network, to execute a storage transaction specified by the command. 15. The apparatus of claim 14 , wherein the NIC exposes on the peripheral component interface bus, both a NIC interface and the storage interface, each having a respective address range. 16. The method of claim 1 , wherein the NIC exposes on the peripheral component interface bus, both a NIC interface and the storage interface, each having a respective address range.

Assignees

Inventors

Classifications

  • Non-volatile semiconductor memory arrays · CPC title

  • In-line storage system · CPC title

  • Format or protocol conversion arrangements · CPC title

  • G06F3/0607Primary

    by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device · CPC title

  • being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9696942B2 cover?
A method for data storage includes configuring a driver program on a host computer to receive commands in accordance with a protocol defined for accessing local storage devices connected to a peripheral component interface bus of the host computer. When the driver program receives, from an application program running on the host computer a storage access command in accordance with the protocol,…
Who is the assignee on this patent?
Mellanox Technologies Ltd, Mellanox Technologies Ltd
What technology area does this patent fall under?
Primary CPC classification G06F3/0607. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jul 04 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).