2 OPENSTACK SER RVEY November 2017 OpenStack’s tenth User Survey Report is a snapshot of 1,052 surveys and nearly 600 deployments that were recorded from June 1. OpenStack is a cloud operating system that controls large pools of compute, storage, and networking resources throughout a datacenter, all managed through a dashboard. There are currently three ways in Nova to create a snapshot of one, some, or all of the volumes attached to a particular instance. But none of these options allow a user to create volume snapshots after I/O is quiesced as a single transaction. This proposal explains how this missing feature could be implemented, thus substantially improving the snapshotting capabilities of Nova. Existing Behaviour These are three ways of creating a snapshot-like thing in Nova: • create_image - takes a snapshot of the root volume and may take snapshots of the attached volumes depending on the volume type of the root volume. I/O is not quiesced. • create_backup - takes a snapshot of the root volume with options to specify how often to repeat and how many previous snapshots to keep around. I/O is not quiesced. • os-assisted-snapshot - takes a snapshot of a single cinder volume. The volume is first quiesced before the snapshot is initiated. Proposed Changes My general thesis is that I/O should be quiesced in all cases if the underlying driver supports it. Libvirt supports this feature and I would like to extend the existing functionality to take advantage of it. It's not reasonable to change the names or behaviour of the existing public api calls. Instead I would like to create a new snapshot() call in the v3 API. Uki dvd. We only need a quiesce() call added to the driver and the rest of the implementation will live in the api layer. It was suggested that the conductor would be the correct place for this code. Once implemented, the existing snapshot calls (image, backup, os-assisted) could use the underlying snapshot routines to achieve their expected results. Leaving us with only one set of snapshot-related functions to maintain. The new snapshot call would take at least one option: the drives that should be snapshotted: snapshot(devices=['vda', 'vdb']) Where a value of None implies all volumes. This allows the user to snapshot only the root volume if a small bootable image is desired. There will be no exclusion based on volume type, both glance and cinder volumes will be snapshotted respectively. Otherwise we introduce unexpected behaviour that would be confusing to the user and difficult to explain. The flow will look like: • call the compute node to quiesce • call the compute node to snapshot each individual glance drive • call the volume driver to snapshot each cinder volume • package the whole thing The packaged snapshot could be stored in either Swift or Glance.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |