>Nova now can detect host unreachable. But it fails to make out host isolation, 
>host dead and nova compute service down. When host unreachable is reported, 
>users have to find out the exact state by himself and then take the 
>appropriate measure to recover. Therefore we'd like to improve the host 
>detection for nova.

I guess this depends on the service group driver that you use.  For example if 
you use the DB driver, then there is a thread running on the compute manager 
that periodically updates the "alive" status - which included both a liveness 
check (to the extent that the thread is still running) of the compute manager 
and that it can contact the DB.    If the compute manager is using conductor 
then it also includes implicitly a check that the compute manager can talk to 
MQ (a nice side effect of conductor - as before a node could be "Up" because it 
could talk to the DB but not able to process any messages)

So to me the DB driver kind of already covers "send network heartbeat to the 
central agent and writes timestamp in shared storage periodically" - so maybe 
this is more of a specific ServiceGroup Driver issue rather than a generic 
ServiceGroup change ?

Phil



From: Jiangying (Jenny) [mailto:jenny.jiangy...@huawei.com]
Sent: 28 April 2014 13:31
To: openstack-dev@lists.openstack.org
Subject: [openstack-dev] [nova][service group]improve host state detection

Nova now can detect host unreachable. But it fails to make out host isolation, 
host dead and nova compute service down. When host unreachable is reported, 
users have to find out the exact state by himself and then take the appropriate 
measure to recover. Therefore we'd like to improve the host detection for nova.

Currently the service group API factors out the host detection and makes it a 
set of abstract internal APIs with a pluggable backend implementation. The 
backend we designed is as follows:

A detection central agent is introduced. When a member joins into the service 
group, the member host starts to send network heartbeat to the central agent 
and writes timestamp in shared storage periodically. When the central agent 
stops receiving the network heartbeats from a member, it pings the member and 
checks the storage heartbeat before declaring the host to have failed.

----------------------------------------------------------------------------------------------------------------
network heartbeat|network ping|storage heartbeat| state          | reason
------------------------|-----------------|------------------------|---------------------------|------------------------------------------
        OK       |      -     |        -        | Running             | -
      Not OK     |   Not OK   |     Not OK      | Dead               | hardware 
failure/abnormal host shut down
      Not OK     |     OK     |     Not OK      | Service unreachable| service 
process crashed
      Not OK     |   Not OK   |       OK        | Isolated           | network 
unreachable
----------------------------------------------------------------------------------------------------------------
Based on the state recognition table, nova can discern the exact host state and 
assign the reasons.

Thoughts?

Jenny

_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to