OpenStack专题:配置block_device_allocate_retries解决卷创建超时的问题

OpenStack专题:配置block_device_allocate_retries解决卷创建超时的问题

作者:HQ |  时间:2018-04-12 |  浏览:2964 |  评论已关闭 条评论

问题
在OpenStack里尝试从Image里启动一个实例时,如果配置的卷很大,例如50G,则有可能会创建实例失败。

寻找原因
1. 从问题的现象上来看,OpenStack创建实例提示失败的具体原因如下:
Build of instance aborted: Volume did not finish being created even after we waited 191 seconds or 61 attempts. And its status is downloading.
从错误原因上推测,OpenStack在不停尝试61次后,宣告创建实例失败。此时,卷创建依然还未完成。所以,实例创建失败的原因可能为,卷创建需要的时间比较久,在卷创建成功完成之前,Nova组件等待超时了。
2. 查看cinder日志,可以看到,在实例创建失败并等待一段时间之后,日志里有提示卷创建成功:
Volume created successfully.

解决办法
在nova.conf中有一个控制卷设备重试的参数:block_device_allocate_retries,可以通过修改此参数延长等待时间。
该参数默认值为60,这个对应了之前实例创建失败消息里的61 attempts。我们可以将此参数设置的大一点,例如:180。这样Nova组件就不会等待卷创建超时,也即解决了此问题。

注意事项
修改了此参数后,需要重启Nova组件各个服务,配置才能生效。

标签:

评论已关闭。