IP Library › Granted Patent US 11,842,050
Granted Patent B2
US 11,842,050 · App. 17/506,857 · Granted Dec 12, 2023

System and method for enabling smart network interface card (smartNIC) access to local storage resources

Inventors: Boris Glimcher (Tel Aviv, IL); Amitai Alkalay (Kadima, IL)
Assignee: EMC IP Holding Company, LLC
G06F3/0611G06F3/0604G06F3/067G06F3/0659G06F3/0688
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,842,050
App. No.
17/506,857
Filed
Oct 21, 2021
Granted
Dec 12, 2023
Kind
B2
Art Unit
2132
USPC
711/154
Abstract

A method, computer program product, and computing system for deploying a storage processor of a storage system as a target of a non-volatile memory express (NVMe) over fabric (NVMe-oF) network. One or more NVMe storage devices coupled to the storage processor may be identified, thus defining one or more local NVMe storage devices. A smart network interface card may be coupled to the NVMe-oF network. The smart network interface card may be provided with access to the one or more local NVMe storage devices via the NVMe-oF network.

Claims (56)

1. A computer-implemented method, executed on a computing device, comprising:

deploying a storage processor of a host computing device of a storage system as a target of a plurality of non-volatile memory express (NVMe) over fabric (NVMe-oF) networks, including executing, by the storage processor, an NVMe-oF target driver, wherein the storage processor is configured to process data between one or more client electronic devices and a data array;

identifying one or more NVMe storage devices coupled to the storage processor via a PCIe bus of the storage processor, thus defining one or more local NVMe storage devices of the storage processor and forming at least a portion of the data array;

coupling a smart network interface card to the plurality of NVMe-oF networks, the smart network interface card being separate from the storage processor of the host computing device;

providing the smart network interface card with access to the one or more local NVMe storage devices via the plurality of NVMe-oF networks; and

configuring the plurality of NVMe-oF networks as separate networks for different traffic between:

the storage processor and one or more network-attached storage devices,

the storage processor and the smart network interface card, and

the smart network interface card and the one or more network attached storage devices.

2. The computer-implemented method of claim 1 , wherein providing the smart network interface card with access to the one or more local NVMe storage devices via the plurality NVMe-oF networks includes:

exposing, via the storage processor, the one or more local NVMe storage devices to the plurality of NVMe-oF networks.

3. The computer-implemented method of claim 2 , wherein providing the smart network interface card with access to the one or more local NVMe storage devices via the plurality of NVMe-oF networks includes:

limiting the exposure of the one or more local NVMe storage devices on the plurality of NVMe-oF networks to the smart network interface card.

4. The computer-implemented method of claim 1 , wherein providing the smart network interface card with access to the one or more local NVMe storage devices via the plurality of NVMe-oF networks includes:

offloading processing of one or more operations between the smart network card and the one or more local NVMe storage devices from one or more central processing units (CPUs) of the storage processor to a CPU of the smart network interface card.

5. The computer-implemented method of claim 4 , wherein offloading processing of one or more operations between the smart network card and the one or more local NVMe storage devices from one or more central processing units (CPUs) of the storage processor to a CPU of the smart network interface card includes one or more of:

processing NVMe-oF-to-local NVMe command translation via the CPU of the smart network interface card;

processing data between the smart network card and the one or more local NVMe storage devices via the CPU of the smart network interface card; and

processing doorbell operations on the one or more local NVMe storage devices via the CPU of the smart network interface card.

6. The computer-implemented method of claim 1 , wherein the smart network interface card and the one or more local NVMe storage devices are configured to be coupled to a peripheral component interface (PCIe) bus of the storage processor.

7. The computer-implemented method of claim 6 , wherein providing the smart network interface card with access to the one or more local NVMe storage devices via the plurality of NVMe-oF networks includes:

providing the smart network interface card with access to the one or more local NVMe storage devices via the plurality of NVMe-oF networks via peer-to-peer direct media access (DMA) between the smart network interface card and the one or more local NVMe storage devices.

8. A computer program product residing on a non-transitory computer readable medium having a plurality of instructions stored thereon which, when executed by a processor, cause the processor to perform operations comprising:

deploying a storage processor of a host computing device of a storage system as a target of a plurality of non-volatile memory express (NVMe) over fabric (NVMe-oF) networks, including executing, by the storage processor, an NVMe-oF target driver, wherein the storage processor is configured to process data between one or more client electronic devices and a data array;

identifying one or more NVMe storage devices coupled to the storage processor via a PCIe bus of the storage processor, thus defining one or more local NVMe storage devices of the storage processor and forming at least a portion of the data array;

coupling a smart network interface card to the plurality of NVMe-oF networks, the smart network interface card being separate from the storage processor of the host computing device;

providing the smart network interface card with access to the one or more local NVMe storage devices via the plurality of NVMe-oF networks; and

configuring the plurality of NVMe-oF networks as separate networks for different traffic between:

the storage processor and one or more network-attached storage devices,

the storage processor and the smart network interface card, and

