<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Jan 7, 2014 at 7:50 AM, Jon Bernard <span dir="ltr"><<a href="mailto:jbernard@tuxion.com" target="_blank">jbernard@tuxion.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello all,<br>
<br>
I would like to propose instance-level snapshots as a feature for<br>
inclusion in Nova.  An initial draft of the more official proposal is<br>
here [1], blueprint is here [2].<br>
<br>
In a nutshell, this feature will take the existing create-image<br>
functionality a few steps further by providing the ability to take<br>
a snapshot of a running instance that includes all of its attached<br>
volumes.  A coordinated snapshot of multiple volumes for backup<br>
purposes.  The snapshot operation should occur while the instance is in<br>
a paused and quiesced state so that each volume snapshot is both<br>
consistent within itself and with respect to its sibling snapshots.<br>
<br>
I still have some open questions on a few topics:<br>
<br>
* API changes, two different approaches come to mind:<br>
<br>
  1. Nova already has a command `createImage` for creating an image of an<br>
     existing instance.  This command could be extended to take an<br>
     additional parameter `all-volumes` that signals the underlying code<br>
     to capture all attached volumes in addition to the root volume.  The<br>
     semantic here is important, `createImage` is used to create<br>
     a template image stored in Glance for later reuse.  If the primary<br>
     intent of this new feature is for backup only, then it may not be<br>
     wise to overlap the two operations in this way.  On the other hand,<br>
     this approach would introduce the least amount of change to the<br>
     existing API, requiring only modification of an existing command<br>
     instead of the addition of an entirely new one.<br>
<br>
  2. If the feature's primary use is for backup purposes, then a new API<br>
     call may be a better approach, and leave `createImage` untouched.<br>
     This new call could be called `createBackup` and take as a parameter<br>
     the name of the instance.  Although it introduces a new member to the<br>
     API reference, it would allow this feature to evolve without<br>
     introducing regressions in any existing calls.  These two calls could<br>
     share code at some point in the future.<br></blockquote><div><br></div><div>Note there already is a createBackup/create_backup API call implemented in the admin_actions <br>extension (in V3 API it is being separated into its own extension <a href="https://review.openstack.org/#/c/62280/">https://review.openstack.org/#/c/62280/</a>)<br>
</div><div>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.<br><br>
</div><div>Chris<br></div><br></div></div></div>