事情原委
最近在创建虚拟机时VM创建非常的慢并且出现创建失败的情况,计算节点报错显示块设备映射超时,在尝试了61次207秒后失败,此时查看Openstack的卷设备创建,发现volume显示是 downloading 状态,即未创建完成。
解决方案
方案一:增大尝试次数
增大block_device_allocate_retries参数即可,修改计算节点的/etc/nova/nova.conf
block_device_allocate_retries = 180
重启nova服务即可
方案二:使用 Image-Volume cache
在修改 block_device_allocate_retries 时意外发现注释中有一段标注
Number of times to retry block device allocation on failures. Starting with Liberty, Cinder can use image volume cache. This may help with block device allocation performance. Look at the cinder image_volume_cache_enabled configuration option.
从L版本Openstack加入了镜像券存储缓存的功能,通过这个功能可以快速创建镜像卷存储。根据文档修改块存储节点的/etc/cinder/cinder.conf
,加入以下内容
[DEFAULT]
cinder_internal_tenant_project_id = 926b3127ab004702a50c969fa629022b
cinder_internal_tenant_user_id = de788c0a0f77469b9e8285052e50fd60
[lvm]
image_volume_cache_max_size_gb = 200
image_volume_cache_max_count = 50
image_volume_cache_enabled = True
其中:cinder_internal_tenant_project_id
和cinder_internal_tenant_user_id
可以通过以下命令查询获取
[root@openstack ~]# source admin-openrc
[root@openstack ~]# openstack project list
+----------------------------------+---------+
| ID | Name |
+----------------------------------+---------+
| 926b3127ab004702a50c969fa629022b | service |
+----------------------------------+---------+
[root@openstack ~]# openstack user list
+----------------------------------+-----------+
| ID | Name |
+----------------------------------+-----------+
| de788c0a0f77469b9e8285052e50fd60 | cinder |
+----------------------------------+-----------+
5 comments
老哥,问个问题,为什么我创建的,计算和控制节点的/etc/nova/nova.conf,都没有方案一的这个对应内容呢(╯‵□′)╯︵┴─┴,用虚拟机还是很难顶啊
那个是自己添加上去的,在nova项里面,配置文件里面原本没有
有点难,又出现别的问题了。然后我重启了一下虚机,dashboard的认证又有问题了⌇●﹏●⌇
dashboard是新配置的吗?一般这玩意很少会出问题,登录认证出问题的话应该是Keystone,可以先试试命令行登录看看账号有没有问题
哦哦,我再试试,是所有节点都需要添加吗,我控制节点和一个计算节点都添加了,另一个计算节点没添加,好像就没成功