nova: Attaching additional volume fails due to duplicate ID in libvirt/qmeu.

asked 2016-04-08 11:27:40 -0600

Matt_O gravatar image

Hi all.

I have a head-scratcher with Nova. Whenever I try to attach an additional volume to an instance (via cli or dashboard), it silently fails (no error response) and the volume is not attached.

Looking into the nova logs has led me to the following error (libvirtd.log):

 internal error: unable to execute QEMU command 'device_add': Duplicate ID 'scsi0-0-0-0' for device

It should be noted that any attempt to specify the nova device attribute via the gui or cli (i.e. "/dev/vdb" or "auto") is ignored - shows up as device=/dev/sda every time, although as I understand it KVM only uses that as a hint for the guest. (Will post nova logs if requested - can't attach files yet!)

This is reproduceable between different tenants, instances, hypervsiors and volumes. I can confirm that the boot volumes already in use are acreated using the same ID: 'scsi0-0-0-0' which would account for the conflict but not why nova or libvirt are assigning it.

Closest matching bug I can find was: https://bugzilla.redhat.com/show_bug.cgi?id=1142631 but the changes to the nova.libvirt driver had no effect.

Stack Environment:

Mirantis Openstack 8.0 (Juno on Unbuntu 14.04 physical servers) using KVM/Qemu and Ceph for storage. Environment has been customized to use external LDAP auth (so new service accounts, updated configs with new keystone credentials etc.)

Can anybody point me in the right direction of where to look next? Is nova responsible for which device id libvirt uses (i.e. 'scsi0-0-0-0') and is there anyway to influence this?

edit retag flag offensive close merge delete