Any attempt to start nova compute services fails with the error HypervisorUnavailable: Connection to the hypervisor is broken on host:
The trace log is the following (taken from /var/log/nova/nova-compute.log
)
AUDIT nova.service [-] Starting compute node (version 2014.1.1)
ERROR nova.virt.libvirt.driver [-] Connection to libvirt failed: Failed to connect socket to '/var/run/libvirt/libvirt-sock': No such file or directory
TRACE nova.virt.libvirt.driver Traceback (most recent call last):
TRACE nova.virt.libvirt.driver File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py", line 787, in _connect
TRACE nova.virt.libvirt.driver libvirt.openAuth, uri, auth, flags)
TRACE nova.virt.libvirt.driver File "/usr/lib/python2.7/dist-packages/eventlet/tpool.py", line 139, in proxy_call
TRACE nova.virt.libvirt.driver rv = execute(f,*args,**kwargs)
TRACE nova.virt.libvirt.driver File "/usr/lib/python2.7/dist-packages/eventlet/tpool.py", line 77, in tworker
TRACE nova.virt.libvirt.driver rv = meth(*args,**kwargs)
TRACE nova.virt.libvirt.driver File "/usr/lib/python2.7/dist-packages/libvirt.py", line 105, in openAuth
TRACE nova.virt.libvirt.driver if ret is None:raise libvirtError('virConnectOpenAuth() failed')
TRACE nova.virt.libvirt.driver libvirtError: Failed to connect socket to '/var/run/libvirt/libvirt-sock': No such file or directory
TRACE nova.virt.libvirt.driver
ERROR nova.openstack.common.threadgroup [-] Connection to the hypervisor is broken on host: <HOST_NAME>
TRACE nova.openstack.common.threadgroup Traceback (most recent call last):
TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/dist-packages/nova/openstack/common/threadgroup.py", line 117, in wait
TRACE nova.openstack.common.threadgroup x.wait()
TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/dist-packages/nova/openstack/common/threadgroup.py", line 49, in wait
TRACE nova.openstack.common.threadgroup return self.thread.wait()
TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/dist-packages/eventlet/greenthread.py", line 168, in wait
TRACE nova.openstack.common.threadgroup return self._exit_event.wait()
TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/dist-packages/eventlet/event.py", line 116, in wait
TRACE nova.openstack.common.threadgroup return hubs.get_hub().switch()
TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/dist-packages/eventlet/hubs/hub.py", line 187, in switch
TRACE nova.openstack.common.threadgroup return self.greenlet.switch()
TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/dist-packages/eventlet/greenthread.py", line 194, in main
TRACE nova.openstack.common.threadgroup result = function(*args, **kwargs)
TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/dist-packages/nova/openstack/common/service.py", line 483, in run_service
TRACE nova.openstack.common.threadgroup service.start()
TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/dist-packages/nova/service.py", line 163, in start
TRACE nova.openstack.common.threadgroup self.manager.init_host()
TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 1006, in init_host
TRACE nova.openstack.common.threadgroup self.driver.init_host(host=self.host)
TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py", line 656, in init_host
TRACE nova.openstack.common.threadgroup self._do_quality_warnings()
TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py", line 639, in _do_quality_warnings
TRACE nova.openstack.common.threadgroup caps = self.get_host_capabilities()
TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py", line 2849, in get_host_capabilities
TRACE nova.openstack.common.threadgroup xmlstr = self._conn.getCapabilities()
TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py", line 721, in _get_connection
TRACE nova.openstack.common.threadgroup wrapped_conn = self._get_new_connection()
TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py", line 674, in _get_new_connection
TRACE nova.openstack.common.threadgroup wrapped_conn = self._connect(self.uri(), self.read_only)
TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py", line 796, in _connect
TRACE nova.openstack.common.threadgroup raise exception.HypervisorUnavailable(host=CONF.host)
TRACE nova.openstack.common.threadgroup HypervisorUnavailable: Connection to the hypervisor is broken on host: <HOST_NAME>
No other log file indicates any error
syslog
, dmesg
and /var/log/libvirt/libvirtd.log
does not show any issue
The libvirt configuration (/etc/libvirt/libvirtd.conf
) was set to log the errors
log_outputs="3:syslog:libvirtd"
Before the error appear the node was running smoothly, no changes were made.
In my case, I had re-installed libvirt and associated packages without restarting
libvirtd
. The error was thus resolved with the following three commands:Seems that it was a miss-configuration of the
libvirt
. In brief the problem was thatlibvirtd
was not starting with--listen
flag and so it was not creating the approiate sock file that the nova service is searching for.See my relevant answer on ask ubuntu on how to configure libvirt on 'listen' mode.
I had a similar case last night when I tried to restart my
nova-compute
service . In the lpg you provided, we can se3 the following line(s)So we can know that the issue results from the
libvirtd
service not working.In my case I checked the status of
libvirtd
service to find why it fails and then I tried to restart it as depicted bellowI googled a lot about the problem (g-io-error-quark,1) above. But all the results are about a problem of /etc/fstab.
In my case, I tried to use the
libvirtd -l
command to get some tipsFinally I found out that it! The problem is about the
/var/run
and that is a link to path /run and the link fails. So I reset the link to /run ,and then restarted thelibvirtd
service successfully.I hope this will work to you.