System and method for write-back cache in sparse volumes
First Claim
1. A method comprising:
- receiving at a first storage server, from a first client, first data to be written to a storage volume on a second storage server, the second storage server communicably coupled with the first storage server;
caching the first data in a sparse volume of the first storage server and indicating to the first client a successful write in response to the first data being cached in the sparse volume, wherein the sparse volume is a further storage volume that appears to the first client to be a complete replication of the storage volume, but does not contain all data from the storage volume;
maintaining client access to the first data in the sparse volume of the first storage server such that the existence of the sparse volume is transparent to the first client; and
sending the first data to the second storage server to be written to the storage volume.
1 Assignment
0 Petitions
Accused Products
Abstract
The techniques introduced here provide for a write-back sparse volume cache in a storage system. The write-back sparse volume cache is implemented by a first storage server that is connected to communicate with a second storage server that hosts the origin storage volume. The first storage server receives a write request from a client to write data to the origin storage volume. In response to receiving the write request, the first storage server writes the data to the sparse volume cache maintained by the first storage server and acknowledges to the client a successful write operation. The data is maintained in the sparse volume cache such that the presence of the data in the sparse volume cache is transparent to the client and subsequent requests for the written data are serviced by the first storage server from the sparse volume cache. The data can later be flushed to the origin storage volume.
21 Citations
30 Claims
-
1. A method comprising:
-
receiving at a first storage server, from a first client, first data to be written to a storage volume on a second storage server, the second storage server communicably coupled with the first storage server; caching the first data in a sparse volume of the first storage server and indicating to the first client a successful write in response to the first data being cached in the sparse volume, wherein the sparse volume is a further storage volume that appears to the first client to be a complete replication of the storage volume, but does not contain all data from the storage volume; maintaining client access to the first data in the sparse volume of the first storage server such that the existence of the sparse volume is transparent to the first client; and sending the first data to the second storage server to be written to the storage volume. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method comprising:
-
receiving at a first storage server, from a client, a first set of data to be written to a volume located on a second storage server, wherein the first storage server is connected to the second storage server through a network and the first storage server includes a sparse volume cache of the volume located on the second storage server;
writing the first set of data to the sparse volume cache on the first storage server, wherein the sparse volume cache is a further storage volume that appears to the client to be a complete replication of the volume of the second storage server, but does not contain all data from the volume of the second storage server;adding a first entry to a data structure on the first storage server, the data structure representing the data written to the sparse volume cache, wherein the data structure is a record of data to be written to the storage volume; indicating a successful write to the client without first writing the first set of data to the volume located on the second storage server, wherein the presence of the first set of data in the sparse volume cache is transparent to the client; and sending the data represented in the data structure from the sparse volume cache to the volume located on the second storage server. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. A storage server comprising:
-
a processor; a memory coupled with the processor; a network adapter configured to allow the storage server to access a second storage server through a network, the second storage server including a storage volume; and a sparse volume cache of the storage volume, the sparse volume cache configured to receive, from a client, data to be written to the storage volume on the second storage server, wherein in operation, the storage server writes the data to be written to the storage volume, to the sparse volume cache, and sends to the client an indication of a successful write in response to the data being written to the sparse volume cache; wherein the sparse volume cache is a further storage volume that appears to the client to be a complete replication of the storage volume, but does not contain all data from the storage volume. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26)
-
-
27. A storage server comprising;
-
an interface through which to connect the storage server to communicate with a second storage server, the second storage server including a storage volume; a sparse volume cache of the storage volume, wherein the sparse volume cache is a further storage volume that appears to a client to be a complete replication of the storage volume, but does not contain all data from the storage volume; a processor; and a memory coupled with the processor, the memory storing instructions which when executed by the processor cause the storage server to perform a plurality of operations, including; receiving, from the client, data to be written to the storage volume;
writing the data from the client to the sparse volume cache;adding an entry to a data structure stored on the sparse volume cache, the entry representing the data written to the sparse volume cache, wherein the data structure is a record of data to be written to the storage volume; indicating to the client, in response to the data from the client being written to the sparse volume cache, that the data from the client has been written to the storage volume, wherein the presence of the data from the client in the sparse volume cache is transparent to the client; and sending the data from the sparse volume cache to the second storage server to be written to the storage volume. - View Dependent Claims (28, 29, 30)
-
Specification