---
title: OpenStack常见问题
description: "原因：当前QEMU机型不支持driftfix=slew参数。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/252RC2/confidt/kunpengtee_16_0066.html
sourcePath: /source/zh/kunpengboostkithistory/252RC2/confidt/kunpengtee_16_0066.html
indexId: 6a0deb938fb157a3264baec8ff09bc9c54cd6c0916494ab9e0372847d6e74ead72
---
# 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等资源充足，并检查是否正常获取安全内存信息。若不存在安全内存信息，请依次检查以下事项。

1. 是否安装tmm_driver。

```
lsmod | grep tmm_driver
```


2. virtCCA是否使能，显示1表示使能成功。

```
cat /sys/kernel/tmm/virtcca_enabled
```


3. libvirt是否正常识别virtCCA能力。

```
virsh domcapabilities | grep virtcca
```


若上述任意一项不满足，请执行以下操作。

1. 安装tmm_driver。

```
insmod tmm_driver.ko
```


2. 删除libvirt节点信息缓存，并重启libvirt进程，确认libvirt识别到virtCCA能力。

```
rm -rf /var/cache/libvirt/qemu/capabilities/*
systemctl restart libvirtd
virsh domcapabilities | grep virtcca
```


3. 重启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。

解决办法：

1. 删除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
```


2. 检查Open vSwitch有无dpdk参数，返回false说明删除dpdk参数成功。

```
ovs-vsctl get Open_vSwitch . dpdk_initialized
```


3. 重新启动服务。

```
systemctl restart openvswitch neutron-openvswitch
```
