Patent ID: 7266665

Claim:
A method for copying storage, comprising: receiving a write request at a first storage control unit from a host application coupled to a host system; writing data corresponding to the write request at a cache and a non-volatile storage coupled to the first storage control unit; sending the data corresponding to the write request synchronously to a second storage control unit; determining at the second storage control unit whether the data received at the second storage unit is to be cascaded; in response to determining at the second storage control unit that the data received at the second storage unit is to be cascaded, asynchronously sending the data from the second storage control unit to a third storage control unit, and subsequently sending a write complete acknowledgment from the second storage control unit to the first storage control unit, wherein a fourth storage control unit is coupled to the third storage control unit, and the data is transferred from the third storage control unit to the fourth storage control unit, and wherein a chain of data transfers take place among a plurality of storage control units including the first storage control unit, the second storage control unit, the third storage control unit, and the fourth storage control unit; and in response to determining at the second storage control unit that the data received at the second storage unit is not to be cascaded, sending the write complete acknowledgment from the second storage control unit to the first storage control unit, the method further comprising: (i) in response to receiving the data at the second storage control unit, copying the data to a cache and a non-volatile storage at the second storage control unit, wherein the second storage control unit keeps the cache and the non-volatile storage consistent with storage volumes coupled to the second storage control unit; (ii) marking the data as modified at the second storage control unit, in response to determining that the data on second storage control unit is to be cascaded; (iii) sending a response from the second storage control unit to the first storage control unit, wherein the response indicates that the received data has been copied at the second storage control unit, wherein the response is the write complete acknowledgment; (iv) determining the modified data at the second storage control unit by a background asynchronous copy process; and (v) wherein asynchronously sending the data further comprises sending the modified data asynchronously from the second storage control unit to the third storage control unit.