Boot instances from volume using --block-device fails

Bug #1391950 reported by Fabrizio Soppelsa
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mirantis OpenStack
Invalid
Critical
MOS Nova

Bug Description

Seen on 5.1.

nova always fails if booting like:

nova boot --flavor m1.medium --block-device source=volume,id=48c4d00d-10f1-4475-ad85-44337453d6cc,shutdown=preserve,bootindex=0 --nic net-id=68eb008f-9ba0-4003-b432-9c6c37d5a3b3 --config-drive=true instance

With same parameters, booting from image (--image) works fine. Booting from a volume using --boot-volume works also fine.

From nova-all we have [1]
From cinder-all [2]

[1]
<179>Nov 12 11:50:27 node-1 nova-scheduler 2014-11-12 11:50:27.274 1958 ERROR nova.scheduler.filter_scheduler [req-fd0019ed-58d6-46e2-b5b1-513f851c413f None] [instance: 250df9d0-66b8-40be-9f08-a25f1d53a955] Error from last host: node-3 (node node-3): [u'Traceback (most recent call last):\n', u' File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 1305, in _build_instance\n set_access_ip=set_access_ip)\n', u' File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 393, in decorated_function\n return function(self, context, *args, **kwargs)\n', u' File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 1717, in _spawn\n LOG.exception(_(\'Instance failed to spawn\'), instance=instance)\n', u' File "/usr/lib/python2.7/dist-packages/nova/openstack/common/excutils.py", line 68, in __exit__\n six.reraise(self.type_, self.value, self.tb)\n', u' File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 1714, in _spawn\n block_device_info)\n', u' File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py", line 2267, in spawn\n block_device_info)\n', u' File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py", line 3672, in _create_domain_and_network\n power_on=power_on)\n', u' File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py", line 3574, in _create_domain\n domain.XMLDesc(0))\n', u' File "/usr/lib/python2.7/dist-packages/nova/openstack/common/excutils.py", line 68, in __exit__\n six.reraise(self.type_, self.value, self.tb)\n', u' File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py", line 3569, in _create_domain\n domain.createWithFlags(launch_flags)\n', u' File "/usr/lib/python2.7/dist-packages/eventlet/tpool.py", line 179, in doit\n result = proxy_call(self._autowrap, f, *args, **kwargs)\n', u' File "/usr/lib/python2.7/dist-packages/eventlet/tpool.py", line 139, in proxy_call\n rv = execute(f,*args,**kwargs)\n', u' File "/usr/lib/python2.7/dist-packages/eventlet/tpool.py", line 77, in tworker\n rv = meth(*args,**kwargs)\n', u' File "/usr/lib/python2.7/dist-packages/libvirt.py", line 896, in createWithFlags\n if ret == -1: raise libvirtError (\'virDomainCreateWithFlags() failed\', dom=self)\n', u"libvirtError: Failed to open file '/var/lib/nova/instances/250df9d0-66b8-40be-9f08-a25f1d53a955/disk': No such file or directory\n"]
<182>Nov 12 11:50:27 node-1 nova-scheduler 2014-11-12 11:50:27.292 1958 INFO nova.scheduler.filter_scheduler [req-fd0019ed-58d6-46e2-b5b1-513f851c413f None] Choosing host WeighedHost [host: node-5, weight: 1.0] for instance 250df9d0-66b8-40be-9f08-a25f1d53a955
<182>Nov 12 11:50:31 node-1 nova-scheduler 2014-11-12 11:50:31.007 1958 INFO nova.scheduler.filter_scheduler [req-fd0019ed-58d6-46e2-b5b1-513f851c413f None] Attempting to build 1 instance(s) uuids: [u'250df9d0-66b8-40be-9f08-a25f1d53a955']
<179>Nov 12 11:50:31 node-1 nova-scheduler 2014-11-12 11:50:31.013 1958 ERROR nova.scheduler.filter_scheduler [req-fd0019ed-58d6-46e2-b5b1-513f851c413f None] [instance: 250df9d0-66b8-40be-9f08-a25f1d53a955] Error from last host: node-5 (node node-5): [u'Traceback (most recent call last):\n', u' File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 1305, in _build_instance\n set_access_ip=set_access_ip)\n', u' File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 393, in decorated_function\n return function(self, context, *args, **kwargs)\n', u' File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 1717, in _spawn\n LOG.exception(_(\'Instance failed to spawn\'), instance=instance)\n', u' File "/usr/lib/python2.7/dist-packages/nova/openstack/common/excutils.py", line 68, in __exit__\n six.reraise(self.type_, self.value, self.tb)\n', u' File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 1714, in _spawn\n block_device_info)\n', u' File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py", line 2267, in spawn\n block_device_info)\n', u' File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py", line 3672, in _create_domain_and_network\n power_on=power_on)\n', u' File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py", line 3574, in _create_domain\n domain.XMLDesc(0))\n', u' File "/usr/lib/python2.7/dist-packages/nova/openstack/common/excutils.py", line 68, in __exit__\n six.reraise(self.type_, self.value, self.tb)\n', u' File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py", line 3569, in _create_domain\n domain.createWithFlags(launch_flags)\n', u' File "/usr/lib/python2.7/dist-packages/eventlet/tpool.py", line 179, in doit\n result = proxy_call(self._autowrap, f, *args, **kwargs)\n', u' File "/usr/lib/python2.7/dist-packages/eventlet/tpool.py", line 139, in proxy_call\n rv = execute(f,*args,**kwargs)\n', u' File "/usr/lib/python2.7/dist-packages/eventlet/tpool.py", line 77, in tworker\n rv = meth(*args,**kwargs)\n', u' File "/usr/lib/python2.7/dist-packages/libvirt.py", line 896, in createWithFlags\n if ret == -1: raise libvirtError (\'virDomainCreateWithFlags() failed\', dom=self)\n', u"libvirtError: Failed to open file '/var/lib/nova/instances/250df9d0-66b8-40be-9f08-a25f1d53a955/disk': No such file or directory\n"]
<182>Nov 12 11:50:31 node-1 nova-scheduler 2014-11-12 11:50:31.024 1958 INFO nova.scheduler.filter_scheduler [req-fd0019ed-58d6-46e2-b5b1-513f851c413f None] Choosing host WeighedHost [host: node-4, weight: 1.0] for instance 250df9d0-66b8-40be-9f08-a25f1d53a955
<182>Nov 12 11:50:34 node-1 nova-scheduler 2014-11-12 11:50:34.380 1958 INFO nova.scheduler.filter_scheduler [req-fd0019ed-58d6-46e2-b5b1-513f851c413f None] Attempting to build 1 instance(s) uuids: [u'250df9d0-66b8-40be-9f08-a25f1d53a955']
<179>Nov 12 11:50:34 node-1 nova-scheduler 2014-11-12 11:50:34.382 1958 ERROR nova.scheduler.filter_scheduler [req-fd0019ed-58d6-46e2-b5b1-513f851c413f None] [instance: 250df9d0-66b8-40be-9f08-a25f1d53a955] Error from last host: node-4 (node node-4): [u'Traceback (most recent call last):\n', u' File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 1305, in _build_instance\n set_access_ip=set_access_ip)\n', u' File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 393, in decorated_function\n return function(self, context, *args, **kwargs)\n', u' File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 1717, in _spawn\n LOG.exception(_(\'Instance failed to spawn\'), instance=instance)\n', u' File "/usr/lib/python2.7/dist-packages/nova/openstack/common/excutils.py", line 68, in __exit__\n six.reraise(self.type_, self.value, self.tb)\n', u' File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 1714, in _spawn\n block_device_info)\n', u' File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py", line 2267, in spawn\n block_device_info)\n', u' File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py", line 3672, in _create_domain_and_network\n power_on=power_on)\n', u' File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py", line 3574, in _create_domain\n domain.XMLDesc(0))\n', u' File "/usr/lib/python2.7/dist-packages/nova/openstack/common/excutils.py", line 68, in __exit__\n six.reraise(self.type_, self.value, self.tb)\n', u' File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py", line 3569, in _create_domain\n domain.createWithFlags(launch_flags)\n', u' File "/usr/lib/python2.7/dist-packages/eventlet/tpool.py", line 179, in doit\n result = proxy_call(self._autowrap, f, *args, **kwargs)\n', u' File "/usr/lib/python2.7/dist-packages/eventlet/tpool.py", line 139, in proxy_call\n rv = execute(f,*args,**kwargs)\n', u' File "/usr/lib/python2.7/dist-packages/eventlet/tpool.py", line 77, in tworker\n rv = meth(*args,**kwargs)\n', u' File "/usr/lib/python2.7/dist-packages/libvirt.py", line 896, in createWithFlags\n if ret == -1: raise libvirtError (\'virDomainCreateWithFlags() failed\', dom=self)\n', u"libvirtError: Failed to open file '/var/lib/nova/instances/250df9d0-66b8-40be-9f08-a25f1d53a955/disk': No such file or directory\n"]
<180>Nov 12 11:50:34 node-1 nova-scheduler 2014-11-12 11:50:34.385 1958 WARNING nova.scheduler.utils [req-fd0019ed-58d6-46e2-b5b1-513f851c413f None] Failed to scheduler_run_instance: No valid host was found. Exceeded max scheduling attempts 3 for instance 250df9d0-66b8-40be-9f08-a25f1d53a955
<180>Nov 12 11:50:34 node-1 nova-scheduler 2014-11-12 11:50:34.389 1958 WARNING nova.scheduler.utils [req-fd0019ed-58d6-46e2-b5b1-513f851c413f None] [instance: 250df9d0-66b8-40be-9f08-a25f1d53a955] Setting instance to ERROR state.

