[关闭]
@Alex-Zhao 2018-04-17T15:09:59.000000Z 字数 713 阅读 366

在OpenStack中配置block_device_allocate_retries解决卷创建超时的问题

OpenStack


问题

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

寻找原因

  1. 从问题的现象上来看,OpenStack创建实例提示失败的具体原因如下:
  1. 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日志,可以看到,在实例创建失败并等待一段时间之后,日志里有提示卷创建成功:

  1. Volume created successfully.

解决办法

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

注意事项

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

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注