Method and system for local caching of remote storage data
First Claim
Patent Images
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 Assignments
0 Petitions
Accused Products
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.
11 Citations
20 Claims
-
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. - View Dependent Claims (2, 3, 4, 5)
-
-
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. - View Dependent Claims (7, 8, 9)
-
-
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. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
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. - View Dependent Claims (17, 18, 19, 20)
-
Specification