Patent ID: 7188272

Claim:
A method of recovery from a data storage system failure in a data storage system having a host computer writing data to a first storage unit associated with a first storage controller synchronously mirroring the data to a second storage unit associated with a second storage controller asynchronously mirroring the data to a third storage unit, the method comprising: asynchronously mirroring the data to the third storage unit, comprising: creating a first map associated with the second storage unit identifying tracks storing mirrored data which has been received on the second storage unit by the synchronous mirroring of the data from the first storage unit; and continuously transmitting batches of the mirrored data on tracks identified by the first map from the second storage unit to the third storage unit; detecting a failure associated with the first storage unit; writing data updates directly to the second storage unit; correcting the failure associated with the first storage unit; and synchronously mirroring the data updates from the second storage unit to the first storage unit, comprising: creating a second map associated with the second storage unit identifying the tracks storing changed data from a point in time where the host computer began writing directly to the second storage unit; copying to the first storage unit the changed data on the tracks identified by the second map, comprising: preserving a copy of the second map at a point in time at which copying the changed data to the first storage unit begins; re-setting the second map to a clear state and thereafter identifying the tracks containing the changed data in the second map; comparing the first map to the second map and adding the identity of the tracks containing the data updates, as identified by the first map but not identified by the second map, to the second map; comparing the preserved copy of the second map to the first map and adding the identity of the tracks containing the changed data, as identified by the preserved copy of the second map but not identified by the first map, to the first map; and copying the data updates on the tracks then identified by the first map from the second storage unit to the first storage unit; and synchronously mirroring to the first storage unit further changed data written to the second storage unit by the host computer until a full duplex state between the first storage unit and the second storage unit is reached.