事情原委

最近在创建虚拟机时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_idcinder_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    |
+----------------------------------+-----------+

最后修改:2022 年 06 月 12 日
-