Providing executing programs with access to stored block data of others
First Claim
1. 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.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques are described for managing access of executing programs to non-local block data storage. In some situations, a block data storage service uses multiple server storage systems to reliably store copies of network-accessible block data storage volumes that may be used by programs executing on other physical computing systems, and snapshot copies of some volumes may also be stored (e.g., on remote archival storage systems). A group of multiple server block data storage systems that store block data volumes may in some situations be co-located at a data center, and programs that use volumes stored there may execute on other computing systems at that data center, while the archival storage systems may be located outside the data center. The snapshot copies of volumes may be used in various ways, including to allow users to obtain their own copies of other users'"'"' volumes (e.g., for a fee).
22 Citations
24 Claims
-
1. 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. - View Dependent Claims (2, 3)
-
-
4. A computer-implemented method for providing access of executing programs to block data storage functionality, the method comprising:
-
receiving, by a computing system of a storage service, an indication of a data access request that is initiated by a first program executing on a first computing system to modify block data stored on a non-local block data storage volume, the first block data storage volume being provided by a distinct second data storage system of the storage service, the first block data storage volume and the first program being associated with a first user; responding, by the computing system, to the received indication of the data access request by causing one or more modifications to the block data stored on the first block data storage volume; after responding to the received indication of the data access request, creating, by the computing system, a first snapshot copy of the first block data storage volume on one or more other data storage systems, the created first snapshot copy containing the block data stored on the first block data storage volume at a first time, the block data contained in the first snapshot copy including the one or more modifications; and providing access to the created first snapshot copy for a fee to one or more other second users that are distinct from the first user, such that each of the one or more other second users who provides the fee receives access for one or more executing programs to a distinct block data storage volume that includes the block data contained in the created first snapshot copy, wherein the other second users are not associated with the first block data storage volume prior to the providing of the access. - View Dependent Claims (5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A non-transitory computer-readable medium having stored contents that configure one or more computing systems to:
-
provide, by the one or more configured computing systems, access of a first program executing on a first computing system to a non-local block data storage volume associated with an account of a first user, the block data storage volume being provided by a second block data storage system that is separated from the first computing system by one or more networks; respond, by the one or more configured computing systems, to one or more received indications of one or more data access requests initiated by the first program for the block data storage volume by performing the data access requests on the block data storage volume on the second block data storage system; after responding to the received indications of the data access requests, provide, by the one or more configured computing systems, paid access of a second executing program for a distinct second user to a stored first copy of the block data storage volume, the second user not being associated with the block data storage volume prior to the providing of the paid access; and respond, by the one or more configured computing systems, to one or more received indications of one or more data access requests initiated by the second program to the block data storage volume first copy by performing the data access requests initiated by the second program on the block data storage volume first copy. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. A system configured to provide access of executing programs to block data storage functionality, comprising:
-
one or more processors; and a block data storage system manager module configured to, wherein executed by at least one of the one or more processors, provide a block data storage service that uses multiple block data storage systems to store block data storage volumes that are created by users of the block data storage service and accessed over one or more networks on behalf of one or more executing programs associated with the users, the providing of the block data storage service including; creating one or more block data storage volumes for use by one or more executing programs, each of the block data storage volumes being stored on one of the multiple block data storage systems; after access to a first of the created block data storage volumes is provided to a first of the one or more executing programs, responding to one or more data access requests initiated by the first program to the first created block data storage volume by initiating performance of the one or more data access requests on the first created block data storage volume, the first program and the first created block data storage volume being associated with a first user, at least one of the one or more data access requests modifying block data stored on the first block data storage volume; and after the responding to the received data access requests, providing access of a second executing program associated with a distinct second user to a second created block data storage volume that is based on a snapshot copy of the first created block data storage volume, the providing of the access including responding to one or more other data access requests initiated by the second program to the second created block data storage volume by initiating performance of the one or more other data access requests on the second created block data storage volume, wherein the distinct second user is not associated with the first block data storage volume prior to the initiating of the one or more other data access requests. - View Dependent Claims (21, 22, 23, 24)
-
Specification