IP Library Granted Patent US 10,223,315
Granted Patent B2
US 10,223,315 · App. 15/708,320 · Granted Mar 5, 2019

Front end traffic handling in modular switched fabric based data storage systems

Inventors: Jason Breakstone (Broomfield, CO); Christopher R. Long (Colorado Springs, CO); James Scott Cannata (Denver, CO)
Assignee: Liqid Inc.
G06F13/4022G06F3/0607G06F3/0635G06F3/0685G06F11/2007G06F11/2012G06F11/2017G06F11/2053G06F11/2069G06F13/4068G06F13/4234G06F13/4282H04L41/0893H04L49/356H04L67/1097H04L69/40G06F2201/85G06F2213/0026
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 10,223,315
App. No.
15/708,320
Granted
Mar 5, 2019
Kind
B2
Abstract

Systems, methods, apparatuses, and software for data storage systems are provided herein. In one example, a data storage system is provided that includes storage drives each comprising a PCIe interface, and configured to store data and retrieve the data stored on associated storage media responsive to data transactions received over a switched PCIe fabric. The data storage system includes processors configured to each manage only an associated subset of the storage drives over the switched PCIe fabric. A first processor is configured to identify first data packets received over a network interface associated with the first processor within a network buffer of the first processor as comprising a storage operation associated with at least one of the plurality of storage drives managed by a second processor, and responsively transfer the first data packets into a network buffer of the second processor.

Claims (50)

1. A data storage system, comprising:

a plurality of processors configured to each manage an associated subset of a plurality of storage devices coupled over a Peripheral Component Interconnect Express (PCIe) fabric;

at least one processor configured to:

receive data packets comprising storage operations over a network interface associated with the at least one processor;

identify when ones of the storage operations are directed to at least one of the plurality of storage devices managed by a target processor; and

transfer over the PCIe fabric associated data packets comprising the ones of the storage operations into a network buffer of the target processor for handling of the ones of the storage operations by the target processor.

2. The data storage system of claim 1 , comprising:

the target processor configured to process the associated data packets up a network stack of the target processor for handling of the ones of the storage operations.

3. The data storage system of claim 1 , wherein the network buffer of the target processor comprises a layer 2 network buffer of a network interface associated with the target processor.

4. The data storage system of claim 1 , wherein the associated data packets comprise NVM Express (NVMe) data packets for one or more NVMe storage operations.

5. The data storage system of claim 1 , wherein the associated data packets comprise iSCSI (Internet Small Computer System Interface) data packets for one or more iSCSI storage operations.

6. The data storage system of claim 5 , comprising:

the at least one processor further configured to identify when the ones of the storage operations are directed to at least the one of the plurality of storage devices managed by the target processor by at least processing a logical block address (LBA) and an iSCSI target identifier of an iSCSI header associated with the iSCSI data packets.

7. The data storage system of claim 1 , comprising:

the at least one processor further configured to:

receive data frames comprising further storage operations over an associated NVM Express (NVMe) interface;

identify when ones of the further storage operations are directed to one or more of the plurality of storage devices managed by the target processor; and

transfer over the PCIe fabric associated data frames comprising the ones of the further storage operations into an NVMe buffer of the target processor for handling of the ones of the further storage operations by the target processor.

8. The data storage system of claim 1 , wherein network interfaces associated with the at least one processor and the target processor have at least one different Internet Protocol (IP) address associated with an Internet Small Computer System Interface (iSCSI) portal group; and comprising:

the at least one processor configured to identify further data packets as associated with the iSCSI portal group and associated with the at least one of the plurality of storage devices managed by the target processor, and responsively transfer the further data packets for handling by the target processor associated with the iSCSI portal group.

9. The data storage system of claim 1 , comprising:

the at least one processor configured to transfer the associated data packets into the network buffer of the target processor over the PCIe fabric using a PCIe address space shared at least among the at least one processor and the target processor.

10. A method of operating a data storage system, the method comprising:

in a first processor, receiving data packets comprising storage operations over a network interface associated with the first processor;

in the first processor, identifying when ones of the storage operations are directed to storage devices managed by a second processor coupled to the first processor over a Peripheral Component Interconnect Express (PCIe) fabric; and

in the first processor, transferring over the PCIe fabric associated data packets comprising the ones of the storage operations into a network buffer of the second processor for handling of the ones of the storage operations by the second processor with one or more storage devices coupled over the PCIe fabric.

