Accessing an external storage through a NIC

US11736565B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11736565-B2
Application numberUS-202117145321-A
CountryUS
Kind codeB2
Filing dateJan 9, 2021
Priority dateSep 28, 2020
Publication dateAug 22, 2023
Grant dateAug 22, 2023

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.

Some embodiments provide a method of providing distributed storage services to a host computer from a network interface card (MC) of the host computer. At the NIC, the method accesses a set of one or more external storages operating outside of the host computer through a shared port of the NIC. In some embodiments, the method accesses the external storage set by using a network fabric storage driver that employs a network fabric storage protocol to access the external storage set. The method presents the external storage as a local storage of the host computer to a set of programs executing on the host computer. In some embodiments, the method presents the local storage by using a storage emulation layer on the NIC to create a local storage construct that presents the set of external storages as a local storage of the host computer.

First claim

Opening claim text (preview).

We claim: 1. A non-transitory machine readable medium storing a program for emulating a local storage for a set of one or more processes executing on a host computer from a network interface card (NIC) of the host computer, the NIC comprising a processing unit and a hardware offload unit (HOU), the program for execution by the processing unit of the NIC, the program comprising sets of instructions for: accessing, through a network fabric storage driver, an external storage operating outside of the host computer; and using a module operating in a kernel space of the program to identify an HOU driver for processing commands received from the external storage through the network fabric storage driver, said HOU driver (i) using the HOU of the NIC to convert the received commands from a network fabric storage driver format to a local storage driver format, in order to reduce load on the processing unit of the NIC, and (ii) providing the received commands to a local bus of the host computer for passing to the set of processes of the host computer. 2. The non-transitory machine readable medium of claim 1 , wherein the program further comprises a set of instructions for using the kernel-space module to identify the network fabric storage driver to process commands that the HOU driver passes from the set of processes to the local storage, the HOU driver using the HOU to convert egress commands from the local storage driver format of the local storage to the network fabric storage driver format and providing the converted commands to the kernel-space module for passing to the network fabric storage driver. 3. The non-transitory machine readable medium of claim 2 , wherein the set of instructions for using the kernel-space module to identify the network fabric storage driver comprises a set of instructions to identify the network fabric storage driver from a plurality of network fabric storage drivers. 4. The non-transitory machine readable medium of claim 3 , wherein the plurality of network fabric storage drivers comprises an NVMe (non-volatile memory express) RDMA (remote direct memory access) driver and an NVMe TCP (transport control plane) driver. 5. The non-transitory machine readable medium of claim 2 , wherein the kernel-space module serves as a bridge between the HOU driver and a plurality of network fabric storage drivers. 6. The non-transitory machine readable medium of claim 1 , wherein the local bus is a PCIe (peripheral component interconnect express) and the local storage driver format is a PCIe format. 7. The non-transitory machine readable medium of claim 6 , wherein the local storage driver is an NVMe (non-volatile memory express) PCIe driver, and the emulated local storage is a emulated local NVMe-PCIe storage. 8. The non-transitory machine readable medium of claim 7 , wherein different NVMe-PCIe drivers are used to read from and to write to different external storages that are emulated, through the NIC, as different local NVMe-PCIe storages for the set of processes. 9. The non-transitory machine readable medium of claim 7 , wherein the host computer executes a multi-path module that identifies and uses a plurality of paths to access one external storage through a plurality of different NVMe-PCIe drivers of the host computer. 10. The non-transitory machine readable medium of claim 6 , wherein the host computer executes a virtual device emulation module that presents, as one local storage, a plurality of external storages that are accessed through a plurality of NVMe-PCIe drivers. 11. The non-transitory machine readable medium of claim 10 , wherein the host computer executes a distributed storage service module that performs distributed storage services that account for the set of processes lack of knowledge regarding plurality of external storages being used to emulate the local storage. 12. The non-transitory machine readable medium of claim 1 , wherein the HOU driver converts commands to emulate the external storage as a local virtual disk. 13. The non-transitory machine readable medium of claim 1 , wherein the set of processes comprise at least a set of processes of an operating system of the host computer or a set of processes of a hypervisor of the host computer. 14. The non-transitory machine readable medium of claim 1 , wherein the program is an operating system executing on the NIC or a hypervisor executing on the NIC. 15. A method for emulating a local storage for a set of one or more processes executing on a host computer from a network interface card (NIC) of the host computer, the NIC comprising a processing unit and a hardware offload unit (HOU), the method comprising: at a program executed by the processing unit of the NIC: accessing, through a network fabric storage driver, an external storage operating outside of the host computer; and using a module operating in a kernel space of the program to identify an HOU driver for processing commands received from the external storage through the network fabric storage driver, said HOU driver (i) using the HOU of the NIC to convert the received commands from a network fabric storage driver format to a local storage driver format, and (ii) providing the received commands to a local bus of the host computer for passing to the set of processes of the host computer. 16. The method of claim 15 further comprising using the kernel-space module to identify the network fabric storage driver to process commands that the HOU driver passes from the set of processes to the local storage, the HOU driver using the HOU to convert egress commands from the local storage driver format of the local storage to the network fabric storage driver format and providing the converted commands to the kernel-space module for passing to the network fabric storage driver. 17. The method of claim 16 , wherein using the kernel-space module to identify the network fabric storage driver comprises identifying the network fabric storage driver from a plurality of network fabric storage drivers. 18. The method of claim 17 , wherein the plurality of network fabric storage drivers comprises an NVMe (non-volatile memory express) RDMA (remote direct memory access) driver and an NVMe TCP (transport control plane) driver. 19. The method of claim 16 , wherein the kernel-space module serves as a bridge between the HOU driver and a plurality of network fabric storage drivers. 20. The method of claim 15 , wherein the local bus is a PCIe (peripheral component interconnect express) and the local storage driver format is a PCIe format.

Assignees

Inventors

Classifications

  • Buffering arrangements · CPC title

  • Switch interfaces, e.g. port details · CPC title

  • Protocols for games, networked simulations or virtual reality · CPC title

  • for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS] · CPC title

  • on a serial bus, e.g. I2C bus, SPI bus (on daisy chain buses G06F13/4247) · 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 US11736565B2 cover?
Some embodiments provide a method of providing distributed storage services to a host computer from a network interface card (MC) of the host computer. At the NIC, the method accesses a set of one or more external storages operating outside of the host computer through a shared port of the NIC. In some embodiments, the method accesses the external storage set by using a network fabric storage d…
Who is the assignee on this patent?
Vmware Inc
What technology area does this patent fall under?
Primary CPC classification H04L67/1097. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Aug 22 2023 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 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).