[2]
<158>Nov 12 11:50:21 node-1 cinder-api 2014-11-12 11:50:21.756 11510 INFO cinder.api.openstack.wsgi [req-6ca3146c-aec1-481d-88b5-0b70ce55d093 a4482efcf8b84ef6be9393dfd150f387 a63e920ac1dc45e6acd7f4f624752cc7 - - -] GET http://172.16.0.2:8776/v1/a63e920ac1dc45e6acd7f4f624752cc7/volumes/0b5122cb-978b-4236-b80f-cbee8b5e0b77
<156>Nov 12 11:50:21 node-1 cinder-api 2014-11-12 11:50:21.855 11510 AUDIT cinder.api.v1.volumes [req-6ca3146c-aec1-481d-88b5-0b70ce55d093 a4482efcf8b84ef6be9393dfd150f387 a63e920ac1dc45e6acd7f4f624752cc7 - - -] vol={'migration_status': None, 'availability_zone': u'nova', 'terminated_at': None, 'updated_at': datetime.datetime(2014, 11, 11, 10, 51, 26), 'provider_geometry': None, 'snapshot_id': None, 'ec2_id': None, 'mountpoint': None, 'deleted_at': None, 'id': u'0b5122cb-978b-4236-b80f-cbee8b5e0b77', 'size': 1L, 'user_id': u'a4482efcf8b84ef6be9393dfd150f387', 'attach_time': None, 'attached_host': None, 'display_description': u'', 'volume_admin_metadata': [<cinder.db.sqlalchemy.models.VolumeAdminMetadata object at 0x43d6bd0>], 'encryption_key_id': None, 'project_id': u'a63e920ac1dc45e6acd7f4f624752cc7', 'launched_at': datetime.datetime(2014, 11, 7, 14, 11, 53), 'scheduled_at': datetime.datetime(2014, 11, 7, 14, 11, 49), 'status': u'available', 'volume_type_id': None, 'deleted': False, 'provider_location': u'192.168.1.1:3260,1 iqn.2010-10.org.openstack:volume-0b5122cb-978b-4236-b80f-cbee8b5e0b77 1', 'host': u'node-1', 'source_volid': None, 'provider_auth': u'CHAP 47RqL3JLHxDw3fHwYpS6 E4JybY2Pdckk3kunU7va', 'display_name': u'', 'instance_uuid': None, 'bootable': True, 'created_at': datetime.datetime(2014, 11, 7, 14, 11, 47), 'attach_status': u'detached', 'volume_type': None, '_name_id': None, 'volume_metadata': [], 'metadata': {u'readonly': u'False'}}
<158>Nov 12 11:50:22 node-1 cinder-api 2014-11-12 11:50:22.043 11510 INFO cinder.api.openstack.wsgi [req-6ca3146c-aec1-481d-88b5-0b70ce55d093 a4482efcf8b84ef6be9393dfd150f387 a63e920ac1dc45e6acd7f4f624752cc7 - - -] http://172.16.0.2:8776/v1/a63e920ac1dc45e6acd7f4f624752cc7/volumes/0b5122cb-978b-4236-b80f-cbee8b5e0b77 returned with HTTP 200
<158>Nov 12 11:50:22 node-1 cinder-api 2014-11-12 11:50:22.062 11510 INFO eventlet.wsgi.server [req-6ca3146c-aec1-481d-88b5-0b70ce55d093 a4482efcf8b84ef6be9393dfd150f387 a63e920ac1dc45e6acd7f4f624752cc7 - - -] 192.168.0.1 - - [12/Nov/2014 11:50:22] "GET /v1/a63e920ac1dc45e6acd7f4f624752cc7/volumes/0b5122cb-978b-4236-b80f-cbee8b5e0b77 HTTP/1.1" 200 1131 1.192192
<158>Nov 12 11:50:22 node-1 cinder-api 2014-11-12 11:50:22.304 11510 INFO eventlet.wsgi.server [-] (11510) accepted ('192.168.0.1', 59275)
<158>Nov 12 11:50:22 node-1 cinder-api 2014-11-12 11:50:22.307 11510 INFO cinder.api.openstack.wsgi [req-7159a924-506e-4ac3-bf11-06aec59d79b5 a4482efcf8b84ef6be9393dfd150f387 a63e920ac1dc45e6acd7f4f624752cc7 - - -] GET http://172.16.0.2:8776/v1/a63e920ac1dc45e6acd7f4f624752cc7/volumes/0b5122cb-978b-4236-b80f-cbee8b5e0b77
<156>Nov 12 11:50:22 node-1 cinder-api 2014-11-12 11:50:22.337 11510 AUDIT cinder.api.v1.volumes [req-7159a924-506e-4ac3-bf11-06aec59d79b5 a4482efcf8b84ef6be9393dfd150f387 a63e920ac1dc45e6acd7f4f624752cc7 - - -] vol={'migration_status': None, 'availability_zone': u'nova', 'terminated_at': None, 'updated_at': datetime.datetime(2014, 11, 11, 10, 51, 26), 'provider_geometry': None, 'snapshot_id': None, 'ec2_id': None, 'mountpoint': None, 'deleted_at': None, 'id': u'0b5122cb-978b-4236-b80f-cbee8b5e0b77', 'size': 1L, 'user_id': u'a4482efcf8b84ef6be9393dfd150f387', 'attach_time': None, 'attached_host': None, 'display_description': u'', 'volume_admin_metadata': [<cinder.db.sqlalchemy.models.VolumeAdminMetadata object at 0x55e4350>], 'encryption_key_id': None, 'project_id': u'a63e920ac1dc45e6acd7f4f624752cc7', 'launched_at': datetime.datetime(2014, 11, 7, 14, 11, 53), 'scheduled_at': datetime.datetime(2014, 11, 7, 14, 11, 49), 'status': u'available', 'volume_type_id': None, 'deleted': False, 'provider_location': u'192.168.1.1:3260,1 iqn.2010-10.org.openstack:volume-0b5122cb-978b-4236-b80f-cbee8b5e0b77 1', 'host': u'node-1', 'source_volid': None, 'provider_auth': u'CHAP 47RqL3JLHxDw3fHwYpS6 E4JybY2Pdckk3kunU7va', 'display_name': u'', 'instance_uuid': None, 'bootable': True, 'created_at': datetime.datetime(2014, 11, 7, 14, 11, 47), 'attach_status': u'detached', 'volume_type': None, '_name_id': None, 'volume_metadata': [], 'metadata': {u'readonly': u'False'}}
<158>Nov 12 11:50:22 node-1 cinder-api 2014-11-12 11:50:22.437 11510 INFO cinder.api.openstack.wsgi [req-7159a924-506e-4ac3-bf11-06aec59d79b5 a4482efcf8b84ef6be9393dfd150f387 a63e920ac1dc45e6acd7f4f624752cc7 - - -] http://172.16.0.2:8776/v1/a63e920ac1dc45e6acd7f4f624752cc7/volumes/0b5122cb-978b-4236-b80f-cbee8b5e0b77 returned with HTTP 200
<158>Nov 12 11:50:22 node-1 cinder-api 2014-11-12 11:50:22.452 11510 INFO eventlet.wsgi.server [req-7159a924-506e-4ac3-bf11-06aec59d79b5 a4482efcf8b84ef6be9393dfd150f387 a63e920ac1dc45e6acd7f4f624752cc7 - - -] 192.168.0.1 - - [12/Nov/2014 11:50:22] "GET /v1/a63e920ac1dc45e6acd7f4f624752cc7/volumes/0b5122cb-978b-4236-b80f-cbee8b5e0b77 HTTP/1.1" 200 1131 0.147559

Tags: cinder nova
Changed in mos:
assignee: nobody → MOS Nova (mos-nova)
Changed in mos:
importance: Undecided → Critical
Revision history for this message
Roman Podoliaka (rpodolyaka) wrote :

Apparently, you just need to add "dest=volume" to --block-device value in order to tell Nova to generate the correct XML for libvirt.

Something like:

nova boot --flavor m1.medium --block-device source=volume,id=48c4d00d-10f1-4475-ad85-44337453d6cc,shutdown=preserve,dest=volume,bootindex=0 --nic net-id=68eb008f-9ba0-4003-b432-9c6c37d5a3b3 --config-drive=true instance

should work like a charm

Changed in mos:
status: New → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.