IP Library › Granted Patent US 8,892,820
Granted Patent B2
US 8,892,820 · App. 12/981,294 · Granted Nov 18, 2014

Method and system for local caching of remote storage data

Inventors: Robert E. Ober (San Jose, CA); Bret S. Weber (Wichita, KS); Robert W. Warren, Jr. (Loveland, CO)
Assignee: NetApp, Inc.
G06F12/0868H04L67/2842H04L67/1097H04L67/289G06F2212/264H04L49/9073H04L49/90
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 8,892,820
App. No.
12/981,294
Granted
Nov 18, 2014
Kind
B2
Abstract

Disclosed is a storage system. A network interface device (NIC) receives network storage commands from a host. The NIC may cache the data to/from the storage commands in a solid-state disk. The NIC may respond to future network storage command by supplying the data from the solid-state disk rather than initiating a network transaction.

Claims (52)

1. A method of communicating with a storage server across a network, comprising:

receiving, from a first host, at a network interface device, a first read from network storage command directed to a location in said storage server and a second read from network storage command directed to said location in said storage server;

in response to the first read from network storage command, retrieving, via said network, data requested by said first read from network storage command from said storage server;

in response to the first read from network storage command, storing, by said network interface device, said data in solid state storage coupled to said network interface device;

in response to said second read from network storage command, retrieving said data from said solid state storage instead of retrieving said data from said storage server by said network interface device;

receiving, from a second host, a write to network storage command identifying a write data segment;

storing a copy of the write data segment to said solid state storage;

transmitting a first write command causing the write data segment to be written to said storage server; and

when it is determined that said storage server failed to successfully write the write data segment in response to said first write command, transmitting a second write command causing the write data segment to be written to said storage server using the copy of the write data segment stored in said solid state storage.

2. The method of claim 1 , further comprising:

tagging an entry in said solid state storage associated with said data with a virtual machine identifier.

3. The method of claim 1 , further comprising:

tagging an entry in said solid state storage associated with said data with a logical unit identifier.

4. The method of claim 1 , further comprising:

receiving a third read from network storage command; and, overwriting said data in said solid state storage with second data requested by said third read from network storage command, from said storage server.

5. The method of claim 1 , further comprising:

receiving a write to local storage command; and, overwriting said data in said solid state storage with second data associated with said write to local storage command.

6. A method of communicating with a storage server across a network, comprising:

receiving, from a host, at a network interface device, a write to network storage command directed to a location in said storage server and a read from network storage command directed to said location in said storage server;

in response to the write to network storage command, sending, via said network, data written by said write to network storage command to said storage server;

in response to the write to network storage command, storing, by said network interface device, a copy of said data in solid state storage coupled to said network interface device;

when it is determined that said storage server failed to successfully write said data in response to the sending, resending said data to said storage server using the copy of said data stored in the solid state storage; and,

in response to said read from network storage command, retrieving said data from said solid state storage instead of retrieving said data from said storage server by said network interface device.

7. The method of claim 6 , further comprising:

tagging an entry in said solid state storage associated with said data with a virtual machine identifier.

8. The method of claim 6 , further comprising:

tagging an entry in said solid state storage associated with said data with a logical unit identifier.

9. The method of claim 6 , further comprising:

receiving a second read from network storage command; and, overwriting said data in said solid state storage with second data requested by said second read from network storage command, from said storage server.

10. A network interface device, comprising:

a first interface configured to receive a first block storage command directed to a storage server from a host;

a second interface configured to send said first block storage command to said storage server via a network, and to receive retrieved data associated with said first block storage command from said storage server;

a solid state storage controller configured to store said retrieved data in solid state storage and to retrieve said retrieved data from said solid state storage in response to a second block storage command,

wherein said network interface device is operable to:

intercept a subsequent storage command directed to said storage device and satisfy the subsequent storage command by retrieving data from said solid state storage; and

use the solid state storage to send a second write command to said storage device when it is determined that a first write command to said storage device failed.

11. The network interface device of claim 10 , wherein said second interface is configured to send iSCSI commands.

12. The network interface device of claim 10 , wherein said second interface is configured to send fiber channel (FC) commands.

13. The network interface device of claim 10 , wherein said second interface is configured to send fiber channel over Ethernet (FCoE) commands.

14. The network interface device of claim 10 , wherein said first interface is configured to receive PCI commands and said second interface is configured to send block storage commands over an internet protocol (IP) network.

15. The network interface device of claim 10 , wherein said solid state storage controller is further configured to overwrite said retrieved data in said solid state storage with write data received from said first interface and to retrieve said write data from said solid state storage in response to a third block storage command.

16. A non-transitory computer readable medium having information stored thereon that describes a block of an integrated circuit network interface device, the integrated circuit network interface device, comprising:

a first interface configured to receive a first block storage command directed to a storage server from a host;

a second interface configured to send said first block storage command to said storage server via a network, and to receive retrieved data associated with said first block storage command from said storage server;

a solid state storage controller configured to store said retrieved data in solid state storage and to retrieve said retrieved data from said solid state storage in response to a second block storage command,

wherein the information includes instructions operable to:

intercept a subsequent storage command directed to said storage device and satisfy the subsequent storage command by retrieving data from said solid state storage, and

use the solid state storage to send a repeat write command to said storage server when it is determined that a previous write command to said server failed.

17. The non-transitory computer readable medium of claim 16 , wherein said second interface is configured to send iSCSI commands.

18. The non-transitory computer readable medium of claim 16 , wherein said second interface is configured to send fiber channel (FC) commands.

19. The non-transitory computer readable medium of claim 16 , wherein said second interface is configured to send fiber channel over Ethernet (FCoE) commands.

20. The non-transitory computer readable medium of claim 16 , wherein said first interface is configured to receive PCI commands and said second interface is configured to send block storage commands over an internet protocol (IP) network.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 27, 2011
From: LSI CORPORATION
To: NETAPP, INC.
Reel/Frame 026659/0883 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 26, 2011
From: OBER, ROBERT E.; WEBER, BRET S.; WARREN, JR., ROBERT W.
To: LSI CORPORATION
Reel/Frame 026190/0104 →
Continuity (2)
Provisional Application 61315528 · Mar 19, 2010
Related Publication 20110231613A1 · Sep 22, 2011