Patent ID: 7831682

Claim:
A computer-implemented method for maintaining access of executing programs to stored block data, the method comprising: receiving one or more indications of one or more data access requests initiated by a first program executing on a first computing system to access block data stored on a non-local block data storage volume, the block data storage volume provided by a distinct second data storage system that is at a common first geographical location with the first computing system and that is separated from the first computing system by one or more networks; automatically responding to the received indications of the data access requests by interacting with the second data storage system on behalf of the first executing program so as to initiate performance of the data access requests on the block data storage volume provided by the second data storage system, the performance of the data access requests causing one or more modifications to the block data stored on the block data storage volume; automatically maintaining a mirror copy of the block data storage volume on a third data storage system at the first geographical location, the third data storage system being distinct from the first computing system and second data storage system, the maintained mirror copy on the third data storage system lacking a subset of the block data stored on the second data storage system for the block data storage volume, the subset of the stored block data corresponding to one or more portions of the stored block data that have not been modified since a prior creation of a snapshot copy of the block data storage volume on one or more archival data storage systems at a second geographical location that is distinct from the first geographical location; and after determining to make access available to the mirror copy of the block data storage volume on the third data storage system, automatically restoring the mirror copy on the third data storage system to include the subset of the stored block data by retrieving the subset of the stored block data from the snapshot copy on the one or more archival data storage systems.