On 12/1/2017 2:47 PM, Matt Riedemann wrote:
Andrew Laski also mentioned in IRC that we didn't replace the original
instance.image_ref with the shelved image id because the shelve
operation should be transparent to the end user, they have the same
image (not really), same volumes, same IPs, etc once they unshelve. And
he mentioned that if you rebuild, for example, you'd then rebuild to the
original image instead of the shelved snapshot image.
I'm not sure how much I agree with that rebuild argument. I understand
it, but I'm not sure I agree with it. I think it's much easier to just
track things for what they are, which means saying if you create a guest
from a given image id, then track that in the instances table, don't lie
about it being something else.
Dredging this back up since it will affect cross-cell resize which will
rely on shelve/unshelve.
I had a thought recently (and noted in
https://bugs.launchpad.net/nova/+bug/1732428) that the RequestSpec
points at the original image used to create the server, or last rebuild
it (if the server was rebuilt with a new image). What if we used that
during rebuilds rather than the instance.image_ref?
Then unshelve could leave the instance.image_ref pointing at the shelve
snapshot image (since that's what is actually backing the server at the
time of unshelve and should fix the resize qcow2 bug linked above) but
rebuild could still rebuild from the original (or last rebuild) image
rather than the shelve snapshot image?
The only hiccup I'm aware of is we then still need to *not* delete the
snapshot image on unshelve that the instance is pointing at, which means
shelve snapshot images could pile up over time, especially with
cross-cell resize. Is that a problem? If so, could we have a periodic
that cleans up the old snapshot images based on some configured value?
--
Thanks,
Matt
__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev