[openstack-dev] Proposal for instance-level snapshots in Nova

Jon Bernard jbernard at tuxion.com
Tue Jan 14 22:13:48 UTC 2014

* Christopher Yeoh <cbkyeoh at gmail.com> wrote:
> On Tue, Jan 7, 2014 at 7:50 AM, Jon Bernard <jbernard at tuxion.com> wrote:
> > Hello all,
> >
> > I would like to propose instance-level snapshots as a feature for
> > inclusion in Nova.  An initial draft of the more official proposal is
> > here [1], blueprint is here [2].
> >
> > In a nutshell, this feature will take the existing create-image
> > functionality a few steps further by providing the ability to take
> > a snapshot of a running instance that includes all of its attached
> > volumes.  A coordinated snapshot of multiple volumes for backup
> > purposes.  The snapshot operation should occur while the instance is in
> > a paused and quiesced state so that each volume snapshot is both
> > consistent within itself and with respect to its sibling snapshots.
> >
> > I still have some open questions on a few topics:
> >
> > * API changes, two different approaches come to mind:
> >
> >   1. Nova already has a command `createImage` for creating an image of an
> >      existing instance.  This command could be extended to take an
> >      additional parameter `all-volumes` that signals the underlying code
> >      to capture all attached volumes in addition to the root volume.  The
> >      semantic here is important, `createImage` is used to create
> >      a template image stored in Glance for later reuse.  If the primary
> >      intent of this new feature is for backup only, then it may not be
> >      wise to overlap the two operations in this way.  On the other hand,
> >      this approach would introduce the least amount of change to the
> >      existing API, requiring only modification of an existing command
> >      instead of the addition of an entirely new one.
> >
> >   2. If the feature's primary use is for backup purposes, then a new API
> >      call may be a better approach, and leave `createImage` untouched.
> >      This new call could be called `createBackup` and take as a parameter
> >      the name of the instance.  Although it introduces a new member to the
> >      API reference, it would allow this feature to evolve without
> >      introducing regressions in any existing calls.  These two calls could
> >      share code at some point in the future.
> >
> Note there already is a createBackup/create_backup API call implemented in
> the admin_actions
> extension (in V3 API it is being separated into its own extension
> https://review.openstack.org/#/c/62280/)
> It doesn't do the all volumes snapshot that you want though. There's a
> small window (basically end of icehouse) to make an incompatible change in
> the V3 API if that would be the best way to do it.

Thanks for mentioning this.  If the consensus is to leave createImage as
it is and use a different API call, then createBackup looks like
a really nice fit.


More information about the OpenStack-dev mailing list