Service and APIs for remote volume-based block storage
First Claim
1. A method, comprising:
- exposing, by a block storage service implemented on one or more devices within a provider network, block storage service application programming interfaces (APIs) to client applications external to the provider network, wherein the provider network provides volume-based block storage as a remote data store to client applications external to the provider network, wherein the block storage service APIs provide a standard application programming interface for volume-based block storage operations of the block storage service on the remote data store, and wherein the block storage service APIs that are exposed to client applications external to the provider network include a create volume API, an upload block API, a download block API, and a delete volume API; and
performing, by the block storage service;
receiving, from an application implemented on one or more devices on a client network, a create volume request according to the create volume API, wherein the create volume request received at the block storage service corresponds with a request generated by the application according to the create volume API;
creating, on the remote data store, a volume according to one or more parameters of the create volume request;
returning, to the application, a create volume response according to the create volume API that indicates a volume identifier (ID) for the volume;
receiving, from the application, one or more upload block requests according to the upload block API, wherein the one or more upload block requests received at the block storage service correspond with the one or more upload block requests generated by the application according to the upload block API, and wherein each upload block request specifies the volume ID and data to be uploaded to the volume; and
for each of the one or more upload block requests, writing the respective data to the remote data store as volume data for the volume according to one or more parameters of the upload block request;
receiving, from the application, one or more download block requests according to the download block API, wherein the one or more download block requests received at the block storage service correspond with the one or more download block requests generated by the application according to the download block API, and wherein each download block request specifies data to be downloaded from the volume;
for each of the one or more download block requests, reading the respective volume data from the remote data store according to one or more parameters of the download block request and returning, to the application, a download block response that includes the respective volume data according to the download block API;
receiving, from the application, a delete volume request that specifies a volume on the remote data store to be deleted according to the delete volume API; and
in response to the delete volume request, deleting the volume indicated by the delete volume request from the remote data store.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods, apparatus, and computer-accessible storage media for providing a volume-based block storage service and application programming interfaces (APIs) to the service. A block storage service and block storage service APIs may allow processes (applications or appliances) on the service client network to leverage remote, volume-based block storage provided by the service provider. The APIs may provide a standard interface to volume-based block storage operations on a remote data store. The service provider, the service clients, and/or third parties may develop various applications and/or appliances that may, for example, be instantiated in service clients'"'"' local networks and that leverage the block storage service via the APIs to create and manage volumes and snapshots on the remote data store and to upload and download data from the volumes and snapshots on the remote data store.
-
Citations
32 Claims
-
1. A method, comprising:
-
exposing, by a block storage service implemented on one or more devices within a provider network, block storage service application programming interfaces (APIs) to client applications external to the provider network, wherein the provider network provides volume-based block storage as a remote data store to client applications external to the provider network, wherein the block storage service APIs provide a standard application programming interface for volume-based block storage operations of the block storage service on the remote data store, and wherein the block storage service APIs that are exposed to client applications external to the provider network include a create volume API, an upload block API, a download block API, and a delete volume API; and performing, by the block storage service; receiving, from an application implemented on one or more devices on a client network, a create volume request according to the create volume API, wherein the create volume request received at the block storage service corresponds with a request generated by the application according to the create volume API; creating, on the remote data store, a volume according to one or more parameters of the create volume request; returning, to the application, a create volume response according to the create volume API that indicates a volume identifier (ID) for the volume; receiving, from the application, one or more upload block requests according to the upload block API, wherein the one or more upload block requests received at the block storage service correspond with the one or more upload block requests generated by the application according to the upload block API, and wherein each upload block request specifies the volume ID and data to be uploaded to the volume; and for each of the one or more upload block requests, writing the respective data to the remote data store as volume data for the volume according to one or more parameters of the upload block request; receiving, from the application, one or more download block requests according to the download block API, wherein the one or more download block requests received at the block storage service correspond with the one or more download block requests generated by the application according to the download block API, and wherein each download block request specifies data to be downloaded from the volume; for each of the one or more download block requests, reading the respective volume data from the remote data store according to one or more parameters of the download block request and returning, to the application, a download block response that includes the respective volume data according to the download block API; receiving, from the application, a delete volume request that specifies a volume on the remote data store to be deleted according to the delete volume API; and in response to the delete volume request, deleting the volume indicated by the delete volume request from the remote data store. - View Dependent Claims (2, 3, 4)
-
-
5. A system, comprising:
-
a plurality of storage devices configured as a block-based data store on a provider network; and a plurality of computing devices on the provider network, each comprising at least one processor and memory, wherein the plurality of computing devices implement a block storage service configured to perform volume based block storage operations on the data store; wherein the plurality of computing devices expose application programming interfaces (APIs) to the block storage service to client networks of the provider network, wherein the APIs to the block storage service provide a standard application programming interface for the volume-based block storage operations of the block storage service for applications on the client networks external to the provider network, and wherein the APIs to the block storage service that are exposed to client applications external to the provider network include a create volume API, an upload block API, and a delete volume API for requesting deletion of a specified volume on the data store; wherein the block storage service is configured to; receive, from the applications on the client networks, create volume requests according to the create volume API, wherein the create volume requests received at the block storage service correspond with the create volume requests generated by the application according to the create volume API; for at least one received create volume request; create, on the data store, a volume according to one or more create volume API parameters of the respective create volume request; and return, to the respective application, a create volume response according to the create volume API that indicates a volume identifier (ID) for the volume; receive, from the applications on the client networks, upload block requests according to the upload block API, wherein the upload block requests received at the block storage service correspond with the upload block requests generated by the application according to the upload block API, and wherein each upload block request specifies a volume ID and data to be uploaded to a respective volume; and for at least one of the upload block requests, write the respective data to the remote data store as volume data for the respective volume according to one or more upload block API parameters of the respective upload block request. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A non-transitory computer-accessible storage medium storing program instructions computer-executable to:
-
implement a block storage service on one or more devices within a provider network, wherein the block storage service is configured to perform volume-based block storage operations on a data store of the provider network; expose application programming interfaces (APIs) for the block storage service to client networks external to the provider network, wherein the APIs to the block storage service provide a standard application programming interface for the volume-based block storage operations of the block storage service for applications on the client networks, and wherein the APIs to the block storage service that are exposed to client applications external to the provider network include; a create volume API for external applications to request creation of a volume on the data store according to one or more create volume API input parameters; a create snapshot API for external applications to request creation of a snapshot on the data store according to one or more create snapshot API input parameters, wherein a snapshot is a point-in-time capture of a volume; an upload block API for external applications to upload data blocks from the client networks to specified volumes or specified snapshots on the data store according to one or more upload block API input parameters; a download block API for external applications to download specified data blocks from specified volumes or specified snapshots on the data store to the client networks according to one or more download block API input parameters; and a delete volume API for requesting deletion of a specified volume on the data store. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
-
Specification