IT/openstack

OpenStack : Instance 생성 오류 "Failure prepping block device"

울티마 2015. 9. 7. 17:25

- 새로운 인스턴스 생성 시 block device 생성 또는 downlod가 늦어져 nova에서 지정된 시간 안에 완료되지 못할 경우 인스턴스 생성이 실패함

- controller의 nova-api.log 내용

"Build of instance 157c1223-9ae6-4f6b-aa4d-2ea0b0776acf aborted: Failure prepping block device.",

"code": 500, "details": "  File \"/usr/lib/python2.7/dist-packages/nova/compute/manager.py\", line 2054, in do_build_and_run_instance 


- 해당 compute 노드의 nova-compute.log (발췌)

2015-09-07 13:59:17.274 2090 ERROR nova.compute.manager [req-bf1e23c3-31a0-47c5-a6fe-8a3adf7e448d None] [instance: 157c1223-9ae6-4f6b-aa4d-2ea0b0776acf] Instance failed block device setup

2015-09-07 13:59:17.274 2090 TRACE nova.compute.manager [instance: 157c1223-9ae6-4f6b-aa4d-2ea0b0776acf]     wait_func(context, vol['id'])

2015-09-07 13:59:17.274 2090 TRACE nova.compute.manager [instance: 157c1223-9ae6-4f6b-aa4d-2ea0b0776acf]   File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 1276, in _await_block_device_map_created

015-09-07 13:59:17.318 2090 ERROR nova.compute.manager [req-bf1e23c3-31a0-47c5-a6fe-8a3adf7e448d None] [instance: 157c1223-9ae6-4f6b-aa4d-2ea0b0776acf] Failure prepping block device


- 해결방법 (Juno 버전 이상)

  * 출처 : http://docs.openstack.org/juno/config-reference/content/nova-conf-changes-juno.html


Compute 노드의 nova.conf [DEFAULT] 항목에 아래 두 파라미터 삽입 및 수치 조정

(최대 waiting 시간은 retry 횟수 x retry 간격, 아래서는 60 x 3 = 180초)


[DEFAULT] block_device_allocate_retries = 60(IntOpt) Number of times to retry block device allocation on failures
[DEFAULT] block_device_allocate_retries_interval = 3(IntOpt) Waiting time interval (seconds) between block device allocation retries on failures

block_device_allocate를 wait 하는 시간을 늘림에 따라 또 다른 side-effect가 발생할 수 있으니 실제 테스트 해보면서 조정 필요