Openstack-Nova
nova-compute strart 上的錯誤 - libvirt:無法將套接字連接到“/var/run/libvirt/libvirt-sock”:沒有這樣的文件或目錄
任何啟動 nova 計算服務的嘗試都失敗並出現錯誤
HypervisorUnavailable: Connection to the hypervisor is broken on host:
跟踪日誌如下(取自
/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>
沒有其他日誌文件指示任何錯誤
syslog
,dmesg
也/var/log/libvirt/libvirtd.log
沒有顯示任何問題libvirt 配置 (
/etc/libvirt/libvirtd.conf
) 設置為記錄錯誤log_outputs="3:syslog:libvirtd"
在出現錯誤之前,節點執行平穩,沒有進行任何更改。
似乎這是
libvirt
. 簡而言之,問題在於它libvirtd
不是以--listen
flag 開頭,因此它沒有創建 nova 服務正在搜尋的適當的 sock 文件。有關如何在“偵聽”模式下配置 libvirt 的問題,請參閱我的相關答案。
就我而言,我已經重新安裝了 libvirt 和相關的軟體包而沒有重新啟動
libvirtd
. 因此,使用以下三個命令解決了該錯誤:systemctl stop libvirtd systemctl start libvirtd systemctl status libvirtd