Service and APIs for remote volume-based block storage
US-9635132-B1 · Apr 25, 2017 · US
US10129337B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10129337-B2 |
| Application number | US-201715495784-A |
| Country | US |
| Kind code | B2 |
| Filing date | Apr 24, 2017 |
| Priority date | Dec 15, 2011 |
| Publication date | Nov 13, 2018 |
| Grant date | Nov 13, 2018 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
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.
Opening claim text (preview).
What is claimed is: 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 clients external to the provider network, wherein the provider network provides volume-based block storage to clients external to the provider network, wherein the block storage service APIs provide an application programming interface for volume-based block storage operations of the block storage service, and wherein the block storage service APIs include a create volume API, an upload block API, a create snapshot API, and a download block API; and performing, by the block storage service: receiving, from a client external to the provider network, a create volume request according to the create volume API; creating, within the provider network, a volume according to the create volume API and 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 client external to the provider network, one or more upload block requests according to the upload block API, 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 volume within the provider network according to the upload block API; receiving, from the client external to the provider network, a create snapshot request according to the create snapshot API, wherein the create snapshot request specifies the volume ID; creating, within the provider network, a snapshot of the volume within the provider network according to the create snapshot API; receiving, from the client external to the provider network, one or more download block requests according to the download block API, wherein each download block request specifies data to be downloaded from the volume; and for each of the one or more download block requests, reading the specified data from the volume within the provider network and returning, to the client external to the provider network, a download block response that includes the specified data according to the download block API. 2. The method as recited in claim 1 , wherein a snapshot is a point-in-time capture of a volume, and wherein the method further comprises performing, by the block storage service: subsequent to said creating, within the provider network, the snapshot of the volume within the provider network according to the create snapshot API, returning, to the application, a create snapshot response according to the create snapshot API that indicates a snapshot identifier (ID) for the snapshot; receiving, from the application, one or more upload block requests according to the upload block API, wherein each upload block request specifies the snapshot ID and data to be uploaded to the snapshot; and for each of the one or more upload block requests, writing the respective data as snapshot data for the respective snapshot according to one or more parameters of the upload block request. 3. The method as recited in claim 2 , wherein the block storage service APIs further include a snapshot progress API, and wherein the method further comprises performing, by the block storage service, receiving, from the application, one or more snapshot progress notifications according to the upload block API, wherein each snapshot progress notification specifies a snapshot ID and an indication of how much of the respective snapshot has been uploaded or that the respective snapshot has been completed. 4. The method as recited in claim 1 , wherein the block storage service APIs further include a delete volume API and a delete snapshot API, wherein a snapshot is a point-in-time capture of a volume, and wherein the method further comprises performing, by the block storage service: receiving, from the application, either a delete volume request that specifies a volume to be deleted according to the delete volume API or a delete snapshot request that specifies a snapshot to be deleted according to the delete snapshot API; and in response to the delete volume request or the delete snapshot request, deleting the respective volume or snapshot indicated by the request. 5. A system, comprising: a plurality of computing devices on a provider network, each comprising at least one processor and memory, wherein the plurality of computing devices implement: a block storage service of the provider network; and application programming interfaces (APIs) to the block storage service for clients external to the provider network, wherein the APIs to the block storage service provide an application programming interface for the volume-based block storage operations of the block storage service, and wherein the APIs to the block storage service include a create volume API, an upload block API, a download block API, and a create snapshot API; wherein the block storage service is configured to: receive, from a client external to the provider network, one or more create volume requests according to the create volume API; for at least one received create volume request: create, within the provider network, a volume according to the create volume API and according to one or more parameters of the respective create volume request; and return, to the respective client a create volume response according to the create volume API that indicates a volume identifier (ID) for the volume; receive, from the client external to the provider network, one or more upload block requests according to the upload block API, 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 respective volume within the provider network according to the upload block API. 6. The system as recited in claim 5 , wherein the block storage service is further configured to, for the at least one received create volume request, create an initial snapshot for the respective volume, wherein a snapshot is a point-in-time capture of a volume. 7. The system as recited in claim 5 , wherein the block storage service is further configured to, for the at least one received create volume request, create a volume manifest for the volume, wherein the volume manifest maps data blocks of the volume to locations of corresponding data chunks. 8. The system as recited in claim 7 , wherein the block storage service is further configured to, for the at least one of the upload block requests, update the volume manifest of the respective volume according to the upload block request. 9. The system as recited in claim 5 , wherein the block storage service is further configured to, for the at least one of the upload block requests, return, to the respective client, one or more data chunk tokens for the respective data written to the respective volume, wherein each data chunk token identifies a unit of the data that was uploaded to the respective volume according to the upload block request. 10. The system as recited in claim 5 , wherein the block storage service is further configured to, for at least one other received create volume request: determine that the other received create volume request is not valid according to one or more parameters of the respective create volume request; and return, to the respective client, an indication of an error for the other received create volume request. 11. The system as recited in claim 5 , wherein the block storage service is furt
Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket · CPC title
for authentication of entities (cryptographic mechanisms or cryptographic arrangements for entity authentication H04L9/32) · CPC title
Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · CPC title
by facilitating the interaction with a user or administrator · CPC title
Replication mechanisms · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.