Boot from volume, block device allocate timeout cause VM error, but volume would be available later
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
Medium
|
Lan Qi song | ||
Kilo |
Fix Released
|
Undecided
|
Lan Qi song |
Bug Description
When we try to boot multi instances from volume (with a large image source) at the same time, we usually got a block device allocate error as the logs in nova-compute.log:
2015-03-30 23:22:46.920 6445 WARNING nova.compute.
2015-03-30 23:22:47.131 6445 ERROR nova.compute.
2015-03-30 23:22:47.131 6445 TRACE nova.compute.
2015-03-30 23:22:47.131 6445 TRACE nova.compute.
2015-03-30 23:22:47.131 6445 TRACE nova.compute.
2015-03-30 23:22:47.131 6445 TRACE nova.compute.
2015-03-30 23:22:47.131 6445 TRACE nova.compute.
2015-03-30 23:22:47.131 6445 TRACE nova.compute.
2015-03-30 23:22:47.131 6445 TRACE nova.compute.
2015-03-30 23:22:47.131 6445 TRACE nova.compute.
2015-03-30 23:22:47.131 6445 TRACE nova.compute.
2015-03-30 23:22:47.131 6445 TRACE nova.compute.
2015-03-30 23:22:47.131 6445 TRACE nova.compute.
2015-03-30 23:22:47.131 6445 TRACE nova.compute.
2015-03-30 23:22:47.131 6445 TRACE nova.compute.
2015-03-30 23:22:47.131 6445 TRACE nova.compute.
2015-03-30 23:22:47.131 6445 TRACE nova.compute.
2015-03-30 23:22:47.131 6445 TRACE nova.compute.
2015-03-30 23:22:47.131 6445 TRACE nova.compute.
This error cause the VM in "error" status:
+------
| ID | Name | Status | Task State | Power State | Networks |
+------
| 1fa2d7aa-
+------
But the volume was in "available" status:
-------
| ID | Status | Name | Size | Volume Type | Bootable | Attached to |
+------
| a9ab2dc2-
+------
+------
And when we teminiate this VM, the volume will still exist, since there is no volume attachment info stored in this VM.
This can be easily reproduced:
1. add the following options to nova.conf in compute node ( make sure the error will be happened even with small image such as cirros):
block_device_
block_device_
2. restart the nova-compute service and try boot one instance from volume:
nova boot --flavor 1 --block-device source=
tags: | added: volumes |
Changed in nova: | |
importance: | Undecided → Low |
Changed in nova: | |
importance: | Low → Medium |
Changed in nova: | |
milestone: | none → liberty-1 |
status: | Fix Committed → Fix Released |
Changed in nova: | |
milestone: | liberty-1 → 12.0.0 |
Fix proposed to branch: master /review. openstack. org/177084
Review: https:/