Multi-host environment with coordinated distributed logging for writes to a raid storage volume
First Claim
1. A method for coordinating a plurality of hosts, wherein each of the plurality of hosts is associated with one of a plurality of logs, the method comprising:
- an application executing on a host included in the plurality of hosts initiating a first write request targeting a block in a set of data in a first storage volume managed by storage virtualization software, wherein the first write request specifies a data value to be written to the block, wherein the set of data is associated with redundant information according to a RAID protocol;
in response to the first write request,the host requesting permission from a coordinator to store the data value to the first storage volume;
the host initiating storage of data associated with the first write request to a particular log of the plurality of logs, wherein the data associated with the first write request comprises the data value, and wherein the particular log comprises at least a portion of a second storage volume managed by the storage virtualization software;
after initiating the storage of the data associated with the first write request to the particular log, and before storing the data value to the first storage volume, the host waiting for a time period;
in response to determining that one or more additional write requests targeting the set of data in the first storage volume are initiated during said time period, the host storing new redundant information corresponding to the first write request and the one or more additional write requests in a single write operation.
10 Assignments
0 Petitions
Accused Products
Abstract
A method may involve: an application executing on a host initiating a write to a stripe in a storage volume; in response, the host requesting permission from a coordinator to perform the write to a set of data (e.g., a stripe or other group of data from which redundant information is calculated according to a RAID protocol) in a storage volume; prior to receiving permission to write to the storage volume from the coordinator, the host initiating storage of write data associated with the write to an associated one of a plurality of logs; the host waiting before performing the write to the storage volume; and, if one or more additional writes targeting the same set of data (e.g., the same stripe) are initiated while waiting, the host combining redundant information (e.g., parity) calculations for the writes into a single redundant information calculation.
110 Citations
34 Claims
-
1. A method for coordinating a plurality of hosts, wherein each of the plurality of hosts is associated with one of a plurality of logs, the method comprising:
-
an application executing on a host included in the plurality of hosts initiating a first write request targeting a block in a set of data in a first storage volume managed by storage virtualization software, wherein the first write request specifies a data value to be written to the block, wherein the set of data is associated with redundant information according to a RAID protocol; in response to the first write request, the host requesting permission from a coordinator to store the data value to the first storage volume; the host initiating storage of data associated with the first write request to a particular log of the plurality of logs, wherein the data associated with the first write request comprises the data value, and wherein the particular log comprises at least a portion of a second storage volume managed by the storage virtualization software; after initiating the storage of the data associated with the first write request to the particular log, and before storing the data value to the first storage volume, the host waiting for a time period; in response to determining that one or more additional write requests targeting the set of data in the first storage volume are initiated during said time period, the host storing new redundant information corresponding to the first write request and the one or more additional write requests in a single write operation. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method for coordinating a plurality of hosts, wherein each of the plurality of hosts is associated with one of a plurality of logs, the method comprising:
-
an application executing on a host included in the plurality of hosts initiating a write of a new data value to a block in a set of data in a first storage volume, wherein the set of data is associated with a set of redundant information calculated from the set of data according to a RAID protocol; in response to said initiating, the host requesting permission from a coordinator to perform the write to the first storage volume; prior to storing the new data value to the first storage volume, the host signaling completion of the write to the application in response to determining that (a) write data associated with the write has been stored in an associated one of the plurality of logs, wherein the write data comprises the new data value, and wherein at least a portion of the associated one of the plurality of logs is included within a second storage volume; and
(b) a response granting permission from the coordinator has been received;the host waiting for a time period before storing the data value to the first storage volume; and in response to determining that one or more additional writes targeting the set of data in the storage volume are initiated during the time period, the host performing a redundant information calculation for the write and the one or more additional writes.
-
-
14. A system, comprising:
-
one or more processors; a memory coupled to the one or more processors, the memory storing program instructions executable by the one or more processors to; send a message to a coordinator requesting permission to perform a write to a block in a set of data in a first storage volume, wherein the set of data is associated with a set of redundant information calculated from the set of data according to a RAID protocol; initiate writing data associated with the write to a log, wherein the data associated with the write includes a data value for the block, and wherein at least a portion of the log is included within a second storage volume; wait for a time period before storing the data value to the first storage volume; and in response to an initiation of one or more additional writes to the set of data during the time period, perform a combined redundant information calculation for the write and the one or more additional writes. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A system, comprising:
-
a storage volume; a plurality of hosts coupled to the storage volume; a coordinator coupled the plurality of hosts and configured to coordinate access to the storage volume between the plurality of hosts; and a plurality of logs, wherein each log is associated with a respective one of the plurality of hosts; wherein a host included in the plurality of hosts is configured to request permission to write a new data value to a set of data in the storage volume from the coordinator in response to an application executing on the host initiating a write, wherein the set of data is associated with a set of redundant information calculated from the set of data according to a RAID protocol; wherein prior to receiving permission to store the new data value to the storage volume from the coordinator, the host is configured to initiate logging write data associated with the write to an associated log of the plurality of logs, wherein the write data comprises the new data value; wherein the host is configured to wait before storing the new data value to the storage volume, wherein if one or more additional writes targeting the set of data in the storage volume are initiated while the host waits, the host is configured to combine redundant information calculations corresponding to each of the write and the one or more additional writes into a single combined calculation. - View Dependent Claims (25, 26, 27, 28, 29)
-
-
30. A tangible, computer accessible medium including program instructions executable to:
-
send a message to a coordinator requesting permission to perform a write to a block in a set of data in a first storage volume, wherein the set of data is associated with a set of redundant information calculated from the set of data according to a RAID protocol; initiate writing data associated with the write to a log, wherein the data associated with the write includes a data value for the block, and wherein at least a portion of the log is included within a second storage volume; wait for a time period before storing the data value to the first storage volume; and in response to determining that one or more additional writes to the set of data in the storage volume are initiated during the time period, perform a combined calculation of new redundant information for the write and the one or more additional writes. - View Dependent Claims (31, 32, 33, 34)
-
Specification