11. The method of claim 10 , further comprising:

in the second processor, processing the associated data packets up a network stack of the second processor for handling of the ones of the storage operations.

12. The method of claim 10 , wherein the network buffer of the second processor comprises a layer 2 network buffer of a network interface associated with the second processor.

13. The method of claim 10 , wherein the associated data packets comprise NVM Express (NVMe) data packets for one or more NVMe storage operations.

14. The method of claim 10 , wherein the associated data packets comprise iSCSI (Internet Small Computer System Interface) data packets for one or more iSCSI storage operations.

15. The method of claim 14 , further comprising:

in the first processor, identifying when the ones of the storage operations are directed to the storage devices managed by the second processor by at least processing a logical block address (LBA) and an iSCSI target identifier of an iSCSI header associated with the iSCSI data packets.

16. The method of claim 10 , further comprising, in the first processor:

receiving data frames comprising further storage operations over an associated NVM Express (NVMe) interface;

identifying when ones of the further storage operations are directed to the storage devices managed by the second processor; and

transferring over the PCIe fabric associated data frames comprising the ones of the further storage operations into an NVMe buffer of the second processor for handling of the ones of the further storage operations by the second processor.

17. The method of claim 10 , wherein network interfaces associated with the first processor and the second processor have at least one different Internet Protocol (IP) address associated with an Internet Small Computer System Interface (iSCSI) portal group; and further comprising:

in the first processor, identifying further data packets as associated with the iSCSI portal group and associated with the storage devices managed by the second processor, and responsively transferring the further data packets for handling by the second processor associated with the iSCSI portal group.

18. The method of claim 10 , further comprising:

in the first processor, transferring the associated data packets into the network buffer of the second processor over the PCIe fabric using a PCIe address space shared at least among the at the first processor and the second processor.

19. A data storage control system, comprising:

one or more non-transitory computer readable storage media;

a processing system operatively coupled with the one or more non-transitory computer readable storage media; and

a data storage service comprising program instructions stored on the one or more non-transitory computer readable storage media that, based on being read and executed by the processing system, direct the processing system to at least:

receive data packets comprising storage operations over a network interface; and

based at least on ones of the storage operations identified as directed to storage devices managed by a target processor coupled over a Peripheral Component Interconnect Express (PCIe) fabric, transferring over the PCIe fabric associated data packets comprising the ones of the storage operations into a network buffer of the target processor for handling of the ones of the storage operations up a network stack by the target processor with one or more storage devices coupled over the PCIe fabric.

20. The data storage control system of claim 19 , wherein the associated data packets comprise iSCSI (Internet Small Computer System Interface) data packets for one or more iSCSI storage operations; and

comprising further program instructions, that when executed by the processing system, direct the processing system to at least:

identify when the ones of the storage operations are directed to at least the storage devices managed by the target processor by at least processing a logical block address (LBA) and an iSCSI target identifier of an iSCSI header associated with the iSCSI data packets.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Apr 16, 2021
From: CANADIAN IMPERIAL BANK OF COMMERCE
To: LIQID INC.
Reel/Frame 055953/0860 →
SECURITY INTEREST Recorded Jan 5, 2021
From: LIQID INC.
To: HORIZON TECHNOLOGY FINANCE CORPORATION
Reel/Frame 054900/0539 →
SECURITY INTEREST Recorded Oct 3, 2019
From: LIQID INC.
To: CANADIAN IMPERIAL BANK OF COMMERCE
Reel/Frame 050630/0636 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 19, 2017
From: BREAKSTONE, JASON; LONG, CHRISTOPHER R.; CANNATA, JAMES SCOTT
To: LIQID INC.
Reel/Frame 043621/0924 →
Continuity (13)
Continuation 14747450 · Jun 23, 2015
Provisional Application 62018090 · Jun 27, 2014
Provisional Application 62015990 · Jun 23, 2014
Provisional Application 62015977 · Jun 23, 2014
Provisional Application 62015967 · Jun 23, 2014
Provisional Application 62015947 · Jun 23, 2014
Provisional Application 62015942 · Jun 23, 2014
Provisional Application 62015939 · Jun 23, 2014
Provisional Application 62015936 · Jun 23, 2014
Provisional Application 62015931 · Jun 23, 2014
Provisional Application 62015927 · Jun 23, 2014
Provisional Application 62015910 · Jun 23, 2014
Related Publication 20180004615A1 · Jan 4, 2018
Cited By (1)
US 12,524,364