yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #83787
[Bug 1795747] Re: libvirtError: unsupported configuration: Found duplicate drive address for disk with target name 'sda' controller='0' bus='0' target='0' unit='0' when try to create an instance with two scsi volumes
I think this one is partially invalid/duplicate/fixed in release.
I don't think this property exists hw_scsi_controller=virtio-scsi the good one is
hw_scsi_model=virtio-scsi
because of that legacy scsi support is used instead of virtio-scsi, then we fall into that bug that have been fixed and backport till Pike.
https://bugs.launchpad.net/nova/+bug/1792077
https://review.opendev.org/#/c/611974/
** Changed in: nova
Status: New => Fix Released
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1795747
Title:
libvirtError: unsupported configuration: Found duplicate drive address
for disk with target name 'sda' controller='0' bus='0' target='0'
unit='0' when try to create an instance with two scsi volumes
Status in OpenStack Compute (nova):
Fix Released
Bug description:
Description
===========
Error occurs when an instance with two volumes (created from scsi image). From nova-compute.log, the following information related to volume attachment (address has no bus, target and unit infos):
<disk type="block" device="disk">
<driver name="qemu" type="raw" cache="none" io="native"/>
<source dev="/dev/disk/by-path/ip-10.0.0.11:3260-iscsi-iqn.2010-10.org.openstack:volume-8fc346e1-fdf4-420a-b6cd-5ee97e97a5b8-lun-0"/>
<target bus="scsi" dev="sda"/>
<serial>8fc346e1-fdf4-420a-b6cd-5ee97e97a5b8</serial>
<address type="drive" controller="0"/>
</disk>
<disk type="block" device="disk">
<driver name="qemu" type="raw" cache="none" io="native"/>
<source dev="/dev/disk/by-path/ip-10.0.0.11:3260-iscsi-iqn.2010-10.org.openstack:volume-7f3b3f37-8449-4fc1-9d8d-0ba691aeacfb-lun-0"/>
<target bus="scsi" dev="sdb"/>
<serial>7f3b3f37-8449-4fc1-9d8d-0ba691aeacfb</serial>
<address type="drive" controller="0"/>
</disk>
But when instance is created with only one volume and second volume is attached later (with openstack volume attach .. command), it's configured differently:
<disk type='block' device='disk'>
<driver name='qemu' type='raw' cache='none' io='native'/>
<source dev='/dev/sdc'/>
<backingStore/>
<target dev='sda' bus='scsi'/>
<serial>20fb8417-3ece-46f0-affb-d80800a885dd</serial>
<alias name='scsi0-0-0-0'/>
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
</disk>
<disk type='block' device='disk'>
<driver name='qemu' type='raw' cache='none' io='native'/>
<source dev='/dev/sdd'/>
<backingStore/>
<target dev='sdb' bus='scsi'/>
<serial>2d087117-bc51-48ae-9c4d-00950deeb617</serial>
<alias name='scsi0-0-0-1'/>
<address type='drive' controller='0' bus='0' target='0' unit='1'/>
</disk>
Steps to reproduce
==================
1 - Using an admin openstack account, create a cirros image with scsi
properties:
wget http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img
openstack image create "cirros_scsi" \
--file cirros-0.3.5-x86_64-disk.img \
--disk-format qcow2 --container-format bare \
--property hw_disk_bus=scsi \
--property hw_scsi_controller=virtio-scsi \
--public
2 - Create two volumes (volume-backed image) using cirros_scsi image:
openstack volume create --size 1 volume-0 --image cirros_scsi
openstack volume create --size 1 volume-1 --image cirros_scsi
3 - Create an instance using two volumes (error scenario):
v1id=`openstack volume show volume-0 | grep " id " | awk '{print $4}'` && echo $v1id
v2id=`openstack volume show volume-1 | grep " id " | awk '{print $4}'` && echo $v2id
nova boot --flavor m1.nano \
--block-device source=volume,id=$v1id,shutdown=preserve,bootindex=0 \
--block-device source=volume,id=$v2id,shutdown=preserve,bootindex=1 \
--nic net-id=<network_id> \
--key <keypair> instance01
4 - Check instance
openstack server list
openstack volume list
Expected result
===============
Instance should be created normally;
Actual result
=============
(openstack) server list
+--------------------------------------+------------+--------+----------+-------+---------+
| ID | Name | Status | Networks | Image | Flavor |
+--------------------------------------+------------+--------+----------+-------+---------+
| 6717d471-2092-48c8-8a4f-463ff8afc5bb | instance01 | ERROR | | | m1.nano |
+--------------------------------------+------------+--------+----------+-------+---------+
root@cldsrv02 ~]# openstack server show instance01 -f shell | grep fault
fault="{u'message': u'Exceeded maximum number of retries. Exhausted all hosts available for retrying build failures for instance 6717d471-2092-48c8-8a4f-463ff8afc5bb.', u'code': 500, u'details': u' File "/usr/lib/python2.7/site-packages/nova/conductor/manager.py", line 580, in build_instances\n raise exception.MaxRetriesExceeded(reason=msg)\n', u'created': u'2018-10-02T21:24:23Z'}"
Error reported in /var/log/nova/nova-compute.log:
lugin='linux_bridge',port_profile=<?>,preserve_on_delete=False,vif_name='tap7946d21b-8f')
2018-10-02 17:24:09.694 17390 ERROR nova.virt.libvirt.guest [req-6105a653-1bdd-4812-83a5-2f68bf3e4b7a f04ef8cc6c7c46f782488ff162dcdef2 bf7678e543da4c4a9703a0196efda6e9 - default default] Error defining a guest with XML: <domain type="qemu">
<uuid>6717d471-2092-48c8-8a4f-463ff8afc5bb</uuid>
<name>instance-00000008</name>
<memory>65536</memory>
<vcpu>1</vcpu>
<metadata>
<nova:instance xmlns:nova="http://openstack.org/xmlns/libvirt/nova/1.0">
<nova:package version="17.0.5-1.el7"/>
<nova:name>instance01</nova:name>
<nova:creationTime>2018-10-02 21:24:07</nova:creationTime>
<nova:flavor name="m1.nano">
<nova:memory>64</nova:memory>
<nova:disk>1</nova:disk>
<nova:swap>0</nova:swap>
<nova:ephemeral>0</nova:ephemeral>
<nova:vcpus>1</nova:vcpus>
</nova:flavor>
<nova:owner>
<nova:user uuid="7500c13b015449de99a66db93db1b697">admin</nova:user>
<nova:project uuid="265f6aeb1ae746a887cc589c482b4929">admin</nova:project>
</nova:owner>
</nova:instance>
</metadata>
<sysinfo type="smbios">
<system>
<entry name="manufacturer">RDO</entry>
<entry name="product">OpenStack Compute</entry>
<entry name="version">17.0.5-1.el7</entry>
<entry name="serial">1235d097-6a37-4c00-a5e5-33ccae494775</entry>
<entry name="uuid">6717d471-2092-48c8-8a4f-463ff8afc5bb</entry>
<entry name="family">Virtual Machine</entry>
</system>
</sysinfo>
<os>
<type>hvm</type>
<boot dev="hd"/>
<smbios mode="sysinfo"/>
</os>
<features>
<acpi/>
<apic/>
</features>
<cputune>
<shares>1024</shares>
</cputune>
<clock offset="utc"/>
<cpu mode="host-model" match="exact">
<topology sockets="1" cores="1" threads="1"/>
</cpu>
<devices>
<disk type="block" device="disk">
<driver name="qemu" type="raw" cache="none" io="native"/>
<source dev="/dev/sdc"/>
<target bus="scsi" dev="sda"/>
<serial>0ce95aac-3205-4aa3-830b-c65113f0c9f7</serial>
<address type="drive" controller="0"/>
</disk>
<disk type="block" device="disk">
<driver name="qemu" type="raw" cache="none" io="native"/>
<source dev="/dev/sdd"/>
<target bus="scsi" dev="sdb"/>
<serial>08e55f7d-78e8-4e5a-bdfc-2f7ebcd0ee27</serial>
<address type="drive" controller="0"/>
</disk>
<interface type="bridge">
<mac address="fa:16:3e:08:29:07"/>
<model type="virtio"/>
<driver name="qemu"/>
<source bridge="brq77669d98-2b"/>
<target dev="tap7946d21b-8f"/>
</interface>
<serial type="pty">
<log file="/var/lib/nova/instances/6717d471-2092-48c8-8a4f-463ff8afc5bb/console.log" append="off"/>
</serial>
<input type="tablet" bus="usb"/>
<graphics type="vnc" autoport="yes" keymap="en-us" listen="10.0.0.11"/>
<video>
<model type="cirrus"/>
</video>
<memballoon model="virtio">
<stats period="10"/>
</memballoon>
</devices>
</domain>
: libvirtError: unsupported configuration: Found duplicate drive address for disk with target name 'sda' controller='0' bus='0' target='0' unit='0'
2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [req-6105a653-1bdd-4812-83a5-2f68bf3e4b7a f04ef8cc6c7c46f782488ff162dcdef2 bf7678e543da4c4a9703a0196efda6e9 - default default] [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] Instance failed to spawn: libvirtError: unsupported configuration: Found duplicate drive address for disk with target name 'sda' controller='0' bus='0' target='0' unit='0'
2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] Traceback (most recent call last):
2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 2251, in _build_resources
2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] yield resources
2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 2031, in _build_and_run_instance
2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] block_device_info=block_device_info)
2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 3089, in spawn
2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] destroy_disks_on_failure=True)
2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 5614, in _create_domain_and_network
2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] destroy_disks_on_failure)
2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220, in __exit__
2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] self.force_reraise()
2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196, in force_reraise
2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] six.reraise(self.type_, self.value, self.tb)
2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 5583, in _create_domain_and_network
2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] post_xml_callback=post_xml_callback)
2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 5495, in _create_domain
2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] guest = libvirt_guest.Guest.create(xml, self._host)
2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/guest.py", line 129, in create
2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] encodeutils.safe_decode(xml))
2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220, in __exit__
2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] self.force_reraise()
2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196, in force_reraise
2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] six.reraise(self.type_, self.value, self.tb)
2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/guest.py", line 125, in create
2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] guest = host.write_instance_config(xml)
2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/host.py", line 829, in write_instance_config
2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] domain = self.get_connection().defineXML(xml)
2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] File "/usr/lib/python2.7/site-packages/eventlet/tpool.py", line 186, in doit
2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] result = proxy_call(self._autowrap, f, *args, **kwargs)
2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] File "/usr/lib/python2.7/site-packages/eventlet/tpool.py", line 144, in proxy_call
2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] rv = execute(f, *args, **kwargs)
2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] File "/usr/lib/python2.7/site-packages/eventlet/tpool.py", line 125, in execute
2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] six.reraise(c, e, tb)
2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] File "/usr/lib/python2.7/site-packages/eventlet/tpool.py", line 83, in tworker
2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] rv = meth(*args, **kwargs)
2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] File "/usr/lib64/python2.7/site-packages/libvirt.py", line 3676, in defineXML
2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] if ret is None:raise libvirtError('virDomainDefineXML() failed', conn=self)
2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] libvirtError: unsupported configuration: Found duplicate drive address for disk with target name 'sda' controller='0' bus='0' target='0' unit='0'
2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb]
Environment
===========
Openstack release: Queens (all in one)
root@cldsrv02 ~]# rpm -qa | grep nova
openstack-nova-api-17.0.5-1.el7.noarch
openstack-nova-placement-api-17.0.5-1.el7.noarch
openstack-nova-common-17.0.5-1.el7.noarch
openstack-nova-conductor-17.0.5-1.el7.noarch
python2-novaclient-10.1.0-1.el7.noarch
openstack-nova-compute-17.0.5-1.el7.noarch
python-nova-17.0.5-1.el7.noarch
openstack-nova-console-17.0.5-1.el7.noarch
openstack-nova-novncproxy-17.0.5-1.el7.noarch
openstack-nova-scheduler-17.0.5-1.el7.noarch
[root@cldsrv02 ~]#
Hypervisor: Libvirt + KVM:
[root@cldsrv02 ~]# rpm -qa | grep -iE 'kvm|virt'
qemu-kvm-common-ev-2.10.0-21.el7_5.4.1.x86_64
libvirt-daemon-driver-storage-scsi-3.9.0-14.el7_5.8.x86_64
libvirt-daemon-driver-interface-3.9.0-14.el7_5.8.x86_64
libvirt-client-3.9.0-14.el7_5.8.x86_64
libvirt-daemon-driver-storage-core-3.9.0-14.el7_5.8.x86_64
libvirt-daemon-driver-storage-rbd-3.9.0-14.el7_5.8.x86_64
libvirt-daemon-driver-network-3.9.0-14.el7_5.8.x86_64
libvirt-daemon-driver-storage-disk-3.9.0-14.el7_5.8.x86_64
libvirt-daemon-driver-storage-logical-3.9.0-14.el7_5.8.x86_64
libvirt-daemon-driver-secret-3.9.0-14.el7_5.8.x86_64
qemu-kvm-ev-2.10.0-21.el7_5.4.1.x86_64
libvirt-libs-3.9.0-14.el7_5.8.x86_64
libvirt-daemon-driver-qemu-3.9.0-14.el7_5.8.x86_64
libvirt-daemon-driver-storage-iscsi-3.9.0-14.el7_5.8.x86_64
libvirt-daemon-driver-storage-3.9.0-14.el7_5.8.x86_64
libvirt-daemon-driver-nwfilter-3.9.0-14.el7_5.8.x86_64
libvirt-daemon-kvm-3.9.0-14.el7_5.8.x86_64
libvirt-python-3.9.0-1.el7.x86_64
libvirt-daemon-3.9.0-14.el7_5.8.x86_64
libvirt-daemon-driver-storage-gluster-3.9.0-14.el7_5.8.x86_64
libvirt-daemon-driver-storage-mpath-3.9.0-14.el7_5.8.x86_64
libvirt-daemon-driver-nodedev-3.9.0-14.el7_5.8.x86_64
centos-release-virt-common-1-1.el7.centos.noarch
virt-what-1.18-4.el7.x86_64
Storage type: LVM:
[root@cldsrv02 ~]# rpm -qa | grep lvm
lvm2-libs-2.02.177-4.el7.x86_64
lvm2-2.02.177-4.el7.x86_64
Networking: Neutron
root@cldsrv02 ~]# rpm -qa | grep neutron
openstack-neutron-linuxbridge-12.0.3-1.el7.noarch
openstack-neutron-common-12.0.3-1.el7.noarch
python2-neutron-lib-1.13.0-1.el7.noarch
openstack-neutron-12.0.3-1.el7.noarch
openstack-neutron-ml2-12.0.3-1.el7.noarch
python-neutron-12.0.3-1.el7.noarch
python2-neutronclient-6.7.0-1.el7.noarch
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1795747/+subscriptions
References