[openstack-dev] [Nova][Heat] scheduled-images blueprint
Steven Hardy
shardy at redhat.com
Wed May 1 10:50:07 UTC 2013
On Wed, May 01, 2013 at 04:43:34PM +1000, Angus Salkeld wrote:
> On 30/04/13 15:23 -0400, Russell Bryant wrote:
> >Greetings,
> >
> >The following blueprint was proposed for the havana series:
> >
> > https://blueprints.launchpad.net/nova/+spec/scheduled-images
> >
> >Based on the current design, I think the nova part of this needs to be
> >deferred. It does not seem appropriate to add an API extension that
> >talks to a service that is not an integrated project, or at least incubated.
> >
> >Beyond that, I'm curious about the choice to implement this as a new
> >service. I definitely agree that this is not something that should be
> >implemented inside of Nova. However, I wonder if it makes sense as a
> >feature in Heat. It seems like an orchestration feature.
>
> I'll point out some blueprints in a similar realm:
>
> 1) https://blueprints.launchpad.net/heat/+spec/stack-snapshot
> This is to snapshot the whole stack which is quite chalanging. But
> this together with a periodic/workflow service could give you the
> same functionality.
Yes, as Angus says, this appears to cover some of the same/similar
functionality - I've not yet got into the details on this, but if we can
make it work it should be a pretty cool feature IMO :)
Basic idea is:
- Provide interface which allows a coordinated point-in-time snapshot of
all Heat stack resources (e.g heat stack-snapshot mystack)
- This would snapshot the Heat template, all resource metadata, all
instances, attached volumes, and state of any other resources where
applicable.
- We'd use something similar to our existing Rollback functionality, to
allow reverting a stack to a previous snapshot
Obviously the challenge here will be providing some way of getting an
"atomic" snapshot when we'll be sending lots of individual API calls to do
the snapshots. Initially I think this will be impossible, so we can get
the orchestration of non-atomic snapshots working, then consider if e.g the
nova group-scheduling idea could be extended such that you could specify a
co-ordinated snapshot of groups of instances.
> 2) https://blueprints.launchpad.net/heat/+spec/instance-resize-update-stack
> implement UpdateStack support for the InstanceType property,
> such that an instance can be resized after it has been launched.
> 3) https://blueprints.launchpad.net/heat/+spec/rolling-updates
> Roll out changes in topology and/or configuration to a limited
> percentage of these instances and then wait to see if those initial
> rollouts produced failures or successes before deploying a larger
> percentage.
rolling-updates is more to do with phased rollout of new resource
(instance) metadata AFAIK, so probably not that useful in the context of
backups?
There is also https://blueprints.launchpad.net/heat/+spec/volume-snapshots
which I guess could be relevant
> Not sure if _everyone_ wants (or should be forced) to use Heat?
>
> It comes down to where we want the seperation of duties. Currently
> when in doubt put-it-in-nova... Lucky you;)
>
> One way to implement this in Heat would be to have a Resource type
> provided by https://github.com/rackspace-titan/qonos/ (or similar)
> that can do the scheduling/snapshotting:
>
> "my_cool_server" {
> "Type": "AWS::EC2::Instance",
> ... bla bla ...
> },
> MyBackups {
> "Type": "OS::QONOS::TimedServerSnapshot",
> "Properties": {
> "Servers": [{"Ref": "my_cool_server"}],
> "PeriodInHours": 24
> }
> }
>
> In the TimedServerSnapshot resource plugin we could send a job to qonos to run the
> snapshot. - Just an idea.
Interesting. I guess another idea along similar lines is to add a resource
definition to the snapshot features mentioned above, such that you could
let heat (which already has to handle periodic tasks) trigger periodic
snapshots in addition to supporting user-triggered snapshots via the API.
Steve
More information about the OpenStack-dev
mailing list