OpenStack常见问题
driftfix 'slew'警告
原因:当前QEMU机型不支持driftfix=slew参数。
解决方法:
sudo crudini --set /etc/nova/nova.conf libvirt hw_machine_type virt systemctl restart openstack-nova-compute
QEMU报错:device requires xxx bytes, block backend provides xxx bytes
原因:QEMU_EFI.fd未对齐。
解决方案:参考部署EDK2,对齐QEMU_EFI.fd。
QEMU报错:qemu-system-aarch64: -accel kvm: info: [qemu] fix VIRT_MEM range 0xc0000000 - 0x2c0000000
原因:未配置内存映射最低地址。
解决方法:
# 在计算节点增加内核参数 sudo sysctl -w vm.mmap_min_addr="65536" # 永久生效 echo "vm.mmap_min_addr=65536" | sudo tee -a /etc/sysctl.conf
openstack-nova-compute启动报错:AttributeError: module 'lib' has no attribute 'X509_V_FLAG_NOTIFY_POLICY'. Did you mean: 'X509_V_FLAG_EXPLICIT_POLICY'?
原因:OpenSSL及相关组件版本出错。
解决方法:重装pyopenssl。
pip install pyopenssl==23.2.0 yum install python3-cryptography-35.0.0-1.oe2403sp2 python3-pyOpenSSL-20.0.1-2.oe2403sp2
安装过程Python包冲突,报错:keystoneauth1.exceptions.http.InternalServerError: Internal Server Error (HTTP 500)
原因:OpenStack依赖的Python包版本出错。
解决方案:依次检查jinja2、urllib3、requests、markupsafe包的来源,如不是来自OpenStack_Wallaby仓库,大概率可以判断为包冲突,卸载重新安装即可解决。
yum list installed |grep xx rpm -e xx --nodeps yum install xx yum list installed |grep xx su -s /bin/sh -c "keystone-manage db_sync" keystone systemctl restart httpd
机密虚拟机部署失败,显示No valid host found
原因:计算节点未探测到安全内存,或计算节点安全内存信息未同步至控制节点。
解决方案:
参考虚拟机信息查询查看OpenStack资源使用情况,确认存储、CPU等资源充足,并检查是否正常获取安全内存信息。若不存在安全内存信息,请依次检查以下事项。
- 是否安装tmm_driver。
lsmod | grep tmm_driver
- virtCCA是否使能,显示1表示使能成功。
cat /sys/kernel/tmm/virtcca_enabled
- libvirt是否正常识别virtCCA能力。
virsh domcapabilities | grep virtcca
若上述任意一项不满足,请执行以下操作。
- 安装tmm_driver。
insmod tmm_driver.ko
- 删除libvirt节点信息缓存,并重启libvirt进程,确认libvirt识别到virtCCA能力。
rm -rf /var/cache/libvirt/qemu/capabilities/* systemctl restart libvirtd virsh domcapabilities | grep virtcca
- 重启httpd和nova-compute。
systemctl restart httpd openstack-nova-compute
SRIOV特性创建虚拟机超时失败,neutron-openvswitch服务无法启动,neutron-dhcp报错:Failed reporting state!: oslo_messaging.exceptions.MessagingTimeout: Timed out waiting for a reply to message ID
原因:Open vSwitch配置了dpdk参数,未启动dpdk服务时无法启动openvswitch。
解决办法:
- 删除Open vSwitch的dpdk参数。
ovs-vsctl --no-wait remove Open_vSwitch . other_config dpdk-init ovs-vsctl --no-wait remove Open_vSwitch . other_config dpdk-socket-mem ovs-vsctl --no-wait remove Open_vSwitch . other_config dpdk-lcore-mask ovs-vsctl --no-wait remove Open_vSwitch . other_config pmd-cpu-mask ovs-vsctl --no-wait remove Open_vSwitch . other_config dpdk-pmd-driver ovs-vsctl --no-wait remove Open_vSwitch . other_config vhost-iommu-support
- 检查Open vSwitch有无dpdk参数,返回false说明删除dpdk参数成功。
ovs-vsctl get Open_vSwitch . dpdk_initialized
- 重新启动服务。
systemctl restart openvswitch neutron-openvswitch
父主题: 配置OpenStack支持机密虚拟机