store point-in-time snapshots of volumes to swift

Registered by Rongze Zhu

This function is the same as AWS EBS.
 We can provides the ability to create point-in-time snapshots of volumes, which are persisted to Swift. These snapshots can be used as the starting point for new volumes, and protect data for long-term durability. The same snapshot can be used to instantiate as many volumes as you wish.
We can provides the ability to back up point-in-time snapshots of your data to Swift for durable recovery. This snapshots are incremental backups, meaning that only the blocks on the device that have changed since your last snapshot will be saved.
Even though the snapshots are saved incrementally, when you delete a snapshot, only the data not needed for any other snapshot is removed. So regardless of which prior snapshots have been deleted, all active snapshots will contain all the information needed to restore the volume. In addition, the time to restore the volume is the same for all snapshots, offering the restore time of full backups with the space savings of incremental.
Snapshots can also be used to instantiate multiple new volumes, expand the size of a volume or move volumes .When a new volume is created, there is the option to create it based on an existing snapshot. In that scenario, the new volume begins as an exact replica of the original volume. By optionally specifying a different volume size , this functionality can be used as a way to increase the size of an existing volume or to create duplicate volume.
We can allow you to share their snapshots, making it easy for you to share this data with your co-workers. With this feature, users that you have authorized can quickly use your shared snapshots as the basis for creating their own volumes.

Now, Our solustion is "local storage + qcow2 + dependent snapshot + swift".

Advantages:
 * high speed and low latency
 * point-in-time snapshot
 * shared snaphost
 * user can upload qcow2 image to swift
 * user can download snapshot from swift

Blueprint information

Status:
Complete
Approver:
None
Priority:
Undefined
Drafter:
Rongze Zhu
Direction:
Needs approval
Assignee:
Sina Web Service Dev
Definition:
Obsolete
Series goal:
None
Implementation:
Unknown
Milestone target:
None
Completed by
Vish Ishaya

Related branches

Sprints

Whiteboard

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.