[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