Patent ID: 8725967

Claim:
A computer-implemented method comprising: receiving, by one or more configured computing systems of a block data storage service, indications of one or more data access requests initiated by a first executing program on a first computing system to a first logical local block storage device of the first computing system, the first logical block storage system being associated with a first block data storage volume that is non-local to the first computing system, the executing first program and the first block data storage volume being operated on behalf of a first user; responding, by the one or more configured computing systems, to the one or more data access requests by performing the data access requests on the first block data storage volume, the first block data storage volume and having a primary copy stored on a second computing system and having a mirror copy stored on a third computing system, the performing of the data access requests causing one or more modifications to block data stored on the first block data storage volume in such a manner that the primary and mirror copies of the first block data storage volume each store the same block data; at a first time after the performing of the data access requests, creating a first snapshot copy of the first block data storage volume on one or more remote data storage systems distinct from the first, second and third computing systems, the first snapshot copy including a copy of the block data stored on the first block data storage volume at the first time; and after creating the first snapshot copy, determining to grant a request received from a distinct second user for a second executing program associated with the second user to have access to a second block data storage volume that includes the block data contained in the created first snapshot copy, the second user not being associated with the first block data storage volume prior to the receiving of the request from the second user; creating the second block data storage volume based on the created first snapshot copy; and providing access to the second block data storage volume for the second executing program, the providing of the access including performing one or more other data access requests received from the second program on the created second block data storage volume.