IP Library › Granted Patent US 11,740,804
Granted Patent B1
US 11,740,804 · App. 17/695,012 · Granted Aug 29, 2023

System and method for performing data striping

Inventor: Abel Alkon Gordon (Sunnyvale, CA)
Assignee: LIGHTBITS LABS LTD.
G06F3/0619G06F3/067G06F3/0634G06F3/0635G06F3/0659G06F3/0683
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,740,804
App. No.
17/695,012
Granted
Aug 29, 2023
Kind
B1
Abstract

A system and method for performing data striping and data protection, may include: obtaining, in a network interface controller (NIC) from a host processor, a command to store data in a storage system, wherein the host processor is connected to a network through the NIC; dividing, by the NIC, the data into a plurality of portions; mapping, by the NIC, each of the plurality of portions to at least one of a plurality of storage targets, wherein the plurality of storage targets are connected to the NIC over the network; and, transferring, by the NIC, each of the plurality of portions to the mapped at least one storage target.

Claims (73)

1. A method for performing data striping, the method comprising:

obtaining, in a network interface controller (NIC) from a host processor, a command to store data in a storage system, wherein the host processor is connected to a network through the NIC;

dividing, by the NIC, the data into a plurality of portions;

mapping, by the NIC, each of the plurality of portions to at least one of a plurality of storage targets, wherein the plurality of storage targets are connected to the NIC over the network;

transferring, by the NIC, each of the plurality of portions to the mapped at least one storage target; and

in case one of the plurality of storage targets fails, reconstructing lost data transparently from the host processor.

2. The method of claim 1 , wherein the NIC communicates with the plurality of storage targets over multiple paths, and wherein each of the paths is selected from the list consisting of: non-volatile memory express (NVMe) or NVMe over Fabrics (NVMeOF).

3. The method of claim 1 , comprising, implementing, by the NIC, data protection mechanism on the stored data.

4. The method of claim 1 , wherein reconstructing the lost data is performed when storage target cannot be accessed.

5. The method of claim 1 , wherein reconstructing the lost data comprises:

reading, by the NIC, data that is required for the reconstruction from other storage targets of the plurality of storage targets;

reconstructing the lost data using the read data; and

transferring, by the NIC, the reconstructed data to the host processor.

6. The method of claim 1 , wherein reconstructing the lost data comprises:

sending, by the NIC, a read-reconstruct command to a selected storage target of the plurality of storage targets;

reading, by the selected storage target, data that is required for the reconstruction from other storage targets of the plurality of storage targets;

reconstructing, by the selected storage target, the lost data using the read data;

transferring, by the selected storage target, the reconstructed data to the NIC; and

transferring, by the NIC, the reconstructed data to the host.

7. The method of claim 1 , comprising:

notifying, by the NIC, a management software of the failed storage target;

obtaining, by the NIC, from the management software an allocation of a new storage target;

reconstructing data of the failed storage target on the new storage target; and

continuing using the new storage target instead of the failed storage target.

8. The method of claim 7 , wherein reconstructing data of the failed storage target on the new storage target is performed by the NIC.

9. The method of claim 7 , wherein reconstructing data of the failed storage target on the new storage target is performed by:

sending, by the NIC, a rebuild command to a selected storage target of the plurality of storage targets;

reconstructing data of the failed storage target on the new storage target by the selected storage target; and

notifying the NIC, by the selected storage target, that the data is reconstructed on the new storage target.

10. A method for performing data striping, the method comprising:

obtaining, in a network interface controller (NIC) from a host processor, a command to store data in a storage system, wherein the host processor is connected to a network through the NIC;

dividing, by the NIC, the data into a plurality of portions;

mapping, by the NIC, each of the plurality of portions to at least one of a plurality of storage targets, wherein the plurality of storage targets are connected to the NIC over the network;

transferring, by the NIC, each of the plurality of portions to the mapped at least one storage target;

obtaining, by the NIC, a read command from the host processor;

retrieving, by the NIC, the portions from the plurality of storage targets; and

transferring the portions to the host processor.

11. A network interface controller (NIC) comprising:

a memory;

a logic design configured to:

connect a host processor to a network;

obtain from the host processor, a read or a write command;

wherein if the command is a write command, the logic design is configured to:

divide the data into a plurality of portions;

map each of the plurality of portions to at least one of a plurality of storage targets, wherein the plurality of storage targets are connected to the NIC over the network; and,

transfer each of the plurality of portions to the mapped at least one storage target, and

if the command is a read command, the logic design is configured to:

read the portions from the plurality of storage targets; and

transfer the portions to the host processor.

12. The NIC of claim 11 , wherein the logic design is configured to communicate with the plurality of storage targets over multiple paths, and wherein each of the paths is selected from the list consisting of: non-volatile memory express (NVMe) or NVMe over Fabrics (NVMeOF).

13. The NIC of claim 11 , the logic design is configured to implement data protection mechanism on the stored data.

14. The NIC of claim 11 , the logic design is configured to, in case one of the plurality of storage targets fails, reconstruct lost data transparently from the host processor.

15. The NIC of claim 14 , wherein the logic design is configured to reconstruct the lost data when storage target cannot be accessed.

16. The NIC of claim 14 , wherein the logic design is configured to reconstruct the lost data by:

reading data that is required for the reconstruction from other storage targets of the plurality of storage targets;

reconstructing the lost data using the read data; and

transferring the reconstructed data to the host processor.

17. The NIC of claim 14 , wherein the logic design is configured to reconstruct the lost data by:

sending, by the NIC, a read-reconstruct command to a selected storage target of the plurality of storage targets;

reading, by the selected storage target, data that is required for the reconstruction from other storage targets of the plurality of storage targets;

reconstructing, by the selected storage target, the lost data using the read data;

transferring, by the selected storage target, the reconstructed data to the NIC; and

transferring, by the NIC, the reconstructed data to the host.

18. The NIC of claim 14 , the logic design is configured to:

notify a management software of the failed storage target;

obtain from the management software an allocation of a new storage target;

reconstruct data of the failed storage target on the new storage target; and

continue using the new storage target instead of the failed storage target.

19. The NIC of claim 18 , wherein the logic design is configured to reconstruct data of the failed storage target on the new storage target is by:

sending, a rebuild command to a selected storage target of the plurality of storage targets;

wherein the selected storage target is configured to:

reconstruct data of the failed storage target on the new storage target; and

notify the NIC that the data is reconstructed on the new storage target.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 16, 2022
From: GORDON, ABEL ALKON
To: LIGHTBITS LABS LTD.
Reel/Frame 059275/0134 →
Cited By (1)
US 12,481,429