通过kolla-ansible部署openstack时,nova_libvirtd和nova_compute启动失败
/var/log/kolla/libvirt/libvirtd.log中错误如下:
2020-11-04 06:00:54.672+0000: 13082: error : virPidFileAcquirePath:422 : Failed to acquire pid file '/var/run/libvirtd.pid': Resource temporarily unavailable
2020-11-04 06:01:01.583+0000: 15239: info : libvirt version: 4.5.0, package: 23.el7_7.3 (CentOS BuildSystem <http://bugs.centos.org>, 2019-12-02-17:45:06, x86-02.bsys.centos.org)
2020-11-04 06:01:01.583+0000: 15239: error : virPidFileAcquirePath:422 : Failed to acquire pid file '/var/run/libvirtd.pid': Resource temporarily unavailable
2020-11-04 06:01:14.895+0000: 19201: info : libvirt version: 4.5.0, package: 23.el7_7.3 (CentOS BuildSystem <http://bugs.centos.org>, 2019-12-02-17:45:06, x86-02.bsys.centos.org)
2020-11-04 06:01:14.895+0000: 19201: error : virPidFileAcquirePath:422 : Failed to acquire pid file '/var/run/libvirtd.pid': Resource temporarily unavailable
2020-11-04 06:01:40.990+0000: 26878: info : libvirt version: 4.5.0, package: 23.el7_7.3 (CentOS BuildSystem <http://bugs.centos.org>, 2019-12-02-17:45:06, x86-02.bsys.centos.org)
2020-11-04 06:01:40.990+0000: 26878: error : virPidFileAcquirePath:422 : Failed to acquire pid file '/var/run/libvirtd.pid': Resource temporarily unavailable
这个问题是因为宿主机上起了libvirtd服务,和容器服务相冲突:
# systemctl status libvirtd
● libvirtd.service - Virtualization daemon
Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; disabled; vendor preset: enabled)
Active: active (running) since Wed 2020-11-04 14:32:11 CST; 4s ago
Docs: man:libvirtd(8)
https://libvirt.org
Main PID: 10351 (libvirtd)
Tasks: 17 (limit: 32768)
Memory: 7.7M
CGroup: /system.slice/libvirtd.service
└─10351 /usr/sbin/libvirtd
Nov 04 14:32:11 systemd[1]: Starting Virtualization daemon...
Nov 04 14:32:11 systemd[1]: Started Virtualization daemon.
解决方法是关闭这个服务并重启容器:
#systemctl stop libvirtd
#systemctl disable libvirtd
Removed symlink /etc/systemd/system/multi-user.target.wants/libvirtd.service.
Removed symlink /etc/systemd/system/sockets.target.wants/virtlockd.socket.
Removed symlink /etc/systemd/system/sockets.target.wants/virtlogd.socket.
#docker restart nova_libvirt nova_compute