Public bug reported: Trying to use iSCSI with libvirt/Xen, attaching volumes to instances was failing. I tracked this down to the libvirt XML looking like:
<disk type="block" device="disk"> <driver name="file" type="raw" cache="none"/> <source dev="/dev/disk/by-path/ip-192.168.8.11:3260-iscsi-iqn.1986-03.com.sun:02:ecd142ab-b1c7-6bcf-8f91-f55b6c766bcc-lun-0"/> <target bus="xen" dev="xvdb"/> <serial>e8c640c6-641b-4940-88f2-79555cdd5551</serial> </disk> The driver name should be "phy", not "file". More digging lead to the iSCSI volume driver in nova/virt/libvirt/volume.py, which does: class LibvirtISCSIVolumeDriver(LibvirtBaseVolumeDriver): """Driver to attach Network volumes to libvirt.""" def __init__(self, connection): super(LibvirtISCSIVolumeDriver, self).__init__(connection, is_block_dev=False) Surely is_block_dev should be "True" for iSCSI?? Changing this makes the problem go away - now pick_disk_driver_name() in nova/virt/libvirt/utils.py does the right thing and my volume attaches successfully. Am I missing something here... ? ** Affects: nova Importance: Undecided Status: New -- 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/1273496 Title: libvirt iSCSI driver sets is_block_dev=False Status in OpenStack Compute (Nova): New Bug description: Trying to use iSCSI with libvirt/Xen, attaching volumes to instances was failing. I tracked this down to the libvirt XML looking like: <disk type="block" device="disk"> <driver name="file" type="raw" cache="none"/> <source dev="/dev/disk/by-path/ip-192.168.8.11:3260-iscsi-iqn.1986-03.com.sun:02:ecd142ab-b1c7-6bcf-8f91-f55b6c766bcc-lun-0"/> <target bus="xen" dev="xvdb"/> <serial>e8c640c6-641b-4940-88f2-79555cdd5551</serial> </disk> The driver name should be "phy", not "file". More digging lead to the iSCSI volume driver in nova/virt/libvirt/volume.py, which does: class LibvirtISCSIVolumeDriver(LibvirtBaseVolumeDriver): """Driver to attach Network volumes to libvirt.""" def __init__(self, connection): super(LibvirtISCSIVolumeDriver, self).__init__(connection, is_block_dev=False) Surely is_block_dev should be "True" for iSCSI?? Changing this makes the problem go away - now pick_disk_driver_name() in nova/virt/libvirt/utils.py does the right thing and my volume attaches successfully. Am I missing something here... ? To manage notifications about this bug go to: https://bugs.launchpad.net/nova/+bug/1273496/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp