<div dir="ltr">+1 to what Chris suggested. Zombie state that doesn't affect quota, but doesn't create more problems by trying to reuse resources that aren't available. That way we can tell the customer that things are deleted, but we don't need to break our cloud by screwing up future schedule requests.<div>
<br></div><div style>-Mike</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Oct 8, 2013 at 11:58 AM, Joshua Harlow <span dir="ltr"><<a href="mailto:harlowja@yahoo-inc.com" target="_blank">harlowja@yahoo-inc.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Sure, basically a way around this is to do migration of the VM's on the<br>
host u are doing maintenance on.<br>
<br>
Thatıs one way y! has its ops folks work around this.<br>
<br>
Another solution is just don't do local_deletes :-P<br>
<br>
It sounds like your 'zombie' state would be useful as a way to solve this<br>
also.<br>
<br>
To me though any solution that creates 2 sets of the same resources in<br>
your cloud though isn't a good way (which afaik the current local_delete<br>
aims for) as it causes maintenance and operator pain (and needless<br>
problems that a person has to go in and figure out & resolve). I'd rather<br>
have the delete fail, leave the quota of the user alone, and tell the user<br>
the hypervisor where the VM is on is currently under maintenance (ideally<br>
the `host-update` resolves this, as long as its supported on all<br>
hypervisor types). At least that gives a sane operational experience and<br>
doesn't cause support bugs that are hard to resolve.<br>
<br>
But maybe this type of action should be more configurable. Allow or<br>
disallow local deletes.<br>
<div class="HOEnZb"><div class="h5"><br>
On 10/7/13 11:50 PM, "Chris Friesen" <<a href="mailto:chris.friesen@windriver.com">chris.friesen@windriver.com</a>> wrote:<br>
<br>
>On 10/07/2013 05:30 PM, Joshua Harlow wrote:<br>
>> A scenario that I've seen:<br>
>><br>
>> Take 'nova-compute' down for software upgrade, API still accessible<br>
>>since<br>
>> you want to provide API uptime (aka not taking the whole cluster<br>
>>offline).<br>
>><br>
>> User Y deletes VM on that hypervisor where nova-compute is currently<br>
>>down,<br>
>> DB locally deletes, at this point VM 'A' is still active but nova thinks<br>
>> its not.<br>
><br>
>Isn't this sort of thing exactly what "nova host-update --maintenance<br>
>enable <hostname>" was intended for?  I.e., push all the VMs off that<br>
>compute node so you can take down the services without causing problems.<br>
><br>
>Its kind of a pain that the host-update stuff is implemented at the<br>
>hypervisor level though (and isn't available for libvirt), it seems like<br>
>it could be implemented at a more generic level.  (And on that note, why<br>
>isn't there a "host" table in the database since we can have multiple<br>
>services running on one host and we might want to take them all down?)<br>
><br>
>Alternately, maybe we need to have a 2-stage delete, where the VM gets<br>
>put into a "zombie" state in the database and the resources can't be<br>
>reused until the compute service confirms that the VM has been killed.<br>
><br>
>Chris<br>
><br>
><br>
><br>
>_______________________________________________<br>
>OpenStack-dev mailing list<br>
><a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a><br>
><a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
<br>
<br>
_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</div></div></blockquote></div><br></div>