the smart network interface card and the one or more network attached storage devices.

9. The computer program product of claim 8 , wherein providing the smart network interface card with access to the one or more local NVMe storage devices via the plurality of NVMe-oF networks includes:

exposing, via the storage processor, the one or more local NVMe storage devices to the plurality of NVMe-oF networks.

10. The computer program product of claim 9 , wherein providing the smart network interface card with access to the one or more local NVMe storage devices via the plurality NVMe-oF networks includes:

limiting the exposure of the one or more local NVMe storage devices on the plurality of NVMe-oF networks to the smart network interface card.

11. The computer program product of claim 8 , wherein providing the smart network interface card with access to the one or more local NVMe storage devices via the plurality of NVMe-oF networks includes offloading processing of one or more operations between the smart network card and the one or more local NVMe storage devices from one or more central processing units (CPUs) of the storage processor to a CPU of the smart network interface card.

12. The computer program product of claim 11 , wherein offloading processing of one or more operations between the smart network card and the one or more local NVMe storage devices from one or more central processing units (CPUs) of the storage processor to a CPU of the smart network interface card includes one or more of:

processing NVMe-oF-to-local NVMe command translation via the CPU of the smart network interface card;

processing data between the smart network card and the one or more local NVMe storage devices via the CPU of the smart network interface card; and

processing doorbell operations on the one or more local NVMe storage devices via the CPU of the smart network interface card.

13. The computer program product of claim 8 , wherein the smart network interface card and the one or more local NVMe storage devices are configured to be coupled to a peripheral component interface (PCIe) bus of the storage processor.

14. The computer program product of claim 13 , wherein providing the smart network interface card with access to the one or more local NVMe storage devices via the plurality of NVMe-oF networks includes:

providing the smart network interface card with access to the one or more local NVMe storage devices via the plurality of NVMe-oF networks via peer-to-peer direct media access (DMA) between the smart network interface card and the one or more local NVMe storage devices.

15. A computing system comprising:

a memory; and

a processor configured to deploy a storage processor of a host computing device of a storage system as a target of a plurality of non-volatile memory express (NVMe) over fabric (NVMe-oF) networks, including executing, by the storage processor, an NVMe-oF target driver, wherein the storage processor is configured to process data between one or more client electronic devices and a data array, wherein the processor is further configured to identify one or more NVMe storage devices coupled to the storage processor via a PCIe bus of the storage processor, thus defining one or more local NVMe storage devices of the storage processor and forming at least a portion of the data array, wherein the processor is further configured to couple a smart network interface card to the plurality of NVMe-oF networks, the smart network interface card being separate from the storage processor of the host computing device, and wherein the processor is further configured to provide the smart network interface card with access to the one or more local NVMe storage devices via the plurality of NVMe-oF networks; and the plurality of NVMe-oF networks being configured as separate networks for different traffic between: the storage processor and one or more network-attached storage devices; the storage processor and the smart network interface card, and the smart network interface card and the one or more network attached storage devices.

16. The computing system of claim 15 , wherein providing the smart network interface card with access to the one or more local NVMe storage devices via the plurality of NVMe-oF networks includes:

exposing, via the storage processor, the one or more local NVMe storage devices to the plurality of NVMe-oF networks.

17. The computing system of claim 15 , wherein providing the smart network interface card with access to the one or more local NVMe storage devices via the plurality of NVMe-oF networks includes:

limiting the exposure of the one or more local NVMe storage devices on the plurality of NVMe-oF networks to the smart network interface card.

18. The computing system of claim 15 , wherein providing the smart network interface card with access to the one or more local NVMe storage devices via the plurality of NVMe-oF networks includes offloading processing of one or more operations between the smart network card and the one or more local NVMe storage devices from one or more central processing units (CPUs) of the storage processor to a CPU of the smart network interface card.

19. The computing system of claim 18 , wherein offloading processing of one or more operations between the smart network card and the one or more local NVMe storage devices from one or more central processing units (CPUs) of the storage processor to a CPU of the smart network interface card includes one or more of:

processing NVMe-oF-to-local NVMe command translation via the CPU of the smart network interface card;

processing data between the smart network card and the one or more local NVMe storage devices via the CPU of the smart network interface card; and

processing doorbell operations on the one or more local NVMe storage devices via the CPU of the smart network interface card.

20. The computing system of claim 15 , wherein the smart network interface card and the one or more local NVMe storage devices are configured to be coupled to a peripheral component interface (PCIe) bus of the storage processor.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE'S NAME PREVIOUSLY RECORDED AT REEL: 057861 FRAME: 0929. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Oct 25, 2021
From: GLIMCHER, BORIS; ALKALAY, AMITAI
To: EMC IP HOLDING COMPANY, LLC
Reel/Frame 057906/0915 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 21, 2021
From: GLIMCHER, BORIS; ALKALAY, AMITAI
To: EMC CORPORATION
Reel/Frame 057861/0929 →
Continuity (1)
Related Publication 20230127200A1 · Apr 27, 2023