[openstack-dev] To evacuate it is not mandatory to have compute service down but mandatory to have host down/powered-off/dead
Russell Bryant
rbryant at redhat.com
Thu Apr 16 13:55:33 UTC 2015
On 04/16/2015 12:45 AM, Ratnaker Katipally wrote:
> Hi,
>
> In the API.py of /nova/compute/
>
> We are checking for compute service status in evacuate(..) method.
>
> if/self/.servicegroup_api.service_is_up(service):
> msg = (_(/'Instance compute service state on %s '/
> /'expected to be down, but it was up.'/) % inst_host)
> LOG.error(msg)
> raiseexception.ComputeServiceUnavailable(msg)
>
> But It is not necessarily required for the compute service to be down
> but we can consider compute service is still up when host is
> down/dead/powered-off.
You are correct. We ran into this issue when working on an automated
evacuation solution for dead hosts [1].
evacuate should still work here, though. If you're using the default
servicegroup API backend, the service will eventually be seen as down,
but it will take some time (depending on a configured timeout).
It's possible that some external monitoring system already knows that
the host is down. If that system had a way to tell Nova that it knows
the host is gone, this could be sped up. There is a spec for a proposed
API that would allow this [2].
[1]
http://blog.russellbryant.net/2015/04/08/implementation-of-pacemaker-managed-openstack-vm-recovery/
[2] https://review.openstack.org/#/c/169836/
--
Russell Bryant
More information about the OpenStack-dev
mailing list