Optimized write performance at block-based storage during volume snapshot operations
US-2016328168-A1 · Nov 10, 2016 · US
US9753813B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-9753813-B1 |
| Application number | US-201514866655-A |
| Country | US |
| Kind code | B1 |
| Filing date | Sep 25, 2015 |
| Priority date | Sep 25, 2015 |
| Publication date | Sep 5, 2017 |
| Grant date | Sep 5, 2017 |
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.
Persistent storage for a master copy is provided using operation numbers. A master copy can include a persistent key-value store such as a B-tree with references to corresponding data. When provisioning a slave copy, the master copy sends a point-in-time copy of the B-tree to the slave copy, which stores a copy of the B-tree, allocates the necessary space, and updates the references of the B-tree to point to a local storage before the data is transferred. When writing the data to persistent storage, a snapshot created on the master copy is an operation that is replicated to the slave copy. The snapshot is generated using a volume view that includes changes to chunks of data of the master copy since a previous snapshot, as determined using the operation number for the previous snapshot. Data (and metadata) for the snapshot is written to persistent storage while new EO operations are processed.
Opening claim text (preview).
What is claimed is: 1. A computer-implemented method, comprising: maintaining a master storage volume and a slave storage volume in a block-based storage system, the master storage volume including a list of key-value pairs for tracking data of the master storage volume by offset and operation number, the slave storage volume providing a redundant copy of the master storage volume; receiving a request to write the data of the master storage volume to persistent storage; creating a snapshot for the master storage volume using a data view of the master storage volume, the data view being assigned a next sequential operation number and identifying chunks of the master storage volume to which writes were performed for operations having a respective operation number between the operation number of the data view and an operation number of a prior data view written to the persistent storage; writing, in sequential order, the identified chunks of the data from the master storage volume to the persistent storage; and writing, to the persistent storage, the operation number of the data view and the operation number of the prior data view in response to the identified chunks of the data being successfully written to the persistent storage. 2. The computer-implemented method of claim 1 , further comprising: generating a manifest for the snapshot, the manifest including respective chunk indices for the identified chunks included in the snapshot; and writing the manifest to the persistent storage. 3. The computer-implemented method of claim 1 , further comprising: processing additional I/O operations via the master storage volume while the writing of the identified chunks of the data to the persistent storage is in process, the additional I/O operations being assigned next highest operation numbers according to a monotonically increasing operation number sequence; and replicating the additional I/O operations to the slave storage volume. 4. The computer-implemented method of claim 1 , further comprising: before generating the data view, issuing a freeze command to stop processing new I/O operations; and processing the new I/O operations after the data view is generated. 5. The computer-implemented method of claim 1 , further comprising: generating the data view, the data view including respective operation numbers for change to the data view and changes to the master storage volume since creation of the data view. 6. A computer-implemented method, comprising: maintaining a master copy and a slave copy of a data volume, the master copy including data for a plurality of operations having respective sequential operation numbers, the data for the plurality of the operations being replicated to the slave copy; generating a snapshot of the master copy, the snapshot being assigned a next operation number in an operation number sequence, the snapshot including snapshot data for operation numbers between an operation number of a prior snapshot and an operation number of the snapshot, the snapshot being replicated to the slave copy; writing the snapshot data, as well as the operation number and metadata for the snapshot, to the persistent storage; and while writing the snapshot data to persistent storage, causing subsequent I/O operations to be assigned respective operation numbers in sequence and processed by the master copy. 7. The computer-implemented method of claim 6 , further comprising: generating the snapshot using a data view for the master copy, the data view identifying chunks of the master copy to which data has been written since a previous data view, the data view and modifications of the data view being assigned respective operation numbers. 8. The computer-implemented method of claim 6 , further comprising: issuing a freeze command before generating the snapshot, the freeze command causing servers to temporarily stop processing I/O operations until after the snapshot is generated. 9. The computer-implemented method of claim 6 , wherein the master copy and the slave copy are data storage volumes in a block-based storage system. 10. The computer-implemented method of claim 9 , wherein the master copy and the slave copy include a list of key-value pairs indicating data offsets and operation numbers of data stored respectively therein. 11. The computer-implemented method of claim 6 , further comprising: tracking metadata for chunks of data in the master copy, the metadata indicating whether a respective chunk is to be included in the snapshot. 12. The computer-implemented method of claim 11 , further comprising: storing the metadata at an offset associated with an operation number, wherein the metadata is replicated to the slave copy using the operation number associated with the offset. 13. The computer-implemented method of claim 11 , further comprising: generating a manifest for the snapshot, the manifest including respective chunk indices; and writing the manifest to the persistent storage. 14. The computer-implemented method of claim 11 , further comprising: writing snapshot data to an intermediate server that is configured to cause the snapshot data to be written to persistent storage. 15. The computer-implemented method of claim 11 , further comprising: modifying a view in the master copy, associated with the snapshot, to remove any data that has been pushed to the persistent storage. 16. A system, comprising: at least one processor; a block-based storage system; and memory including instructions that, when executed by the at least one processor, cause the at least one processor to: store a master copy and a slave copy of a data volume in the block-based storage system, the master copy including data for a plurality of operations having respective sequential operation numbers, the data for the sequential operations numbers being replicated to the slave copy; generate a snapshot of the master copy, the snapshot being assigned a next operation number in an operation number sequence, the snapshot including snapshot data for operation numbers between an operation number of a prior snapshot and an operation number of the snapshot, the snapshot being replicated to the slave copy using the operation number of the snapshot; write the snapshot data, as well as the operation number and metadata for the snapshot, to the persistent storage; and while writing the snapshot data to persistent storage, cause subsequent I/O operations to be assigned respective operation numbers in sequence and processed by the master copy. 17. The system of claim 16 , wherein the instructions when executed further cause the at least one processor to: generate the snapshot using a data view for the master copy, the data view identifying chunks of the master copy to which data has been written since a previous data view, the data view and modifications of the data view being assigned respective operation numbers. 18. The system of claim 16 , wherein the instructions when executed further cause the at least one processor to: issue a freeze command before generating the snapshot, the freeze command causing servers to temporarily stop processing I/O operations until after the snapshot is generated. 19. The system of claim 16 , wherein the instructions when executed further cause the at least one processor to: track metadata for chunks of data in the master copy, the metadata indicating whether a respective chunk is to be included in the snapshot. 20. The system of claim 19 , wherein the instructions when
Replication mechanisms · CPC title
in relation to data integrity, e.g. data losses, bit errors · CPC title
for networked environments · CPC title
Using snapshots, i.e. a logical point-in-time copy of the data · CPC title
Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.