计算节点使用QEMU2.12、libvirt 4.5.0,创建虚拟机失败的解决方法
问题现象描述
计算节点使用QEMU 2.12、libvirt 4.5.0,创建虚拟机时控制节点nova-conductor.log提示如下信息:
Error nova.conductor.manager [req-eef09c86-6e51-4b81-9ace-dfe6c44277f8 c26176efd46543a092e98ac5f4dd9623 965fc26e98e24698b6b593a5ad47ef2e - default] Failed to schedule instances: NoValidHost_Remote: No valid host was found.
计算节点nova-compute.log提示如下信息:
Error nova.compute.manager [req-3ac51902-3853-4cc1-ad07-5280b48313d5- - - - -] No compute node record for host compute1: ComputeHostNotFound_Remote: Compute host compute1 could not be found.
关键过程、根本原因分析
libvirt 4.5.0版本超出最大线程,需要修改libvirt 4.5.0源码。
结论、解决方案及效果
- 可自行修改libvirt 4.5.0源码,或打入patch。
修改源码对比链接:https://github.com/libvirt/libvirt/commit/ba35ac2ebbc7f94abc50ffbf1d681458e2406444
- 编译源码RPM包后,覆盖安装。
yum -y install sanlock cd ~/rpmbuild/RPMS/aarch64/ rpm -Uvh *.rpm
- 在控制节点重新填充nova数据库。
su -s /bin/sh -c "nova-manage api_db sync" nova su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova su -s /bin/sh -c "nova-manage db sync" nova su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova nova-manage cell_v2 discover_hosts
- 分别在控制节点和计算节点重启服务。
systemctl restart openstack-nova-*
父主题: OpenStack Stein