[openstack-dev] [Nova][Cinder] Guest Assisted Snapshots

Russell Bryant rbryant at redhat.com
Tue Aug 6 22:05:40 UTC 2013


Greetings,

The following blueprint is targeted at Havana.  I was reading over the
design notes today.  I wanted to check on the status of this as well as
discuss some of the design details.

    https://wiki.openstack.org/wiki/Cinder/GuestAssistedSnapshotting
    https://blueprints.launchpad.net/nova/+spec/qemu-assisted-snapshots

As a quick overview, the purpose of this is to provide the ability to do
volume snapshots for certain volume types that do not support it
internally, such as the GlusterFS or NFS drivers.

Some comments/questions ...

On the Nova side, the wiki page lists adding an API to snapshot all
attached volumes at once.  This seems fine, but I would personally put
it at a lower priority than just making basic snapshots work.  The Nova
patch I've seen come by so far [1] was for this API, but like I said, I
would just come back to this once regular snapshots work.

The page also indicates that a snapshot request through the Cinder API
will only work through if it's not attached.  That seems fairly
undesirable.  Can we try to address that with the first pass?  It seems
like we could do something like:

on the cinder side:

    cinder snapshot API
        if snapshot requires guest assist while in use, and is in use:
            call nova's guest assisted snapshot API
        else:
            do snapshot in cinder

on the nova side:

    nova's new guest assisted snapshot API
        if volume type is a local file:
            do local magic to create a snapshot and call
            the new create-snapshot-metadata API call in cinder
        else:
            do cinder API call to do a snapshot, but potentially
            adding some guest assistance here (to get the filesystem
            in a consistent state first, for example)

Similarly to create, I think having delete work through Nova, but not
Cinder isn't ideal.  Can we address that as well with a similar
smart-redirect approach?

My final comment on all of this is that I'm not a huge fan of having
snapshot create/delete in both the nova and cinder APIs.  I can't think
of a better way to accomplish this, though.  We don't have a nova API
only exposed internally to the deployment, and I don't think this
feature is enough to warrant adding one.

[1] https://review.openstack.org/#/c/38251/

-- 
Russell Bryant



More information about the OpenStack-dev mailing list