PROVIDING EXECUTING PROGRAMS WITH ACCESS TO STORED BLOCK DATA OF OTHERS
First Claim
1. A method for a computing system of a block data storage service to provide access to remote stored block data for executing programs, the method comprising:
- receiving a request to initiate access of a first executing program to non-local block data storage provided by a block data storage service, the first program executing on a first of a plurality of computing systems that are co-located at a first geographical location and that share one or more internal networks, the block data storage service using a first group of multiple other of the plurality of computing systems as block data storage systems that provide block data storage to multiple executing programs, the first computing system not being part of the first group;
in response to the received request, attaching a first block data storage volume to the first computing system for use by the executing first program, the executing first program and the first block data storage volume being associated with a first user, the first block data storage volume having a primary copy stored on a second computing system and having a mirror copy stored on a third computing system, the second and third computing systems each being part of the first group of block data storage systems, the attaching of the first block data storage volume including associating a first logical local block storage device of the first computing system with the first block data storage volume; and
under control of a system manager module of the block data storage service, managing the providing of the block data storage to the multiple executing programs, by;
after receiving indications of one or more data access requests initiated by the first executing program to the first logical local block storage device, automatically responding by performing the data access requests on the first block data storage volume, 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 archival data storage systems at a second geographical location that is distinct from the first geographical location, 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,receiving a request from a 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; and
after obtaining a fee from the second user for the access to the second block data storage volume and determining to grant the request, 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).
83 Citations
25 Claims
-
1. A method for a computing system of a block data storage service to provide access to remote stored block data for executing programs, the method comprising:
-
receiving a request to initiate access of a first executing program to non-local block data storage provided by a block data storage service, the first program executing on a first of a plurality of computing systems that are co-located at a first geographical location and that share one or more internal networks, the block data storage service using a first group of multiple other of the plurality of computing systems as block data storage systems that provide block data storage to multiple executing programs, the first computing system not being part of the first group; in response to the received request, attaching a first block data storage volume to the first computing system for use by the executing first program, the executing first program and the first block data storage volume being associated with a first user, the first block data storage volume having a primary copy stored on a second computing system and having a mirror copy stored on a third computing system, the second and third computing systems each being part of the first group of block data storage systems, the attaching of the first block data storage volume including associating a first logical local block storage device of the first computing system with the first block data storage volume; and under control of a system manager module of the block data storage service, managing the providing of the block data storage to the multiple executing programs, by; after receiving indications of one or more data access requests initiated by the first executing program to the first logical local block storage device, automatically responding by performing the data access requests on the first block data storage volume, 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 archival data storage systems at a second geographical location that is distinct from the first geographical location, 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, receiving a request from a 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; and after obtaining a fee from the second user for the access to the second block data storage volume and determining to grant the request, 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 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 first block data storage volume being 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 via one or more networks, the first block data storage volume and the first program being associated with a first user; 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 first 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 first block data storage volume; after the responding to the received indications of the data access requests, creating a first snapshot copy of the first block data storage volume on one or more data storage systems at a second geographical location that is distinct from the first geographical location, 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 to one or more users other than the first user for a fee, such that each of the one or more other 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. - View Dependent Claims (5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A computer-readable medium whose contents enable one or more computing systems to provide access of executing programs to block data storage functionality, by performing a method comprising:
-
providing access of a first program executing on a first computing system for a first user to a non-local block data storage volume, the provided access enabling the first program to initiate data access requests to the block data storage volume, 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; automatically responding to one or more received indications of one or more data access requests initiated by the first program for the block data storage volume, the responding including initiating performance of the data access requests on the block data storage volume on the second block data storage system; after the responding to the received indications of the data access requests, providing paid access of a second executing program for a distinct second user to a stored first copy of the block data storage volume; and automatically responding to one or more received indications of one or more other data access requests initiated by the second program to the block data storage volume first copy, the responding including initiating performance of the other data access requests on the block data storage volume first copy. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
-
21. A system configured to provide access of executing programs to block data storage functionality, comprising:
-
one or more memories; and a block data storage system manager module configured to 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, 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 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. - View Dependent Claims (22, 23, 24, 25)
-
Specification